OSDN Git Service

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