OSDN Git Service

8e901909f2f1212b0be5d8c15e7b5b4b16802cf8
[luatex-ja/luatexja.git] / src / patches / lltjdefs.sty
1 %
2 % lltjdefs.sty
3 %
4
5 \NeedsTeXFormat{LaTeX2e}
6 \ProvidesPackage{lltjdefs}[2019/09/26 Default font settings of LuaTeX-ja]
7
8 \ifdefined\ltj@stdmcfont\else\def\ltj@stdmcfont{IPAExMincho}\fi
9 \ifdefined\ltj@stdgtfont\else\def\ltj@stdgtfont{IPAExGothic}\fi
10 \ifdefined\ltj@stdyokojfm\else\def\ltj@stdyokojfm{ujis}\fi
11 \ifdefined\ltj@stdtatejfm\else\def\ltj@stdtatejfm{ujisv}\fi
12 \InputIfFileExists{luatexja.cfg}{%
13   \typeout{*************************^^J%
14            * Loading luatexja.cfg.^^J%
15            *************************}%
16 }{}
17
18 \DeclareKanjiEncodingDefaults{}{}
19 \DeclareErrorKanjiFont{JY3}{mc}{m}{n}{10}
20 \kanjifamily{mc}
21 \kanjiseries{m}
22 \kanjishape{n}
23 \fontsize{10}{10}
24 \DeclareYokoKanjiEncoding{JY3}{}{}
25 \DeclareKanjiSubstitution{JY3}{mc}{m}{n}
26 \DeclareTateKanjiEncoding{JT3}{}{}
27 \DeclareKanjiSubstitution{JT3}{mc}{m}{n}
28
29 \newcommand\mcdefault{mc}
30 \newcommand\gtdefault{gt}
31 \newcommand\jttdefault{\mcdefault}
32 \newcommand\kanjiencodingdefault{JY3}
33 \newcommand\kanjifamilydefault{\mcdefault}
34 \newcommand\kanjiseriesdefault{\mddefault}
35 \ifdefined\shapedefault
36   %% LaTeX 2020-02-02
37   \newcommand\kanjishapedefault{\shapedefault}
38 \else
39   %% LaTeX 2019-10-01
40   \newcommand\kanjishapedefault{\updefault}
41 \fi
42
43 \DeclareKanjiFamily{JY3}{mc}{}
44 \DeclareFontShape{JY3}{mc}{m}{n}{<-> s*[\ifdefined\Cjascale\Cjascale\else 0.962216\fi] \ltj@stdmcfont:jfm=\ltj@stdyokojfm}{}
45 \DeclareKanjiFamily{JY3}{gt}{}
46 \DeclareFontShape{JY3}{gt}{m}{n}{<-> s*[\ifdefined\Cjascale\Cjascale\else 0.962216\fi] \ltj@stdgtfont:jfm=\ltj@stdyokojfm}{}
47 \DeclareFontShape{JY3}{mc}{bx}{n}{<-> ssub*gt/m/n}{}
48 \DeclareFontShape{JY3}{gt}{bx}{n}{<-> ssub*gt/m/n}{}
49 \DeclareFontShape{JY3}{mc}{b}{n}{<-> ssub*gt/m/n}{}
50 \DeclareFontShape{JY3}{gt}{b}{n}{<-> ssub*gt/m/n}{}
51
52 \DeclareKanjiFamily{JT3}{mc}{}
53 \DeclareFontShape{JT3}{mc}{m}{n}{<-> s*[\ifdefined\Cjascale\Cjascale\else 0.962216\fi] \ltj@stdmcfont:jfm=\ltj@stdtatejfm}{}
54 \DeclareKanjiFamily{JT3}{gt}{}
55 \DeclareFontShape{JT3}{gt}{m}{n}{<-> s*[\ifdefined\Cjascale\Cjascale\else 0.962216\fi] \ltj@stdgtfont:jfm=\ltj@stdtatejfm}{}
56 \DeclareFontShape{JT3}{mc}{bx}{n}{<-> ssub*gt/m/n}{}
57 \DeclareFontShape{JT3}{gt}{bx}{n}{<-> ssub*gt/m/n}{}
58 \DeclareFontShape{JT3}{mc}{b}{n}{<-> ssub*gt/m/n}{}
59 \DeclareFontShape{JT3}{gt}{b}{n}{<-> ssub*gt/m/n}{}
60 \KanjiEncodingPair{JY3}{JT3}
61
62 \DeclareRelationFont{JY3}{gt}{m}{}{TU}{lmr}{bx}{}
63 \DeclareRelationFont{JY3}{mc}{m}{}{TU}{lmr}{m}{}
64 \DeclareRelationFont{JY3}{mc}{bx}{}{TU}{lmr}{bx}{}
65 \DeclareRelationFont{JY3}{mc}{b}{}{TU}{lmr}{b}{}
66 \DeclareRelationFont{JT3}{gt}{m}{}{TU}{lmr}{bx}{}
67 \DeclareRelationFont{JT3}{mc}{m}{}{TU}{lmr}{m}{}
68 \DeclareRelationFont{JT3}{mc}{bx}{}{TU}{lmr}{bx}{}
69 \DeclareRelationFont{JT3}{mc}{b}{}{TU}{lmr}{b}{}
70
71 \kanjiencoding{JY3}\selectfont\adjustbaseline
72
73 \DeclareTextFontCommand{\textmc}{\mcfamily}
74 \DeclareTextFontCommand{\textgt}{\gtfamily}
75 \DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{}
76 \DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{}
77
78 \unless\ifltj@disablejfam
79   \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n}
80   \jfam\symmincho
81   \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n}
82   \DeclareSymbolFontAlphabet{\mathmc}{mincho}
83   \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n}
84 \fi
85
86 \ifdefined\fontseriesforce
87 %%%% LaTeX 2020-02-02
88 \edef\bfseries@mc{\bfdefault}
89 \edef\bfseries@gt{\bfdefault}
90 \def\bfseries@jtt{\bfseries@gt}
91 \edef\mdseries@mc{\mddefault}
92 \edef\mdseries@gt{\mddefault}
93 \def\mdseries@jtt{\mdseries@gt}
94 \fi
95
96 \newif\if@ltj@match@family
97 \@ltj@match@familyfalse
98 \def\verbatim@font{\normalfont\ttfamily\kanjifamily\jttdefault\selectfont}
99
100 \def\@ltj@hook@family#1#2{ % #1: csname #2: contents
101   \ifcsname @#1hook\endcsname % LaTeX 2020-02-02
102         \csappto{@#1hook}{#2}%
103   \else % LaTeX 2019-10-01
104         \ifcsname #1 \endcsname
105           \expandafter\patchcmd\csname #1 \endcsname{\selectfont}{#2\selectfont}{}{}%
106         \else
107           \PackageWarningNoLine{luatexja}{%
108                 Patching to \expandafter\string\csname #1\endcsname\space failed
109           }%
110         \fi
111   \fi
112 }
113 \@ltj@hook@family{rmfamily}{%
114   \if@ltj@match@family
115     \prepare@family@series@update@kanji{mc}\mcdefault
116   \fi
117 }
118 \@ltj@hook@family{sffamily}{%
119   \if@ltj@match@family
120     \prepare@family@series@update@kanji{gt}\gtdefault
121   \fi
122 }
123 \@ltj@hook@family{ttfamily}{%
124   \if@ltj@match@family
125     \prepare@family@series@update@kanji{jtt}\jttdefault
126   \fi
127 }
128
129 %%% \eminnershape
130 \expandafter\patchcmd\csname em \endcsname{\itshape}{\gtfamily\itshape}{}{}
131 \def\eminnershape{\mcfamily \upshape}
132
133 \ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF}
134 \ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF}
135 \ltjdefcharrange{3}{%
136   "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
137 \ltjdefcharrange{4}{%
138    "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
139   "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF,
140   "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF,
141   "1F300-"1FFFF, "2000-"206F
142 } % non-Japanese
143 \ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF}
144 \ltjdefcharrange{6}{%
145   "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
146   "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF,
147   "1B000-"1B16F, "1F100-"1F2FF, "20000-"2FFFF, "E0100-"E01EF
148 }
149 \ltjdefcharrange{7}{%
150   "1100-"11FF, "2F00-"2FFF, "3100-"318F, "31A0-"31EF, "A000-"A4CF,
151   "A960-"A97F, "AC00-"D7FF
152 }
153 \ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7}
154 \ltjdefcharrange{9}{
155   "2002, "2010, "2011, "2013, "2014, "2015, "2016, "2018, "2019,
156   "201A, "201C, "201D, "201E, "2020, "2021, "2022, "2025, "2026,
157   "2030, "2032, "2033, "2039, "203A, "203B, "203C, "203E, "203F,
158   "2042, "2044, "2047, "2048, "2049, "2051
159 }
160 \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8, +9}}
161
162 \directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
163 \protected\def\<{\ifvmode\leavevmode\fi\inhibitglue}
164
165 \directlua{luatexja.jfont.register_vert_replace{
166   [',']='、', ['.']='。', ['“']=0x301D, ['”']=0x301F,
167 }}
168
169 % END OF FILE
170 \endinput
171
172 ======== comment ========
173
174 MIDDLE
175
176 \ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF}
177   %   2  "80-"FF num = 471/128 name = Latin-1 Supplement
178   %   3  "100-"17F num = 484/128 name = Latin Extended-A
179   %   4  "180-"24F num = 87/208 name = Latin Extended-B
180   %   5  "250-"2AF num = 154/96 name = IPA Extensions
181   %   6  "2B0-"2FF num = 42/80 name = Spacing Modifier Letters
182   %   7  "300-"36F num = 98/112 name = Combining Diacritical Marks
183   %  64  "1E00-"1EFF num = 16/256 name = Latin Extended Additional
184
185 \ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF}
186   % Greek and Coptic, Cyrillic, Greek Extended
187
188 \ltjdefcharrange{3}{%
189   "2070-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
190   %   67  "2070-"209F num = 68/48 name = Superscripts and Subscripts
191   %   68  "20A0-"20CF num = 5/48 name = Currency Symbols
192   %   69  "20D0-"20FF num = 2/48 name = Combining Diacritical Marks for Symbols
193   %   70  "2100-"214F num = 46/80 name = Letterlike Symbols
194   %   71  "2150-"218F num = 90/64 name = Number Forms
195   %   72  "2190-"21FF num = 39/112 name = Arrows
196   %   73  "2200-"22FF num = 210/256 name = Mathematical Operators
197   %   74  "2300-"23FF num = 69/256 name = Miscellaneous Technical
198   %   75  "2400-"243F num = 1/64 name = Control Pictures
199   %   78  "2500-"257F num = 241 name = Box Drawing
200   %   79  "2580-"259F num = 17 name = Block Elements
201   %   80  "25A0-"25FF num = 70 name = Geometric Shapes
202   %   81  "2600-"26FF num = 49 name = Miscellaneous Symbols
203   %   82  "2700-"27BF num = 23 name = Dingbats
204   %   86  "2900-"297F num = 2 name = Supplemental Arrows-B
205   %   87  "2980-"29FF num = 4 name = Miscellaneous Mathematical Symbols-B
206   %   89  "2B00-"2BFF num = 3 name = Miscellaneous Symbols and Arrows
207
208 \ltjdefcharrange{4}{%
209    "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
210   "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A95F, "A980-"ABFF, "E000-"F8FF,
211   "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1AFFF, "1B170-"1F0FF,
212   "1F300-"1FFFF
213 } % non-Japanese
214
215 \ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF}
216   % Surrogates, Tags
217   %  208  "F0000-"FFFFF num = 0/65536 name = Supplementary Private Use Area-A
218   %  209  "100000-"10FFFF num = 0/65536 name = Supplementary Private Use Area-B
219
220 POSITIVE
221
222 % Japanese
223 \ltjdefcharrange{6}{%
224   "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
225   "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF,
226   "1B000-"1B16F, "1F100-"1F2FF, "20000-"2FFFF, "E0100-"E01EF
227 }
228 %   77  "2460-"24FF num = 150/160 name = Enclosed Alphanumerics
229 %   98  "2E80-"2EFF num = 21 name = CJK Radicals Supplement
230 %  101  "3000-"303F num = 144 name = CJK Symbols and Punctuation
231 %  102  "3040-"309F num = 1074 name = Hiragana
232 %  103  "30A0-"30FF num = 985 name = Katakana
233 %  106  "3190-"319F num = 16/16 name = Kanbun
234 %  109  "31F0-"31FF num = 128 name = Katakana Phonetic Extensions
235 %  110  "3200-"32FF num = 143 name = Enclosed CJK Letters and Months
236 %  111  "3300-"33FF num = 255 name = CJK Compatibility
237 %  112  "3400-"4DBF num = 203 name = CJK Unified Ideographs Extension A
238 %  114  "4E00-"9FFF num = 14087 name = CJK Unified Ideographs
239 %  143  "F900-"FAFF num = 110/512 name = CJK Compatibility Ideographs
240 %  147  "FE10-"FE1F num = 0/16 name = Vertical Forms
241 %  149  "FE30-"FE4F num = 8/32 name = CJK Compatibility Forms
242 %  150  "FE50-"FE6F num = 0/32 name = Small Form Variants
243 %       "FF00-"FFEF            name = Halfwidth and Fullwidth Forms
244 %       "1B000-"1B0FF          name = Kana Supplement
245 %       "1B100-"1B12F          name = Kana Extended-A
246 %       "1B130-"1B16F          name = Small Kana Extension
247 %       "1F100-"1F1FF          name = Enclosed Alphanumeric Supplement
248 %       "1F200-"1F2FF          name = Enclosed Ideographic Supplement
249 %  SIP
250 %       "E0000-"E01EF          name = Variation Selectors Supplement
251
252 \ltjdefcharrange{7}{%
253   "1100-"11FF, "2F00-"2FFF, "3100-"318F, "31A0-"31EF, "A000-"A4CF,
254   "A960-"A97F, "AC00-"D7FF
255 }
256   %   35  "1100-"11FF num = 1 name = Hangul Jamo
257   %   99  "2F00-"2FDF num = 0/224 name = Kangxi Radicals
258   %  100  "2FF0-"2FFF num = 0/16 name = Ideographic Description Characters
259   %  104  "3100-"312F num = 0/48 name = Bopomofo
260   %  105  "3130-"318F num = 0/96 name = Hangul Compatibility Jamo
261   %  107  "31A0-"31BF num = 0/32 name = Bopomofo Extended
262   %  108  "31C0-"31EF num = 0/48 name = CJK Strokes
263   %  115  "A000-"A48F num = 0/1168 name = Yi Syllables
264   %  116  "A490-"A4CF num = 0/64 name = Yi Radicals
265   %       "A960-"A97F            name = Hangul Jamo Extended-A
266   %  137  "AC00-"D7AF num = 0/11184 name = Hangul Syllables
267   %  138  "D7B0-"D7FF num = 0/80 name = Hangul Jamo Extended-B