diff options
author | Karl Berry <karl@freefriends.org> | 2015-04-21 23:46:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-04-21 23:46:31 +0000 |
commit | dbf06c3ecc6528bd2410630d2a251940ec0c9b23 (patch) | |
tree | c875bdd9f4e6a021f50e1e36e2779c07b828347c /Master/texmf-dist/tex/luatex | |
parent | 142d903dcd96ad083d58f5518aa138a676eb68c0 (diff) |
luatexja (21apr15)
git-svn-id: svn://tug.org/texlive/trunk@36992 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex')
68 files changed, 13882 insertions, 5394 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty index 3944b966828..89e0953cecb 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty @@ -87,7 +87,7 @@ \gdef\shift@CID#1#2{{\@tempcnta#1\advance\@tempcnta#2\CID{\@tempcnta}}} \gdef\ajTsumesuji{\@ifstar{\@@ajTsumesuji}{\@ajTsumesuji}} \global\let\ajTumesuji\ajTsumesuji -\gdef\@ajTsumesuji#1#2{{\@tempcnta\ifydir\ifcase#1\or780\or247\or9758\or9738\fi +\gdef\@ajTsumesuji#1#2{{\@tempcnta\unless\ifnum\ltjgetparameter{direction}=3 \ifcase#1\or780\or247\or9758\or9738\fi \else\ifcase#1\or8736\or8966\or13274\or13254\fi\fi \aj@expand\aj@Tsumesuji#2\@nil}} \gdef\@@ajTsumesuji#1{\@ajTsumesuji{\aj@expand\aj@count@toks#14321\@nil}{#1}} @@ -226,15 +226,15 @@ % \gdef\ajTsumekakko#1{\aj@expand\@ajTsumekakko#1\@nil} \global\let\ajTumekakko\ajTsumekakko -\gdef\@ajTsumekakko#1#2{\ifx\@nil#2\mbox{\ifydir\rlap{\CID{10233}}\shift@CID{#1}{9872}% +\gdef\@ajTsumekakko#1#2{\ifx\@nil#2\mbox{\unless\ifnum\ltjgetparameter{direction}=3 \rlap{\CID{10233}}\shift@CID{#1}{9872}% \else\CID{13268}\shift@CID{#1}{10185}\CID{13269}\fi}% \expandafter\@gobble - \else\shift@CID{#1}{\ifydir10152\else10174\fi}% + \else\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 10152\else10174\fi}% \expandafter\aj@Tsumekakko \fi#2} -\gdef\aj@Tsumekakko#1#2{\ifx\@nil#2\shift@CID{#1}{\ifydir10162\else10196\fi}% +\gdef\aj@Tsumekakko#1#2{\ifx\@nil#2\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 10162\else10196\fi}% \expandafter\@gobble - \else\shift@CID{#1}{\ifydir247\else10185\fi}% + \else\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 247\else10185\fi}% \expandafter\aj@Tsumekakko \fi#2} \gdef\ajNenrei#1{\ifcase#1\relax\expandafter\ajTsumekakko\or\expandafter\aj@NenreiTu @@ -242,14 +242,14 @@ \or\expandafter\aj@Nenrei@Sai \fi} \gdef\aj@NenreiTu#1{\aj@expand\@aj@NenreiTu#1\@nil} -\gdef\@aj@NenreiTu#1#2{\shift@CID{#1}{\ifydir10152\else10174\fi}% - \ifx\@nil#2\CID{\ifydir10172\else10206\fi}\expandafter\@gobble +\gdef\@aj@NenreiTu#1#2{\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 10152\else10174\fi}% + \ifx\@nil#2\CID{\unless\ifnum\ltjgetparameter{direction}=3 10172\else10206\fi}\expandafter\@gobble \else\expandafter\aj@Tsumekakko \fi#2} \gdef\aj@NenreiSai#1{\aj@expand\@aj@NenreiSai#1\@nil} -\gdef\@aj@NenreiSai#1{\shift@CID{#1}{\ifydir10152\else10174\fi}\@aj@NenreiSai@} -\gdef\@aj@NenreiSai@#1{\ifx\@nil#1\CID{\ifydir10173\else10207\fi}% - \else\shift@CID{#1}{\ifydir247\else10185\fi}% +\gdef\@aj@NenreiSai#1{\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 10152\else10174\fi}\@aj@NenreiSai@} +\gdef\@aj@NenreiSai@#1{\ifx\@nil#1\CID{\unless\ifnum\ltjgetparameter{direction}=3 10173\else10207\fi}% + \else\shift@CID{#1}{\unless\ifnum\ltjgetparameter{direction}=3 247\else10185\fi}% \expandafter\@aj@NenreiSai@\fi} \gdef\aj@Nenrei@Tu#1{\ifnum#1<10 \shift@CID{#1}{10174}\CID{10206}% \else\expandafter\@aj@Nenrei@Tu\number#1% @@ -327,7 +327,7 @@ % \def\@aj半角def#1{\ifx\@nil#1\else \expandafter\xdef\csname aj半角@#1\endcsname{\noexpand\CID - {\noexpand\ifydir\number\@tempcnta\noexpand\else\number\@tempcntb\noexpand\fi}}% + {\noexpand\unless\noexpand\ifnum\noexpand\ltjgetparameter\noexpand{direction\noexpand}=3 \number\@tempcnta\noexpand\else\number\@tempcntb\noexpand\fi}}% \advance\@tempcnta\@ne\advance\@tempcntb\@ne \expandafter\@aj半角def\fi} \@tempcnta326 @@ -347,7 +347,7 @@ \@ajligdef{#1}{\number\@tempcnta}\advance\@tempcnta\@ne \expandafter\@ajligaturedef\fi} \def\@aj@ligdef#1#2#3{\expandafter\xdef\csname ajLig\@ajmojifam#1\endcsname - {\noexpand\CID{\noexpand\ifydir#2\noexpand\else#3\noexpand\fi}}} + {\noexpand\CID{\noexpand\unless\noexpand\ifnum\noexpand\ltjgetparameter\noexpand{direction\noexpand}=3 #2\noexpand\else#3\noexpand\fi}}} \def\@aj@ligaturedef#1{\ifx\@nil#1\else \@aj@ligdef{#1}{\number\@tempcnta}{\number\@tempcntb}% \advance\@tempcnta\@ne\advance\@tempcntb\@ne @@ -506,10 +506,10 @@ \def\@ajkanadef#1#2#3#4#5#6#7{\expandafter\gdef\csname ajLig#1\endcsname {\if@kana\def\reserved@a{ruby}% \ifx\k@family\reserved@a - \ifydir\CID{#6}\else\CID{#7}\fi - \else\ifydir\CID{#4}\else\CID{#5}\fi + \unless\ifnum\ltjgetparameter{direction}=3 \CID{#6}\else\CID{#7}\fi + \else\unless\ifnum\ltjgetparameter{direction}=3 \CID{#4}\else\CID{#5}\fi \fi - \else\ifydir\CID{#2}\else\CID{#3}\fi + \else\unless\ifnum\ltjgetparameter{direction}=3 \CID{#2}\else\CID{#3}\fi \fi}} \newcount\@tempcntc \newcount\@tempcntd @@ -793,7 +793,7 @@ % \gdef\ajLeader{\@ifnextchar[{\aj@Leader}{\aj@Leader[\z@ plus1fill]}} \gdef\aj@Leader[#1]#2{{\@tempcnta#2\multiply\@tempcnta\tw@ - \advance\@tempcnta1221\ifhmode\ifydir4\else5\fi\else\ifydir5\else4\fi\fi + \advance\@tempcnta1221\ifhmode\unless\ifnum\ltjgetparameter{direction}=3 4\else5\fi\else\unless\ifnum\ltjgetparameter{direction}=3 5\else4\fi\fi \leaders\hbox{\CID{\@tempcnta}}\ifhmode\hskip\else\vskip\fi#1}} % % @@ -827,9 +827,9 @@ * * * * \def\@removetop#1{\toks#1\expandafter\expandafter\expandafter{\expandafter\@gobble\the\toks#1}} \@removetop0\@removetop1\@removetop2\@removetop3 -\xdef\ajQuote#1#2{\noexpand\CID{\noexpand\ifydir\noexpand\ifcase#1 \the\toks0 +\xdef\ajQuote#1#2{\noexpand\CID{\noexpand\unless\noexpand\ifnum\noexpand\ltjgetparameter\noexpand{direction\noexpand}=3 \noexpand\ifcase#1 \the\toks0 \noexpand\fi\noexpand\else\noexpand\ifcase#1 \the\toks2 - \noexpand\fi\noexpand\fi}#2\inhibitglue\noexpand\CID{\noexpand\ifydir\noexpand\ifcase#1 \the\toks1 + \noexpand\fi\noexpand\fi}#2\inhibitglue\noexpand\CID{\noexpand\unless\noexpand\ifnum\noexpand\ltjgetparameter\noexpand{direction\noexpand}=3 \noexpand\ifcase#1 \the\toks1 \noexpand\fi\noexpand\else\noexpand\ifcase#1 \the\toks3 \noexpand\fi\noexpand\fi}} } diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-23.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-23.sty deleted file mode 100644 index 993cbf4670f..00000000000 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-23.sty +++ /dev/null @@ -1,334 +0,0 @@ -% -% luatexja-fontspec-23.sty -% -% This package is compatible with fontspec <=2.3, -% will be removed in a future version. -% - - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-23}[2014/06/19 fontspec support of LuaTeX-ja] -\RequirePackage{l3keys2e,luatexja} -\ExplSyntaxOn - -%%%%%%%% Change Japanese font family by \rmfamily or not -\bool_if:NTF \ltj_fontspec_match -{ - \renewcommand\jttdefault{\gtdefault} - \DeclareRobustCommand\rmfamily - {\not@math@alphabet\rmfamily\mathrm - \romanfamily\rmdefault\kanjifamily\mcdefault\selectfont} - \DeclareRobustCommand\sffamily - {\not@math@alphabet\sffamily\mathsf - \romanfamily\sfdefault\kanjifamily\gtdefault\selectfont} - \DeclareRobustCommand\ttfamily - {\not@math@alphabet\ttfamily\mathtt - \romanfamily\ttdefault\kanjifamily\jttdefault\selectfont} - \DeclareDocumentCommand \setmonojfont { O{} m } { - \__ltj_fontspec_set_family:Nnn \jttdefault {#1}{#2} - \normalfont - } -}{ -} - -%%%%%%%% Messages - -\msg_new:nnn {luatexja-fontspec} {addjfontfeatures-ignored} -{ - \string\addjfontfeature (s)~ ignored;\\ - it~ cannot~ be~ used~ with~ a~ font~ that~ wasn't~ selected~ by~ luatexja-fontspec. -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-norange} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (no~ range~ is~ specified). -} - -\msg_new:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} -{ - ignored~ sublist~ `#1'~ in~ AltFont~ (only~ range~ is~ specified). -} - -\cs_generate_variant:Nn \prg_new_conditional:Nnn {Nnx} - -%%%%%%%% \g_ltj_fontspec_scale_fp -%% Default scale value for jfont. -\fp_new:N \g_ltj_fontspec_scale_fp -\group_begin: -\fontsize{10}{10}\selectfont -\fp_gset:Nn \g_ltj_fontspec_scale_fp {\zw / 10} -\group_end: - -%%%%%%%% Internal control sequences -%% Each CS is ltj_fontspec version that corresponds to original CS of fontspec. -\cs_new:Nn \ltj_fontspec_define_option:nn { - \keys_define:nn {fontspec} { #1 .code:n = {#2}} -} - -\cs_new:Nn \ltj_fontspec_define_preparse_external:nn { - \keys_define:nn {fontspec-preparse-external} { #1 .code:n = {#2}} -} - -\cs_new:Nn \ltj_fontspec_define_altfont_option:nn { - \keys_define:nn {fontspec-ltjaltfont} { #1 .code:n = {#2}} -} - -%% Alternate Fonts -%% Spec: AltFont = { -%% ... -%% { Range = <range>, <font features> }, -%% { Range = <range>, Font = <font name>, <font features> }, -%% { Range = <range>, Font = <font name> }, -%% ... -%% } -\tl_new:N \l_ltj_fontspec_altname_tl -\tl_new:N \l_ltj_fontspec_altrange_tl -\clist_new:N \l_ltj_fontspec_altfont_clist -\clist_new:N \l_ltj_fontspec_altfont_leftover_clist -\int_new:N \g_ltj_fontspec_altnumber_int - -\ltj_fontspec_define_altfont_option:nn {Range} { - \tl_set:Nn \l_ltj_fontspec_altrange_tl {#1} -} -\ltj_fontspec_define_altfont_option:nn {Font} { - \fontspec_complete_fontname:Nn \l_ltj_fontspec_altname_tl {#1} -} - -\cs_new:Nn \__ltj_fontspec_altfont_key_code:n - { - \clist_set:Nn \l_ltj_fontspec_altfont_clist {#1} - \fontspec_update_fontid:n {alt:#1} - } - -\cs_new:Nn \ltj_fontspec_select:nn { - \group_begin: - \ltj_fontspec_define_option:nn {AltFont} { - \__ltj_fontspec_altfont_key_code:n { ##1 } - } - \ltj_fontspec_define_option:nn {CID} { - \fontspec_update_fontid:n {+cid=##1} - \fontspec_update_featstr:n {cid=##1} - } - \ltj_fontspec_define_option:nn {JFM} { - \fontspec_update_fontid:n {+jfm=##1} - \fontspec_update_featstr:n {jfm=##1} - } - \ltj_fontspec_define_option:nn {JFM-var} { - \fontspec_update_fontid:n {+jfmvar=##1} - \fontspec_update_featstr:n {jfmvar=##1} - } - \ltj_fontspec_define_preparse_external:nn {NoEmbed} { - \cs_set:Nn \fontspec_namewrap:n {psft:####1} - } - %% Omit the warning message - %% "OpenType feature 'Kerning=Off' (-kern) not available ..." - \ltj_fontspec_define_option:nn {Kerning/Off} { - \fontspec_update_fontid:n {-kern} - \fontspec_update_featstr:n {-kern} - } - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - \tl_set:Nx \g_fontspec_default_fontopts_tl - {JFM=ujis, Scale=\fp_use:N \g_ltj_fontspec_scale_fp, - Kerning=Off, \g_ltj_fontspec_default_fontopts_tl} - \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop - \cs_set_eq:NN \fontspec_make_font_shapes:nnnn \ltj_fontspec_make_font_shapes:nnnn - \cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily - \fontspec_select:nn{#1}{#2} - \group_end: -} - -\cs_new:Nn \__ltj_fontspec_set_family:Nnn { - \ltj_fontspec_select:nn{#2}{#3} - \tl_set_eq:NN #1 \l_fontspec_family_tl -} -\cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:nnnn \fontspec_make_font_shapes:nnnn -\cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape -\cs_new:Nn \ltj_fontspec_make_font_shapes:nnnn { - \__ltj_orig_fontspec_make_font_shapes:nnnn {#1} {#2} {#3} {#4} - \group_begin: - %% Parse font features. However, we have to avoid redefine already defined shape. - \__fontspec_load_fontname:n {#1} - \cs_set_eq:NN \DeclareFontShape \use_none:nnnnnn - \fontspec_declare_shape:nnn {#2}{#3} - { \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} #4 } - \cs_set_eq:NN \DeclareFontShape \__ltj_fontspec_orig_DeclareFontShape - %% - \clist_if_empty:NF \l_ltj_fontspec_altfont_clist { - \int_gzero:N \g_ltj_fontspec_altnumber_int - \clist_map_inline:Nn \l_ltj_fontspec_altfont_clist { - \tl_clear:N \l_ltj_fontspec_altrange_tl - \tl_set:Nn \l_ltj_fontspec_altname_tl { #1 } - \tl_set:Nn \l_tmpa_tl { #1 } - - \keys_set_known:nxN {fontspec-ltjaltfont} { \exp_after:wN \use:n ##1 } - \l_ltj_fontspec_altfont_leftover_clist - - \tl_if_empty:NT \l_ltj_fontspec_altrange_tl { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-norange} { ##1 } - } { - \bool_if:nTF { - \tl_if_eq_p:NN \l_ltj_fontspec_altname_tl \l_tmpa_tl - && - \tl_if_empty_p:N \l_ltj_fontspec_altfont_leftover_clist - } { - \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} { ##1 } - } { - \group_begin: - \__fontspec_load_fontname:n { \l_ltj_fontspec_altname_tl } - \fontspec_declare_shape:nnn {#2} - {#3 _ alt \int_use:N \g_ltj_fontspec_altnumber_int } - { - \quark_if_no_value:NF \l__fontspec_fontopts_clist {\l__fontspec_fontopts_clist,} - #4 , \l_ltj_fontspec_altfont_leftover_clist - } - \group_end: - \DeclareAlternateKanjiFont - {JY3}{ \l_fontspec_family_tl }{#2}{#3}% - {JY3}{ \l_fontspec_family_tl }{#2} - { #3 _alt \int_use:N \g_ltj_fontspec_altnumber_int } - { \l_ltj_fontspec_altrange_tl } - \int_gincr:N \g_ltj_fontspec_altnumber_int - } - } - } - } - \group_end: - } - -%%%%%%%% User commands -\DeclareDocumentCommand \jfontspec { O{} m } { - \__ltj_fontspec_set_family:Nnn \k@family {#1}{#2} - \selectfont - \ignorespaces -} - -\DeclareDocumentCommand \setmainjfont { O{} m } { - \__ltj_fontspec_set_family:Nnn \mcdefault {#1}{#2} - \DeclareSymbolFont{mincho}{JY3}{\l_fontspec_family_tl}{m}{n} - \SetSymbolFont{mincho}{bold}{JY3}{\l_fontspec_family_tl}{bx}{n} - \normalfont -} - -\DeclareDocumentCommand \setsansjfont { O{} m } { - \__ltj_fontspec_set_family:Nnn \gtdefault {#1}{#2} - \DeclareMathAlphabet{\mathgt}{JY3}{\l_fontspec_family_tl}{m}{n} - \normalfont -} - -\DeclareDocumentCommand \newjfontfamily { m O{} m } { - \ltj_fontspec_select:nn{#2}{#3} - \use:x { - \exp_not:N \DeclareRobustCommand \exp_not:N #1 { - \exp_not:N \kanjifamily {\l_fontspec_family_tl} \exp_not:N \selectfont - } - } -} - -\DeclareDocumentCommand \newjfontface { m O{} m } { - \newjfontfamily #1 [ BoldFont={},ItalicFont={},SmallCapsFont={},#2 ] {#3} -} - -\tl_new:N \g_ltj_fontspec_default_fontopts_tl -\prop_new:N \g__ltj_fontspec_fontopts_prop -\DeclareDocumentCommand \defaultjfontfeatures { o m } - { - \IfNoValueTF {#1} - { \__ltj_fontspec_set_default_features:n {#2} } - { \__ltj_fontspec_set_font_default_features:nn {#1} {#2} } - } -\cs_new:Nn \__ltj_fontspec_set_default_features:n - { - \tl_set:Nn \g_ltj_fontspec_default_fontopts_tl {#1,} - } -\cs_new:Nn \__ltj_fontspec_set_font_default_features:nn - { - \__fontspec_sanitise_fontname:Nn \l__fontspec_tmp_tl {#1} - \tl_if_empty:nTF {#2} - { \prop_gremove:NV \g__ltj_fontspec_fontopts_prop \l__fontspec_tmp_tl } - { \prop_gput:NVn \g__ltj_fontspec_fontopts_prop \l__fontspec_tmp_tl {#2} } - } - -\DeclareDocumentCommand \addjfontfeatures {m} { - \ifcsname zf@family@fontdef\k@family\endcsname - \group_begin: - \tl_clear:N \g_ltj_fontspec_default_fontopts_tl - \use:x { - \exp_not:N\ltj_fontspec_select:nn - {\csname zf@family@options\k@family\endcsname,#1} - {\csname zf@family@fontname\k@family\endcsname} - } - \group_end: - \fontfamily\l_fontspec_family_tl\selectfont - \else - \msg_warning:nn {luatexja-fontspec} {addjfontfeatures-ignored} - \fi - \ignorespaces -} - -\cs_set_eq:NN \addjfontfeature \addjfontfeatures - -%%% CJKShape=JIS2004 -\fontspec_define_feature_option:nnnnn{CJKShape}{JIS2004}{20}{5}{+jp04} - -\ExplSyntaxOff -%%%%%%%% Now we completely ignore kanjifont definition file. - -\DeclareRobustCommand\fontfamily[1]{% - \@notkfamfalse\@notffamfalse - \edef\tmp@item{'\luatexluaescapestring{#1}'}% - \edef\tmp@enc{'\luatexluaescapestring{\f@encoding}'}% - \ifcsname \k@encoding+#1\endcsname % if \k@encoding+#1 is already defined - \edef\k@family{#1}% - \else\@notkfamtrue\fi - \ifcsname \f@encoding+#1\endcsname - \edef\f@family{#1}% - \else % search font definition file... - \directlua{luatexja.jfont.is_ffam(\tmp@enc, \tmp@item)}% - \ifin@\edef\k@family{#1}\else% - \directlua{luatexja.jfont.is_Nffam(\tmp@enc, \tmp@item)}% - \ifin@\@notffamtrue\else% - % filename of font definition file is always lowercase - \edef\@temp{\lowercase{\noexpand\IfFileExists{\f@encoding#1.fd}}}% - \message{(I search font definition file)}% - \@temp{\@tempswztrue}{\@tempswzfalse}% - \if@tempswz - \directlua{luatexja.jfont.add_ffam_list(\tmp@enc, \tmp@item)}% - \edef\f@family{#1}% - \else - \directlua{luatexja.jfont.add_Nffam_list(\tmp@enc, \tmp@item)}% - \@notffamtrue% - \fi - \fi - \fi - \fi - \if@notkfam\if@notffam - {\ifcsname D@\k@encoding\endcsname\@nameuse{D@\k@encoding}\fi - \xdef\@@temp{\default@family}}\edef\k@family{\@@temp}% - {\ifcsname D@\f@encoding\endcsname\@nameuse{D@\f@encoding}\fi - \xdef\@@temp{\default@family}}\edef\f@family{\@@temp}% - \fi\fi -} - -% We must redefine \try@load@fontshape to ignore kanjifont definitions at all. -\def\try@load@fontshape{% - \expandafter - \ifx\csname \f@encoding+\f@family\endcsname\relax - \directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% -\ifin@ % Japanese font: we don't search fd. - \@font@warning{We don't search kanjifont definition - \MessageBreak for \f@encoding/\f@family}% -\else % Alphabetic font - \@font@info{Try loading font information for \f@encoding+\f@family}% - \global\expandafter\let - \csname\f@encoding+\f@family\endcsname\@empty - \nfss@catcodes - \let\nfss@catcodes\relax - \edef\reserved@a{% - \lowercase{% - \noexpand\InputIfFileExists{\f@encoding\f@family.fd}}}% - \reserved@a\relax - {\@input@{\f@encoding\f@family.fd}}% -\fi - \fi} - -\endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty index f4438544b0c..14f3e3b6172 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec-24}[2014/12/03 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec-24}[2015/01/15 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e,luatexja} \ExplSyntaxOn @@ -62,7 +62,6 @@ \cs_new:Nn \ltj_fontspec_define_preparse_external:nn { \__fontspec_keys_define_code:nnn {fontspec-preparse-external} {#1} {#2} } - \cs_new:Nn \ltj_fontspec_define_altfont_option:nn { \__fontspec_keys_define_code:nnn {fontspec-ltjaltfont} {#1} {#2} } @@ -87,17 +86,35 @@ \ltj_fontspec_define_altfont_option:nn {Font} { \fontspec_complete_fontname:Nn \l_ltj_fontspec_altname_tl {#1} } - -\cs_new:Nn \__ltj_fontspec_altfont_key_code:n -{ - \clist_set:Nn \l_ltj_fontspec_altfont_clist {#1} +\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {AltFont} { + \clist_put_right:Nn \l_ltj_fontspec_altfont_clist { #1 } +} +\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {YokoFeatures} { + \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { #1 } +} +\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFeatures} { + \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { #1 } +} +\__fontspec_keys_define_code:nnn {fontspec-ltjaltfont-reparse} {TateFont} { + \tl_if_empty:nF {#1} { + \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {#1} + } +} +%% +\clist_new:N \l_ltj_fontspec_fontfeat_yoko_clist +\clist_new:N \l_ltj_fontspec_fontfeat_tate_clist +\tl_new:N \l_ltj_fontspec_fontname_tate_tl + +\cs_new:Npn \ltj_fontspec_DeclareFontFamily #1 #2 #3 { + \DeclareKanjiFamily {JY3} {#2} {#3} + \DeclareKanjiFamily {JT3} {#2} {#3} } \cs_set_eq:NN \__ltj_orig_fontspec_select:nn \fontspec_select:nn \cs_new:Nn \ltj_fontspec_select:nn { \group_begin: \ltj_fontspec_define_option:nn {AltFont} { - \__ltj_fontspec_altfont_key_code:n { ##1 } + \clist_put_right:Nn \l_ltj_fontspec_altfont_clist {##1} } \ltj_fontspec_define_option:nn {CID} { \__fontspec_update_featstr:n {cid=##1} @@ -105,7 +122,19 @@ \ltj_fontspec_define_option:nn {JFM} { \__fontspec_update_featstr:n {jfm=##1} } - + % vary by shape + \ltj_fontspec_define_option:nn {YokoFeatures} { + \clist_put_right:Nn \l_ltj_fontspec_fontfeat_yoko_clist { ##1 } + } + \ltj_fontspec_define_option:nn {TateFeatures} { + \clist_put_right:Nn \l_ltj_fontspec_fontfeat_tate_clist { ##1 } + } + \ltj_fontspec_define_option:nn {TateFont} + { + \tl_if_empty:nF {##1} { + \fontspec_complete_fontname:Nn \l_ltj_fontspec_fontname_tate_tl {##1} + } + } \ltj_fontspec_define_option:nn {JFM-var} { \__fontspec_update_featstr:n {jfmvar=##1} } @@ -117,17 +146,66 @@ \ltj_fontspec_define_option:nn {Kerning/Off} { \__fontspec_update_featstr:n {-kern} } - \tl_set:Nn \g_fontspec_encoding_tl {JY3} - \clist_set:Nx \g__fontspec_default_fontopts_clist - {JFM=ujis, Scale=\fp_use:N \g_ltj_fontspec_scale_fp, - Kerning=Off, \g__ltj_fontspec_default_fontopts_clist} + \clist_set:Nx \g__fontspec_default_fontopts_clist { + YokoFeatures = { JFM=ujis }, TateFeatures = { JFM=ujisv }, + Scale=\fp_use:N \g_ltj_fontspec_scale_fp, Kerning=Off, + \g__ltj_fontspec_default_fontopts_clist + } \prop_set_eq:NN \g__fontspec_fontopts_prop \g__ltj_fontspec_fontopts_prop \cs_set_eq:NN \__fontspec_make_font_shapes:Nnnnn \ltj_fontspec_make_font_shapes:Nnnnn - \cs_set_eq:NN \DeclareFontFamily \DeclareKanjiFamily + \cs_set_eq:NN \DeclareFontFamily \ltj_fontspec_DeclareFontFamily + \tl_set:Nn \g_fontspec_encoding_tl {JY3} \__ltj_orig_fontspec_select:nn{#1}{#2} \group_end: } +%% declare_shape + +\cs_new:Nn \ltj_fontspec_declare_shape_yoko:nnnn { + \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JY3 } { \l_ltj_fontspec_fontfeat_yoko_clist } +} +\cs_new:Nn \ltj_fontspec_declare_shape_tate:nnnn { + \ltj_fontspec_declare_shape_aux:nnnnnn {#1} {#2} {#3} {#4} { JT3 } { \l_ltj_fontspec_fontfeat_tate_clist } +} +\cs_new:Nn \ltj_fontspec_declare_shape:nnnn { + \ltj_fontspec_declare_shape_yoko:nnnn {#1} {#2} {#3} {#4} + \ltj_fontspec_declare_shape_tate:nnnn {#1} {#2} {#3} {#4} +} +\cs_generate_variant:Nn \ltj_fontspec_declare_shape:nnnn {nnxx} +\cs_generate_variant:Nn \ltj_fontspec_declare_shape_yoko:nnnn {nnxx} +\cs_generate_variant:Nn \ltj_fontspec_declare_shape_tate:nnnn {nnxx} + +\cs_new:Nn \ltj_fontspec_declare_shape_aux:nnnnnn + { + \tl_clear:N \l__fontspec_nfss_tl + \tl_clear:N \l__fontspec_nfss_sc_tl + \tl_set_eq:NN \l__fontspec_saved_fontname_tl \l_fontspec_fontname_tl + + \tl_set:Nn \g_fontspec_encoding_tl {#5} + \exp_args:Nx \clist_map_inline:nn {#4} + { + \tl_clear:N \l__fontspec_size_tl + \tl_set_eq:NN \l__fontspec_sizedfont_tl \l__fontspec_saved_fontname_tl % in case not spec'ed + + \keys_set_known:nxN {fontspec-sizing} { \exp_after:wN \use:n ##1 } + \l__fontspec_sizing_leftover_clist + \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } + + \str_if_eq:nnTF { #5 } { JY3 } { + % "normal" + \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} + } { + \tl_if_empty:NTF \l_ltj_fontspec_fontname_tate_tl + { \__fontspec_load_fontname:n {\l__fontspec_sizedfont_tl} } + { \__fontspec_load_fontname:n {\l_ltj_fontspec_fontname_tate_tl} } + } + \__fontspec_setup_nfss:Nnn \l__fontspec_nfss_tl {#3} {#6} + } + \bool_set_true:N \l__fontspec_nosc_bool + \__fontspec_declare_shapes_normal:nn {#1} {#2} + \__fontspec_declare_shape_slanted:nn {#1} {#2} + } + \cs_new:Nn \ltj_fontspec_set_family:Nnn { \cs_set_eq:NN \fontspec_select:nn \ltj_fontspec_select:nn \__ltj_orig_fontspec_set_family:Nnn #1 {#2} {#3} @@ -137,14 +215,29 @@ \cs_set_eq:NN \__ltj_orig_fontspec_make_font_shapes:Nnnnn \__fontspec_make_font_shapes:Nnnnn \cs_set_eq:NN \__ltj_fontspec_orig_DeclareFontShape \DeclareFontShape \cs_new:Nn \ltj_fontspec_make_font_shapes:Nnnnn { - \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5} \group_begin: - %% Parse font features. However, we have to avoid redefine already defined shape. - \__fontspec_load_fontname:n {#1} - \cs_set_eq:NN \DeclareFontShape \use_none:nnnnnn - \__fontspec_declare_shape:nnxx {#2} {#3} { \l__fontspec_fontopts_clist, #4 } {#5} - \cs_set_eq:NN \DeclareFontShape \__ltj_fontspec_orig_DeclareFontShape + %% 基底フォント + \cs_set_eq:NN \__fontspec_font_set:Nnn \use_none:nnn + \cs_set_eq:NN \__fontspec_font_if_null:NT \use_none:nn + \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape:nnxx + \__ltj_orig_fontspec_make_font_shapes:Nnnnn {#1} {#2} {#3} {#4} {#5} %% + \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} + {#4, \l_ltj_fontspec_fontfeat_yoko_clist}{#5} {JY3 } + \ltj_fontspec_make_font_shapes_alt:Nnnnnn {#1}{#2}{#3} + {#4, \l_ltj_fontspec_fontfeat_tate_clist}{#5} {JT3} + \group_end: + } + +%%% Altfont 内部処理部 +\cs_new:Nn \ltj_fontspec_make_font_shapes_alt:Nnnnnn { + \group_begin: + \str_if_eq:nnTF { #6 } { JY3 } { + \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_yoko:nnxx + }{ + \cs_set_eq:NN \__fontspec_declare_shape:nnxx \ltj_fontspec_declare_shape_tate:nnxx + } + \keys_set_known:nn {fontspec-ltjaltfont-reparse} { #4 } \clist_if_empty:NF \l_ltj_fontspec_altfont_clist { \int_gzero:N \g_ltj_fontspec_altnumber_int \clist_map_inline:Nn \l_ltj_fontspec_altfont_clist { @@ -154,6 +247,7 @@ \keys_set_known:nxN {fontspec-ltjaltfont} { \exp_after:wN \use:n ##1 } \l_ltj_fontspec_altfont_leftover_clist + \keys_set_known:nn {fontspec-ltjaltfont-reparse} { \exp_after:wN \use:n ##1 } \tl_if_empty:NT \l_ltj_fontspec_altrange_tl { \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-norange} { ##1 } @@ -165,16 +259,14 @@ } { \msg_warning:nnn {luatexja-fontspec} {altfont-ignored-by-rangeonly} { ##1 } } { - \group_begin: - \__fontspec_load_fontname:n { \l_ltj_fontspec_altname_tl } - \__fontspec_declare_shape:nnxx {#2} + \__ltj_orig_fontspec_make_font_shapes:Nnnnn + { \l_ltj_fontspec_altname_tl } {#2} {#3 _ alt \int_use:N \g_ltj_fontspec_altnumber_int } - {\l__fontspec_fontopts_clist, #4 , \l_ltj_fontspec_altfont_leftover_clist} + {#4, \l_ltj_fontspec_altfont_leftover_clist } {#5} - \group_end: \DeclareAlternateKanjiFont - {JY3}{ \l_fontspec_family_tl }{#2}{#3}% - {JY3}{ \l_fontspec_family_tl }{#2} + { #6 }{ \l_fontspec_family_tl }{#2}{#3}% + { #6 }{ \l_fontspec_family_tl }{#2} { #3 _alt \int_use:N \g_ltj_fontspec_altnumber_int } { \l_ltj_fontspec_altrange_tl } \int_gincr:N \g_ltj_fontspec_altnumber_int @@ -183,7 +275,8 @@ } } \group_end: - } +} + %%%%%%%% User commands \DeclareDocumentCommand \jfontspec { O{} m O{} } { @@ -207,7 +300,7 @@ \DeclareDocumentCommand \newjfontfamily { m O{} m O{} } { \cs_set_eq:NN \fontspec_set_family:Nnn \ltj_fontspec_set_family:Nnn - \newfontfamily #1 [#2] {#3} [#4] + \newfontfamily #1 [#2,#4] {#3} \cs_set_eq:NN \fontspec_set_family:Nnn \__ltj_orig_fontspec_set_family:Nnn } @@ -264,67 +357,10 @@ } %%% CJKShape=JIS2004 -\__fontspec_define_feature_option:nnnnn{CJKShape}{JIS2004}{20}{5}{+jp04} - -\ExplSyntaxOff -%%%%%%%% Now we completely ignore kanjifont definition file. - -\DeclareRobustCommand\fontfamily[1]{% - \@notkfamfalse\@notffamfalse - \edef\tmp@item{'\luatexluaescapestring{#1}'}% - \edef\tmp@enc{'\luatexluaescapestring{\f@encoding}'}% - \ifcsname \k@encoding+#1\endcsname % if \k@encoding+#1 is already defined - \edef\k@family{#1}% - \else\@notkfamtrue\fi - \ifcsname \f@encoding+#1\endcsname - \edef\f@family{#1}% - \else % search font definition file... - \directlua{luatexja.jfont.is_ffam(\tmp@enc, \tmp@item)}% - \ifin@\edef\k@family{#1}\else% - \directlua{luatexja.jfont.is_Nffam(\tmp@enc, \tmp@item)}% - \ifin@\@notffamtrue\else% - % filename of font definition file is always lowercase - \edef\@temp{\lowercase{\noexpand\IfFileExists{\f@encoding#1.fd}}}% - \message{(I search font definition file)}% - \@temp{\@tempswztrue}{\@tempswzfalse}% - \if@tempswz - \directlua{luatexja.jfont.add_ffam_list(\tmp@enc, \tmp@item)}% - \edef\f@family{#1}% - \else - \directlua{luatexja.jfont.add_Nffam_list(\tmp@enc, \tmp@item)}% - \@notffamtrue% - \fi - \fi - \fi - \fi - \if@notkfam\if@notffam - {\ifcsname D@\k@encoding\endcsname\@nameuse{D@\k@encoding}\fi - \xdef\@@temp{\default@family}}\edef\k@family{\@@temp}% - {\ifcsname D@\f@encoding\endcsname\@nameuse{D@\f@encoding}\fi - \xdef\@@temp{\default@family}}\edef\f@family{\@@temp}% - \fi\fi -} - -% We must redefine \try@load@fontshape to ignore kanjifont definitions at all. -\def\try@load@fontshape{% - \expandafter - \ifx\csname \f@encoding+\f@family\endcsname\relax - \directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% -\ifin@ % Japanese font: we don't search fd. - \@font@warning{We don't search kanjifont definition - \MessageBreak for \f@encoding/\f@family}% -\else % Alphabetic font - \@font@info{Try loading font information for \f@encoding+\f@family}% - \global\expandafter\let - \csname\f@encoding+\f@family\endcsname\@empty - \nfss@catcodes - \let\nfss@catcodes\relax - \edef\reserved@a{% - \lowercase{% - \noexpand\InputIfFileExists{\f@encoding\f@family.fd}}}% - \reserved@a\relax - {\@input@{\f@encoding\f@family.fd}}% -\fi - \fi} +\__fontspec_define_feature_option:nnnnn{CJKShape}{JIS2004}{20}{100}{+jp04} +%%% CharacterWidth={VerticalAlternateProportional, VerticalAlternateHalf} +\__fontspec_define_feature_option:nnnnn{CharacterWidth}{VerticalAlternateProportional}{22}{100}{+vpal} +\__fontspec_define_feature_option:nnnnn{CharacterWidth}{VerticalAlternateHalf}{22}{101}{+vhal} +\__fontspec_define_feature_option:nnnnn{Kerning}{Vertical} {}{}{+vkrn} \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty index 6287324f5e0..695ff385c66 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{luatexja-fontspec}[2014/12/03 fontspec support of LuaTeX-ja] +\ProvidesPackage{luatexja-fontspec}[2015/01/15 fontspec support of LuaTeX-ja] \RequirePackage{l3keys2e,luatexja} \ExplSyntaxOn @@ -16,11 +16,30 @@ pass .code:n = \cs_set:Nn \ltj_fontspec_pass_opts: {#1},% 互換性 } \ProcessKeysOptions { luatexja-fontspec } -\RequirePackage[\ltj_fontspec_pass_opts:]{fontspec}[2014/06/01] -%\cs_if_exist:NTF \fontspec_update_featstr:n { -% \RequirePackage{luatexja-fontspec-23} -%} { - \RequirePackage{luatexja-fontspec-24} -%} +\RequirePackage[\ltj_fontspec_pass_opts:]{fontspec}[2014/06/01]% v2.4 +\RequirePackage{luatexja-fontspec-24} + +\ExplSyntaxOff +%%%%%%%% Now we completely ignore kanjifont definition file. +\@ltj@use@fdfalse + +% We must redefine \try@load@fontshape to ignore kanjifont definitions at all. +\def\try@load@fontshape{% + \expandafter + \ifx\csname \f@encoding+\f@family\endcsname\relax + \directlua{luatexja.jfont.is_kenc('\luatexluaescapestring{\f@encoding}')}% +\ifin@\else % Alphabetic font + \@font@info{Try loading font information for \f@encoding+\f@family}% + \global\expandafter\let + \csname\f@encoding+\f@family\endcsname\@empty + \nfss@catcodes + \let\nfss@catcodes\relax + \edef\reserved@a{% + \lowercase{% + \noexpand\InputIfFileExists{\f@encoding\f@family.fd}}}% + \reserved@a\relax + {\@input@{\f@encoding\f@family.fd}}% +\fi + \fi} \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty index 680f689919c..c23fb3fb4cb 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty @@ -1,11 +1,15 @@ % luatexja-preset.sty -\ProvidesPackage{luatexja-preset}[2014/12/03 Japanese font presets] +\ProvidesPackage{luatexja-preset}[2015/04/05 Japanese font presets] \RequirePackage{expl3} -\RequirePackage{luatexja-fontspec} +\RequirePackage{luatexja} \ExplSyntaxOn %%%% message +\bool_new:N \l_ltjpreset_nfssonly_bool % nfssonly +\bool_set_false:N \l_ltjpreset_nfssonly_bool +\DeclareOption{nfssonly} {\bool_set_true:N \l_ltjpreset_nfssonly_bool} +\DeclareOption{fontspec} {\bool_set_false:N \l_ltjpreset_nfssonly_bool} \bool_new:N \l_ltjpreset_bold_bool % bold \bool_set_false:N \l_ltjpreset_bold_bool @@ -17,17 +21,11 @@ \DeclareOption{expert} {\bool_set_true:N \l_ltjpreset_expert_bool} \DeclareOption{noexpert}{\bool_set_false:N \l_ltjpreset_expert_bool} -\int_new:N \l_ltjpreset_deluxe_int % expert +\int_new:N \l_ltjpreset_deluxe_int % deluxe \int_set:Nn \l_ltjpreset_deluxe_int { 0 } \DeclareOption{deluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 2 }} % 6 fonts \DeclareOption{nodeluxe}{\int_set:Nn \l_ltjpreset_deluxe_int { 0 }} % 2 fonts -% scale -\msg_new:nnn { luatexja-preset }{ scale }{ - Japanese~fonts~will~be~scaled~by~\fp_use:N \g_ltj_fontspec_scale_fp. -} -\msg_warning:nn { luatexja-preset }{ scale } - % JFM \cs_set:Npn \ltjpreset_use_jfm: {ujis} % 使用する JFM %%% \DeclareOption{min}{\cs_set:Npn \ltjpreset_use_jfm: {min}} % min @@ -46,7 +44,7 @@ \clist_new:N \l_ltjpreset_font_list \cs_new:Npn \ltjpreset_set_uni:nn #1#2 { - \ltjpreset_set_multi:n { #1, #1, #2, #2, #2, #2, #1 } + \ltjpreset_set_multi:n { #1, #2, #2, #2, #2, #2, #2 } } \cs_new:Npn \ltjpreset_set_multi:n #1 { \clist_set:Nn \l_ltjpreset_font_list { #1 } @@ -105,24 +103,24 @@ % ヒラギノ (OSX) \DeclareOption{hiragino-pro}{ \ltjpreset_set_multi:n { - Hiragino~Mincho~Pro~W3 , - Hiragino~Mincho~Pro~W6 , - Hiragino~Kaku~Gothic~Pro~W3 , % gt/m (multi) - Hiragino~Kaku~Gothic~Pro~W6 , - Hiragino~Kaku~Gothic~Pro~W6 , % gt/m (uni) - Hiragino~Kaku~Gothic~Std~W8 , - Hiragino~Maru~Gothic~Pro~W4 , + HiraMinPro-W3 , + HiraMinPro-W6 , + HiraKakuPro-W3 , % gt/m (multi) + HiraKakuPro-W6 , + HiraKakuPro-W6 , % gt/m (uni) + HiraKakuStd-W8 , + HiraMaruPro-W4 , } } \DeclareOption{hiragino-pron}{ \ltjpreset_set_multi:n { - Hiragino~Mincho~ProN~W3 , - Hiragino~Mincho~ProN~W6 , - Hiragino~Kaku~Gothic~ProN~W3 , % gt/m (multi) - Hiragino~Kaku~Gothic~ProN~W6 , - Hiragino~Kaku~Gothic~ProN~W6 , % gt/m (uni) - Hiragino~Kaku~Gothic~StdN~W8 , - Hiragino~Maru~Gothic~ProN~W4 , + HiraMinProN-W3 , + HiraMinProN-W6 , + HiraKakuProN-W3 , % gt/m (multi) + HiraKakuProN-W6 , + HiraKakuProN-W6 , % gt/m (uni) + HiraKakuStdN-W8 , + HiraMaruProN-W4 , } } @@ -161,10 +159,21 @@ YuMincho~Medium , YuMincho~Demibold , % mc/m, mc/bx YuGothic~Medium , YuGothic~Bold , % gt/m, gt/bx (multiweight)) YuGothic~Bold , YuGothic~Bold , % gt/m (uni), gt/eb - YuGothic~Bold % mg/m + YuGothic~Bold % mg/m } } +% moga-mobo +\DeclareOption{moga-mobo}{ + \ltjpreset_set_multi:n { + Moga90Mincho, Moga90Mincho~Bold , % mc/m, mc/bx + Moga90Gothic, Moga90Gothic~Bold , % gt/m, gt/bx (multiweight)) + Moga90Gothic~Bold, Moga90Gothic~Bold, % gt/m (uni), gt/eb + Mobo90Gothic % mg/m + } +} + + % ipa, ipaex, ms \DeclareOption{ipa}{ \ltjpreset_set_uni:nn { IPAMincho } { IPAGothic } @@ -205,23 +214,30 @@ } \ProcessOptions* -%% KozMinPr6N の場合はjp04 feature がないので,nlck にする -\clist_if_in:NnT \l_ltjpreset_font_list { KozMinPr6N-Regular } { - \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } - \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { - \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=NLC } - } -} +%%%%%%%% main routine -%% HiraMinProN の場合はjp04 feature がない??ので,nlck にする -\clist_if_in:NnT \l_ltjpreset_font_list { Hiragino~Mincho~ProN~W3 } { - \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } - \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { - \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=NLC } - } +\msg_new:nnn { luatexja-preset }{ ltj-fontspec }{ + The~ luatexja-fontspec~ package~ is~ loaded~ already.~ + Hence~ we~ ignore~ `nfssonly'~option. +} +\@ifpackageloaded{luatexja-fontspec}{ + \bool_if:NT \l_ltjpreset_nfssonly_bool + { \msg_warning:nn { luatexja-preset }{ ltj-fontspec } } + \bool_set_false:N \l_ltjpreset_nfssonly_bool +}{} + +\bool_new:N \l_ltjpreset_shape_nlck_bool +%% KozMinPr6N, HiraMinProN-W3 の場合はjp04 feature がないので,nlck にする +\tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } +\tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { + \clist_if_in:NnT \l_ltjpreset_font_list { KozMinPr6N-Regular } + { \bool_set_true:N \l_ltjpreset_shape_nlck_bool } + \clist_if_in:NnT \l_ltjpreset_font_list { HiraMinProN-W3 } + { \bool_set_true:N \l_ltjpreset_shape_nlck_bool } + \clist_if_in:NnT \l_ltjpreset_font_list { Moga90Mincho } + { \tl_remove_all:Nn \l_ltjpreset_font_list {90} }%%% これでいいのか? + } - -%%%%%%%% main routine %%%% リストからの展開 % mc/m @@ -272,17 +288,137 @@ } } +%% 90JIS/JIS2004 字形指定のオプション +\bool_if:NTF \l_ltjpreset_nfssonly_bool { + \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS1990 } + \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { + \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp90 } + } + \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } + \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { + \bool_if:NTF \l_ltjpreset_shape_nlck_bool + { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +nlck } } + { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { +jp04 } } + } +} { + \tl_set:Nn \l_tmpa_tl {, CJKShape=JIS2004 } + \tl_if_eq:NNT \l_ltjpreset_kanji_shape_tl \l_tmpa_tl { + \bool_if:NT \l_ltjpreset_shape_nlck_bool + { \tl_set:Nn \l_ltjpreset_kanji_shape_tl { , CJKShape=NLC } } + } +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%% nfss only +\bool_if:NTF \l_ltjpreset_nfssonly_bool { + +\fp_new:N \l_ltjpreset_scale_fp +\group_begin: +\fontsize{10}{10}\selectfont +\fp_gset:Nn \l_ltjpreset_scale_fp {\zw / 10} +\group_end: +\msg_new:nnn { luatexja-preset }{ scale }{ + Japanese~fonts~will~be~scaled~by~\fp_use:N \l_ltjpreset_scale_fp. +} +\msg_warning:nn { luatexja-preset }{ scale } + +\cs_new:Nn \ltj_preset_define_family:nnn { + \DeclareFontShape{JY3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] + {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" + : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl + ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+hkna }} + } {} + \DeclareFontShape{JT3}{#1}{#2}{n}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] + {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" + : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl + ; script=latn \bool_if:NT \l_ltjpreset_expert_bool { ;+vkna }} + } {} + \bool_if:NT \l_ltjpreset_expert_bool { + \DeclareFontShape{JY3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] + {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" + : jfm=\ltjpreset_use_jfm: ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby + ; script=kana} + } {} + \DeclareFontShape{JT3}{#1}{#2}{rb}{ <-> s*[\fp_use:N \l_ltjpreset_scale_fp] + {\bool_if:NT \l_ltjpreset_noembed_bool {psft:} "#3" + : jfm=ujisv ;-kern;\tl_use:N \l_ltjpreset_kanji_shape_tl ;+ruby + ; script=kana} + } {} + } +} + +\DeclareKanjiFamily{JY3}{ltjpm}{}\DeclareKanjiFamily{JT3}{ltjpm}{} +\DeclareKanjiFamily{JY3}{ltjpg}{}\DeclareKanjiFamily{JT3}{ltjpg}{} + +\int_compare:nTF { \l_ltjpreset_deluxe_int == 2 } { + \bool_if:NT \l_ltjpreset_bold_bool { + \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_bx: + } +}{ + \bool_if:NTF \l_ltjpreset_bold_bool { + \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_bx: + }{ + \cs_set_eq:NN \ltjpreset_font_gt_m: \ltjpreset_font_gt_n_uni: + } + \cs_set_eq:NN \ltjpreset_font_gt_bx: \ltjpreset_font_gt_m: + \cs_set_eq:NN \ltjpreset_font_mc_bx: \ltjpreset_font_gt_m: +} + +\ltj_preset_define_family:nnn {ltjpm} {m} {\ltjpreset_font_mc_m:} +\ltj_preset_define_family:nnn {ltjpm} {bx} {\ltjpreset_font_mc_bx:} +\ltj_preset_define_family:nnn {ltjpg} {m} {\ltjpreset_font_gt_m:} +\ltj_preset_define_family:nnn {ltjpg} {bx} {\ltjpreset_font_gt_bx:} + +\def\mcdefault{ltjpm}\def\gtdefault{ltjpg} +\normalfont + +\SetSymbolFont{mincho}{normal}{JY3}{ltjpm}{m}{n} +\SetSymbolFont{mincho}{bold}{JY3}{ltjpm}{bx}{n} +\DeclareMathAlphabet{\mathgt}{JY3}{ltjpg}{m}{n} + +\bool_if:NT \l_ltjpreset_expert_bool { + \DeclareRobustCommand\rubyfamily { \kanjishape{rb}\selectfont } +} + +\int_compare:nTF { \l_ltjpreset_deluxe_int == 2 } { + \DeclareKanjiFamily{JY3}{ltjpmg}{}\DeclareKanjiFamily{JT3}{ltjpmg}{} + \ltj_preset_define_family:nnn {ltjpmg} {m} {\ltjpreset_font_mg:} + \ltj_preset_define_family:nnn {ltjpg} {eb} {\ltjpreset_font_gt_eb:} + \def\ebdefault{eb} + \DeclareRobustCommand\ebseries { \not@math@alphabet\ebseries\relaxfontseries\ebdefault\selectfont } + \DeclareRobustCommand\gtebfamily { \kanjifamily{ltjpg}\fontseries{eb}\selectfont } + \DeclareTextFontCommand{\textgteb}{\gtebfamily} + \DeclareRobustCommand\mgfamily { \not@math@alphabet\mgfamily\relax\kanjifamily{ltjpmg}\selectfont } + \DeclareTextFontCommand{\textmg}{\mgfamily} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%% fontspec +} { + +\RequirePackage{luatexja-fontspec} +% scale +\msg_new:nnn { luatexja-preset }{ scale }{ + Japanese~fonts~will~be~scaled~by~\fp_use:N \g_ltj_fontspec_scale_fp. +} +\msg_warning:nn { luatexja-preset }{ scale } + % expert 用設定 \tl_new:N \l_ltjpreset_add_features_tl \tl_set:Nx \l_ltjpreset_add_features_tl { - \tl_use:N \l_ltjpreset_kanji_shape_tl, - JFM = \ltjpreset_use_jfm: + \tl_use:N \l_ltjpreset_kanji_shape_tl, + YokoFeatures = { JFM = \ltjpreset_use_jfm: }, } \bool_if:NT \l_ltjpreset_expert_bool { - \cs_set:Npn \rubyfamily { \addfontfeatures { Style = Ruby} } - \tl_put_left:Nn \l_ltjpreset_add_features_tl { Style = HorizontalKana, } + \cs_set:Npn \rubyfamily { \addjfontfeatures { + Style=Ruby , YokoFeatures={RawFeature=-hkna} , TateFeatures={RawFeature=-vkna} + } } + \tl_put_left:Nn \l_ltjpreset_add_features_tl { + YokoFeatures = {Style = HorizontalKana}, + TateFeatures = {Style = VerticalKana}, + } } % (丸)ゴシック体の設定: bold option もここで @@ -290,8 +426,7 @@ %% mg \newjfontfamily \mgfamily [ BoldFont = \ltjpreset_font_mg:, - \tl_use:N \l_ltjpreset_add_features_tl - \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, + \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed, } \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_mg: } \DeclareTextFontCommand{\textmg}{\mgfamily} @@ -299,9 +434,8 @@ %% 注意: ファミリは 'gteb'.シリーズは \mdseries のまま. %% \bfseries を追加したほうが良い? \newjfontfamily \gtebfamily [ - BoldFont = \ltjpreset_font_gt_eb:, - \tl_use:N \l_ltjpreset_add_features_tl - \bool_if:NT \l_ltjpreset_noembed_bool { , NoEmbed }, + BoldFont = \ltjpreset_font_gt_eb:, + \bool_if:NT \l_ltjpreset_noembed_bool { NoEmbed, } \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_gt_eb: } \DeclareTextFontCommand{\textgteb}{\gtebfamily} @@ -334,5 +468,7 @@ \tl_use:N \l_ltjpreset_add_features_tl ] { \ltjpreset_font_gt_m: } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +} \ExplSyntaxOff \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-min.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-min.lua index ff00229b52f..b59b5329c48 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/jfm-min.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-min.lua @@ -1,6 +1,6 @@ -- -*- coding: utf-8 -*- -- jfm-min.lua: min10 互換 --- Besed on umin10.tfm (a counterpart of min10.tfm for upTeX). +-- Based on umin10.tfm (a counterpart of min10.tfm for upTeX). local vscale = 0.916443 / 0.962216 local vht = 0.777588 / 0.962216 @@ -9,7 +9,8 @@ local vdp = 0.138855 / 0.962216 luatexja.jfont.define_jfm { dir = 'yoko', zw = 1.0, zh = vscale, - + kanjiskip = { 0.0, 0.091641/0.962216, 0.0 }, + xkanjiskip = { 0.229101/0.962216, 0.183283/0.962216, 0.114551/0.962216 }, [0] = { align = 'left', left = 0.0, down = 0.0, width = 1.0, height = vht, depth = vdp, italic=0.0, diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-propv.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-propv.lua new file mode 100644 index 00000000000..320ed626488 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-propv.lua @@ -0,0 +1,9 @@ +luatexja.jfont.define_jfm { + dir = 'tate', + zw = 1.0, zh = 1.0, + + [0] = { + align = 'left', left = 0.0, down = 0.0, + width = 'prop', height = 0.50, depth = 0.50, italic=0.0, + } +} diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-tmin.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-tmin.lua new file mode 100644 index 00000000000..2d9f85b59f8 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-tmin.lua @@ -0,0 +1,189 @@ +-- -*- coding: utf-8 -*- +-- jfm-tmin.lua: tmin10 互換 +-- Based on utmin10.tfm (a counterpart of tmin10.tfm for upTeX). + +local vscale = 0.916443 / 0.962216 +local vht = 0.458221 / 0.962216 + +luatexja.jfont.define_jfm { + dir = 'tate', + zw = 1.0, zh = vscale, + kanjiskip = { 0.0, 0.091641/0.962216, 0.0 }, + xkanjiskip = { 0.229101/0.962216, 0.183283/0.962216, 0.114551/0.962216 }, + [0] = { + align = 'middle', left = 0.00, down = 0.00, + width = 1.0, height = vht, depth = vht, italic=0.0, + glue = { + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0.111608, 0.0, 0.111608 }, + [5] = { 0, 0, 0 }, + [6] = { 0.5, 0.190480, 0.5 }, + [7] = { 0.25, 0.190480, 0.25 }, + [10] = { 0, 0, 0 }, + } + }, + + [1] = { + chars = { + ',', '.' + }, + align = 'left', left = 0.00, down = 0.00, + width = 0.5, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 0.5, 0.190480, 0.5 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0.5, 0.190480, 0.5 }, + [4] = { 0, 0, 0 }, + [5] = { 0.5, 0.190480, 0.5 }, + [6] = { 0.5, 0.190480, 0.5 }, + [7] = { 0.5, 0.190480, 0.5 }, + [10] = { 0, 0, 0 }, + } + }, + + [2] = { + chars = { + '、', '。' + }, + align = 'left', left = 0.00, down = 0.00, + width = 0.5, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 0.5, 0.190480, 0.5 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0.5, 0.190480, 0.5 }, + [4] = { 0, 0, 0 }, + [5] = { 0.5, 0.190480, 0.5 }, + [6] = { 0.5, 0.190480, 0.5 }, + [7] = { 0.5, 0.190480, 0.5 }, + [10] = { 0, 0, 0 }, + } + }, + + [3] = { + chars = { + '〃', '々', 'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'っ', 'ゃ', 'ゅ', + 'ょ', 'ゎ', 'ゕ', 'ゖ', 'ゝ', 'ゞ', 'ァ', 'ィ', 'ゥ', 'ェ', + 'ォ', 'ッ', 'ャ', 'ュ', 'ョ', 'ヮ', 'ヵ', 'ヶ', 'ヽ', 'ヾ', + 'ㇰ', 'ㇱ', 'ㇲ', 'ㇳ', 'ㇴ', 'ㇵ', 'ㇶ', 'ㇷ', 'ㇸ', 'ㇹ', + 'ㇺ', 'ㇻ', 'ㇼ', 'ㇽ', 'ㇾ', 'ㇿ', + }, + align = 'middle', left = 0.00, down = 0.00, + width = 0.776784, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 0.111608, 0.0, 0.111608 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0.111608, 0.0, 0.111608 }, + [5] = { 0, 0, 0 }, + [6] = { 0.5, 0.190480, 0.5 }, + [7] = { 0.25, 0.190480, 0.25 }, + [10] = { 0, 0, 0 }, + } + }, + + [4] = { + chars = { + '!', '?' + }, + align = 'middle', left = 0.00, down = 0.00, + width = 1.0, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 1.0, 0.0, 0.5 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 1.0, 0.0, 0.5 }, + [5] = { 0, 0, 0 }, + [6] = { 1.0, 0.0, 0.5 }, + [7] = { 1.0, 0.0, 0.5 }, + [10] = { 0, 0, 0 }, + } + }, + + [5] = { + chars = { + '―', '‥', '…' + }, + align = 'middle', left = 0.00, down = 0.00, + width = 1.0, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 0, 0, 0 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0, 0, 0 }, + [4] = { 0, 0, 0 }, + [5] = { 0, 0, 0 }, + [6] = { 0.25, 0.190480, 0.25 }, + [7] = { 0.25, 0.190480, 0.25 }, + [10] = { 0, 0, 0 }, + } + }, + + [6] = { -- 開き括弧類 + chars = { + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '〘', '〝', '(', '[', '{', '⦅' + }, + align = 'right', left = 0.0, down = 0.0, + width = 0.5, height = vht, depth = vht, italic=0.0, + glue = { + [0] = {0, 0, 0}, + [1] = {0, 0, 0}, + [2] = {0, 0, 0}, + [3] = {0, 0, 0}, + [4] = {0, 0, 0}, + [5] = {0, 0, 0}, + [6] = {0, 0, 0}, + [7] = { 0.25, 0.0, 0.25 }, + [8] = {0, 0, 0}, + [9] = {0, 0, 0}, + } + }, + + [7] = { + chars = { + '‐', '‖', '・', '|' + }, + align = 'middle', left = 0.00, down = 0.00, + width = 0.5, height = vht, depth = vht, italic=0.0, + glue = { + [0] = { 0.25, 0.190480, 0.25 }, + [1] = { 0.25, 0, 0.25 }, + [2] = { 0.25, 0, 0.25 }, + [3] = { 0.111608, 0.0, 0.111608 }, + [4] = { 0.25, 0.190480, 0.25 }, + [5] = { 0.25, 0.190480, 0.25 }, + [6] = { 0.25, 0.190480, 0.25 }, + [7] = { 0, 0.190480, 0.0 }, + [10] = { 0.25, 0, 0.25 }, + } + }, + + [10] = { -- 閉じ括弧類 + chars = { + '’', '”', '〉', '》', '」', '』', '】', '〕', + '〗', '〙', '〟', ')', ']', '}', '⦆' + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = vht, depth = vht, italic=0.0, + glue = { +-- 3 は四分, 2, 4, 9 は0, あとは0.5 + [0] = { 0.5 , 0.190480, 0.5 }, + [1] = { 0, 0, 0 }, + [2] = { 0, 0, 0 }, + [3] = { 0.5 , 0.190480, 0.5 }, + [4] = { 0, 0, 0 }, + [5] = { 0.25 , 0.190480, 0.25 }, + [6] = { 0.5 , 0.190480, 0.5 }, + [7] = { 0.25 , 0.190480, 0.25 }, + [10] = {0, 0, 0}, + } + }, + + [99] = { -- box末尾 + chars = {'boxbdd', 'parbdd'}, + }, + +} diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua index cb4e9c1f4c8..ced82f66463 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujis.lua @@ -30,7 +30,7 @@ luatexja.jfont.define_jfm { [1] = { -- 開き括弧類 chars = { - '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', '〘', '〝', '(', '[', '{', '⦅' }, align = 'right', left = 0.0, down = 0.0, @@ -52,7 +52,7 @@ luatexja.jfont.define_jfm { [2] = { -- 閉じ括弧類 chars = { - '’', '”', '〉', '》', '」', '』', '】', '〕', + '’', '”', '〉', '》', '」', '』', '】', '〕', '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',*' }, align = 'left', left = 0.0, down = 0.0, @@ -148,28 +148,28 @@ luatexja.jfont.define_jfm { [7] = { -- 半角カナ chars = { - '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', - 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', - 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', - 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', - 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', - 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', + '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', + 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', + 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', + 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', + 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', + 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚', - "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", - "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", - "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", - "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", - "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", - "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", - "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", - "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", - "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", - "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", - "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", + "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", + "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", + "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", + "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", + "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", + "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", + "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", + "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", + "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", + "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", + "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598", }, align = 'left', left = 0.0, down = 0.0, - width = 0.5, height = 0.88, depth = 0.12, italic=0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.0, glue = { [1] = { 0.5 , 0.0, 0.5, 0, 1 }, [2] = {0, 0, 0}, @@ -192,7 +192,7 @@ luatexja.jfont.define_jfm { '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯', '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷', '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿', - '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇', + '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇', '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏', '═', '║', '╒', '╓', '╔', '╕', '╖', '╗', '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟', @@ -216,6 +216,7 @@ luatexja.jfont.define_jfm { } }, + [99] = { -- box末尾 chars = {'boxbdd', 'parbdd'}, glue = { diff --git a/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua new file mode 100644 index 00000000000..179ad55faf4 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/jfm-ujisv.lua @@ -0,0 +1,226 @@ +-- -*- coding: utf-8 -*- +-- jfm-ujisv.lua: LuaTeX-ja 標準 JFM(縦組み用) +-- based on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX). + +-- JIS X 4051:2004 では,行末の句読点や中点はベタなのでそれに従う +-- kanjiskip: 0pt plus .25zw minus 0pt +-- xkanjiskip: .25zw plus .25zw (or .0833zw) minus .125zw + + +luatexja.jfont.define_jfm { + dir = 'tate', + zw = 1.0, zh = 1.0, + kanjiskip = {0.0, 0.25, 0}, + xkanjiskip = {0.25, 0.25, .125}, + [0] = { + align = 'middle', left = 0.00, down = 0.00, + width = 1.0, height = 0.50, depth = 0.50, italic=0.0, + glue = { + -- [index] = { width, stretch, shrink, [priority, [ratio]] } + [1] = { 0.5 , 0.0, 0.5, 0, 1 }, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [6] = {0, 0, 0}, + [7] = {0, 0, 0}, + [8] = {0, 0, 0}, + [9] = {0, 0, 0}, + } + }, + + [1] = { -- 開き括弧類 + chars = { + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '〘', '〝', '(', '[', '{', '⦅' + }, + align = 'right', left = 0.0, down = 0.0, + width = 0.5, height = 0.50, depth = 0.50, italic=0.0, + glue = { +-- 3 のみ四分,あとは0 + [0] = {0, 0, 0}, + [1] = {0, 0, 0}, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1 }, + [4] = {0, 0, 0}, + [5] = {0, 0, 0}, + [6] = {0, 0, 0}, + [7] = {0, 0, 0}, + [8] = {0, 0, 0}, + [9] = {0, 0, 0}, + } + }, + + [2] = { -- 閉じ括弧類 + chars = { + '’', '”', '〉', '》', '」', '』', '】', '〕', + '〗', '〙', '〟', ')', ']', '}', '⦆', '、', ',' + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.50, depth = 0.50, italic=0.0, + glue = { +-- 3 は四分, 2, 4, 9 は0, あとは0.5 + [0] = { 0.5 , 0.0, 0.5, 0, -1 }, + [1] = { 0.5 , 0.0, 0.5, 0, -1 }, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [5] = { 0.5 , 0.0, 0.5, 0, -1 }, + [6] = { 0.5 , 0.0, 0.5, 0, -1 }, + [7] = { 0.5 , 0.0, 0.5, 0, -1 }, + [8] = { 0.5 , 0.0, 0.5, 0, -1 }, + [9] = {0, 0, 0}, + } + }, + + [3] = { -- 中点類 + chars = {'・', ':', ';'}, + align = 'middle', left = 0.0, down = 0.0, + width = 0.5, height = 0.50, depth = 0.50, italic=0.0, + --end_stretch = 0.25, + glue = { +-- 3 のみ 0.5,あとは0.25 + [0] = { 0.25, 0.0, 0.25, 1, 1 }, + [1] = { 0.25, 0.0, 0.25, 1, 1 }, + [2] = { 0.25, 0.0, 0.25, 1, 1 }, + [3] = { 0.5 , 0.0, 0.25 , 1, 0 }, + [4] = { 0.25, 0.0, 0.25, 1, 1 }, + [5] = { 0.25, 0.0, 0.25, 1, 1 }, + [6] = { 0.25, 0.0, 0.25, 1, 1 }, + [7] = { 0.25, 0.0, 0.25, 1, 1 }, + [8] = { 0.25, 0.0, 0.25, 1, 1 }, + [9] = { 0.25, 0.0, 0.25, 1, 1 }, + } + }, + + [4] = { -- 句点類 + chars = {'。', '.'}, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.50, depth = 0.50, italic=0.0, + glue = { +-- 3 は.75, 2, 4 は0, あとは0.5 + [0] = { 0.5 , 0.0, 0.5, 0, -1 }, + [1] = { 0.5 , 0.0, 0.5, 0, -1 }, + [3] = { 0.75, 0.0, 0.25, 1, -1/3 }, + [5] = { 0.5 , 0.0, 0.5, 0, -1 }, + [6] = { 0.5 , 0.0, 0.5, 0, -1 }, + [7] = { 0.5 , 0.0, 0.5, 0, -1 }, + [8] = { 0.5 , 0.0, 0.5, 0, -1 }, + [9] = { 0.5 , 0.0, 0.5, 0, -1 }, + } + }, + + [5] = { -- ダッシュ + chars = { '—', '―', '‥', '…', '〳', '〴', '〵', }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.50, depth = 0.50, italic=0.0, + glue = { + [1] = { 0.5 , 0.0, 0.5, 0, 1 }, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [6] = {0, 0, 0}, + [9] = {0, 0, 0}, + }, + kern = { + [5] = 0.0 + } + }, + + [6] = { -- 感嘆符・疑問符 + chars = { '?', '!', '‼', '⁇', '⁈', '⁉', }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.50, depth = 0.50, italic=0.0, + glue = { + [0] = { 1.0 , 0.0, 0.5, 0, 1 }, + [1] = { 0.5 , 0.0, 0.5, 0, 1 }, + [2] = {0, 0, 0}, + [3] = { 0.75, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [6] = {0, 0, 0}, + [7] = { 0.5 , 0.0, 0.5, 0, 1 }, + [8] = {0, 0, 0}, + [9] = {0, 0, 0}, + }, + kern = { + [5] = 0.0 + } + }, + + [7] = { -- 半角カナ + chars = { + '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', + 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', + 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', + 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', + 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', + 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', + 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚', + "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", + "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", + "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", + "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", + "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", + "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", + "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", + "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", + "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", + "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", + "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", + "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598", + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.5, depth = 0.5, italic=0.0, + glue = { + [1] = { 0.5 , 0.0, 0.5, 0, 1 }, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [6] = {0, 0, 0}, + [7] = {0, 0, 0}, + [8] = {0, 0, 0}, + [9] = {0, 0, 0}, + } + }, + + [8] = { -- 罫線類. + chars = { + '─', '━', '│', '┃', '┄', '┅', '┆', '┇', + '┈', '┉', '┊', '┋', '┌', '┍', '┎', '┏', + '┐', '┑', '┒', '┓', '└', '┕', '┖', '┗', + '┘', '┙', '┚', '┛', '├', '┝', '┞', '┟', + '┠', '┡', '┢', '┣', '┤', '┥', '┦', '┧', + '┨', '┩', '┪', '┫', '┬', '┭', '┮', '┯', + '┰', '┱', '┲', '┳', '┴', '┵', '┶', '┷', + '┸', '┹', '┺', '┻', '┼', '┽', '┾', '┿', + '╀', '╁', '╂', '╃', '╄', '╅', '╆', '╇', + '╈', '╉', '╊', '╋', '╌', '╍', '╎', '╏', + '═', '║', '╒', '╓', '╔', '╕', '╖', '╗', + '╘', '╙', '╚', '╛', '╜', '╝', '╞', '╟', + '╠', '╡', '╢', '╣', '╤', '╥', '╦', '╧', + '╨', '╩', '╪', '╫', '╬', '╭', '╮', '╯', + '╰', '╱', '╲', '╳', '╴', '╵', '╶', '╷', + '╸', '╹', '╺', '╻', '╼', '╽', '╾', '╿', + }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.50, depth = 0.50, italic=0.0, + glue = { + [1] = { 0.5 , 0.0, 0.5, 0, 1 }, + [2] = {0, 0, 0}, + [3] = { 0.25, 0.0, 0.25, 1, 1 }, + [4] = {0, 0, 0}, + [6] = {0, 0, 0}, + [9] = {0, 0, 0}, + }, + kern = { + [8] = 0.0 + } + }, + + [99] = { -- box末尾 + chars = {'boxbdd', 'parbdd'}, + glue = { + [3] = { 0.25, 0.0, 0.25, 1 }, + } + }, + +} diff --git a/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty new file mode 100644 index 00000000000..5cf1849b92b --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/lltjext.sty @@ -0,0 +1,761 @@ +% +% lltjext.sty: derived from plext.sty in pLaTeX. +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjext} + [2014/09/06 v1.2-ltj-3 Macros for vertical writing] +\RequirePackage{luatexja} + +\let\ltj@lltjext@orig@tabular=\tabular +\let\ltj@lltjext@orig@array=\array + +%%% array and tabular +\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz + \let\@classiv\@arrayclassiv + \let\\\@arraycr\let\@halignto\@empty\X@tabarray} +\def\tabular{\let\@halignto\@empty\X@tabular} +\@namedef{tabular*}{\@ifnextchar<%> + {\@stabular}{\@stabular<Z>}} +\def\X@tabarray{\@ifnextchar<%> + {\p@tabarray}{\p@tabarray<Z>}} +\def\X@tabular{\@ifnextchar<%> + {\p@tabular}{\p@tabular<Z>}} +\def\@stabular<#1>#2{\def\@halignto{to#2}\p@tabular<#1>} +\def\p@tabular<#1>{\leavevmode \hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\p@tabarray<#1>} +\def\p@tabarray<#1>{\m@th\@ifnextchar[%] + {\p@array<#1>}{\p@array<#1>[c]}} + +\def\p@array<#1>[#2]#3{% + \let\box@dir\relax + \if #1z\relax + \ifnum\ltjgetparameter{direction}=3\relax + \let\box@dir\utod\@tempcnta=\zstrutbox + \fi + \else + \if #1y\relax + \let\box@dir\yoko\@tempcnta=\strutbox + \else\if #1t\relax + \let\box@dir\tate\@tempcnta=\tstrutbox + \else\if #1d\relax + \let\box@dir\dtou\@tempcnta=\dstrutbox + \else\if #1u\relax + \let\box@dir\utod\@tempcnta=\zstrutbox + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction} + \or \let\box@dir\dtou\@tempcnta=\dstrutbox% dtou + \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate + \or \let\box@dir\yoko\@tempcnta=\strutbox% yoko + \else \let\box@dir\utod\@tempcnta=\zstrutbox% utod + \fi + \fi + \setbox\@arstrutbox\hbox{% + \box@dir + \vrule\@height\arraystretch\ltjgetht\@tempcnta + \@depth\arraystretch\ltjgetdp\@tempcnta \@width\z@}% + \fork@array@option<#1>[#2]% + \@mkpream{#3}\edef\@preamble{\ialign \noexpand\@halignto + \bgroup\@arstrut \@preamble \tabskip\z@skip \cr}% + \let\tabularnewline\\% + \@begin@alignbox\bgroup\box@dir\adjustbaseline + \let\par\@empty + \let\@sharp##\let\protect\relax + \lineskip\z@skip\baselineskip\z@skip\@preamble} +\def\endarray{\crcr\egroup\egroup\@end@alignbox} +\def\endtabular{\endarray$\egroup} +\expandafter \let \csname endtabular*\endcsname = \endtabular +\def\fork@array@option<#1>[#2]{% +\ifnum\ltjgetparameter{direction}=4 % yoko + \ifx\box@dir\yoko + \if #2t\relax + \let\@begin@alignbox\vtop + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \else + \if #2t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \def\@end@alignbox{\egroup}% + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \fi +\else\ifnum\ltjgetparameter{direction}=1 % dtou + \ifx\box@dir\yoko + \if #2t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \def\@end@alignbox{\egroup}% + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \else\ifx\box@dir\dtou + \if #2t\relax + \let\@begin@alignbox\vtop + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \else % 180 度回転→vtop, vbox を入れ替える + \if #2t\relax + \let\@begin@alignbox\vbox %%% !!! + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vtop %%% !!! + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \fi\fi +\else % tate, utod + \ifx\box@dir\yoko + \if #2t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \def\@end@alignbox{\egroup}% + \else\if #2b\relax + \def\@begin@alignbox{\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \else\ifx\box@dir\dtou % 180 度回転→vtop, vbox を入れ替える + \if #2t\relax + \let\@begin@alignbox\vbox %%% !!! + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vtop %%% !!! + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \else + \if #2t\relax + \let\@begin@alignbox\vtop + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi + \fi\fi +\fi\fi% +} + +%%% caption +\newbox\@floatbox +\newdimen\floatwidth +\newdimen\floatheight +\newdimen\floatruletick \floatruletick=0.4pt +\newdimen\captionfloatsep \captionfloatsep=10pt +\def\caption@dir{Z} +\let\captiondir\relax +\newdimen\captionwidth \captionwidth\z@ +\def\caption@posa{Z} +\def\caption@posb{Z} +\newbox\@captionbox +\def\captionfontsetup{\normalfont\normalsize} +\def\layoutfloat{\@ifnextchar(%) + {\X@layoutfloat}{\X@layoutfloat(-5\p@,-5\p@)}} +\def\X@layoutfloat(#1,#2){\@ifnextchar[%] + {\@layoutfloat(#1,#2)}{\@layoutfloat(#1,#2)[c]}} +\long\def\@layoutfloat(#1,#2)[#3]#4{% + \setbox\z@\hbox{#4}% + \floatwidth=#1 \floatheight=#2 \edef\float@pos{#3}% + \ifdim\floatwidth<\z@ + \floatwidth\ltjgetwd\z@\floatruletick\z@ + \fi + \ifdim\floatheight<\z@ + \floatheight\ltjgetht\z@\advance\floatheight\ltjgetdp\z@\relax + \floatruletick\z@ + \fi + \setbox\@floatbox\vbox to\floatheight{\offinterlineskip + \hrule width\floatwidth height\floatruletick depth\z@ + \vss\hbox to\floatwidth{% + \vrule width\floatruletick height\floatheight depth\z@ + \hss\vbox to\floatheight{\hsize\floatwidth\vss#4\vss}\hss + \vrule width\floatruletick height\floatheight depth\z@ + }\hrule width\floatwidth height\floatruletick depth\z@}} +\def\DeclareLayoutCaption#1<#2>(#3)[#4#5]{% + \expandafter + \ifx\csname #1@layoutcaption\endcsname\relax \else + \@latex@info{Redeclaring capiton layout setting of '#1'}% + \fi + \expandafter + \gdef\csname #1@layoutcaption\endcsname{% + \if Z\caption@dir\def\caption@dir{#2}\fi + \ifdim\captionwidth=\z@ \captionwidth=#3\relax\fi + \if Z\caption@posa\def\caption@posa{#4}\fi + \if Z\caption@posb\def\caption@posb{#5}\fi}} +\@onlypreamble\DeclareLayoutCaption +\DeclareLayoutCaption{figure}<y>(.8\linewidth)[cd] +\DeclareLayoutCaption{table}<y>(.8\linewidth)[cu] +\def\layoutcaption{\def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \@ifnextchar<\X@layoutcaption{% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}}} +\def\X@layoutcaption<#1>{\def\caption@dir{#1}% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}} +\def\@ilayoutcaption(#1){\setlength\captionwidth{#1}% + \@ifnextchar[{\@iilayoutcaption}{\relax}} +\def\@iilayoutcaption[#1#2]{% + \def\caption@posa{#1}\def\caption@posb{#2}} +\def\pcaption{\refstepcounter\@captype \@dblarg{\@pcaption\@captype}} +\long\def\@pcaption#1[#2]#3{% + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces#2}}% + \ifvoid\@floatbox + \latex@error{Use with `\protect\layoutfloat'.}\@eha + \fi + \make@pcaptionbox{#3}% + \@pboxswfalse + \setbox\@tempboxa\vbox{\hbox to\hsize{\if l\float@pos\else\hss\fi + \if l\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\ifmmode\vcenter \else\@pboxswtrue $\vcenter \fi\fi\fi + {\if u\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \unvbox\@floatbox + \if d\caption@posb\kern\captionfloatsep\box\@captionbox\fi}% + \if r\caption@posb\kern\captionfloatsep\box\@captionbox\fi + \if@pboxsw \m@th$\fi \if r\float@pos\else\hss\fi}}% + \par\vskip.25\baselineskip + \box\@tempboxa} +\def\make@pcaptionbox#1{% + \expandafter + \ifx\csname\@captype @layoutcaption\endcsname\relax + \@latex@warning{Default caption layout of `\@captype' unknown.}% + \def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \else + \csname \@captype @layoutcaption\endcsname + \fi + \@tempswafalse + % tempswa\hline 基本組の組方向とキャプションの組方向が直交するか? + \if y\caption@dir \let\captiondir\yoko + \ifodd\ltjgetparameter{direction}\relax\@tempswatrue\fi + \else\if z\caption@dir \let\captiondir\relax + \ifnum\ltjgetparameter{direction}=3\relax\let\captiondir\utod\fi + \else\if d\caption@dir \let\captiondir\dtou + \ifodd\ltjgetparameter{direction}\else\@tempswatrue\fi + \else\if u\caption@dir \let\captiondir\utod + \ifodd\ltjgetparameter{direction}\else\@tempswatrue\fi + \else\if t\caption@dir \let\captiondir\tate + \ifodd\ltjgetparameter{direction}\else\@tempswatrue\fi + \fi\fi\fi\fi\fi + \setbox0\hbox{\hbox{\captiondir + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname #1}}%" + \if@tempswa\@tempdima\ltjgetht0\relax\else\@tempdima\ltjgetwd0\relax\fi + \ifdim\@tempdima>\captionwidth \@tempdima\captionwidth \fi + \@pboxswfalse + \setbox0\hbox{% + \if u\caption@posb\vbox + \else\if d\caption@posb\vbox + \else\if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\ifmmode\vcenter\else\@pboxswtrue $\vcenter\fi + \fi\fi\fi\fi + {\hsize\@tempdima\kern\z@ + \vbox{\captiondir\hsize\@tempdima + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname #1}\kern\z@ + }\if@pboxsw \m@th$\fi}% + \let\to@captionboxwidth\relax + \if l\caption@posb \else\if r\caption@posb\else + \def\to@captionboxwidth{to\floatwidth}\fi\fi + \setbox\@captionbox\hbox\to@captionboxwidth{% + \if t\caption@posa\else\hss\fi + \unhbox0\relax + \if b\caption@posa\else\hss\fi}} + +%%% minipage and parbox +\def\minipage{\@ifnextchar<%> + {\X@minipage}{\X@minipage<Z>}} +\def\X@minipage<#1>{\@ifnextchar[%] + {\@iminipage<#1>}{\@iiiminipage<#1>{c}\@empty[s]}} +\def\@iminipage<#1>[#2]{\@ifnextchar[%] + {\@iiminipage<#1>{#2}}{\@iiiminipage<#1>{#2}\@empty[s]}} +\def\@iiminipage<#1>#2[#3]{\@ifnextchar[%] + {\@iiiminipage<#1>{#2}{#3}}{\@iiiminipage<#1>{#2}{#3}[#2]}} +\def\@iiiminipage<#1>#2#3[#4]#5{% + \leavevmode\bgroup + \setlength\@tempdima{#5}% + \def\@mpargs{<#1>{#2}{#3}[#4]{#5}}% + \let\box@dir\relax + \if #1z\relax + \ifnum\ltjgetparameter{direction}=3\relax + \let\box@dir\utod + \fi + \else + \if #1y\relax \let\box@dir\yoko + \else\if #1t\relax\let\box@dir\tate + \else\if #1d\relax\let\box@dir\dtou + \else\if #1u\relax\let\box@dir\utod + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction}\relax + \or \let\box@dir\dtou + \or\or\let\box@dir\tate + \or \let\box@dir\yoko + \else \let\box@dir\utod + \fi + \fi + \setbox\@tempboxa\vbox\bgroup\box@dir + \adjustbaseline + \color@begingroup + \hsize\@tempdima + \textwidth\hsize \columnwidth\hsize + \@parboxrestore + \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@footnotetext\@mpfootnotetext + \let\@listdepth\@mplistdepth \@mplistdepth\z@ + \@minipagerestore + \global\@minipagetrue %% \global added 24 May 89 + \everypar{\global\@minipagefalse\everypar{}}} +\def\endminipage{% + \par + \unskip + \ifvoid\@mpfootins\else + \vskip\skip\@mpfootins + \normalcolor + \footnoterule + \unvbox\@mpfootins + \fi + \global\@minipagefalse %% added 24 May 89 + \color@endgroup + \egroup + \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}\egroup} +\def\parbox{\@ifnextchar<%> + {\X@parbox}{\X@parbox<Z>}} +\def\X@parbox<#1>{\@ifnextchar[%] + {\@iparbox<#1>}{\@iiiparbox<#1>{c}\@empty[s]}} +\def\@iparbox<#1>[#2]{\@ifnextchar[%] + {\@iiparbox<#1>{#2}}{\@iiiparbox<#1>{#2}\@empty[s]}} +\def\@iiparbox<#1>#2[#3]{\@ifnextchar[%]% + {\@iiiparbox<#1>{#2}{#3}}{\@iiiparbox<#1>{#2}{#3}[#2]}} +\long\def\@iiiparbox<#1>#2#3[#4]#5#6{% + \leavevmode\bgroup + \setlength\@tempdima{#5}% + \fork@parbox@option<#1>[#2]% + \@begin@tempboxa\vbox{\box@dir + \hsize\@tempdima\@parboxrestore\adjustbaseline#6\endgraf}% + \ifx\@empty#3\relax\else + \setlength\@tempdimb{#3}% + \def\@parboxto{to\@tempdimb}% + \fi + \@begin@parbox\@parboxto{\box@dir\adjustbaseline + \let\hss\vss\let\unhbox\unvbox + \csname bm@#4\endcsname}\@end@parbox + \@end@tempboxa\egroup} +\def\fork@parbox@option<#1>[#2]{% + \let\box@dir\relax + \if #1z\relax + \ifnum\ltjgetparameter{direction}=3\relax + \let\box@dir\utod + \fi + \else + \if #1y\relax \let\box@dir\yoko + \else\if #1t\relax\let\box@dir\tate + \else\if #1d\relax\let\box@dir\dtou + \else\if #1u\relax\let\box@dir\utod + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction}\relax + \or \let\box@dir\dtou + \or\or\let\box@dir\tate + \or \let\box@dir\yoko + \else \let\box@dir\utod + \fi + \fi +%%% now almost same as \fork@array@option +\ifnum\ltjgetparameter{direction}=4 % yoko + \ifx\box@dir\yoko + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \else + \if #2t\relax + \def\@begin@parbox{\vtop\bgroup\kern\z@\vbox}% + \def\@end@parbox{\egroup}% + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \fi +\else\ifnum\ltjgetparameter{direction}=1 % dtou + \ifx\box@dir\yoko + \if #2t\relax + \def\@begin@parbox{\vtop\bgroup\kern\z@\vbox} + \def\@end@parbox{\egroup} + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \else\ifx\box@dir\dtou + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \else % 180 度回転→vtop, vbox を入れ替える + \if #2t\relax + \let\@begin@parbox\vbox %%% !!! + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vtop %%% !!! + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \fi\fi +\else % tate, utod + \ifx\box@dir\yoko + \if #2t\relax + \def\@begin@parbox{\vtop\bgroup\kern\z@\vbox}% + \def\@end@parbox{\egroup}% + \else\if #2b\relax + \def\@begin@parbox{\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \else\ifx\box@dir\dtou % 180 度回転→vtop, vbox を入れ替える + \if #2t\relax + \let\@begin@parbox\vbox %%% !!! + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vtop %%% !!! + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \else + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi + \fi\fi +\fi\fi% +} + +%%% pbox +\def\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox<Z>}} +\def\X@makePbox<#1>{% + \@ifnextchar[{\@imakePbox<#1>}{\@imakePbox<#1>[-5\p@]}} +\def\@imakePbox<#1>[#2]{\@ifnextchar[%] + {\@iimakePbox<#1>{#2}}{\@iimakePbox<#1>{#2}[c]}} +\def\@iimakePbox<#1>#2[#3]#4{% + \bgroup\let\box@dir\relax + \if #1z\relax + \ifnum\ltjgetparameter{direction}=3 \relax + \let\box@dir\utod + \fi + \else + \if #1y\relax \let\box@dir\yoko + \else\if #1t\relax\let\box@dir\tate + \else\if #1d\relax\let\box@dir\dtou + \else\if #1u\relax\let\box@dir\utod + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction} + \or \let\box@dir\dtou + \or\or\let\box@dir\tate + \or \let\box@dir\yoko + \else \let\box@dir\utod + \fi + \fi + \ifdim #2 <\z@ \hbox{\box@dir#4}\else + \hbox to#2{\box@dir + \if #3l\relax\else\hss\fi + #4\relax + \if #3r\relax\else\hss\fi}\fi\egroup} + +%%% picture +\def\picture{\@ifnextchar<%> + {\X@picture}{\X@picture<Z>}} +\def\X@picture<#1>(#2,#3){\@ifnextchar(%) + {\@@picture<#1>(#2,#3)}{\@@picture<#1>(#2,#3)(0,0)}} +\newdimen\@picwd +\def\ltj@@pic@reset@blshift{% + \ltj@yablshift\z@\ltj@ykblshift\z@ + \ltj@tablshift\z@\ltj@tkblshift\z@ +}% +\def\@@picture<#1>(#2,#3)(#4,#5){% + \edef\ltj@@pic@save@blshift{% + \noexpand\ltj@yablshift\the\ltj@yablshift\noexpand\relax + \noexpand\ltj@ykblshift\the\ltj@ykblshift\noexpand\relax + \noexpand\ltj@tablshift\the\ltj@tablshift\noexpand\relax + \noexpand\ltj@tkblshift\the\ltj@tkblshift\noexpand\relax + }% + \bgroup\let\box@dir\relax + \if #1z\relax + \ifnum\ltjgetparameter{direction}=3 \relax + \let\box@dir\utod + \fi + \else + \if #1y\relax \let\box@dir\yoko + \else\if #1t\relax\let\box@dir\tate + \else\if #1d\relax\let\box@dir\dtou + \else\if #1u\relax\let\box@dir\utod + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction} + \or \let\box@dir\dtou + \or\or\let\box@dir\tate + \or \let\box@dir\yoko + \else \let\box@dir\utod + \fi + \fi + \@picwd=#2\unitlength \@picht=#3\unitlength + \setbox\@picbox\hbox to\@picwd\bgroup\box@dir + \hskip-#4\unitlength\lower#5\unitlength\hbox\bgroup + \ltj@@pic@reset@blshift + \ignorespaces} +\def\endpicture{% + \egroup\hss\egroup + \setbox0=\hbox{\box@dir% + \ltjsetht\@picbox\@picht \ltjsetdp\@picbox\z@ + }% + \@tempswafalse + \ifnum\ltjgetparameter{direction}=3 \@tempswatrue\fi + \ifnum\ltjgetparameter{direction}=11 \@tempswatrue\fi + \if@tempswa + \ifx\box@dir\yoko % この場合だけ垂直位置補正が必要 + \ltjsetht\@picbox\dimexpr\ltjgetht\@picbox+\ltjgetdp\@picbox\relax + \ltjsetdp\@picbox\z@ + \fi + \fi + \mbox{\box\@picbox}% + \egroup\ltj@@pic@save@blshift} +\let\org@put\put +\def\put{\ltj@@pic@reset@blshift\org@put} +\let\org@line\line +\def\line{\ltj@@pic@reset@blshift\org@line} +\let\org@vector\vector +\def\vector{\ltj@@pic@reset@blshift\org@vector} +\let\org@dashbox\dashbox +\def\dashbox{\ltj@@pic@reset@blshift\org@dashbox} +\let\org@oval\oval +\def\oval{\ltj@@pic@reset@blshift\org@oval} +\let\org@circle\circle +\def\circle{\ltj@@pic@reset@blshift\org@circle} + +%%% rensuji +\newif\ifnot@advanceline +\newskip\rensujiskip +\rensujiskip=0.25\chs plus.25\zw minus.25\zw +\DeclareRobustCommand\rensuji{% + \@ifstar{\not@advancelinetrue\@rensuji}{\@rensuji}} +\def\@rensuji{\@ifnextchar[{\@@rensuji}{\@@rensuji[c]}} +\def\@@rensuji[#1]#2{\ifnum\ltjgetparameter{direction}=4\relax% + \hbox{#2}\else + \hskip\rensujiskip + \ifvmode\leavevmode\fi + \setbox\tw@\hbox{漢}% 「あ」では仮名書体使用時がまずそう + \@tempdimb\ltjgetht\tw@ \advance\@tempdimb\ltjgetdp\tw@ + \ifnot@advanceline\not@advancelinefalse\else + \setbox\z@\hbox{\yoko#2}% + \@tempdima\ltjgetht\z@ \advance\@tempdima\ltjgetdp\z@ + \ifnum\ltjgetparameter{direction}=1\relax + % 周囲が dtou の場合には,高さ \ltjgetht\tw@, 深さ \ltjgetdp\tw@ のボックスを基準としている. + \if #1c\relax\vrule \@width \z@ \@height\dimexpr.5\@tempdima+.5\ltjgetht\tw@-.5\ltjgetdp\tw@ + \@depth\dimexpr.5\@tempdima-.5\ltjgetht\tw@+.5\ltjgetdp\tw@ + \else\if #1l\relax\vrule\@width \z@\@height\ltjgetht\tw@ \@depth\dimexpr\@tempdima-\ltjgetht\tw@ + \else\vrule\@width \z@ \@height\dimexpr\@tempdima-\ltjgetdp\tw@ \@depth\ltjgetdp\tw@ + \fi\fi + \else + % 周囲が tate, utod の場合も同じ + \if #1c\relax\vrule \@width \z@ \@height\dimexpr.5\@tempdima+.5\ltjgetht\tw@-.5\ltjgetdp\tw@ + \@depth\dimexpr.5\@tempdima-.5\ltjgetht\tw@+.5\ltjgetdp\tw@ + \else\if #1r\relax\vrule\@width \z@\@height\ltjgetht\tw@ \@depth\dimexpr\@tempdima-\ltjgetht\tw@ + \else\vrule\@width \z@ \@height\dimexpr\@tempdima-\ltjgetdp\tw@ \@depth\ltjgetdp\tw@ + \fi\fi + \fi + \fi + \ifnum\ltjgetparameter{direction}=1\relax + \if #1c\relax\hbox to\@tempdimb{\yoko\hss#2\hss\kern-\ltjgetdp\tw@}% + \else\if #1r\relax\vbox{\hbox to\@tempdimb{\yoko\hss#2\kern-\ltjgetdp\tw@}}% + \else\lower\ltjgetdp\tw@\vtop{\hbox to\@tempdimb{\yoko#2\hss}}% + \fi\fi + \else + \if #1c\relax\raise\dimexpr.5\@tempdimb-\ltjgetdp\tw@ + \hbox to\@tempdimb{\yoko \hss#2\hss}% + \else\if #1r\relax\raise\dimexpr.5\@tempdimb-\ltjgetdp\tw@ + \vbox{\hbox to\@tempdimb{\yoko\hss#2}}% + \else\raise\dimexpr.5\@tempdimb-\ltjgetdp\tw@ + \vtop{\hbox to\@tempdimb{\yoko #2\hss}}% + \fi\fi + \fi + \hskip\rensujiskip +\fi} +\let\Rensuji\rensuji +\let\prensuji\rensuji + +%%% kanji +\def\Kanji#1{\expandafter\@Kanji\csname c@#1\endcsname} +\def\@Kanji#1{\expandafter\kansuji\number #1} +\def\kanji{\ifnum\ltjgetparameter{direction}=3 \expandafter\kansuji\fi} + +%%% bou +%%% +\def\boutenchar{\char\euc"A1A2}%" +\def\bou#1{\ifvmode\leavevmode\fi\@bou#1\end} +\def\@bou#1{% + \ifx#1\end \let\next=\relax + \else + \ifnum\ltjgetparameter{direction}=3\relax + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft0.2\zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \else + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft-0.2\zw\hbox{\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi + \let\next=\@bou + \fi\next} + +%%% kasen +\def\kasen#1{% + \ifnum\ltjgetparameter{direction}=3\relax + \setbox\z@\hbox{#1}\leavevmode\raise.7\zw + \hbox to\z@{\vrule\@width\wd\z@ \@depth\z@ \@height.4\p@\hss}% + \box\z@ + \else\underline{#1}\fi} + +%%% references +\def\@eqnnum{{\reset@font\rmfamily \normalcolor + \ifnum\ltjgetparameter{direction}=3 \raise.25\zh\hbox{\yoko(\theequation)}% + \else (\theequation)\fi}} +\def\@thecounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} +\def\@thmcounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} + +%% Compatibility with array package + +\def\ltj@lltjext@patch@array{% + \def\@startpbox##1{\bgroup + \box@dir\adjustbaseline%%% これを追加 + \hsize=##1\@arrayparboxrestore + \everypar{% + \vrule \@height \ltjgetht\@arstrutbox \@width \z@ + \everypar{}}% + } + \def\@tabarray{\@ifnextchar<\p@tabarray{\p@tabarray<Z>}} + \def\p@array<##1>[##2]##3{% + \let\box@dir\relax + \if ##1z\relax + \ifnum\ltjgetparameter{direction}=3\relax + \let\box@dir\utod\@tempcnta=\zstrutbox + \fi + \else + \if ##1y\relax + \let\box@dir\yoko\@tempcnta=\strutbox + \else\if ##1t\relax + \let\box@dir\tate\@tempcnta=\tstrutbox + \else\if ##1d\relax + \let\box@dir\dtou\@tempcnta=\dstrutbox + \else\if ##1u\relax + \let\box@dir\utod\@tempcnta=\zstrutbox + \fi\fi\fi\fi + \fi + \ifx\box@dir\relax + \ifcase\ltjgetparameter{direction} + \or \let\box@dir\dtou\@tempcnta=\tabskip \z@\tabskip \z@\dstrutbox% dtou + \or\or\let\box@dir\tate\@tempcnta=\tstrutbox% tate + \or \let\box@dir\yoko\@tempcnta=\strutbox% yoko + \else \let\box@dir\utod\@tempcnta=\zstrutbox% utod + \fi + \fi + \setbox \@arstrutbox \hbox{\box@dir\vrule + \@height \arraystretch + \dimexpr \ltjgetht\@tempcnta+\extrarowheight\relax + \@depth \arraystretch \ltjgetdp \@tempcnta + \@width \z@}% + \fork@array@option<##1>[##2]% + \begingroup + \@mkpream{##3}% + \xdef\@preamble{\ialign \noexpand \@halignto + \bgroup \tabskip \z@skip \@arstrut \@preamble + \tabskip \z@ \cr}% + \endgroup + \@arrayleft + \@begin@alignbox\bgroup\box@dir\adjustbaseline + \let\par\@empty + \let\@sharp####\let\protect\relax + \let\\\@arraycr\let\tabularnewline\\\let\par\@empty + \lineskip\z@skip\baselineskip\z@skip\@preamble} + \def\endarray{\crcr\egroup\egroup\@end@alignbox} +} + +\@ifpackageloaded{array}{% + \let\tabular=\ltj@lltjext@orig@tabular + \let\array=\ltj@lltjext@orig@array + \ltj@lltjext@patch@array +}{% + \let\ltj@lltjext@orig@tabular\relax + \let\ltj@lltjext@orig@array\relax + \RequirePackage{filehook} + \AtEndOfPackageFile{array}{\ltj@lltjext@patch@array} +} + + +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua index 729f186f37b..1bceda3cce2 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-adjust.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.adjust', - date = '2014/02/02', + date = '2014/09/30', description = 'Advanced line adjustment for LuaTeX-ja', }) module('luatexja.adjust', package.seeall) @@ -11,6 +11,7 @@ module('luatexja.adjust', package.seeall) luatexja.load_module('jfont'); local ltjf = luatexja.jfont luatexja.load_module('jfmglue'); local ltjj = luatexja.jfmglue luatexja.load_module('stack'); local ltjs = luatexja.stack +luatexja.load_module('direction'); local ltjd = luatexja.direction local Dnode = node.direct or node @@ -45,7 +46,7 @@ local id_glue_spec = node.id('glue_spec') local id_whatsit = node.id('whatsit') local attr_icflag = luatexbase.attributes['ltj@icflag'] local attr_jchar_class = luatexbase.attributes['ltj@charclass'] -local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] +local lang_ja = luatexja.lang_ja local ltjf_font_metric_table = ltjf.font_metric_table local spec_zero_glue = ltjj.spec_zero_glue @@ -87,7 +88,7 @@ local function get_stretched(q, go, gs) else return 0 end else -- shrinking - if getfield(qs, 'shrink_order') == go then + if getfield(qs, 'shrink_order') == go then return getfield(qs, 'shrink') else return 0 end @@ -97,7 +98,7 @@ end local res = {} local gs_used_line = {} local function get_total_stretched(p, line) - local go, gf, gs + local go, gf, gs = getfield(p, 'glue_order'), getfield(p, 'glue_set'), getfield(p, 'glue_sign') if go ~= 0 then return nil end res[0], res.glue_set, res.name = 0, gf, (gs==1) and 'stretch' or 'shrink' @@ -106,7 +107,7 @@ local function get_total_stretched(p, line) local total = 0 for q in node_traverse_id(id_glue, getlist(p)) do local a, ic = get_stretched(q, go, gs), get_attr_icflag(q) - if type(res[ic]) == 'number' then + if type(res[ic]) == 'number' then -- kanjiskip, xkanjiskip は段落内で spec を共有しているが, -- それはここでは望ましくないので,各 glue ごとに異なる spec を使う. -- 本当は各行ごとに glue_spec を共有させたかったが,安直にやると @@ -127,7 +128,7 @@ local function get_total_stretched(p, line) elseif ic == XKANJI_SKIP_JFM then ic = XKANJI_SKIP end res[ic], total = res[ic] + a, total + a - else + else res[0], total = res[0] + a, total + a end end @@ -155,11 +156,11 @@ local function set_stretch(p, after, before, ic, name) end for q in node_traverse_id(id_glue, getlist(p)) do local f = get_attr_icflag(q) - if (f == ic) or ((ic ==KANJI_SKIP) and (f == KANJI_SKIP_JFM)) + if (f == ic) or ((ic ==KANJI_SKIP) and (f == KANJI_SKIP_JFM)) or ((ic ==XKANJI_SKIP) and (f == XKANJI_SKIP_JFM)) then local qs, do_flag = getfield(q, 'spec'), true - for i=1,#set_stretch_table do - if set_stretch_table[i]==qs then do_flag = false end + for i=1,#set_stretch_table do + if set_stretch_table[i]==qs then do_flag = false end end if getfield(qs, 'writable') and getfield(qs, name..'_order')==0 and do_flag then setfield(qs, name, getfield(qs, name)*ratio) @@ -171,35 +172,35 @@ local function set_stretch(p, after, before, ic, name) end -- step 1: 行末に kern を挿入(句読点,中点用) +local ltjd_glyph_from_packed = ltjd.glyph_from_packed local function aw_step1(p, res, total) local head = getlist(p) local x = node_tail(head); if not x then return false end -- x: \rightskip x = node_prev(x); if not x then return false end - if getid(x) == id_glue and getsubtype(x) == 15 then + local xi, xc = getid(x) + if xi == id_glue and getsubtype(x) == 15 then -- 段落最終行のときは,\penalty10000 \parfillskip が入るので, -- その前の node が本来の末尾文字となる - x = node_prev(node_prev(x)) + x = node_prev(node_prev(x)); xi = getid(x) end -- local xi = getid(x) - -- while (get_attr_icflag(x) == PACKED) + -- while (get_attr_icflag(x) == PACKED) -- and ((xi == id_penalty) or (xi == id_kern) or (xi == id_kern)) do -- x = node_prev(x); xi = getid(x) -- end - local xi, xc = getid(x) - if xi == id_glyph and has_attr(x, attr_curjfnt) == getfont(x) then + if xi == id_glyph and getfield(x, 'lang')==lang_ja then -- 和文文字 xc = x elseif xi == id_hlist and get_attr_icflag(x) == PACKED then -- packed JAchar - xc = getlist(x) - while getid(xc) == id_whatsit do xc = node_next(xc) end + xc = ltjd_glyph_from_packed(x) + while getid(xc) == id_whatsit do xc = node_next(xc) end -- これはなんのために? else return false-- それ以外は対象外. end local xk = ltjf_font_metric_table[getfont(xc)] - xk = xk.char_type[has_attr(xc, attr_jchar_class) or 0] - xk = xk['end_' .. res.name] or 0 + .char_type[has_attr(xc, attr_jchar_class) or 0]['end_' .. res.name] or 0 if xk>0 and total>=xk then total = total - xk @@ -255,12 +256,12 @@ end local ltjs_fast_get_stack_skip = ltjs.fast_get_stack_skip -local function adjust_width(head) +local function adjust_width(head) if not head then return head end local line = 1 for p in node_traverse_id(id_hlist, to_direct(head)) do line = line + 1 - local res, total = get_total_stretched(p, line) + local res, total = get_total_stretched(p, line) -- this is the same table as the table which is def'd in l. 92 if res and res.glue_set<1 then total = round(total * res.glue_set) @@ -277,7 +278,7 @@ do local is_reg = false function enable_cb() if not is_reg then - luatexbase.add_to_callback('post_linebreak_filter', + luatexbase.add_to_callback('post_linebreak_filter', adjust_width, 'Adjust width', 100) is_reg = true end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua index 0275521ec4a..f5535d65c67 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.lua @@ -8,12 +8,13 @@ local node, table, tex, token = node, table, tex, token local cat_lp = luatexbase.catcodetables['latex-package'] -------------------- -luatexja.base = {} +local ltjb = {} +luatexja.base = ltjb local public_name = 'luatexja' local public_version = 'alpha' -luatexja.base.public_name = public_name -luatexja.base.public_version = public_version +ltjb.public_name = public_name +ltjb.public_version = public_version -------------------- Fully-expandable error messaging @@ -150,7 +151,7 @@ local function mprint(...) end return tex.print(unpack(lines)) end -luatexja.base.mprint = mprint +ltjb.mprint = mprint -------------------- Handling of TeX values do @@ -226,9 +227,9 @@ do s.shrink or 0, s.shrink_order or 0)) end - luatexja.base.to_dimen = to_dimen - luatexja.base.dump_skip = dump_skip - luatexja.base.to_skip = to_skip + ltjb.to_dimen = to_dimen + ltjb.dump_skip = dump_skip + ltjb.to_skip = to_skip end -------------------- Virtual table for LaTeX counters @@ -245,7 +246,7 @@ do function mt_counter.__newindex(tbl, key, val) tex.count['c@'..key] = val end - luatexja.base.counter = counter + ltjb.counter = counter --! ixbase.length は tex.skip と全く同じなので不要. end @@ -391,8 +392,8 @@ do end) end - luatexja.base.scan_brace = scan_brace - luatexja.base.scan_number = scan_number + ltjb.scan_brace = scan_brace + ltjb.scan_number = scan_number end -------------------- TeX register allocation @@ -429,23 +430,11 @@ do return token.create(name)[2] - cmod_base_skip end - luatexja.base.const_number = const_number - luatexja.base.count_number = count_number - luatexja.base.attribute_number = attribute_number - luatexja.base.dimen_number = dimen_number - luatexja.base.skip_number = skip_number -end - --------------------- mock of debug logger -if not debug or debug == _G.debug then - local function no_op() end - debug = no_op - package_debug = no_op - show_term = no_op - show_log = no_op - function debug_logger() - return no_op - end + ltjb.const_number = const_number + ltjb.count_number = count_number + ltjb.attribute_number = attribute_number + ltjb.dimen_number = dimen_number + ltjb.skip_number = skip_number end -------------------- getting next token @@ -454,7 +443,7 @@ local function get_cs(s) cstemp = token.csname_name(token.get_next()) tex.sprint(cat_lp,'\\' .. s) end -luatexja.base.get_cs = get_cs +ltjb.get_cs = get_cs -------------------- common error message do @@ -471,7 +460,7 @@ do end return c end - luatexja.base.in_unicode = in_unicode + ltjb.in_unicode = in_unicode end -------------------- cache management @@ -569,36 +558,53 @@ do end end - luatexja.base.load_cache = load_cache - luatexja.base.save_cache_luc = save_cache_luc - luatexja.base.save_cache = save_cache + ltjb.load_cache = load_cache + ltjb.save_cache_luc = save_cache_luc + ltjb.save_cache = save_cache end -luatexja.base._error_set_break = _error_set_break -luatexja.base._error_set_message = _error_set_message -luatexja.base._error_show = _error_show -luatexja.base._generic_warn_info = _generic_warn_info - -luatexja.base.package_error = package_error -luatexja.base.package_warning = package_warning -luatexja.base.package_warning_no_line = package_warning_no_line -luatexja.base.package_info = package_info -luatexja.base.package_info_no_line = package_info_no_line - -luatexja.base.generic_error = generic_error -luatexja.base.generic_warning = generic_warning -luatexja.base.generic_warning_no_line = generic_warning_no_line -luatexja.base.generic_info = generic_info -luatexja.base.generic_info_no_line = generic_info_no_line - -luatexja.base.ltj_warning_no_line = ltj_warning_no_line -luatexja.base.ltj_error = ltj_error - -luatexja.base.debug = debug -luatexja.base.package_debug = package_debug -luatexja.base.debug_logger = debug_logger -luatexja.base.show_term = show_term -luatexja.base.show_log = show_log +---- +do + local tex_set_attr, tex_get_attr = tex.setattribute, tex.getattribute + function ltjb.ensure_tex_attr(a, v) + if tex_get_attr(a)~=v then + tex_set_attr(a, v) + end + end +end +---- + +ltjb._error_set_break = _error_set_break +ltjb._error_set_message = _error_set_message +ltjb._error_show = _error_show +ltjb._generic_warn_info = _generic_warn_info + +ltjb.package_error = package_error +ltjb.package_warning = package_warning +ltjb.package_warning_no_line = package_warning_no_line +ltjb.package_info = package_info +ltjb.package_info_no_line = package_info_no_line + +ltjb.generic_error = generic_error +ltjb.generic_warning = generic_warning +ltjb.generic_warning_no_line = generic_warning_no_line +ltjb.generic_info = generic_info +ltjb.generic_info_no_line = generic_info_no_line + +ltjb.ltj_warning_no_line = ltj_warning_no_line +ltjb.ltj_error = ltj_error + +-------------------- mock of debug logger +if not ltjb.out_debug then + local function no_op() end + ltjb.start_time_measure = no_op + ltjb.stop_time_measure = no_op + ltjb.out_debug = no_op + ltjb.package_debug = no_op + ltjb.debug_logger = function() return no_op end + ltjb.show_term = no_op + ltjb.show_log = no_op +end -------------------- all done -- EOF diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty index d30221e0c51..b8b7855476f 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-base.sty @@ -23,8 +23,8 @@ \newcount\ltj@tempcntb \newcount\ltj@tempcntc \newdimen\ltj@tempdima -\newskip\ltj@tempskipa -\newtoks\ltj@temptoks +% \newskip\ltj@tempskipa unused +% \newtoks\ltj@temptoks unused \countdef\ltj@@count@zero=0 % \luatexattributedef\ltj@@attr@zero=0 % @@ -512,6 +512,33 @@ luatexja.base._error_show(true)% and many spaces trail! \def#1{\ltj@package@debug{#2}} } +%% \ltj@afterbox <token><box> +%% -> \setbox\ltj@afbox<box><token> +%% from Sonja Maus, ``Looking Ahead for a <box>'', +%% TUGBoat, 11, No. 4, 1990. +\newbox\ltj@afbox +\protected\def\ltj@afterbox#1{% + \def\ltj@afb@xarg{#1}% + \afterassignment\ltj@afb@x + \chardef\next`.} +\def\ltj@afb@x{\futurelet\next\ltj@afb@xtest} +\def\ltj@afb@xtest{% + \ifcase\ifx\next\hbox\tw@\fi + \ifx\next\vbox\tw@\fi + \ifx\next\vtop\tw@\fi + \ifx\next\box\@ne\fi + \ifx\next\copy\@ne\fi + \ifx\next\vsplit\@ne\fi + \ifx\next\lastbox\@ne\fi + 0% ``A <box> was ...'' error will be causes by \setbox later anyway. + \or\afterassignment\ltj@afb@xarg + \or\afterassignment\ltj@afb@xagarg + \fi + \setbox\ltj@afbox +} +\def\ltj@afb@xagarg{\aftergroup\ltj@afb@xarg} + + %%------------------ all done \ltj@base@AtEnd \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua index e2d97de7134..020cec9a3c3 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-charrange.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.charrange', - date = '2014/01/19', + date = '2014/05/08', description = 'Handling the range of Japanese characters', }) module('luatexja.charrange', package.seeall) @@ -24,13 +24,16 @@ local pow = math.pow local kcat_attr_table = {} local pow_table = {} local fn_table = {} -- used in is_ucs_in_japanese_char_direct +local nfn_table = {} -- used in is_ucs_in_japanese_char_node for i = 0, 31*ATTR_RANGE-1 do - kcat_attr_table[i] = luatexbase.attributes['ltj@kcat'..floor(i/31)] - pow_table[i] = pow(2, i%31) - fn_table[i] = function(p) - return floor(has_attr(p, kcat_attr_table[i])/pow_table[i])%2 ~= jcr_noncjk - end + local ka, pw = luatexbase.attributes['ltj@kcat'..floor(i/31)], 1/pow(2, i%31) + local jcr_noncjk = jcr_noncjk + kcat_attr_table[i], pow_table[i] = ka, pow(2, i%31) + fn_table[i] = function(p) return floor(has_attr(p, ka)*pw)%2 ~= jcr_noncjk end + nfn_table[i] = function(p) return floor(has_attr_node(p, ka)*pw)%2 ~= jcr_noncjk end end +fn_table[-1] = function() return false end -- for char --U+007F +nfn_table[-1] = function() return false end -- for char --U+007F pow_table[31*ATTR_RANGE] = pow(2, 31) -- jcr_table_main[chr_code] = index @@ -42,6 +45,7 @@ jcr_table_main = {} local jcr_table_main = jcr_table_main local ucs_out = 0x110000 +for i=0x0 ,0x7F do jcr_table_main[i]=-1 end for i=0x80 ,0xFF do jcr_table_main[i]=1 end for i=0x100,ucs_out-1 do jcr_table_main[i]=0 end @@ -68,12 +72,8 @@ function add_char_range(b,e,ind) -- ind: external range number end function char_to_range(c) -- return the external range number - c=ltjb.in_unicode(c, false) - if c<0x80 then return -1 - else - local r = jcr_table_main[c] or 217 - return (r and r~=0) and r or 217 - end + local r = jcr_table_main[ltjb.in_unicode(c, false)] or 217 + return (r~=0) and r or 217 end function get_range_setting(i) -- i: internal range number @@ -82,29 +82,17 @@ end -- glyph_node p は和文文字か? function is_ucs_in_japanese_char_node(p) - local c = p.char - if c<0x80 then - return false - else - local i=jcr_table_main[c] - return (floor( - has_attr_node(p, kcat_attr_table[i])/pow_table[i])%2 ~= jcr_noncjk) - end + return nfn_table[jcr_table_main[c or p.char]](p) end is_ucs_in_japanese_char = is_ucs_in_japanese_char_node +-- only ltj-otf.lua uses this version -function is_ucs_in_japanese_char_direct(p) - local c = getchar(p) - if c<0x80 then - return false - else - return fn_table[jcr_table_main[c]](p) - end +function is_ucs_in_japanese_char_direct(p ,c) + return fn_table[jcr_table_main[c or getchar(p)]](p) end function is_japanese_char_curlist(c) -- assume that c>=0x80 - local i=jcr_table_main[c] - return get_range_setting(i)~= jcr_noncjk + return get_range_setting(jcr_table_main[c])~= jcr_noncjk end -- EXT @@ -120,7 +108,8 @@ function toggle_char_range(g, i) -- i: external range number if i>=7*ATTR_RANGE then i=0 end local attr = kcat_attr_table[i] local a = tex_getattr(attr) - tex.setattribute(g,attr,(floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i]) + tex.setattribute(g, attr, + (floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i]) end end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua index af5da70c41c..bc8ac9d6795 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-compat.lua @@ -20,7 +20,7 @@ end -- \kuten, \jis, \euc, \sjis, \ucs, \kansuji local function to_kansuji(num) if not num then num=0; return - elseif num<0 then + elseif num<0 then num = -num; tex.write('-') end local s = "" @@ -35,34 +35,34 @@ end -- \ucs: 単なる identity local function from_ucs(i) - if type(i)~='number' then + if type(i)~='number' then ltjb.package_error('luatexja', "invalid character code (".. tostring(i) .. ")", "I'm going to use 0 instead of that illegal character code.") - i=0 + i=0 end tex.write(i) end -- \kuten: 面区点 (それぞれで16進2桁を使用)=> Unicode 符号位置 local function from_kuten(i) - if type(i)~='number' then + if type(i)~='number' then ltjb.package_error('luatexja', "invalid character code (".. tostring(i) .. ")", "I'm going to use 0 instead of that illegal character code.") - i=0 + i=0 end tex.write(tostring(jisx0208.table_jisx0208_uptex[i] or 0)) end -- \euc: EUC-JP による符号位置 => Unicode 符号位置 local function from_euc(i) - if type(i)~='number' then + if type(i)~='number' then ltjb.package_error('luatexja', "invalid character code (".. tostring(i) .. ")", "I'm going to use 0 instead of that illegal character code.") i=0 - elseif i>=0x10000 or i<0xa0a0 then + elseif i>=0x10000 or i<0xa0a0 then i=0 end from_kuten(i-0xa0a0) @@ -70,7 +70,7 @@ end -- \jis: ISO-2022-JP による符号位置 => Unicode 符号位置 local function from_jis(i) - if (type(i)~='number') or i>=0x10000 or i<0 then + if (type(i)~='number') or i>=0x10000 or i<0 then ltjb.package_error('luatexja', "invalid character code (".. tostring(i) .. ")", "I'm going to use 0 instead of that illegal character code.") @@ -81,19 +81,19 @@ end -- \sjis: Shift_JIS による符号位置 => Unicode 符号位置 local function from_sjis(i) - if (type(i)~='number') or i>=0x10000 or i<0 then + if (type(i)~='number') or i>=0x10000 or i<0 then ltjb.package_error('luatexja', "invalid character code (".. tostring(i) .. ")", "I'm going to use 0 instead of that illegal character code.") - tex.write('0'); return + tex.write('0'); return end local c2 = math.floor(i/256) local c1 = i%256 local shift_jisx0213_s1a3_table = { - { [false]= 1, [true]= 8}, - { [false]= 3, [true]= 4}, - { [false]= 5, [true]=12}, - { [false]=13, [true]=14}, + { [false]= 1, [true]= 8}, + { [false]= 3, [true]= 4}, + { [false]= 5, [true]=12}, + { [false]=13, [true]=14}, { [false]=15 } } if c2 >= 0x81 then if c2 >= 0xF0 then -- this if block won't be true diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-debug.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-debug.lua index a7055bbb015..ac517500e8e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-debug.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-debug.lua @@ -1,15 +1,9 @@ -- -- luatexja/debug.lua -- -luatexbase.provides_module({ - name = 'luatexja.debug', - date = '2011/05/14', - description = '', -}) -module('luatexja.debug', package.seeall) -local err, warn, info, log = luatexbase.errwarinf(_NAME) - -local table = table +local ltjdbg = {} +luatexja.debug = ltjdbg +local table, string = table, string -------------------- pretty-print @@ -32,7 +26,7 @@ local function normal_serialize(t) return ret end -function table_tosource(t) +local function table_tosource(t) if not next(t) then return "{}" end local res_n = "\127"..normal_serialize({t}).."\127" local s, e, cap = res_n:find("\127{\n ({ .* }),\n}\127") @@ -40,15 +34,17 @@ function table_tosource(t) else return normal_serialize(t) end end +ltjdbg.table_tosource = table_tosource -function function_tosource(f) +local function function_tosource(f) local res = normal_serialize({f}) return res:sub(4, res:len() - 3) end +ltjdbg.function_tosource = function_tosource --! 値 v をそれを表すソース文字列に変換する. --! lualibs の table.serialize() の処理を利用している. -function tosource(v) +local function tosource(v) local tv = type(v) if tv == "function" then return function_tosource(v) elseif tv == "table" then return table_tosource(v) @@ -56,6 +52,7 @@ function tosource(v) else return tostring(v) end end +ltjdbg.tosource = tosource local function coerce(f, v) if f == "q" then return "s", tosource(v) @@ -79,26 +76,73 @@ end --! - %q は全ての型について tosource() に変換 --! - <%> の代わりに <`> も使える (TeX での使用のため) --! - %d, %s 等でキャストを行う -function pformat(fmt, ...) +local function pformat(fmt, ...) if type(fmt) == "string" then return do_pformat(fmt, ...) else return tosource(fmt) end end +ltjdbg.pformat = pformat + +-------------------- 所要時間合計 +require("socket") +do + local max = math.max + local gettime = socket.gettime + local time_stat = {} + local function start_time_measure(n) + if not time_stat[n] then + time_stat[n] = {1, -gettime()} + else + local t = time_stat[n] + t[1], t[2] = t[1]+1, t[2]-gettime() + end + end + local function stop_time_measure(n) + local t = time_stat[n] + t[2] = t[2] + gettime() + end + + local function print_measure() + stop_time_measure('RUN') + local temp = {} + for i,v in pairs(time_stat) do + temp[#temp+1] = { i, v[1], v[2], v[2]/v[1] } + end + table.sort(temp, function (a,b) return (a[4]>b[4]) end) + print() + print('desc', 'ave. (us)', 'times', 'total (ms)') + for _,v in ipairs(temp) do + print ((v[1] .. ' '):sub(1,16), 1000000*v[4], v[2], 1000*v[3]) + end + end + if luatexja.base then + luatexja.base.start_time_measure = start_time_measure + luatexja.base.stop_time_measure = stop_time_measure + luatexbase.add_to_callback('stop_run', print_measure, 'luatexja.time_measure', 1) + luatexbase.add_to_callback('pre_linebreak_filter', + function(p) + start_time_measure('tex_linebreak'); return p + end, + 'measure_tex_linebreak', 20000) + end +end -------------------- debug logging - +do local debug_show_term = true local debug_show_log = true --! デバッグログを端末に出力するか -function show_term(v) +local function show_term(v) debug_show_term = v end +ltjdbg.show_term = show_term --! デバッグログをログファイルに出力するか function show_log(v) debug_show_log = v end +ltjdbg.show_log = show_log local function write_debug_log(s) local target @@ -112,31 +156,32 @@ local function write_debug_log(s) end --! デバッグログ出力. 引数は pformat() と同じ. -function debug(...) +local function out_debug(...) if debug_show_term or debug_show_log then write_debug_log("%DEBUG:"..pformat(...)) end end --! デバッグログ出力, パッケージ名付き. -function package_debug(pkg, ...) +local function package_debug(pkg, ...) if debug_show_term or debug_show_log then write_debug_log("%DEBUG("..pkg.."):"..pformat(...)) end end --! パッケージ名付きデバッグログ出力器を得る. -function debug_logger(pkg) +local function debug_logger(pkg) return function(...) package_debug(pkg, ...) end end if luatexja.base then - luatexja.base.debug = debug + luatexja.base.out_debug = out_debug luatexja.base.package_debug = package_debug luatexja.base.debug_logger = debug_logger luatexja.base.show_term = show_term luatexja.base.show_log = show_log end +end -------------------- all done -- EOF diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua new file mode 100644 index 00000000000..c05d0ed6c35 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-direction.lua @@ -0,0 +1,1106 @@ +-- +-- src/ltj-direction.lua +-- + +luatexja.load_module('base'); local ltjb = luatexja.base +luatexja.load_module('stack'); local ltjs = luatexja.stack +luatexja.direction = {} + +local attr_dir = luatexbase.attributes['ltj@dir'] +local attr_icflag = luatexbase.attributes['ltj@icflag'] + +local cat_lp = luatexbase.catcodetables['latex-package'] +local Dnode = node.direct or node +local nullfunc = function (n) return n end +local to_node = (Dnode ~= node) and Dnode.tonode or nullfunc +local to_direct = (Dnode ~= node) and Dnode.todirect or nullfunc +local has_attr = Dnode.has_attribute +local set_attr = Dnode.set_attribute +local insert_before = Dnode.insert_before +local insert_after = Dnode.insert_after +local getid = (Dnode ~= node) and Dnode.getid or function(n) return n.id end +local getsubtype = (Dnode ~= node) and Dnode.getsubtype or function(n) return n.subtype end +local getlist = (Dnode ~= node) and Dnode.getlist or function(n) return n.head end +local setfield = (Dnode ~= node) and Dnode.setfield or function(n, i, c) n[i] = c end +local getfield = (Dnode ~= node) and Dnode.getfield or function(n, i) return n[i] end +local node_new = Dnode.new +local node_tail = Dnode.tail +local node_free = Dnode.free +local node_remove = Dnode.remove +local node_next = (Dnode ~= node) and Dnode.getnext or node.next +local traverse = Dnode.traverse +local traverse_id = Dnode.traverse_id +local start_time_measure, stop_time_measure + = ltjb.start_time_measure, ltjb.stop_time_measure +local abs = math.abs + +local id_kern = node.id('kern') +local id_hlist = node.id('hlist') +local id_vlist = node.id('vlist') +local id_whatsit = node.id('whatsit') +local sid_save = node.subtype('pdf_save') +local sid_restore = node.subtype('pdf_restore') +local sid_matrix = node.subtype('pdf_setmatrix') +local sid_user = node.subtype('user_defined') + +local tex_nest = tex.nest +local tex_getcount = tex.getcount +local ensure_tex_attr = ltjb.ensure_tex_attr +local PROCESSED = luatexja.icflag_table.PROCESSED +local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG +local PACKED = luatexja.icflag_table.PACKED +local DIR = luatexja.userid_table.DIR +local dir_tate = luatexja.dir_table.dir_tate +local dir_yoko = luatexja.dir_table.dir_yoko +local dir_dtou = luatexja.dir_table.dir_dtou +local dir_utod = luatexja.dir_table.dir_utod +local dir_math_mod = luatexja.dir_table.dir_math_mod +local dir_node_auto = luatexja.dir_table.dir_node_auto +local dir_node_manual = luatexja.dir_table.dir_node_manual +local function get_attr_icflag(p) + return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG +end + +local page_direction +-- +local dir_pool +do + local node_copy = Dnode.copy + dir_pool = {} + for _,i in pairs({dir_tate, dir_yoko, dir_dtou, dir_utod}) do + local w = node_new(id_whatsit, sid_user) + set_attr(w, attr_dir, i) + setfield(w, 'user_id', DIR) + setfield(w, 'type', 110) + setfield(w, 'next', nil) + dir_pool[i] = function () return node_copy(w) end + end +end + +-- +local function adjust_badness(hd) + if not node_next(hd) and getid(hd)==id_whatsit and getsubtype(hd)==sid_user + and getfield(hd, 'user_id')==DIR then + -- avoid double whatsit + luatexja.global_temp=tex.globaldefs; tex.globaldefs=0 + luatexja.hbadness_temp=tex.hbadness; tex.hbadness=10000 + luatexja.vbadness_temp=tex.vbadness; tex.vbadness=10000 + else + luatexja.global_temp = nil + luatexja.hbadness_temp=nil + luatexja.vbadness_temp=nil + end +end + +local get_dir_count, get_adjust_dir_count +do + local function get_dir_count_inner(h) + if h then + if h.id==id_whatsit and h.subtype==sid_user and h.user_id==DIR then + local ic = node.has_attribute(h, attr_icflag) or 0 + return (ic<PROCESSED_BEGIN_FLAG) + and (node.has_attribute(h,attr_dir)%dir_node_auto) or 0 + else + return 0 + end + else + return 0 + end + end + function get_dir_count() + for i=tex_nest.ptr, 1, -1 do + local h = tex_nest[i].head.next + if h then + local t = get_dir_count_inner(h) + if t~=0 then return t end + end + end + return page_direction + end + function get_adjust_dir_count() + for i=tex_nest.ptr, 1, -1 do + local v = tex_nest[i] + local h, m = v.head.next, v.mode + if abs(m)== ltjs.vmode and h then + local t = get_dir_count_inner(h) + if t~=0 then return t end + end + end + return page_direction + end + luatexja.direction.get_dir_count = get_dir_count + luatexja.direction.get_adjust_dir_count = get_adjust_dir_count +end + + +-- \tate, \yoko,\dtou, \utod +do + local node_next = node.next + local node_set_attr = node.set_attribute + local node_traverse = node.traverse + local STCK = luatexja.userid_table.STCK + local IHB = luatexja.userid_table.IHB + + local function test_list(h, lv) + if not h then + return 2 -- need to create dir_whatsit + else + local flag = 2 -- need to create dir_whatsit + local w + for p in node_traverse(h) do + if p.id==id_whatsit then + if p.subtype==sid_user then + local uid= p.user_id + if uid==DIR then + flag = 1; w = w or p -- found + elseif not(uid==IHB or uid==STCK) then + flag = 0; break -- error + end + else + flag = 0; break + end + else + flag = 0; break + end + end + if flag==1 then -- dir_whatsit already exists + return 1,w + else + return flag + end + end + end + function luatexja.direction.set_list_direction_hook(v) + local lv = tex_nest.ptr -- must be >= 1 + if not v then + v = get_dir_count() + if abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then + v = dir_utod + end + elseif v=='adj' then + v = get_adjust_dir_count() + end + local h = to_direct(tex_nest[lv].head) + local w = dir_pool[v]() + insert_after(h, h, w) + tex_nest[lv].tail = to_node(node_tail(w)) + ensure_tex_attr(attr_icflag, 0) + ensure_tex_attr(attr_dir, 0) + end + + local function set_list_direction(v, name) + local lv = tex_nest.ptr + if not v then + v,name = get_dir_count(), nil + if lv>=1 and abs(tex_nest[lv-1].mode) == ltjs.mmode and v == dir_tate then + v = dir_utod + end + elseif v=='adj' then + v,name = get_adjust_dir_count(), nil + end + if tex.currentgrouptype==6 then + ltjb.package_error( + 'luatexja', + "You can't use `\\" .. name .. "' in an align", + "To change direction in an align, \n" + .. "you shold use \\hbox or \\vbox.") + else + local h = (lv==0) and tex.lists.page_head or tex_nest[lv].head.next + local flag,w = test_list(h,lv) + if flag==0 then + if lv==0 and not page_direction then + page_direction = v -- for first call of \yoko (in luatexja-core.sty) + else + ltjb.package_error( + 'luatexja', + "Use `\\" .. tostring(name) .. "' at top of list", + 'Direction change command by LuaTeX-ja is available\n' + .. 'only when the current list is null.') + end + elseif flag==1 then + node_set_attr(w, attr_dir, v) + if lv==0 then page_direction = v end + else + if lv==0 then page_direction = v end + end + ensure_tex_attr(attr_icflag, 0) + end + ensure_tex_attr(attr_dir, 0) + end + luatexja.direction.set_list_direction = set_list_direction +end + +-- ボックスに dir whatsit を追加 +local function create_dir_whatsit(hd, gc, new_dir) + if getid(hd)==id_whatsit and + getsubtype(hd)==sid_user and getfield(hd, 'user_id')==DIR then + set_attr(hd, attr_icflag, + get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG) + local n = node_next(hd) + if n then + set_attr(n, attr_icflag, + get_attr_icflag(n) + PROCESSED_BEGIN_FLAG) + end + ensure_tex_attr(attr_icflag, 0) + return hd + else + local w = dir_pool[new_dir]() + setfield(w, 'next', hd) + set_attr(w, attr_icflag, PROCESSED_BEGIN_FLAG) + set_attr(hd, attr_icflag, + get_attr_icflag(hd) + PROCESSED_BEGIN_FLAG) + ensure_tex_attr(attr_icflag, 0) + ensure_tex_attr(attr_dir, 0) + return w + end +end + +-- hpack_filter, vpack_filter, post_line_break_filter +-- の結果を組方向を明示するため,先頭に dir_node を設置 +do + local function create_dir_whatsit_hpack(h, gc) + local hd = to_direct(h) + if gc=='fin_row' or gc == 'preamble' then + if hd then + set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG) + ensure_tex_attr(attr_icflag, 0) + end + return h + else + adjust_badness(hd) + return to_node(create_dir_whatsit(hd, gc, ltjs.list_dir)) + end + end + + luatexbase.add_to_callback('hpack_filter', + create_dir_whatsit_hpack, 'ltj.create_dir_whatsit', 10000) +end + +do + local function create_dir_whatsit_parbox(h, gc) + stop_time_measure('tex_linebreak') + -- start 側は ltj-debug.lua に + local new_dir = ltjs.list_dir + for line in traverse_id(id_hlist, to_direct(h)) do + setfield(line, 'head', create_dir_whatsit(getlist(line), gc, new_dir) ) + end + ensure_tex_attr(attr_dir, 0) + return h + end + luatexbase.add_to_callback('post_linebreak_filter', + create_dir_whatsit_parbox, 'ltj.create_dir_whatsit', 10000) +end + +local create_dir_whatsit_vbox +do + local wh = {} + local id_glue, sid_parskip = node.id('glue'), 3 + create_dir_whatsit_vbox = function (hd, gc) + ltjs.list_dir = get_dir_count() + -- remove dir whatsit + for x in traverse_id(id_whatsit, hd) do + if getsubtype(x)==sid_user and getfield(x, 'user_id')==DIR then + wh[#wh+1]=x + end + end + if hd==wh[1] then + ltjs.list_dir =has_attr(hd,attr_dir) + local x = node_next(hd) + if getid(x)==id_glue and getsubtype(x)==sid_parskip then + node_remove(hd,x); node_free(x) + end + end + for i=1,#wh do + hd = node_remove(hd, wh[i]); node_free(wh[i]); wh[i] = nil + end + if gc=='fin_row' then -- gc == 'preamble' case is treated in dir_adjust_vpack + if hd then + set_attr(hd, attr_icflag, PROCESSED_BEGIN_FLAG) + ensure_tex_attr(attr_icflag, 0) + end + return hd + else + local n =node_next(hd) + if gc=='vtop' then + local w = create_dir_whatsit(hd, gc, ltjs.list_dir) + -- move dir whatsit after hd + setfield(hd, 'next', w); setfield(w, 'next', n) + return hd + else + hd = create_dir_whatsit(hd, gc, ltjs.list_dir) + return hd + end + end + end +end + +-- dir_node に包む方法を書いたテーブル +local dir_node_aux +do + local floor = math.floor + local get_h =function (w,h,d) return h end + local get_d =function (w,h,d) return d end + local get_h_d =function (w,h,d) return h+d end + local get_h_d_neg =function (w,h,d) return -h-d end + local get_d_neg =function (w,h,d) return -d end + local get_w_half =function (w,h,d) return floor(0.5*w) end + local get_w_half_rem =function (w,h,d) return w-floor(0.5*w) end + local get_w_neg =function (w,h,d) return -w end + local get_w =function (w,h,d) return w end + local zero = function() return 0 end + dir_node_aux = { + [dir_yoko] = { -- yoko を + [dir_tate] = { -- tate 中で組む + width = get_h_d, + height = get_w_half, + depth = get_w_half_rem, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 1 -1 0' }, + { 'kern', function(w,h,d,nw,nh,nd) return -nd end }, + { 'box' , get_h}, + { 'kern', function(w,h,d,nw,nh,nd) return nd-w end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 1 -1 0' }, + { 'kern' , zero }, + { 'box' , function(w,h,d,nw,nh,nd) return -nh-nd end }, + { 'kern', get_h_d_neg}, + { 'whatsit', sid_restore }, + }, + }, + [dir_dtou] = { -- dtou 中で組む + width = get_h_d, + height = get_w, + depth = zero, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 -1 1 0' }, + { 'kern', function(w,h,d,nw,nh,nd) return -nh end }, + { 'box', get_d_neg }, + { 'kern', function(w,h,d,nw,nh,nd) return nh-w end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 -1 1 0' }, + { 'kern', get_h_d_neg }, + { 'box', zero }, + { 'whatsit', sid_restore }, + }, + }, + }, + [dir_tate] = { -- tate を + [dir_yoko] = { -- yoko 中で組む + width = get_h_d, + height = get_w, + depth = zero, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 -1 1 0' }, + { 'kern', function (w,h,d,nw,nh,nd) return -nh end }, + { 'box' , get_d_neg }, + { 'kern', function (w,h,d,nw,nh,nd) return nh-w end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 -1 1 0' }, + { 'kern', get_h_d_neg }, + { 'box', zero }, + { 'whatsit', sid_restore }, + }, + }, + [dir_dtou] = { -- dtou 中で組む + width = get_w, + height = get_d, + depth = get_h, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '-1 0 0 -1' }, + { 'kern', get_w_neg }, + { 'box', function (w,h,d,nw,nh,nd) return h-nd end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'whatsit', sid_save }, + { 'rotate', '-1 0 0 -1' }, + { 'kern', get_h_d_neg }, + { 'box', get_w_neg }, + { 'whatsit', sid_restore }, + }, + }, + }, + [dir_dtou] = { -- dtou を + [dir_yoko] = { -- yoko 中で組む + width = get_h_d, + height = get_w, + depth = zero, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '0 1 -1 0' }, + { 'kern', function (w,h,d,nw,nh,nd) return -nd end }, + { 'box', get_h }, + { 'kern', function (w,h,d,nw,nh,nd) return nd-w end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'kern', zero }, + { 'whatsit', sid_save }, + { 'rotate', '0 1 -1 0' }, + { 'box', function (w,h,d,nw,nh,nd) return -nd-nh end }, + { 'kern', get_h_d_neg }, + { 'whatsit', sid_restore }, + }, + }, + [dir_tate] = { -- tate 中で組む + width = get_w, + height = get_d, + depth = get_h, + [id_hlist] = { + { 'whatsit', sid_save }, + { 'rotate', '-1 0 0 -1' }, + { 'kern', get_w_neg }, + { 'box', function (w,h,d,nw,nh,nd) return h-nd end }, + { 'whatsit', sid_restore }, + }, + [id_vlist] = { + { 'whatsit', sid_save }, + { 'rotate', ' -1 0 0 -1' }, + { 'kern', function (w,h,d,nw,nh,nd) return -nh-nd end }, + { 'box', get_w_neg }, + { 'kern', function (w,h,d,nw,nh,nd) return nh+nd-h-d end }, + { 'whatsit', sid_restore }, + }, + }, + }, + } +end + +-- 1st ret val: b の組方向 +-- 2nd ret val はその DIR whatsit +local function get_box_dir(b, default) + start_time_measure('get_box_dir') + local dir = has_attr(b, attr_dir) or 0 + local bh = getfield(b,'head') + -- b は insert node となりうるので getlist() は使えない + local c + for bh in traverse_id(id_whatsit, bh) do + if getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then + c = bh + dir = (dir==0) and has_attr(bh, attr_dir) or dir + end + end + -- for i=1,2 do + -- if bh and getid(bh)==id_whatsit + -- and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then + -- c = bh + -- dir = (dir==0) and has_attr(bh, attr_dir) or dir + -- end + -- bh = node_next(bh) + -- end + stop_time_measure('get_box_dir') + return (dir==0 and default or dir), c +end + +do + local getbox = tex.getbox + local dir_backup + function luatexja.direction.unbox_check_dir(is_copy) + start_time_measure('box_primitive_hook') + local list_dir = get_dir_count()%dir_math_mod + local b = getbox(tex_getcount('ltj@tempcnta')) + if b then + local box_dir = get_box_dir(to_direct(b), dir_yoko) + if box_dir%dir_math_mod ~= list_dir then + ltjb.package_error( + 'luatexja', + "Incompatible direction list can't be unboxed", + 'I refuse to unbox a box in differrent direction.') + tex.sprint(cat_lp, '\\@gobbletwo') + else + dir_backup = nil + local bd = to_direct(b) + local hd = getlist(bd) + local nh = hd + while hd do + if getid(hd)==id_whatsit and getsubtype(hd)==sid_user + and getfield(hd, 'user_id')==DIR then + local d = hd + nh, hd = node_remove(nh, hd) + if is_copy and (not dir_backup) then + dir_backup = d + setfield(dir_backup, 'next', nil) + else + node_free(d) + end + else + hd = node_next(hd) + end + end + setfield(bd, 'head', nh) + end + end + if luatexja.global_temp and tex.globaldefs~=luatexja.global_temp then + tex.globaldefs = luatexja.global_temp + end + stop_time_measure('box_primitive_hook') + end + function luatexja.direction.uncopy_restore_whatsit() + local b = getbox(tex_getcount('ltj@tempcnta')) + if b then + local bd = to_direct(b) + if dir_backup then + setfield(dir_backup, 'next', getlist(bd)) + setfield(bd, 'head', dir_backup) + dir_backup = nil + end + end + end +end + +-- dir_node に包まれている「本来の中身」を取り出し, +-- dir_node を全部消去 +local function unwrap_dir_node(b, head, box_dir) + -- b: dir_node, head: the head of list, box_dir: + -- return values are (new head), (next of b), (contents), (dir of contents) + local bh = getlist(b) + local nh, nb + if head then + nh = insert_before(head, b, bh) + nh, nb = node_remove(nh, b) + setfield(b, 'next', nil) + node_free(b) + end + local shift_old, b_dir, wh = nil, get_box_dir(bh, 0) + if wh then + Dnode.flush_list(getfield(wh, 'value')) + setfield(wh, 'value', nil) + end + return nh, nb, bh, b_dir +end + +-- is_manual: 寸法変更に伴うものか? +local function create_dir_node(b, b_dir, new_dir, is_manual) + local info = dir_node_aux[b_dir%dir_math_mod][new_dir%dir_math_mod] + local w = getfield(b, 'width') + local h = getfield(b, 'height') + local d = getfield(b, 'depth') + local db = node_new(getid(b)) -- dir_node + set_attr(db, attr_dir, + new_dir + (is_manual and dir_node_manual or dir_node_auto)) + set_attr(db, attr_icflag, PROCESSED) + set_attr(b, attr_icflag, PROCESSED) + ensure_tex_attr(attr_dir, 0) + ensure_tex_attr(attr_icflag, 0) + setfield(db, 'dir', getfield(b, 'dir')) + setfield(db, 'shift', 0) + setfield(db, 'width', info.width(w,h,d)) + setfield(db, 'height', info.height(w,h,d)) + setfield(db, 'depth', info.depth(w,h,d)) + return db +end + +-- 異方向のボックスの処理 +local make_dir_whatsit, process_dir_node +do + make_dir_whatsit = function (head, b, new_dir, origin) + new_dir = new_dir%dir_math_mod + -- head: list head, b: box + -- origin: コール元 (for debug) + -- return value: (new head), (next of b), (new b), (is_b_dir_node) + -- (new b): b か dir_node に被せられた b + local bh = getlist(b) + local box_dir, dn = get_box_dir(b, ltjs.list_dir) + -- 既に b の中身にあるwhatsit + + if box_dir%dir_math_mod==new_dir then + if box_dir>=dir_node_auto then + -- dir_node としてカプセル化されている + local _, dnc = get_box_dir(b, 0) + if dnc then -- free all other dir_node + Dnode.flush_list(getfield(dnc, 'value')) + setfield(dnc, 'value', nil) + end + set_attr(b, attr_dir, box_dir%dir_math_mod + dir_node_auto) + return head, node_next(b), b, true + else + -- 組方向が一緒 (up to math dir) のボックスなので,何もしなくて良い + return head, node_next(b), b, false + end + else + -- 組方向を合わせる必要あり + local nh, nb, ret, flag + if box_dir>= dir_node_auto then -- unwrap + local b_dir + head, nb, b, b_dir = unwrap_dir_node(b, head, box_dir) + bh = getlist(b) + if b_dir%dir_math_mod==new_dir then + -- dir_node の中身が周囲の組方向とあっている + return head, nb, b, false + else box_dir = b_dir end + end + box_dir = box_dir%dir_math_mod + local db + local dnh = getfield(dn, 'value') + for x in traverse(dnh) do + if has_attr(x, attr_dir)%dir_math_mod == new_dir then + setfield(dn, 'value', to_node(node_remove(dnh, x))) + db=x; break + end + end + Dnode.flush_list(getfield(dn, 'value')) + setfield(dn, 'value', nil) + db = db or create_dir_node(b, box_dir, new_dir, false) + local w = getfield(b, 'width') + local h = getfield(b, 'height') + local d = getfield(b, 'depth') + local dn_w = getfield(db, 'width') + local dn_h = getfield(db, 'height') + local dn_d = getfield(db, 'depth') + nh, nb = insert_before(head, b, db), nil + nh, nb = node_remove(nh, b) + setfield(b, 'next', nil); setfield(db, 'head', b) + ret, flag = db, true + return nh, nb, ret, flag + end + end + process_dir_node = function (hd, gc) + local x, new_dir = hd, ltjs.list_dir or dir_yoko + while x do + local xid = getid(x) + if (xid==id_hlist and get_attr_icflag(x)~=PACKED) + or xid==id_vlist then + hd, x = make_dir_whatsit(hd, x, new_dir, 'process_dir_node:' .. gc) + else + x = node_next(x) + end + end + return hd + end + + -- lastbox + local node_prev = (Dnode~=node) and Dnode.getprev or node.prev + local function lastbox_hook() + start_time_measure('box_primitive_hook') + local bn = tex_nest[tex_nest.ptr].tail + if bn then + local b, head = to_direct(bn), to_direct(tex_nest[tex_nest.ptr].head) + local bid = getid(b) + if bid==id_hlist or bid==id_vlist then + local box_dir = get_box_dir(b, 0) + if box_dir>= dir_node_auto then -- unwrap dir_node + local p = node_prev(b) + local dummy1, dummy2, nb = unwrap_dir_node(b, nil, box_dir) + setfield(p, 'next', nb); tex_nest[tex_nest.ptr].tail = to_node(nb) + setfield(b, 'next', nil); setfield(b, 'head', nil) + node_free(b); b = nb + end + local _, wh = get_box_dir(b, 0) -- clean dir_node attached to the box + if wh then + Dnode.flush_list(getfield('value', wh)) + setfield(wh, 'value', nil) + end + end + end + stop_time_measure('box_primitive_hook') + end + + luatexja.direction.make_dir_whatsit = make_dir_whatsit + luatexja.direction.lastbox_hook = lastbox_hook +end + +-- \wd, \ht, \dp の代わり +do + local getbox, setdimen = tex.getbox, tex.setdimen + local function get_box_dim_common(key, s, l_dir) + -- s: not dir_node. + local s_dir, wh = get_box_dir(s, dir_yoko) + s_dir = s_dir%dir_math_mod + if s_dir ~= l_dir then + local not_found = true + for x in traverse(getfield(wh, 'value')) do + if l_dir == has_attr(x, attr_dir)%dir_node_auto then + setdimen('ltj@tempdima', getfield(x, key)) + not_found = false; break + end + end + if not_found then + local w = getfield(s, 'width') + local h = getfield(s, 'height') + local d = getfield(s, 'depth') + setdimen('ltj@tempdima', + dir_node_aux[s_dir][l_dir][key](w,h,d)) + end + else + setdimen('ltj@tempdima', getfield(s, key)) + end + end + local function get_box_dim(key, n) + local gt = tex.globaldefs; tex.globaldefs = 0 + local s = getbox(n) + if s then + local l_dir = (get_dir_count())%dir_math_mod + s = to_direct(s) + local b_dir = get_box_dir(s,dir_yoko) + if b_dir<dir_node_auto then + get_box_dim_common(key, s, l_dir) + elseif b_dir%dir_math_mod==l_dir then + setdimen('ltj@tempdima', getfield(s, key)) + else + get_box_dim_common(key, getlist(s), l_dir) + end + else + setdimen('ltj@tempdima', 0) + end + tex.sprint(cat_lp, '\\ltj@tempdima') + tex.globaldefs = gt + end + luatexja.direction.get_box_dim = get_box_dim + + -- return value: (changed dimen of box itself?) + local function set_box_dim_common(key, s, l_dir) + local s_dir, wh = get_box_dir(s, dir_yoko) + s_dir = s_dir%dir_math_mod + if s_dir ~= l_dir then + if not wh then + wh = create_dir_whatsit(getlist(s), 'set_box_dim', s_dir) + setfield(s, 'head', wh) + end + local db + local dnh = getfield(wh, 'value') + for x in traverse(dnh) do + if has_attr(x, attr_dir)%dir_node_auto==l_dir then + db = x; break + end + end + if not db then + db = create_dir_node(s, s_dir, l_dir, true) + setfield(db, 'next', dnh) + setfield(wh, 'value',to_node(db)) + end + setfield(db, key, tex.getdimen('ltj@tempdima')) + return false + else + setfield(s, key, tex.getdimen('ltj@tempdima')) + if wh then + -- change dimension of dir_nodes which are created "automatically" + local bw, bh, bd + = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth') + for x in traverse(getfield(wh, 'value')) do + local x_dir = has_attr(x, attr_dir) + if x_dir<dir_node_manual then + local info = dir_node_aux[s_dir][x_dir%dir_node_auto] + setfield(x, 'width', info.width(bw,bh,bd)) + setfield(x, 'height', info.height(bw,bh,bd)) + setfield(x, 'depth', info.depth(bw,bh,bd)) + end + end + end + return true + end + end + local function set_box_dim(key) + local n = tex_getcount('ltj@tempcnta') + local s = getbox(n) + if s then + local l_dir = (get_dir_count())%dir_math_mod + s = to_direct(s) + local b_dir = get_box_dir(s,dir_yoko) + if b_dir<dir_node_auto then + set_box_dim_common(key, s, l_dir) + elseif b_dir%dir_math_mod == l_dir then + -- s is dir_node + setfield(s, key, tex.getdimen('ltj@tempdima')) + if b_dir<dir_node_manual then + set_attr(s, attr_dir, b_dir%dir_node_auto + dir_node_manual) + end + else + local sid, b = getid(s), getlist(s) + local info = dir_node_aux[get_box_dir(b,dir_yoko)%dir_math_mod][b_dir%dir_node_auto] + local bw, bh, bd + = getfield(b,'width'), getfield(b, 'height'), getfield(b, 'depth') + local sw, sh, sd + = getfield(s,'width'), getfield(s, 'height'), getfield(s, 'depth') + if set_box_dim_common(key, b, l_dir) and b_dir<dir_node_manual then + -- re-calculate dimension of s, if s is created "automatically" + if b_dir<dir_node_manual then + setfield(s, 'width', info.width(bw,bh,bd)) + setfield(s, 'height', info.height(bw,bh,bd)) + setfield(s, 'depth', info.depth(bw,bh,bd)) + end + end + end + end + end + luatexja.direction.set_box_dim = set_box_dim +end + +do + local getbox = tex.getbox + local function get_register_dir(n) + local s = getbox(n) + if s then + s = to_direct(s) + local b_dir = get_box_dir(s, dir_yoko) + if b_dir<dir_node_auto then + return b_dir + else + local b_dir = get_box_dir( + node_next(node_next(node_next(getlist(s)))), dir_yoko) + return b_dir + end + else + return 0 + end + end + luatexja.direction.get_register_dir = get_register_dir +end + +do + local getbox, setbox, copy_list = tex.getbox, tex.setbox, Dnode.copy_list + -- raise, lower + function luatexja.direction.raise_box() + start_time_measure('box_primitive_hook') + local list_dir = get_dir_count() + local s = getbox('ltj@afbox') + if s then + local sd = to_direct(s) + local box_dir = get_box_dir(sd, dir_yoko) + if box_dir%dir_math_mod ~= list_dir then + setbox( + 'ltj@afbox', + to_node(copy_list(make_dir_whatsit(sd, sd, list_dir, 'box_move'))) + -- copy_list しないとリストの整合性が崩れる……? + ) + end + end + stop_time_measure('box_primitive_hook') + end +end + +-- PACKED の hbox から文字を取り出す +-- luatexja.jfmglue.check_box などで使用 +do + local function glyph_from_packed(h) + local b = getlist(h) + return (getid(b)==id_kern or (getid(b)==id_whatsit and getsubtype(b)==sid_save) ) + and node_next(node_next(node_next(b))) or b + end + luatexja.direction.glyph_from_packed = glyph_from_packed +end + +-- adjust +do + local id_adjust = node.id('adjust') + function luatexja.direction.check_adjust_direction() + start_time_measure('box_primitive_hook') + local list_dir = get_adjust_dir_count() + local a = tex_nest[tex_nest.ptr].tail + local ad = to_direct(a) + if a and getid(ad)==id_adjust then + local adj_dir = get_box_dir(ad) + if list_dir~=adj_dir then + ltjb.package_error( + 'luatexja', + 'Direction Incompatible', + "\\vadjust's argument and outer vlist must have same direction.") + Dnode.last_node() + end + end + stop_time_measure('box_primitive_hook') + end +end + +-- insert +do + local id_ins = node.id('ins') + local id_rule = node.id('rule') + function luatexja.direction.populate_insertion_dir_whatsit() + start_time_measure('box_primitive_hook') + local list_dir = get_dir_count() + local a = tex_nest[tex_nest.ptr].tail + local ad = to_direct(a) + if a and getid(ad)==id_ins then + local h = getfield(ad, 'head') + if getid(h)==id_whatsit and + getsubtype(h)==sid_user and getfield(h, 'user_id')==DIR then + local n = h; h = node_remove(h,h) + node_free(n) + end + for box_rule in traverse(h) do + if getid(box_rule)<id_rule then + h = insert_before(h, box_rule, dir_pool[list_dir]()) + end + end + ensure_tex_attr(attr_dir, 0) + setfield(ad, 'head', h) + end + stop_time_measure('box_primitive_hook') + end +end + +-- vsplit +do + local split_dir_whatsit + local function dir_adjust_vpack(h, gc) + start_time_measure('direction_vpack') + local hd = to_direct(h) + if gc=='split_keep' then + -- supply dir_whatsit + hd = create_dir_whatsit_vbox(hd, gc) + split_dir_whatsit = hd + elseif gc=='split_off' then + for bh in traverse_id(id_whatsit, hd) do + if getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then + ltjs.list_dir = has_attr(bh, attr_dir); break + end + end + -- local bh=hd + -- for i=1,2 do + -- if bh and getid(bh)==id_whatsit + -- and getsubtype(bh)==sid_user and getfield(bh, 'user_id')==DIR then + -- ltjs.list_dir = has_attr(bh, attr_dir); break + -- end + -- bh = node_next(bh) + -- end + if split_dir_whatsit then + -- adjust direction of 'split_keep' + set_attr(split_dir_whatsit, attr_dir, ltjs.list_dir) + end + split_dir_whatsit=nil + elseif gc=='preamble' then + split_dir_whatsit=nil + else + adjust_badness(hd) + hd = process_dir_node(create_dir_whatsit_vbox(hd, gc), gc) + split_dir_whatsit=nil + end + stop_time_measure('direction_vpack') + return to_node(hd) + end + luatexbase.add_to_callback('vpack_filter', + dir_adjust_vpack, + 'ltj.direction', 10000) +end + +do + -- supply direction whatsit to the main vertical list "of the next page" + local function dir_adjust_pre_output(h, gc) + return to_node(create_dir_whatsit_vbox(to_direct(h), gc)) + end + luatexbase.add_to_callback('pre_output_filter', + dir_adjust_pre_output, + 'ltj.direction', 10000) + + function luatexja.direction.remove_end_whatsit() + local h=tex.lists.page_head + if h and (not h.next) and + h.id==id_whatsit and h.subtype==sid_user and + h.user_id == DIR then + tex.lists.page_head = nil + node.free(h) + end + end +end + +-- buildpage filter +do + local function dir_adjust_buildpage(info) + if info=='box' then + local head = to_direct(tex.lists.contrib_head) + if head then + head = make_dir_whatsit(head, + node_tail(head), + get_dir_count(), + 'buildpage') + tex.lists.contrib_head = to_node(head) + end + end + end + luatexbase.add_to_callback('buildpage_filter', + dir_adjust_buildpage, + 'ltj.direction', 10000) +end + +-- finalize (executed just before \shipout) +-- we supply correct pdfsavematrix nodes etc. inside dir_node +do + local finalize_inner + local function finalize_dir_node(db,new_dir) + local b = getlist(db) + finalize_inner(b) + local w = getfield(b, 'width') + local h = getfield(b, 'height') + local d = getfield(b, 'depth') + local dn_w = getfield(db, 'width') + local dn_h = getfield(db, 'height') + local dn_d = getfield(db, 'depth') + local db_head, db_tail + for _,v in ipairs(dir_node_aux + [get_box_dir(b, dir_yoko)%dir_math_mod][new_dir][getid(b)]) do + local cmd, arg, nn = v[1], v[2] + if cmd=='kern' then + nn = node_new(id_kern) + setfield(nn, 'kern', arg(w, h, d, dn_w, dn_h, dn_d)) + elseif cmd=='whatsit' then + nn = node_new(id_whatsit, arg) + elseif cmd=='rotate' then + nn = node_new(id_whatsit, sid_matrix) + setfield(nn, 'data', arg) + elseif cmd=='box' then + nn = b; setfield(b, 'next', nil) + setfield(nn, 'shift', arg(w, h, d, dn_w, dn_h, dn_d)) + end + if db_head then + insert_after(db_head, db_tail, nn) + db_tail = nn + else + setfield(db, 'head', nn) + db_head, db_tail = nn, nn + end + end + end + + tex.setattribute(attr_dir, dir_yoko) + local shipout_temp = node_new(id_hlist) + tex.setattribute(attr_dir, 0) + + finalize_inner = function (box) + for n in traverse(getlist(box)) do + local nid = getid(n) + if (nid==id_hlist or nid==id_vlist) then + local ndir = get_box_dir(n, dir_yoko) + if ndir>=dir_node_auto then -- n is dir_node + finalize_dir_node(n, ndir%dir_math_mod) + else + finalize_inner(n) + end + end + end + end + local getbox = tex.getbox + local setbox, copy = Dnode.setbox, Dnode.copy + local lua_mem_kb = 0 + function luatexja.direction.finalize() + local a = to_direct(tex.getbox("AtBeginShipoutBox")) + local a_dir = get_box_dir(a, dir_yoko) + if a_dir~=dir_yoko then + local b = create_dir_node(a, a_dir, dir_yoko, false) + setfield(b, 'head', a); a = b + end + setfield(shipout_temp, 'head', a) + finalize_inner(shipout_temp) + setbox('global', "AtBeginShipoutBox", copy(getlist(shipout_temp))) + setfield(shipout_temp, 'head',nil) + + -- garbage collect + --local m = collectgarbage('count') + --if m>lua_mem_kb+20480 then + -- collectgarbage(); lua_mem_kb = collectgarbage('count') + --end + --print('Lua Memory Usage', lua_mem_kb) + end +end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua index cfef819b869..cec74cfc232 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-inputbuf.lua @@ -2,6 +2,7 @@ -- luatexja/ltj-inputbuf.lua -- +luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('charrange'); local ltjc = luatexja.charrange require("unicode") @@ -16,15 +17,20 @@ local FFFFF = string.char(0xF3,0xBF,0xBF,0xBF) --- the following function is modified from jafontspec.lua (by K. Maeda). --- Instead of "%", we use U+FFFFF for suppressing spaces. +--DEBUG require"socket" +local time_line = 0 +local start_time_measure, stop_time_measure + = ltjb.start_time_measure, ltjb.stop_time_measure local function add_comment(buffer) + start_time_measure('inputbuf') local i = utflen(buffer) - while (i>0) and (getcatcode(utfbyte(buffer, i))==1 + while (i>0) and (getcatcode(utfbyte(buffer, i))==1 or getcatcode(utfbyte(buffer, i))==2) do i=i-1 end if i>0 then local c = utfbyte(buffer, i) - if c>0x80 then + if c>=0x80 then local ct = getcatcode(c) local te = tex.endlinechar local ctl = (te ~= -1) and (getcatcode(te)==5) and (getcatcode(0xFFFFF)==14) @@ -37,10 +43,11 @@ local function add_comment(buffer) end end end + stop_time_measure('inputbuf') return buffer end -luatexbase.add_to_callback('process_input_buffer', +luatexbase.add_to_callback('process_input_buffer', add_comment,'ltj.process_input_buffer') --EOF diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua index 6b2fb95d4a5..e0cb298680c 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfmglue.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfmglue', - date = '2014/02/02', + date = '2015/02/07', description = 'Insertion process of JFM glues and kanjiskip', }) module('luatexja.jfmglue', package.seeall) @@ -12,6 +12,8 @@ local err, warn, info, log = luatexbase .errwarinf(_NAME) luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('stack'); local ltjs = luatexja.stack luatexja.load_module('jfont'); local ltjf = luatexja.jfont +luatexja.load_module('direction'); local ltjd = luatexja.direction +luatexja.load_module('setwidth'); local ltjw = luatexja.setwidth local pairs = pairs local Dnode = node.direct or node @@ -34,16 +36,16 @@ local insert_before = Dnode.insert_before local insert_after = Dnode.insert_after local node_next = (Dnode ~= node) and Dnode.getnext or node.next local round = tex.round +local ltjd_make_dir_whatsit = ltjd.make_dir_whatsit local ltjf_font_metric_table = ltjf.font_metric_table local ltjf_find_char_class = ltjf.find_char_class local node_new = Dnode.new local node_copy = Dnode.copy -local node_remove = luatexja.Dnode_remove -- Dnode.remove +local node_remove = Dnode.remove local node_tail = Dnode.tail local node_free = Dnode.free local node_end_of_math = Dnode.end_of_math - local id_glyph = node.id('glyph') local id_hlist = node.id('hlist') local id_vlist = node.id('vlist') @@ -64,6 +66,7 @@ local id_box_like = 256 -- vbox, shifted hbox local id_pbox = 257 -- already processed nodes (by \unhbox) local id_pbox_w = 258 -- cluster which consists of a whatsit local sid_user = node.subtype('user_defined') +local lang_ja = luatexja.lang_ja local sid_start_link = node.subtype('pdf_start_link') local sid_start_thread = node.subtype('pdf_start_thread') @@ -78,12 +81,19 @@ local PROCESSED = luatexja.icflag_table.PROCESSED local IC_PROCESSED = luatexja.icflag_table.IC_PROCESSED local BOXBDD = luatexja.icflag_table.BOXBDD local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG + +local attr_icflag = luatexbase.attributes['ltj@icflag'] local kanji_skip local xkanji_skip local table_current_stack +local list_dir +local capsule_glyph +local tex_dir +local attr_ablshift +local set_np_xspc_jachar +local set_np_xspc_jachar_hbox -local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] -local attr_icflag = luatexbase.attributes['ltj@icflag'] +local ltjs_orig_char_table = ltjs.orig_char_table local function get_attr_icflag(p) return (has_attr(p, attr_icflag) or 0)%PROCESSED_BEGIN_FLAG @@ -91,10 +101,6 @@ end -------------------- Helper functions -local function copy_attr(new, old) - -- 仕様が決まるまで off にしておく -end - -- This function is called only for acquiring `special' characters. local function fast_find_char_class(c,m) return m.chars[c] or 0 @@ -103,12 +109,14 @@ end -- 文字クラスの決定 local slow_find_char_class do + local start_time_measure = ltjb.start_time_measure + local stop_time_measure = ltjb.stop_time_measure slow_find_char_class = function (c, m, oc) local cls = ltjf_find_char_class(oc, m) - if cls==0 then - return ltjf_find_char_class(-c, m), oc + if oc~=c and c and cls==0 then + return ltjf_find_char_class(c, m) else - return cls, oc + return cls end end end @@ -139,16 +147,15 @@ end local function add_penalty(p,e) local pp = getfield(p, 'penalty') if pp>=10000 then - if e<=-10000 then pp = 0 end + if e<=-10000 then setfield(p, 'penalty', 0) end elseif pp<=-10000 then - if e>=10000 then pp = 0 end + if e>=10000 then setfield(p, 'penalty', 0) end else pp = pp + e if pp>=10000 then setfield(p, 'penalty', 10000) elseif pp<=-10000 then setfield(p, 'penalty', -10000) else setfield(p, 'penalty', pp) end end - return end -- 「異なる JFM」の間の調整方法 @@ -164,16 +171,17 @@ local head -- the head of current list local Np, Nq, Bp local widow_Bp, widow_Np -- \jcharwidowpenalty 挿入位置管理用 -local ihb_flag -- JFM グルー挿入抑止用 flag - -- on: \inhibitglue 指定時,hlist の周囲 +local non_ihb_flag -- JFM グルー挿入抑止用 flag +-- false: \inhibitglue 指定時 true: それ以外 -------------------- hlist 内の文字の検索 local first_char, last_char, find_first_char - +do +local ltjd_glyph_from_packed = ltjd.glyph_from_packed local function check_box(box_ptr, box_end) local p = box_ptr; local found_visible_node = false - if not p then + if not p then find_first_char = false; last_char = nil return true end @@ -183,24 +191,23 @@ local function check_box(box_ptr, box_end) p = node_next(node_next(node_next(p))); pid = getid(p) -- p must be glyph_node end if pid==id_glyph then - repeat - if find_first_char then + repeat + if find_first_char then first_char = p; find_first_char = false end last_char = p; found_visible_node = true; p=node_next(p) - if (not p) or p==box_end then - return found_visible_node + if (not p) or p==box_end then + return found_visible_node end until getid(p)~=id_glyph pid = getid(p) -- p must be non-nil end if pid==id_kern then local pa = get_attr_icflag(p) - --if pa==IC_PROCESSED or pa == PACKED then if pa==IC_PROCESSED then -- do nothing elseif getsubtype(p)==2 then - p = node_next(node_next(p)); + p = node_next(node_next(p)); -- Note that another node_next will be executed outside this if-statement. else found_visible_node = true @@ -208,23 +215,26 @@ local function check_box(box_ptr, box_end) end elseif pid==id_hlist then if PACKED == get_attr_icflag(p) then + local s = ltjd_glyph_from_packed(p) if find_first_char then - first_char = getlist(p); find_first_char = false + first_char = s; find_first_char = false end - last_char = getlist(p); found_visible_node = true + last_char = s; found_visible_node = true else if getfield(p, 'shift')==0 then + last_char = nil if check_box(getlist(p), nil) then found_visible_node = true end - else + else find_first_char = false; last_char = nil end end elseif pid==id_math then - if find_first_char then + if find_first_char then first_char = p; find_first_char = false end last_char = p; found_visible_node = true - --elseif pid==id_rule and get_attr_icflag(p)==PACKED then -- do nothing + elseif pid==id_rule and get_attr_icflag(p)==PACKED then + -- do nothing elseif not (pid==id_ins or pid==id_mark or pid==id_adjust or pid==id_whatsit or pid==id_penalty) then @@ -234,7 +244,7 @@ local function check_box(box_ptr, box_end) p = node_next(p) end return found_visible_node -end +end function check_box_high(Nx, box_ptr, box_end) first_char = nil; last_char = nil; find_first_char = true @@ -242,8 +252,8 @@ function check_box_high(Nx, box_ptr, box_end) local first_char = first_char if first_char then if getid(first_char)==id_glyph then - if getfont(first_char) == (has_attr(first_char, attr_curjfnt) or -1) then - set_np_xspc_jachar(Nx, first_char) + if getfield(first_char, 'lang') == lang_ja then + set_np_xspc_jachar_hbox(Nx, first_char) else set_np_xspc_alchar(Nx, getchar(first_char),first_char, 1) end @@ -254,85 +264,188 @@ function check_box_high(Nx, box_ptr, box_end) end return last_char end - +end -------------------- Np の計算と情報取得 -luatexbase.create_callback("luatexja.jfmglue.whatsit_getinfo", "data", - function (Np, lp, Nq) - if Np.nuc then return Np - else +luatexbase.create_callback("luatexja.jfmglue.whatsit_getinfo", "data", + function (Np, lp, Nq) + if Np.nuc then return Np + else return Np -- your code end end) -luatexbase.create_callback("luatexja.jfmglue.whatsit_after", "data", +luatexbase.create_callback("luatexja.jfmglue.whatsit_after", "data", function (stat, Nq, Np) return false end) -- calc next Np +local calc_np do -local function set_attr_icflag_processed(p) - if get_attr_icflag(p)<= ITALIC then - set_attr(p, attr_icflag, PROCESSED) - end -end - +local traverse = Dnode.traverse local function check_next_ickern(lp) if lp and getid(lp) == id_kern and ITALIC == get_attr_icflag(lp) then set_attr(lp, attr_icflag, IC_PROCESSED) Np.last = lp; return node_next(lp) - else + else Np.last = Np.nuc; return lp end end local function calc_np_pbox(lp, last) + local first, lpa, nc = (not Np.first), KINSOKU, nil Np.first = Np.first or lp; Np.id = id_pbox - local lpa, nc = KINSOKU, nil set_attr(lp, attr_icflag, get_attr_icflag(lp)); while lp ~=last and (lpa>=PACKED) and (lpa<BOXBDD) do - nc, lp = lp, node_next(lp); lpa = lp and has_attr(lp, attr_icflag) or 0 + if getid(lp)==id_hlist or getid(lp)==id_vlist then + head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox') + Np.first = first and nc or Np.first + else + nc, lp = lp, node_next(lp) + end + first, lpa = false, (lp and has_attr(lp, attr_icflag) or 0) -- get_attr_icflag() ではいけない! end Np.nuc = nc - return check_next_ickern(lp) + lp = check_next_ickern(lp) + Np.last_char = check_box_high(Np, Np.first, lp) + return lp end - +local ltjw_apply_ashift_math = ltjw.apply_ashift_math +local ltjw_apply_ashift_disc = ltjw.apply_ashift_disc +local min, max = math.min, math.max +local function calc_np_aux_glyph_common(lp) + Np.nuc = lp + Np.first= (Np.first or lp) + if getfield(lp, 'lang') == lang_ja then + Np.id = id_jglyph + local m, cls = set_np_xspc_jachar(Np, lp) + local npi, npf + lp, head, npi, npf = capsule_glyph(lp, m, cls, head, tex_dir, lp) + Np.first = (Np.first~=Np.nuc) and Np.first or npf or npi + Np.nuc = npi + return true, check_next_ickern(lp); + else + Np.id = id_glyph + set_np_xspc_alchar(Np, getchar(lp), lp, 1) + -- loop + local first_glyph, last_glyph = lp + set_attr(lp, attr_icflag, PROCESSED); Np.last = lp + local y_adjust = has_attr(lp,attr_ablshift) or 0 + local node_depth = getfield(lp, 'depth') + min(y_adjust, 0) + local adj_depth = (y_adjust>0) and (getfield(lp, 'depth') + y_adjust) or 0 + setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust) + lp = node_next(lp) + for lx in traverse(lp) do + local lai = get_attr_icflag(lx) + if lx==last or lai>=PACKED then + lp=lx; break + else + local lid = getid(lx) + if lid==id_glyph and getfield(lx, 'lang') ~= lang_ja then + -- 欧文文字 + last_glyph = lx; set_attr(lx, attr_icflag, PROCESSED); Np.last = lx + y_adjust = has_attr(lx,attr_ablshift) or 0 + node_depth = max(getfield(lx, 'depth') + min(y_adjust, 0), node_depth) + adj_depth = (y_adjust>0) and max(getfield(lx, 'depth') + y_adjust, adj_depth) or adj_depth + setfield(lx, 'yoffset', getfield(lx, 'yoffset') - y_adjust) + elseif lid==id_kern then + local ls = getsubtype(lx) + if ls==2 then -- アクセント用の kern + set_attr(lx, attr_icflag, PROCESSED) + lx = node_next(lx) -- lp: アクセント本体 + setfield(lx, 'yoffset', getfield(lp, 'yoffset') - (has_attr(lx,attr_ablshift) or 0)) + lx = node_next(node_next(lx)) + elseif ls==0 then + Np.last = lx + elseif (ls==1 and lai==ITALIC) then + Np.last = lx; set_attr(lx, attr_icflag, IC_PROCESSED) + else + lp=lx; break + end + else + lp=lx; break + end + end + end + local r + if adj_depth>node_depth then + r = node_new(id_rule) + setfield(r, 'width', 0); setfield(r, 'height', 0) + setfield(r, 'depth',adj_depth); setfield(r, 'dir', tex_dir) + set_attr(r, attr_icflag, PROCESSED) + end + if last_glyph then + Np.last_char = last_glyph + if r then insert_after(head, first_glyph, r) end + else + local npn = Np.nuc + Np.last_char = npn + if r then + local nf, nc = getfont(npn), getchar(npn) + local ct = (font.getfont(nf) or font.fonts[nf] ).characters[nc] + if (ct.left_protruding or 0) == 0 then + head = insert_before(head, npn, r) + Np.first = (Np.first==npn) and r or npn + elseif (ct.right_protruding or 0) == 0 then + insert_after(head, npn, r); Np.last, lp = r, r + else + ltjb.package_warning_no_line( + 'luatexja', + 'Check depth of glyph node ' .. tostring(npn) .. '(font=' .. nf + .. ', char=' .. nc .. '), because its \\lpcode is ' .. tostring(ct.left_protruding) + .. ' and its \\rpcode is ' .. tostring(ct.right_protruding) + ); node_free(r) + end + end + end + return true, lp + end +end local calc_np_auxtable = { - [id_glyph] = function (lp) - Np.first, Np.nuc = (Np.first or lp), lp; - Np.id = (getfont(lp) == (has_attr(lp, attr_curjfnt) or -1)) - and id_jglyph or id_glyph - return true, check_next_ickern(node_next(lp)); + [id_glyph] = calc_np_aux_glyph_common, + [id_hlist] = function(lp) + local op, flag + head, lp, op, flag = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm hlist') + set_attr(op, attr_icflag, PROCESSED) + Np.first = Np.first or op; Np.last = op; Np.nuc = op; + if (flag or getfield(op, 'shift')~=0) then + Np.id = id_box_like + else + Np.id = id_hlist + Np.last_char = check_box_high(Np, getlist(op), nil) + end + return true, lp end, - [id_hlist] = function(lp) - Np.first = Np.first or lp; Np.last = lp; Np.nuc = lp; - set_attr(lp, attr_icflag, PROCESSED) - Np.id = (getfield(lp, 'shift')~=0) and id_box_like or id_hlist - return true, node_next(lp) + [id_vlist] = function(lp) + local op + head, lp, op = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm:' .. getid(lp)) + Np.first = Np.first or op; Np.last = op; Np.nuc = op; + Np.id = id_box_like; + return true, lp end, box_like = function(lp) - Np.first = Np.first or lp; Np.nuc = lp; Np.last = lp; - Np.id = id_box_like; set_attr(lp, attr_icflag, PROCESSED) - return true, node_next(lp); + Np.first = Np.first or lp; Np.last = lp; Np.nuc = lp; + Np.id = id_box_like; + return true, node_next(lp) end, - skip = function(lp) + skip = function(lp) set_attr(lp, attr_icflag, PROCESSED) return false, node_next(lp) end, - [id_whatsit] = function(lp) + [id_whatsit] = function(lp) local lps = getsubtype(lp) if lps==sid_user then if getfield(lp, 'user_id')==luatexja.userid_table.IHB then - local lq = node_next(lp); - head = node_remove(head, lp); node_free(lp); ihb_flag = true + local lq = node_next(lp); + head = node_remove(head, lp); node_free(lp); non_ihb_flag = false return false, lq; else set_attr(lp, attr_icflag, PROCESSED) luatexbase.call_callback("luatexja.jfmglue.whatsit_getinfo", Np, lp, Nq) - if Np.nuc then - Np.id = id_pbox_w; Np.first = Np.nuc; Np.last = Np.nuc; + if Np.nuc then + Np.id = id_pbox_w; Np.first = Np.nuc; Np.last = Np.nuc; return true, node_next(lp) else return false, node_next(lp) @@ -341,7 +454,7 @@ local calc_np_auxtable = { else -- we do special treatment for these whatsit nodes. if lps == sid_start_link or lps == sid_start_thread then - Np.first = lp + Np.first = lp elseif lps == sid_end_link or lps == sid_end_thread then Np.first, Nq.last = nil, lp; end @@ -350,28 +463,37 @@ local calc_np_auxtable = { end end, [id_math] = function(lp) - Np.first, Np.nuc = (Np.first or lp), lp; - set_attr(lp, attr_icflag, PROCESSED) - lp = node_end_of_math(lp) + Np.first, Np.nuc = (Np.first or lp), lp; set_attr(lp, attr_icflag, PROCESSED) - Np.last, Np.id = lp, id_math; - return true, node_next(lp); + set_np_xspc_alchar(Np, -1, lp) + local end_math = node_end_of_math(lp) + ltjw_apply_ashift_math(lp, end_math, attr_ablshift) + set_attr(end_math, attr_icflag, PROCESSED) + Np.last, Np.id = end_math, id_math; + return true, node_next(end_math); + end, + [id_glue] = function(lp) + Np.first, Np.nuc, Np.last = (Np.first or lp), lp, lp; + Np.id = getid(lp); set_attr(lp, attr_icflag, PROCESSED) + return true, node_next(lp) end, - discglue = function(lp) - Np.first, Np.nuc, Np.last = (Np.first or lp), lp, lp; + [id_disc] = function(lp) + Np.first, Np.nuc, Np.last = (Np.first or lp), lp, lp; Np.id = getid(lp); set_attr(lp, attr_icflag, PROCESSED) + ltjw_apply_ashift_disc(lp, (list_dir==dir_tate), tex_dir) + Np.last_char = check_box_high(Np, getfield(lp, 'replace'), nil) return true, node_next(lp) end, - [id_kern] = function(lp) - Np.first = Np.first or lp + [id_kern] = function(lp) if getsubtype(lp)==2 then + Np.first = Np.first or lp set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp) set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp) set_attr(lp, attr_icflag, PROCESSED); lp = node_next(lp) - set_attr(lp, attr_icflag, PROCESSED); Np.nuc = lp - Np.id = (getfont(lp) == (has_attr(lp, attr_curjfnt) or -1)) and id_jglyph or id_glyph - return true, check_next_ickern(node_next(lp)); + set_attr(lp, attr_icflag, PROCESSED); + return calc_np_aux_glyph_common(lp) else + Np.first = Np.first or lp Np.id = id_kern; set_attr(lp, attr_icflag, PROCESSED) Np.last = lp; return true, node_next(lp) end @@ -381,19 +503,16 @@ local calc_np_auxtable = { return false, node_next(lp) end, } -calc_np_auxtable[id_vlist] = calc_np_auxtable.box_like calc_np_auxtable[id_rule] = calc_np_auxtable.box_like calc_np_auxtable[13] = calc_np_auxtable.box_like calc_np_auxtable[id_ins] = calc_np_auxtable.skip calc_np_auxtable[id_mark] = calc_np_auxtable.skip calc_np_auxtable[id_adjust] = calc_np_auxtable.skip -calc_np_auxtable[id_disc] = calc_np_auxtable.discglue -calc_np_auxtable[id_glue] = calc_np_auxtable.discglue -function calc_np(lp, last) +function calc_np(last, lp) local k -- We assume lp = node_next(Np.last) - Np, Nq, ihb_flag = Nq, Np, nil + Np, Nq, non_ihb_flag = Nq, Np, true -- We clear `predefined' entries of Np before pairs() loop, -- because using only pairs() loop is slower. Np.post, Np.pre, Np.xspc = nil, nil, nil @@ -407,20 +526,19 @@ function calc_np(lp, last) -- unbox 由来ノードの検出 if lpa>=PACKED then if lpa%PROCESSED_BEGIN_FLAG == BOXBDD then - local lq = node_next(lp) + local lq = node_next(lp) head = node_remove(head, lp); node_free(lp); lp = lq - else return calc_np_pbox(lp, last) + else + return calc_np_pbox(lp, last) end -- id_pbox else k, lp = calc_np_auxtable[getid(lp)](lp) if k then return lp end end end - Np = nil; return lp + Np=nil end - end -local calc_np = calc_np -- extract informations from Np -- We think that "Np is a Japanese character" if Np.met~=nil, @@ -433,24 +551,39 @@ do local POST = luatexja.stack_table_index.POST local KCAT = luatexja.stack_table_index.KCAT local XSP = luatexja.stack_table_index.XSP + local dir_tate = luatexja.dir_table.dir_tate -- 和文文字のデータを取得 local attr_jchar_class = luatexbase.attributes['ltj@charclass'] - local attr_orig_char = luatexbase.attributes['ltj@origchar'] + local attr_jchar_code = luatexbase.attributes['ltj@charcode'] local attr_autospc = luatexbase.attributes['ltj@autospc'] local attr_autoxspc = luatexbase.attributes['ltj@autoxspc'] + --local ltjf_get_vert_glyph = ltjf.get_vert_glyph function set_np_xspc_jachar(Nx, x) local m = ltjf_font_metric_table[getfont(x)] - local cls, c = slow_find_char_class(has_attr(x, attr_orig_char), m, getchar(x)) - Nx.met, Nx.char = m, c; Nx.class = cls; + local c, c_glyph = ltjs_orig_char_table[x], getchar(x) + c = c or c_glyph + local cls = slow_find_char_class(c, m, c_glyph) + Nx.met, Nx.class, Nx.char = m, cls, c; if cls~=0 then set_attr(x, attr_jchar_class, cls) end + if c~=c_glyph then set_attr(x, attr_jchar_code, c) end + Nx.pre = table_current_stack[PRE + c] or 0 + Nx.post = table_current_stack[POST + c] or 0 + Nx.xspc = table_current_stack[XSP + c] or 3 + Nx.kcat = table_current_stack[KCAT + c] or 0 + Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1) + return m, cls + end + function set_np_xspc_jachar_hbox(Nx, x) + local m = ltjf_font_metric_table[getfont(x)] + local c = has_attr(x, attr_jchar_code) or getchar(x) + Nx.met, Nx.char = m, c; Nx.class = has_attr(x, attr_jchar_class) or 0; Nx.pre = table_current_stack[PRE + c] or 0 Nx.post = table_current_stack[POST + c] or 0 Nx.xspc = table_current_stack[XSP + c] or 3 Nx.kcat = table_current_stack[KCAT + c] or 0 Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1) - end - local set_np_xspc_jachar = set_np_xspc_jachar + end -- 欧文文字のデータを取得 local floor = math.floor @@ -465,9 +598,8 @@ do Nx.pre = table_current_stack[PRE + c] or 0 Nx.post = table_current_stack[POST + c] or 0 Nx.xspc = table_current_stack[XSP + c] or 3 - Nx.char = 'jcharbdd' else - Nx.pre, Nx.post, Nx.char = 0, 0, -1 + Nx.pre, Nx.post = 0, 0 Nx.xspc = table_current_stack[XSP - 1] or 3 end Nx.met = nil @@ -475,26 +607,14 @@ do end local set_np_xspc_alchar = set_np_xspc_alchar --- Np の情報取得メインルーチン - extract_np = function () - local x, i = Np.nuc, Np.id; - if i == id_jglyph then return set_np_xspc_jachar(Np, x) - elseif i == id_glyph then return set_np_xspc_alchar(Np, getchar(x), x, 1) - elseif i == id_hlist then Np.last_char = check_box_high(Np, getlist(x), nil) - elseif i == id_pbox then Np.last_char = check_box_high(Np, Np.first, node_next(Np.last)) - elseif i == id_disc then Np.last_char = check_box_high(Np, getfield(x, 'replace'), nil) - elseif i == id_math then return set_np_xspc_alchar(Np, -1, x) - end - end - -- change the information for the next loop -- (will be done if Nx is an alphabetic character or a hlist) after_hlist = function (Nx) local s = Nx.last_char if s then if getid(s)==id_glyph then - if getfont(s) == (has_attr(s, attr_curjfnt) or -1) then - set_np_xspc_jachar(Nx, s) + if getfield(s, 'lang') == lang_ja then + set_np_xspc_jachar_hbox(Nx, s) else set_np_xspc_alchar(Nx, getchar(s), s, 2) end @@ -505,9 +625,9 @@ do Nx.pre, Nx.met = nil, nil end end - + after_alchar = function (Nx) - local x = Nx.nuc + local x = Nx.last_char return set_np_xspc_alchar(Nx, getchar(x), x, 2) end @@ -524,7 +644,7 @@ local function handle_penalty_normal(post, pre, g) if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end setfield(p, 'penalty', a) head = insert_before(head, Np.first, p) - Bp[1]=p; + Bp[1]=p; set_attr(p, attr_icflag, KINSOKU) end else for _, v in pairs(Bp) do add_penalty(v,a) end @@ -562,18 +682,18 @@ end -- 和文文字間の JFM glue を node 化 local function new_jfm_glue(m, bc, ac) -- bc, ac: char classes - local g, d = m.char_type[bc][ac], 0 - local n + local g = m.char_type[bc][ac] if g then - n,d = node_copy(g[2]), g[3] - if g[1] then + if g[1] then local f = node_new(id_glue) set_attr(f, attr_icflag, g[4]) - setfield(f, 'spec', n) - return f, d + setfield(f, 'spec', node_copy(g[2])) + return f, g[3] + else + return node_copy(g[2]), g[3] end end - return n, d + return nil, 0 end -- Nq.last (kern w) .... (glue/kern g) Np.first @@ -586,7 +706,7 @@ end -------------------- 和文文字間空白量の決定 - +local null_skip_table = {0, 0, 0} -- get kanjiskip local get_kanjiskip local get_kanjiskip_normal, get_kanjiskip_jfm @@ -610,13 +730,13 @@ do local gx = node_new(id_glue_spec); setfield(gx, 'stretch_order', 0); setfield(gx, 'shrink_order', 0) local pm, qm = Np.met, Nq.met - local bk = qm.kanjiskip or {0, 0, 0} + local bk = qm.kanjiskip or null_skip_table if (pm.char_type==qm.char_type) and (qm.var==pm.var) then setfield(gx, 'width', bk[1]) setfield(gx, 'stretch', bk[2]) setfield(gx, 'shrink', bk[3]) else - local ak = pm.kanjiskip or {0, 0, 0} + local ak = pm.kanjiskip or null_skip_table setfield(gx, 'width', round(diffmet_rule(bk[1], ak[1]))) setfield(gx, 'stretch', round(diffmet_rule(bk[2], ak[2]))) setfield(gx, 'shrink', -round(diffmet_rule(-bk[3], -ak[3]))) @@ -638,20 +758,20 @@ do local bk_ak = 2*id_kern - id_kern calc_ja_ja_aux = function (gb,ga, db, da) - local rbb, rab = (1-db)/2, (1-da)/2 -- 「前の文字」由来のグルーの割合 - local rba, raa = (1+db)/2, (1+da)/2 -- 「前の文字」由来のグルーの割合 - if diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright + local rbb, rab = 0.5*(1-db), 0.5*(1-da) -- 「前の文字」由来のグルーの割合 + local rba, raa = 0.5*(1+db), 0.5*(1+da) -- 「前の文字」由来のグルーの割合 + if diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright and diffmet_rule ~= math.two_paverage then rbb, rab, rba, raa = 1,0,0,1 end - if not gb then - if ga then - gb = node_new(id_kern); setfield(gb, 'kern', 0) + if not gb then + if ga then + gb = node_new(id_kern); setfield(gb, 'kern', 0) else return nil end - elseif not ga then + elseif not ga then ga = node_new(id_kern); setfield(ga, 'kern', 0) end - + local k = 2*getid(gb) - getid(ga) if k == bg_ag then local bs, as = getfield(gb, 'spec'), getfield(ga, 'spec') @@ -670,7 +790,7 @@ do setfield(gb, 'kern', round(diffmet_rule(rbb*bd + rba*ad, rab*bd + raa*ad))) node_free(ga) return gb - elseif k == bk_ag then + elseif k == bk_ag then local as = getfield(ga, 'spec') -- gb: kern, ga: glue local bd, ad = getfield(gb, 'kern'), getfield(as, 'width') @@ -697,22 +817,19 @@ do end local function calc_ja_ja_glue() - if ihb_flag then return nil + local qm, pm = Nq.met, Np.met + if (qm.char_type==pm.char_type) and (qm.var==pm.var) then + return new_jfm_glue(qm, Nq.class, Np.class) else - local qm, pm = Nq.met, Np.met - if (qm.char_type==pm.char_type) and (qm.var==pm.var) then - return new_jfm_glue(qm, Nq.class, Np.class) - else - local npn, nqn = Np.nuc, Nq.nuc - local gb, db = new_jfm_glue(qm, Nq.class, - slow_find_char_class(has_attr(npn, attr_orig_char), - qm, getchar(npn))) - local ga, da = new_jfm_glue(pm, - slow_find_char_class(has_attr(nqn, attr_orig_char), - pm, getchar(nqn)), - Np.class) - return calc_ja_ja_aux(gb, ga, db, da); - end + local npn, nqn = Np.nuc, Nq.nuc + local gb, db = new_jfm_glue(qm, Nq.class, + slow_find_char_class(Np.char, + qm, getchar(npn))) + local ga, da = new_jfm_glue(pm, + slow_find_char_class(Nq.char, + pm, getchar(nqn)), + Np.class) + return calc_ja_ja_aux(gb, ga, db, da); end end @@ -726,8 +843,7 @@ do local XKANJI_SKIP_JFM = luatexja.icflag_table.XKANJI_SKIP_JFM get_xkanjiskip_normal = function (Nn) if (Nq.xspc>=2) and (Np.xspc%2==1) and (Nq.auto_xspc or Np.auto_xspc) then - local f = node_copy(xkanji_skip) - return f + return node_copy(xkanji_skip) else local g = node_copy(zero_glue) set_attr(g, attr_icflag, XKANJI_SKIP) @@ -740,7 +856,7 @@ do g = node_new(id_glue) local gx = node_new(id_glue_spec); setfield(gx, 'stretch_order', 0); setfield(gx, 'shrink_order', 0) - local bk = Nn.met.xkanjiskip or {0, 0, 0} + local bk = Nn.met.xkanjiskip or null_skip_table setfield(gx, 'width', bk[1]) setfield(gx, 'stretch', bk[2]) setfield(gx, 'shrink', bk[3]) @@ -756,36 +872,30 @@ end -------------------- 隣接した「塊」間の処理 local function get_OA_skip() - if not ihb_flag then - local pm = Np.met - return new_jfm_glue(pm, - fast_find_char_class(((Nq.id == id_math and -1) or (type(Nq.char)=='string' and Nq.char or 'jcharbdd')), pm), Np.class) - else return nil - end + local pm = Np.met + return new_jfm_glue(pm, + fast_find_char_class((Nq.id == id_math and -1 or 'jcharbdd'), pm), Np.class) end local function get_OB_skip() - if not ihb_flag then - local qm = Nq.met - return new_jfm_glue(qm, Nq.class, - fast_find_char_class(((Np.id == id_math and -1) or'jcharbdd'), qm)) - else return nil - end + local qm = Nq.met + return new_jfm_glue(qm, Nq.class, + fast_find_char_class((Np.id == id_math and -1 or'jcharbdd'), qm)) end -- (anything) .. jachar local function handle_np_jachar(mode) local qid = Nq.id - if qid==id_jglyph or ((qid==id_pbox or qid==id_pbox_w) and Nq.met) then - local g = calc_ja_ja_glue() or get_kanjiskip() -- M->K + if qid==id_jglyph or ((qid==id_pbox or qid==id_pbox_w) and Nq.met) then + local g = non_ihb_flag and calc_ja_ja_glue() or get_kanjiskip() -- M->K handle_penalty_normal(Nq.post, Np.pre, g); real_insert(g) elseif Nq.met then -- qid==id_hlist - local g = get_OA_skip() or get_kanjiskip() -- O_A->K + local g = non_ihb_flag and get_OA_skip() or get_kanjiskip() -- O_A->K handle_penalty_normal(0, Np.pre, g); real_insert(g) - elseif Nq.pre then - local g = get_OA_skip() or get_xkanjiskip(Np) -- O_A->X + elseif Nq.pre then + local g = non_ihb_flag and get_OA_skip() or get_xkanjiskip(Np) -- O_A->X handle_penalty_normal((qid==id_hlist and 0 or Nq.post), Np.pre, g); real_insert(g) else - local g = get_OA_skip() -- O_A + local g = non_ihb_flag and get_OA_skip() -- O_A if qid==id_glue then handle_penalty_normal(0, Np.pre, g) elseif qid==id_kern then handle_penalty_suppress(0, Np.pre, g) else handle_penalty_always(0, Np.pre, g) @@ -800,11 +910,11 @@ end -- jachar .. (anything) local function handle_nq_jachar() - if Np.pre then - local g = get_OB_skip() or get_xkanjiskip(Nq) -- O_B->X + if Np.pre then + local g = non_ihb_flag and get_OB_skip() or get_xkanjiskip(Nq) -- O_B->X handle_penalty_normal(Nq.post, (Np.id==id_hlist and 0 or Np.pre), g); real_insert(g) else - local g = get_OB_skip() -- O_B + local g =non_ihb_flag and get_OB_skip() -- O_B if Np.id==id_glue then handle_penalty_normal(Nq.post, 0, g) elseif Np.id==id_kern then handle_penalty_suppress(Nq.post, 0, g) else handle_penalty_always(Nq.post, 0, g) @@ -816,13 +926,13 @@ end -- (anything) .. (和文文字で始まる hlist) local function handle_np_ja_hlist() local qid = Nq.id - if qid==id_jglyph or ((qid==id_pbox or Nq.id == id_pbox_w) and Nq.met) then - local g = get_OB_skip() or get_kanjiskip() -- O_B->K + if qid==id_jglyph or ((qid==id_pbox or Nq.id == id_pbox_w) and Nq.met) then + local g = non_ihb_flag and get_OB_skip() or get_kanjiskip() -- O_B->K handle_penalty_normal(Nq.post, 0, g); real_insert(g) elseif Nq.met then -- Nq.id==id_hlist local g = get_kanjiskip() -- K handle_penalty_suppress(0, 0, g); real_insert(g) - elseif Nq.pre then + elseif Nq.pre then local g = get_xkanjiskip(Np) -- X handle_penalty_suppress(0, 0, g); real_insert(g) end @@ -830,7 +940,7 @@ end -- (和文文字で終わる hlist) .. (anything) local function handle_nq_ja_hlist() - if Np.pre then + if Np.pre then local g = get_xkanjiskip(Nq) -- X handle_penalty_suppress(0, 0, g); real_insert(g) end @@ -840,16 +950,13 @@ end -- Nq が前側のクラスタとなることによる修正 do local adjust_nq_aux = { - [id_glyph] = function() - local x = Nq.nuc - return set_np_xspc_alchar(Nq, getchar(x),x, 2) - end, -- after_alchar(Nq) + [id_glyph] = function() after_alchar(Nq) end, -- after_alchar(Nq) [id_hlist] = function() after_hlist(Nq) end, [id_pbox] = function() after_hlist(Nq) end, [id_disc] = function() after_hlist(Nq) end, - [id_pbox_w] = function() + [id_pbox_w] = function() luatexbase.call_callback("luatexja.jfmglue.whatsit_after", - false, Nq, Np) + false, Nq, Np) end, } @@ -872,13 +979,12 @@ local function handle_list_tail(mode) -- Insert \jcharwidowpenalty Bp = widow_Bp; Np = widow_Np if Np.first then - handle_penalty_normal(0, - table_current_stack[JWP] or 0) + handle_penalty_normal(0, table_current_stack[JWP] or 0) end else -- the current list is the contents of a hbox local npi, pm = Np.id, Np.met - if npi == id_jglyph or (npi==id_pbox and pm) then + if npi == id_jglyph or (npi==id_pbox and pm) then local g = new_jfm_glue(pm, Np.class, fast_find_char_class('boxbdd', pm)) if g then set_attr(g, attr_icflag, BOXBDD) @@ -891,8 +997,8 @@ end -- リスト先頭の処理 local function handle_list_head(par_indented) local npi, pm = Np.id, Np.met - if npi == id_jglyph or (npi==id_pbox and pm) then - if not ihb_flag then + if npi == id_jglyph or (npi==id_pbox and pm) then + if non_ihb_flag then local g = new_jfm_glue(pm, fast_find_char_class(par_indented, pm), Np.class) if g then set_attr(g, attr_icflag, BOXBDD) @@ -914,55 +1020,74 @@ do local XKANJI_SKIP = luatexja.icflag_table.XKANJI_SKIP local KSK = luatexja.stack_table_index.KSK local XSK = luatexja.stack_table_index.XSK - init_var = function (mode) + local dir_yoko = luatexja.dir_table.dir_yoko + local dir_tate = luatexja.dir_table.dir_tate + local attr_yablshift = luatexbase.attributes['ltj@yablshift'] + local attr_tablshift = luatexbase.attributes['ltj@tablshift'] + local table_pool = { + {}, {}, {first=nil}, + { auto_kspc=nil, auto_xspc=nil, char=nil, class=nil, + first=nil, id=nil, last=nil, met=nil, nuc=nil, + post=nil, pre=nil, xspc=nil, }, + { auto_kspc=nil, auto_xspc=nil, char=nil, class=nil, + first=nil, id=nil, last=nil, met=nil, nuc=nil, + post=nil, pre=nil, xspc=nil, }, + } + init_var = function (mode,dir) -- 1073741823: max_dimen - Bp, widow_Bp, widow_Np = {}, {}, {first = nil} + Bp, widow_Bp, widow_Np, Np, Nq + = table_pool[1], table_pool[2], table_pool[3], table_pool[4], table_pool[5] + for i=1,5 do for j,_ in pairs(table_pool[i]) do table_pool[i][j]=nil end end table_current_stack = ltjs.table_current_stack - - kanji_skip = node_new(id_glue) - setfield(kanji_skip, 'spec', skip_table_to_spec(KSK)) - set_attr(kanji_skip, attr_icflag, KANJI_SKIP) - get_kanjiskip = (getfield(getfield(kanji_skip, 'spec'), 'width') == 1073741823) - and get_kanjiskip_jfm or get_kanjiskip_normal - - xkanji_skip = node_new(id_glue) - setfield(xkanji_skip, 'spec', skip_table_to_spec(XSK)) - set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP) - get_xkanjiskip = (getfield(getfield(xkanji_skip, 'spec'), 'width') == 1073741823) - and get_xkanjiskip_jfm or get_xkanjiskip_normal - - Np = { - auto_kspc=nil, auto_xspc=nil, char=nil, class=nil, - first=nil, id=nil, last=nil, met=nil, nuc=nil, - post=nil, pre=nil, xspc=nil, - } - Nq = { - auto_kspc=nil, auto_xspc=nil, char=nil, class=nil, - first=nil, id=nil, last=nil, met=nil, nuc=nil, - post=nil, pre=nil, xspc=nil, - } - if mode then + + list_dir, tex_dir = (ltjs.list_dir or dir_yoko), (dir or 'TLT') + local is_dir_tate = list_dir==dir_tate + capsule_glyph = is_dir_tate and ltjw.capsule_glyph_tate or ltjw.capsule_glyph_yoko + attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift + local TEMP = node_new(id_glue) + -- TEMP is a dummy node, which will be freed at the end of the callback. + -- ithout this node, set_attr(kanji_skip, ...) somehow creates an "orphaned" attribute list. + + do + kanji_skip = node_new(id_glue); set_attr(kanji_skip, attr_icflag, KANJI_SKIP) + local s = skip_table_to_spec(KSK) + setfield(kanji_skip, 'spec', s) + get_kanjiskip = (getfield(s, 'width') == 1073741823) + and get_kanjiskip_jfm or get_kanjiskip_normal + end + + do + xkanji_skip = node_new(id_glue); set_attr(xkanji_skip, attr_icflag, XKANJI_SKIP) + local s = skip_table_to_spec(XSK) + setfield(xkanji_skip, 'spec', s) + get_xkanjiskip = (getfield(s, 'width') == 1073741823) + and get_xkanjiskip_jfm or get_xkanjiskip_normal + end + + if mode then -- the current list is to be line-breaked: -- hbox from \parindent is skipped. local lp, par_indented, lpi, lps = head, 'boxbdd', getid(head), getsubtype(head) - while lp and ((lpi==id_whatsit and lps~=sid_user) + while lp and ((lpi==id_whatsit and lps~=sid_user) or ((lpi==id_hlist) and (lps==3))) do - if (lpi==id_hlist) and (lps==3) then + if (lpi==id_hlist) and (lps==3) then Np.char, par_indented = 'parbdd', 'parbdd' Np.width = getfield(lp, 'width') end lp=node_next(lp); lpi, lps = getid(lp), getsubtype(lp) end - return lp, node_tail(head), par_indented + return lp, node_tail(head), par_indented, TEMP else - return head, nil, 'boxbdd' + return head, nil, 'boxbdd', TEMP end end end -local function cleanup(mode) +local ensure_tex_attr = ltjb.ensure_tex_attr +local function cleanup(mode, TEMP) -- adjust attr_icflag for avoiding error - tex.setattribute('global', attr_icflag, 0) - node_free(kanji_skip); node_free(xkanji_skip) + if tex.getattribute(attr_icflag)~=0 then ensure_tex_attr(attr_icflag, 0) end + node_free(kanji_skip); node_free(xkanji_skip); node_free(TEMP) + if mode then local h = node_next(head) if getid(h) == id_penalty and getfield(h, 'penalty') == 10000 then @@ -971,45 +1096,37 @@ local function cleanup(mode) return false end end - return head - else - set_attr(head, attr_icflag, - get_attr_icflag(head) + PROCESSED_BEGIN_FLAG); - return head end + return head end -------------------- 外部から呼ばれる関数 -- main interface -function main(ahead, mode) +function main(ahead, mode, dir) if not ahead then return ahead end head = ahead; - local lp, last, par_indented = init_var(mode) - lp = calc_np(lp, last) - if Np then - extract_np(); handle_list_head(par_indented) - else - return cleanup(mode) - end - lp = calc_np(lp, last) - while Np do - extract_np(); - adjust_nq(); - local pid, pm = Np.id, Np.met - -- 挿入部 - if pid == id_jglyph then - handle_np_jachar(mode) - elseif pm then - if pid==id_hlist then handle_np_ja_hlist() - else handle_np_jachar() end - elseif Nq.met then - if Nq.id==id_hlist then handle_nq_ja_hlist() - else handle_nq_jachar() end + local lp, last, par_indented, TEMP = init_var(mode,dir) + lp = calc_np(last, lp) + if Np then + handle_list_head(par_indented) + lp = calc_np(last,lp); while Np do + adjust_nq(); + local pid, pm = Np.id, Np.met + -- 挿入部 + if pid == id_jglyph then + handle_np_jachar(mode) + elseif pm then + if pid==id_hlist then handle_np_ja_hlist() + else handle_np_jachar() end + elseif Nq.met then + if Nq.id==id_hlist then handle_nq_ja_hlist() + else handle_nq_jachar() end + end + lp = calc_np(last,lp) end - lp = calc_np(lp, last) + handle_list_tail(mode) end - handle_list_tail(mode) - return cleanup(mode) + return cleanup(mode, TEMP) end end @@ -1039,14 +1156,9 @@ do end local function whatsit_callback(Np, lp, Nq) - if Np and Np.nuc then return Np + if Np and Np.nuc then return Np elseif Np and getfield(lp, 'user_id') == BPAR then Np.first = lp; Np.nuc = lp; Np.last = lp - Np.char = 'parbdd' - Np.met = nil - Np.pre = 0; Np.post = 0 - Np.xspc = 0 - Np.auto_xspc = false return Np end end @@ -1055,6 +1167,13 @@ do if not s and getfield(Nq.nuc, 'user_id') == BPAR then local x, y = node_prev(Nq.nuc), Nq.nuc Nq.first, Nq.nuc, Nq.last = x, x, x + if Np then + if Np.met then + Nq.class = fast_find_char_class('parbdd', Np.met) + end + Nq.met = Np.met; Nq.pre = 0; Nq.post = 0; Nq.xspc = 0 + Nq.auto_xspc = false + end head = node_remove(head, y) node_free(y) end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua index ff0788d82bf..76ca9ff7a54 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua @@ -3,22 +3,21 @@ -- luatexbase.provides_module({ name = 'luatexja.jfont', - date = '2014/02/01', + date = '2015/02/08', description = 'Loader for Japanese fonts', }) module('luatexja.jfont', package.seeall) luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('charrange'); local ltjc = luatexja.charrange +luatexja.load_module('rmlgbm'); local ltjr = luatexja.rmlgbm +luatexja.load_module('direction'); local ltjd = luatexja.direction -local mem_leak_glue, mem_leak_gs, mem_leak_kern = 0, 0, 0 local Dnode = node.direct or node local setfield = (Dnode ~= node) and Dnode.setfield or function(n, i, c) n[i] = c end local getid = (Dnode ~= node) and Dnode.getid or function(n) return n.id end -local getfont = (Dnode ~= node) and Dnode.getfont or function(n) return n.font end -local getchar = (Dnode ~= node) and Dnode.getchar or function(n) return n.char end local nullfunc = function(n) return n end local to_direct = (Dnode ~= node) and Dnode.todirect or nullfunc @@ -27,18 +26,17 @@ local node_new = Dnode.new local node_free = Dnode.free local has_attr = Dnode.has_attribute local set_attr = Dnode.set_attribute -local node_write = Dnode.write local round = tex.round local font_getfont = font.getfont local attr_icflag = luatexbase.attributes['ltj@icflag'] local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] +local attr_curtfnt = luatexbase.attributes['ltj@curtfnt'] local id_glyph = node.id('glyph') local id_kern = node.id('kern') local id_glue_spec = node.id('glue_spec') local id_glue = node.id('glue') local cat_lp = luatexbase.catcodetables['latex-package'] -local ITALIC = luatexja.icflag_table.ITALIC local FROM_JFM = luatexja.icflag_table.FROM_JFM ------------------------------------------------------------------------ @@ -52,12 +50,13 @@ luatexbase.create_callback("luatexja.load_jfm", "data", function (ft, jn) return local jfm_file_name, jfm_var local defjfm_res +local jfm_dir, is_def_jfont function define_jfm(t) local real_char -- Does current character class have the 'real' character? - if t.dir~='yoko' then + if t.dir~=jfm_dir then defjfm_res= nil; return - elseif type(t.zw)~='number' or type(t.zh)~='number' then + elseif type(t.zw)~='number' or type(t.zh)~='number' then defjfm_res= nil; return end t.char_type = {}; t.chars = {} @@ -69,44 +68,42 @@ function define_jfm(t) else real_char = false for j,w in pairs(v.chars) do - if type(w) == 'number' then + if type(w) == 'number' and w~=-1 then real_char = true; elseif type(w) == 'string' and utf.len(w)==1 then real_char = true; w = utf.byte(w) elseif type(w) == 'string' and utf.len(w)==2 and utf.sub(w,2) == '*' then real_char = true; w = utf.byte(utf.sub(w,1,1)) - if not t.chars[-w] then - t.chars[-w] = i - else - defjfm_res= nil; return - end end if not t.chars[w] then t.chars[w] = i - else + else defjfm_res= nil; return end end - if type(v.align)~='string' then + if type(v.align)~='string' then v.align = 'left' -- left end if real_char then - if not (type(v.width)=='number' or v.width~='prop') then + if type(v.width)~='number' and v.width~='prop' then defjfm_res= nil; return else + if v.width=='prop' and jfm_dir=='tate' then + v.width = 1.0 + end if type(v.height)~='number' then v.height = 0.0 end if type(v.depth)~='number' then v.depth = 0.0 end - if type(v.italic)~='number' then + if type(v.italic)~='number' then v.italic = 0.0 end - if type(v.left)~='number' then + if type(v.left)~='number' then v.left = 0.0 end - if type(v.down)~='number' then + if type(v.down)~='number' then v.down = 0.0 end end @@ -118,9 +115,9 @@ function define_jfm(t) if v.kern[j] then defjfm_res= nil; return end end for j,x in pairs(v.kern) do - if type(x)=='number' then + if type(x)=='number' then v.kern[j] = {x, 0} - elseif type(x)=='table' then + elseif type(x)=='table' then v.kern[j] = {x[1], x[2] or 0} end end @@ -150,20 +147,20 @@ do return new else return nil end end - + update_jfm_cache = function (j,sz) if metrics[j].size_cache[sz] then return end + --local TEMP = node_new(id_kern) local t = {} metrics[j].size_cache[sz] = t t.chars = metrics[j].chars t.char_type = mult_table(metrics[j].char_type, sz) for i,v in pairs(t.char_type) do - v.align = (v.align=='left') and 0 or + v.align = (v.align=='left') and 0 or ((v.align=='right') and 1 or 0.5) if type(i) == 'number' then -- char_type for k,w in pairs(v.glue) do local h = node_new(id_glue_spec) -mem_leak_gs = mem_leak_gs+1 v[k] = {true, h, (w[5] and w[5]/sz or 0), FROM_JFM + (w[4] and w[4]/sz or 0)} setfield(h, 'width', w[1]) setfield(h, 'stretch', w[2]) @@ -173,7 +170,6 @@ mem_leak_gs = mem_leak_gs+1 end for k,w in pairs(v.kern) do local g = node_new(id_kern) -mem_leak_kern = mem_leak_kern +1 setfield(g, 'kern', w[1]) setfield(g, 'subtype', 1) set_attr(g, attr_icflag, FROM_JFM) @@ -186,19 +182,34 @@ mem_leak_kern = mem_leak_kern +1 t.xkanjiskip = mult_table(metrics[j].xkanjiskip,sz) t.zw = round(metrics[j].zw*sz) t.zh = round(metrics[j].zh*sz) + t.size = sz + --node_free(TEMP) end end -luatexbase.create_callback("luatexja.find_char_class", "data", +luatexbase.create_callback("luatexja.find_char_class", "data", function (arg, fmtable, char) return 0 end) - -function find_char_class(c,m) --- c: character code, m: - if not m then return 0 end - return m.chars[c] or - luatexbase.call_callback("luatexja.find_char_class", 0, m, c) +do + local start_time_measure = ltjb.start_time_measure + local stop_time_measure = ltjb.stop_time_measure + local fcc_temp = { chars_cbcache = {} } + setmetatable( + fcc_temp.chars_cbcache, + { + __index = function () return 0 end, + }) + function find_char_class(c,m) + -- c: character code, m: + local r = (m or fcc_temp).chars_cbcache[c] + if not r then + r = m.chars[c] or + luatexbase.call_callback("luatexja.find_char_class", 0, m, c) + m.chars_cbcache[c or 0] = r + end + return r + end end @@ -210,14 +221,14 @@ do local cstemp local global_flag -- true if \globaljfont, false if \jfont local function load_jfont_metric() - if jfm_file_name=='' then + if jfm_file_name=='' then ltjb.package_error('luatexja', 'no JFM specified', 'To load and define a Japanese font, a JFM must be specified.'.. "The JFM 'ujis' will be used for now.") jfm_file_name='ujis' end - for j,v in ipairs(metrics) do + for j,v in ipairs(metrics) do if v.name==jfm_file_name then return j end end luatexja.load_lua('jfm-' .. jfm_file_name .. '.lua') @@ -225,97 +236,137 @@ do defjfm_res.name = jfm_file_name table.insert(metrics, defjfm_res) return #metrics - else + else return nil end end -- EXT - function jfontdefX(g) + function jfontdefX(g, dir) + jfm_dir, is_def_jfont = dir, true local t = token.get_next() cstemp=token.csname_name(t) global_flag = g and '\\global' or '' - tex.sprint(cat_lp, '\\expandafter\\font\\csname ' .. cstemp .. '\\endcsname') + tex.sprint(cat_lp, '\\expandafter\\font\\csname ', cstemp, '\\endcsname') end - + luatexbase.create_callback("luatexja.define_jfont", "data", function (ft, fn) return ft end) -- EXT - function jfontdefY() -- for horizontal font - local j = load_jfont_metric() + local identifiers = fonts.hashes.identifiers + function jfontdefY() + local j = load_jfont_metric(jfm_dir) local fn = font.id(cstemp) local f = font_getfont(fn) - if not j then + if not j then ltjb.package_error('luatexja', "bad JFM `" .. jfm_file_name .. "'", 'The JFM file you specified is not valid JFM file.\n'.. 'So defining Japanese font is cancelled.') - tex.sprint(cat_lp, global_flag .. '\\expandafter\\let\\csname ' ..cstemp - .. '\\endcsname=\\relax') - return + tex.sprint(cat_lp, global_flag, '\\expandafter\\let\\csname ', cstemp, + '\\endcsname=\\relax') + return end update_jfm_cache(j, f.size) - --print('MEMORY LEAK (acc): ', mem_leak_glue, mem_leak_gs, mem_leak_kern) + local ad = identifiers[fn].parameters local sz = metrics[j].size_cache[f.size] - local fmtable = { jfm = j, size = f.size, var = jfm_var, - zw = sz.zw, zh = sz.zh, + local fmtable = { jfm = j, size = f.size, var = jfm_var, + zw = sz.zw, zh = sz.zh, + ascent = ad.ascender, + descent = ad.descender, chars = sz.chars, char_type = sz.char_type, - kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip, + kanjiskip = sz.kanjiskip, xkanjiskip = sz.xkanjiskip, + chars_cbcache = {}, } - + fmtable = luatexbase.call_callback("luatexja.define_jfont", fmtable, fn) font_metric_table[fn]=fmtable - tex.sprint(cat_lp, global_flag .. '\\protected\\expandafter\\def\\csname ' - .. cstemp .. '\\endcsname{\\ltj@curjfnt=' .. fn .. '\\relax}') + tex.sprint(cat_lp, global_flag, '\\protected\\expandafter\\def\\csname ', + cstemp , '\\endcsname{\\ltj@cur'.. + (jfm_dir == 'yoko' and 'j' or 't') .. 'fnt', fn, '\\relax}') end end do + local get_dir_count = ltjd.get_dir_count + local dir_tate = luatexja.dir_table.dir_tate + local tex_get_attr = tex.getattribute -- PUBLIC function - function get_zw() - local a = font_metric_table[tex.attribute[attr_curjfnt]] + function get_zw() + local a = font_metric_table[ + tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] return a and a.zw or 0 end - function get_zh() - local a = font_metric_table[tex.attribute[attr_curjfnt]] + function get_zh() + local a = font_metric_table[ + tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)] return a and a.zw or 0 end end do -- extract jfm_file_name and jfm_var + -- normalize position of 'jfm=' and 'jfmvar=' keys local function extract_metric(name) - local basename=name - local tmp = utf.sub(basename, 1, 5) jfm_file_name = ''; jfm_var = '' + local tmp, index = name:sub(1, 5), 1 if tmp == 'file:' or tmp == 'name:' or tmp == 'psft:' then - basename = utf.sub(basename, 6) - end - local p = utf.find(basename, ":") - if p then - basename = utf.sub(basename, p+1) - else return - end - -- now basename contains 'features' only. - p=1 - while p do - local q = utf.find(basename, ";", p+1) or utf.len(basename)+1 - if utf.sub(basename, p, p+3)=='jfm=' and q>p+4 then - jfm_file_name = utf.sub(basename, p+4, q-1) - elseif utf.sub(basename, p, p+6)=='jfmvar=' and q>p+6 then - jfm_var = utf.sub(basename, p+7, q-1) + index = 6 + end + local p = name:find(":", index); index = p and (p+1) or index + while index do + local l = name:len()+1 + local q = name:find(";", index+1) or l + if name:sub(index, index+3)=='jfm=' and q>index+4 then + jfm_file_name = name:sub(index+4, q-1) + if l~=q then + name = name:sub(1,index-1) .. name:sub(q+1) + else + name = name:sub(1,index-1) + index = nil + end + elseif name:sub(index, index+6)=='jfmvar=' and q>index+6 then + jfm_var = name:sub(index+7, q-1) + if l~=q then + name = name:sub(1,index-1) .. name:sub(q+1) + else + name = name:sub(1,index-1) + index = nil + end + else + index = (l~=q) and (q+1) or nil end - if utf.len(basename)+1==q then p = nil else p = q + 1 end end - return + if jfm_file_name~='' then + local l = name:sub(-1) + name = name + .. ((l==':' or l==';') and '' or ';') + .. 'jfm=' .. jfm_file_name + if jfm_var~='' then + name = name .. 'jfmvar=' .. jfm_var + end + end + if jfm_dir == 'tate' then + if not name:match('vert') and not name:match('vrt2') then + name = name .. ';vert;vrt2' + end + end + return name end - - -- replace fonts.define.read() - function font_callback(name, size, id, fallback) - extract_metric(name) - -- In the present imple., we don't remove "jfm=..." from name. - return fallback(name, size, id) + + -- define_font callback + local otfl_fdr = fonts.definers.read + local ltjr_font_callback = ltjr.font_callback + function luatexja.font_callback(name, size, id) + local new_name = is_def_jfont and extract_metric(name) or name + is_def_jfont = false + local res = ltjr_font_callback(new_name, size, id, otfl_fdr) + luatexbase.call_callback('luatexja.define_font', res, new_name, size, id) + -- this callback processes variation selector, so we execute it always + return res end + luatexbase.create_callback('luatexja.define_font', 'simple', function (n) return n end) + luatexbase.add_to_callback('define_font',luatexja.font_callback,"luatexja.font_callback", 1) end ------------------------------------------------------------------------ @@ -329,11 +380,11 @@ do function is_kyenc(enc) tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (kyenc_list[enc] or 'false ')) end - function is_kyenc(enc) - tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (kyenc_list[enc] or 'false ')) + function is_ktenc(enc) + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (ktenc_list[enc] or 'false ')) end - function is_kenc(enc) - tex.sprint(cat_lp, '\\let\\ifin@\\if' + function is_kenc(enc) + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (kyenc_list[enc] or ktenc_list[enc] or 'false ')) end @@ -347,10 +398,10 @@ do Nkfam_list[enc][fam] = 'true ' end function is_kfam(enc, fam) - tex.sprint(cat_lp, '\\let\\ifin@\\if' + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (kfam_list[enc] and kfam_list[enc][fam] or 'false ')) end function is_Nkfam(enc, fam) - tex.sprint(cat_lp, '\\let\\ifin@\\if' + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (Nkfam_list[enc] and Nkfam_list[enc][fam] or 'false ')) end local ffam_list, Nffam_list = {}, {} @@ -363,10 +414,10 @@ do Nffam_list[enc][fam] = 'true ' end function is_ffam(enc, fam) - tex.sprint(cat_lp, '\\let\\ifin@\\if' + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (ffam_list[enc] and ffam_list[enc][fam] or 'false ')) end function is_Nffam(enc, fam) - tex.sprint(cat_lp, '\\let\\ifin@\\if' + tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (Nffam_list[enc] and Nffam_list[enc][fam] or 'false ')) end end ------------------------------------------------------------------------ @@ -414,7 +465,7 @@ end -- EXT function clear_alt_font(bfnt) - if alt_font_table[bfnt] then + if alt_font_table[bfnt] then local t = alt_font_table[bfnt] for i,_ in pairs(t) do t[i]=nil; end end @@ -434,7 +485,7 @@ local alt_font_table_latex = {} function clear_alt_font_latex(bbase) local t = alt_font_table_latex[bbase] if t then - for j,v in pairs(t) do t[j] = nil end + for j,v in pairs(t) do t[j] = nil end end end @@ -491,17 +542,21 @@ do end -- EXT - function output_alt_font_cmd(bbase) + function output_alt_font_cmd(dir, bbase) alt_font_base = bbase - alt_font_base_num = tex.getattribute(attr_curjfnt) + if dir == 't' then + alt_font_base_num = tex.getattribute(attr_curtfnt) + else + alt_font_base_num = tex.getattribute(attr_curjfnt) + end local t = alt_font_table[alt_font_base_num] - if t then + if t then for i,_ in pairs(t) do t[i]=nil end end t = alt_font_table_latex[bbase] if t then - for i,_ in pairs(t) do - tex.sprint(cat_lp, '\\ltj@pickup@altfont@aux{' .. i .. '}') + for i,_ in pairs(t) do + tex.sprint(cat_lp, '\\ltj@pickup@altfont@aux' .. dir .. '{' .. i .. '}') end end end @@ -515,10 +570,10 @@ do .. '\\csname ' .. i .. '/' .. size_str .. '\\endcsname{' .. i .. '}') end end - end + end local function pickup_alt_font_class(class, afnt_num, afnt_chars) - local t = alt_font_table[alt_font_base_num] + local t = alt_font_table[alt_font_base_num] local tx = font_metric_table[alt_font_base_num].chars for i,v in pairs(tx) do if v==class and afnt_chars[i] then t[i]=afnt_num end @@ -533,11 +588,11 @@ do for i,v in pairs(alt_font_table_latex[alt_font_base]) do if i == afnt_base then for j,_ in pairs(v) do - if j>=0 then + if j>=0 then if ac[j] then t[j]=afnt_num end else -- -n (n>=1) means that the character class n, - -- which is defined in the JFM - pickup_alt_font_class(-j, afnt_num, ac) + -- which is defined in the JFM + pickup_alt_font_class(-j, afnt_num, ac) end end return @@ -546,36 +601,300 @@ do end end +------------------------------------------------------------------------ +-- 終了時に各種ノードを破棄 +------------------------------------------------------------------------ +do + function cleanup_size_cache() + --local gs, ke = 0, 0 + for _,n in pairs(metrics) do + for i,t in pairs(n.size_cache) do + for _,v in pairs(t.char_type) do + for k,w in pairs(v) do + if type(k)=='number' then + --if w[1] then gs = gs + 1 else ke = ke + 1 end + node_free(w[2]) + end + end + end + n.size_cache[i]=nil + end + end + --print('glue spec: ', gs, 'kern: ', ke) + end +end + +------------------------------------------------------------------------ +-- 追加のフォント情報 +------------------------------------------------------------------------ +font_extra_info = {} +local font_extra_info = font_extra_info -- key: fontnumber +local font_extra_basename = {} -- key: basename + +-- IVS and vertical metrics +local prepare_fl_data +local supply_vkern_table +do + local fields = fontloader.fields + local function glyph_vmetric(glyph) + local flds = fields(glyph) + local vw, tsb, vk = nil, nil, nil + for _,i in ipairs(flds) do + if i=='vwidth' then vw = glyph.vwidth end + if i=='tsidebearing' then tsb = glyph.tsidebearing end + if i=='vkerns' then vk = glyph.vkerns end + end + return vw, tsb, vk + end + + local sort = table.sort + local function add_fl_table(dest, tg, unitable, glyphmax, asc_des, units) + for i = 0, glyphmax-1 do + local gv = tg[i] + if gv then + if gv.altuni then + for _,at in pairs(gv.altuni) do + local bu, vsel = at.unicode, at.variant + if vsel then + if vsel>=0xE0100 then vsel = vsel - 0xE0100 end + dest = dest or {}; dest[bu] = dest[bu] or {} + local uniq_flag = true + for i,_ in pairs(dest[bu]) do + if i==vs then uniq_flag = false; break end + end + if uniq_flag then + dest[bu][vsel] = unitable[gv.name] + end + end + end + end + -- vertical metric + local vw, tsb, vk = glyph_vmetric(gv) + local gi = unitable[gv.name] + if gi and vw and vw~=asc_des then + -- We do not use tsidebearing, since (1) fontloader does not read VORG table + -- and (2) 'tsidebearing' doea not appear in the returned table by fontloader.fields. + -- Hence, we assume that vertical origin == ascender + -- (see capsule_glyph_tate in ltj-setwidth.lua) + dest = dest or {}; dest[gi] = dest[gi] or {} + dest[gi].vwidth = vw/units + end + -- vertical kern + if gi and vk then + dest = dest or {}; + local dest_vk = dest.vkerns or {}; dest.vkerns = dest_vk + for _,v in pairs(vk) do + if unitable[v.char] then + local vl = v.lookup + if type(vl)=='table' then + for _,vlt in pairs(vl) do + dest_vk[vlt] = dest_vk[vlt] or {} + dest_vk[vlt][gi] = dest_vk[vlt][gi] or {} + dest_vk[vlt][gi][unitable[v.char]] = v.off + end + else + dest_vk[vl] = dest_vk[vl] or {} + dest_vk[vl][gi] = dest_vk[vl][gi] or {} + dest_vk[vl][gi][unitable[v.char]] = v.off + end + end + end + end + end + end + return dest + end + prepare_fl_data = function (dest, id) + local fl = fontloader.open(id.filename) + local unicodes = id.resources.unicodes + if fl.glyphs then + dest = add_fl_table(dest, fl.glyphs, id.resources.unicodes, fl.glyphmax, + fl.ascent + fl.descent, fl.units_per_em) + end + if fl.subfonts then + for _,v in pairs(fl.subfonts) do + dest = add_fl_table(dest, v.glyphs, id.resources.unicodes, v.glyphmax, + fl.ascent + fl.descent, fl.units_per_em) + end + end + fontloader.close(fl); collectgarbage("collect") + return dest + end + -- supply vkern table + supply_vkern_table = function(id, bname) + local bx = font_extra_basename[bname].vkerns + local lookuphash = id.resources.lookuphash + local desc = id.shared.rawdata.descriptions + if bx then + for i,v in pairs(bx) do + lookuphash[i] = lookuphash[i] or v + for j,w in pairs(v) do + desc[j].kerns = desc[j].kerns or {} + desc[j].kerns[i] = w + end + end + end + end +end + +-- +do + local cache_ver = 6 + local checksum = file.checksum + + local function prepare_extra_data_base(id) + if not id then return end + local bname = file.nameonly(id.filename or '') + if not font_extra_basename[bname] then + -- if the cache is present, read it + local newsum = checksum(id.filename) -- MD5 checksum of the fontfile + local v = "extra_" .. string.lower(file.nameonly(id.filename)) + local dat = ltjb.load_cache( + v, + function (t) return (t.version~=cache_ver) or (t.chksum~=newsum) end + ) + -- if the cache is not found or outdated, save the cache + if dat then + font_extra_basename[bname] = dat[1] or {} + else + local dat = nil + dat = prepare_fl_data(dat, id) + font_extra_basename[bname] = dat or {} + ltjb.save_cache( v, + { + chksum = checksum(id.filename), + version = cache_ver, + dat, + }) + end + return bname + end + end + local function prepare_extra_data_font(id, res) + if type(res)=='table' and res.shared then + font_extra_info[id] = font_extra_basename[file.nameonly(res.filename)] + end + end + luatexbase.add_to_callback( + 'luaotfload.patch_font', + function (tfmdata) + -- these function is executed one time per one fontfile + local bname = prepare_extra_data_base(tfmdata) + if bname then supply_vkern_table(tfmdata, bname) end + return tfmdata + end, + 'ltj.prepare_extra_data', 1) + luatexbase.add_to_callback( + 'luatexja.define_font', + function (res, name, size, id) + prepare_extra_data_font(id, res) + end, + 'ltj.prepare_extra_data', 1) + + local nulltable = {} -- dummy + ltjr.vert_addfunc = function (n) font_extra_info[n] = nulltable end + + local identifiers = fonts.hashes.identifiers + for i=1,font.nextid()-1 do + if identifiers[i] then + prepare_extra_data_base(identifiers[i]) + prepare_extra_data_font(i,identifiers[i]) + end + end +end ------------------------------------------------------------------------ --- MISC +-- calculate vadvance ------------------------------------------------------------------------ +do + local function acc_feature(table_vadv, table_vorg, subtables, ft, already_vert) + for char_num,v in pairs(ft.shared.rawdata.descriptions) do + if v.slookups then + for sn, sv in pairs(v.slookups) do + if subtables[sn] and type(sv)=='table' then + if sv[4]~=0 then + table_vadv[char_num] + = (table_vadv[char_num] or 0) + sv[4] + end + if sv[2]~=0 and not already_vert then + table_vorg[char_num] + = (table_vorg[char_num] or 0) + sv[2] + end + end + end + end + end + end -local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct -local font = font --- EXT: italic correction -function append_italic() - local p = to_direct(tex.nest[tex.nest.ptr].tail) - if p and getid(p)==id_glyph then - local f = getfont(p) - local g = node_new(id_kern) - setfield(g, 'subtype', 1) - set_attr(g, attr_icflag, ITALIC) - if is_ucs_in_japanese_char(p) then - f = has_attr(p, attr_curjfnt) - local j = font_metric_table[f] - setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic) - else - local h = font_getfont(f) or font.fonts[f] - if h then - setfield(g, 'kern', h.characters[getchar(p)].italic) +luatexbase.add_to_callback( + "luatexja.define_jfont", + function (fmtable, fnum) + local vadv = {}; fmtable.v_advance = vadv + local vorg = {}; fmtable.v_origin = vorg + local ft = font_getfont(fnum) + local subtables = {} + if ft.specification then + for feat_name,v in pairs(ft.specification.features.normal) do + if v==true then + for _,i in pairs(ft.resources.sequences) do + if i.order[1]== feat_name and i.type == 'gpos_single' then + for _,st in pairs(i.subtables) do + subtables[st] = true + end + end + end + end + end + acc_feature(vadv, vorg, subtables, ft, + ft.specification.features.normal.vrt2 or ft.specification.features.normal.vert) + for i,v in pairs(vadv) do + vadv[i]=vadv[i]/ft.units_per_em*fmtable.size + end + for i,v in pairs(vorg) do + vorg[i]=vorg[i]/ft.units_per_em*fmtable.size + end + end + return fmtable + end, 1, 'ltj.v_advance' +) +end +------------------------------------------------------------------------ +-- MISC +------------------------------------------------------------------------ +do + local getfont = (Dnode ~= node) and Dnode.getfont or function(n) return n.font end + local getchar = (Dnode ~= node) and Dnode.getchar or function(n) return n.char end + local get_dir_count = ltjd.get_dir_count + local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct + local ensure_tex_attr = ltjb.ensure_tex_attr + local node_write = Dnode.write + local font = font + local ITALIC = luatexja.icflag_table.ITALIC + -- EXT: italic correction + function append_italic() + local p = to_direct(tex.nest[tex.nest.ptr].tail) + local TEMP = node_new(id_kern) + if p and getid(p)==id_glyph then + if is_ucs_in_japanese_char(p) then + local j = font_metric_table[ + has_attr(p, (get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt) + ] + local g = node_new(id_kern) + setfield(g, 'subtype', 1); set_attr(g, attr_icflag, ITALIC) + setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic) + node_write(g); ensure_tex_attr(attr_icflag, 0) else - tex.attribute[attr_icflag] = 0 - return node_free(g) + local f = getfont(p) + local h = font_getfont(f) or font.fonts[f] + if h then + local g = node_new(id_kern) + setfield(g, 'subtype', 1); set_attr(g, attr_icflag, ITALIC) + setfield(g, 'kern', h.characters[getchar(p)].italic) + node_write(g); ensure_tex_attr(attr_icflag, 0) + end end end - node_write(g) - tex.attribute[attr_icflag] = 0 + node_free(TEMP) end end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jisx0208.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jisx0208.lua index 1d9a70b7942..a31dbcd786c 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jisx0208.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jisx0208.lua @@ -1,6883 +1,6883 @@ return { version = 2, -table_jisx0208_uptex = { +table_jisx0208_uptex = { [0x101] = 0x3000, --( ) - [0x102] = 0x3001, --(、) + [0x102] = 0x3001, --(、) [0x103] = 0x3002, --(。) - [0x104] = 0xFF0C, --(,) + [0x104] = 0xFF0C, --(,) [0x105] = 0xFF0E, --(.) - [0x106] = 0x30FB, --(・) + [0x106] = 0x30FB, --(・) [0x107] = 0xFF1A, --(:) - [0x108] = 0xFF1B, --(;) + [0x108] = 0xFF1B, --(;) [0x109] = 0xFF1F, --(?) - [0x10A] = 0xFF01, --(!) + [0x10A] = 0xFF01, --(!) [0x10B] = 0x309B, --(゛) - [0x10C] = 0x309C, --(゜) - [0x10D] = 0xB4, + [0x10C] = 0x309C, --(゜) + [0x10D] = 0xB4, [0x10E] = 0xFF40, --(`) - [0x10F] = 0xA8, - [0x110] = 0xFF3E, --(^) + [0x10F] = 0xA8, + [0x110] = 0xFF3E, --(^) [0x111] = 0xFFE3, --( ̄) - [0x112] = 0xFF3F, --(_) + [0x112] = 0xFF3F, --(_) [0x113] = 0x30FD, --(ヽ) - [0x114] = 0x30FE, --(ヾ) + [0x114] = 0x30FE, --(ヾ) [0x115] = 0x309D, --(ゝ) - [0x116] = 0x309E, --(ゞ) + [0x116] = 0x309E, --(ゞ) [0x117] = 0x3003, --(〃) - [0x118] = 0x4EDD, --(仝) + [0x118] = 0x4EDD, --(仝) [0x119] = 0x3005, --(々) - [0x11A] = 0x3006, --(〆) + [0x11A] = 0x3006, --(〆) [0x11B] = 0x3007, --(〇) - [0x11C] = 0x30FC, --(ー) + [0x11C] = 0x30FC, --(ー) [0x11D] = 0x2015, --(―) - [0x11E] = 0x2010, --(‐) + [0x11E] = 0x2010, --(‐) [0x11F] = 0xFF0F, --(/) - [0x120] = 0xFF3C, --(\) + [0x120] = 0xFF3C, --(\) [0x121] = 0x301C, --(〜) - [0x122] = 0x2016, --(‖) + [0x122] = 0x2016, --(‖) [0x123] = 0xFF5C, --(|) - [0x124] = 0x2026, --(…) + [0x124] = 0x2026, --(…) [0x125] = 0x2025, --(‥) - [0x126] = 0x2018, --(‘) + [0x126] = 0x2018, --(‘) [0x127] = 0x2019, --(’) - [0x128] = 0x201C, --(“) + [0x128] = 0x201C, --(“) [0x129] = 0x201D, --(”) - [0x12A] = 0xFF08, --(() + [0x12A] = 0xFF08, --(() [0x12B] = 0xFF09, --()) - [0x12C] = 0x3014, --(〔) + [0x12C] = 0x3014, --(〔) [0x12D] = 0x3015, --(〕) - [0x12E] = 0xFF3B, --([) + [0x12E] = 0xFF3B, --([) [0x12F] = 0xFF3D, --(]) - [0x130] = 0xFF5B, --({) + [0x130] = 0xFF5B, --({) [0x131] = 0xFF5D, --(}) - [0x132] = 0x3008, --(〈) + [0x132] = 0x3008, --(〈) [0x133] = 0x3009, --(〉) - [0x134] = 0x300A, --(《) + [0x134] = 0x300A, --(《) [0x135] = 0x300B, --(》) - [0x136] = 0x300C, --(「) + [0x136] = 0x300C, --(「) [0x137] = 0x300D, --(」) - [0x138] = 0x300E, --(『) + [0x138] = 0x300E, --(『) [0x139] = 0x300F, --(』) - [0x13A] = 0x3010, --(【) + [0x13A] = 0x3010, --(【) [0x13B] = 0x3011, --(】) - [0x13C] = 0xFF0B, --(+) - [0x13D] = 0x2212, --(−) - [0x13E] = 0xB1, - [0x13F] = 0xD7, - [0x140] = 0xF7, + [0x13C] = 0xFF0B, --(+) + [0x13D] = 0x2212, --(−) + [0x13E] = 0xB1, + [0x13F] = 0xD7, + [0x140] = 0xF7, [0x141] = 0xFF1D, --(=) - [0x142] = 0x2260, --(≠) + [0x142] = 0x2260, --(≠) [0x143] = 0xFF1C, --(<) - [0x144] = 0xFF1E, --(>) + [0x144] = 0xFF1E, --(>) [0x145] = 0x2266, --(≦) - [0x146] = 0x2267, --(≧) + [0x146] = 0x2267, --(≧) [0x147] = 0x221E, --(∞) - [0x148] = 0x2234, --(∴) + [0x148] = 0x2234, --(∴) [0x149] = 0x2642, --(♂) - [0x14A] = 0x2640, --(♀) - [0x14B] = 0xB0, + [0x14A] = 0x2640, --(♀) + [0x14B] = 0xB0, [0x14C] = 0x2032, --(′) - [0x14D] = 0x2033, --(″) + [0x14D] = 0x2033, --(″) [0x14E] = 0x2103, --(℃) - [0x14F] = 0xFFE5, --(¥) + [0x14F] = 0xFFE5, --(¥) [0x150] = 0xFF04, --($) - [0x151] = 0xFFE0, --(¢) + [0x151] = 0xFFE0, --(¢) [0x152] = 0xFFE1, --(£) - [0x153] = 0xFF05, --(%) + [0x153] = 0xFF05, --(%) [0x154] = 0xFF03, --(#) - [0x155] = 0xFF06, --(&) + [0x155] = 0xFF06, --(&) [0x156] = 0xFF0A, --(*) - [0x157] = 0xFF20, --(@) - [0x158] = 0xA7, + [0x157] = 0xFF20, --(@) + [0x158] = 0xA7, [0x159] = 0x2606, --(☆) - [0x15A] = 0x2605, --(★) + [0x15A] = 0x2605, --(★) [0x15B] = 0x25CB, --(○) - [0x15C] = 0x25CF, --(●) + [0x15C] = 0x25CF, --(●) [0x15D] = 0x25CE, --(◎) - [0x15E] = 0x25C7, --(◇) + [0x15E] = 0x25C7, --(◇) [0x201] = 0x25C6, --(◆) - [0x202] = 0x25A1, --(□) + [0x202] = 0x25A1, --(□) [0x203] = 0x25A0, --(■) - [0x204] = 0x25B3, --(△) + [0x204] = 0x25B3, --(△) [0x205] = 0x25B2, --(▲) - [0x206] = 0x25BD, --(▽) + [0x206] = 0x25BD, --(▽) [0x207] = 0x25BC, --(▼) - [0x208] = 0x203B, --(※) + [0x208] = 0x203B, --(※) [0x209] = 0x3012, --(〒) - [0x20A] = 0x2192, --(→) + [0x20A] = 0x2192, --(→) [0x20B] = 0x2190, --(←) - [0x20C] = 0x2191, --(↑) + [0x20C] = 0x2191, --(↑) [0x20D] = 0x2193, --(↓) - [0x20E] = 0x3013, --(〓) + [0x20E] = 0x3013, --(〓) [0x21A] = 0x2208, --(∈) - [0x21B] = 0x220B, --(∋) + [0x21B] = 0x220B, --(∋) [0x21C] = 0x2286, --(⊆) - [0x21D] = 0x2287, --(⊇) + [0x21D] = 0x2287, --(⊇) [0x21E] = 0x2282, --(⊂) - [0x21F] = 0x2283, --(⊃) + [0x21F] = 0x2283, --(⊃) [0x220] = 0x222A, --(∪) - [0x221] = 0x2229, --(∩) + [0x221] = 0x2229, --(∩) [0x22A] = 0x2227, --(∧) - [0x22B] = 0x2228, --(∨) + [0x22B] = 0x2228, --(∨) [0x22C] = 0xFFE2, --(¬) - [0x22D] = 0x21D2, --(⇒) + [0x22D] = 0x21D2, --(⇒) [0x22E] = 0x21D4, --(⇔) - [0x22F] = 0x2200, --(∀) + [0x22F] = 0x2200, --(∀) [0x230] = 0x2203, --(∃) - [0x23C] = 0x2220, --(∠) + [0x23C] = 0x2220, --(∠) [0x23D] = 0x22A5, --(⊥) - [0x23E] = 0x2312, --(⌒) + [0x23E] = 0x2312, --(⌒) [0x23F] = 0x2202, --(∂) - [0x240] = 0x2207, --(∇) + [0x240] = 0x2207, --(∇) [0x241] = 0x2261, --(≡) - [0x242] = 0x2252, --(≒) + [0x242] = 0x2252, --(≒) [0x243] = 0x226A, --(≪) - [0x244] = 0x226B, --(≫) + [0x244] = 0x226B, --(≫) [0x245] = 0x221A, --(√) - [0x246] = 0x223D, --(∽) + [0x246] = 0x223D, --(∽) [0x247] = 0x221D, --(∝) - [0x248] = 0x2235, --(∵) + [0x248] = 0x2235, --(∵) [0x249] = 0x222B, --(∫) - [0x24A] = 0x222C, --(∬) + [0x24A] = 0x222C, --(∬) [0x252] = 0x212B, --(Å) - [0x253] = 0x2030, --(‰) + [0x253] = 0x2030, --(‰) [0x254] = 0x266F, --(♯) - [0x255] = 0x266D, --(♭) + [0x255] = 0x266D, --(♭) [0x256] = 0x266A, --(♪) - [0x257] = 0x2020, --(†) - [0x258] = 0x2021, --(‡) - [0x259] = 0xB6, - [0x25E] = 0x25EF, --(◯) + [0x257] = 0x2020, --(†) + [0x258] = 0x2021, --(‡) + [0x259] = 0xB6, + [0x25E] = 0x25EF, --(◯) [0x310] = 0xFF10, --(0) - [0x311] = 0xFF11, --(1) + [0x311] = 0xFF11, --(1) [0x312] = 0xFF12, --(2) - [0x313] = 0xFF13, --(3) + [0x313] = 0xFF13, --(3) [0x314] = 0xFF14, --(4) - [0x315] = 0xFF15, --(5) + [0x315] = 0xFF15, --(5) [0x316] = 0xFF16, --(6) - [0x317] = 0xFF17, --(7) + [0x317] = 0xFF17, --(7) [0x318] = 0xFF18, --(8) - [0x319] = 0xFF19, --(9) + [0x319] = 0xFF19, --(9) [0x321] = 0xFF21, --(A) - [0x322] = 0xFF22, --(B) + [0x322] = 0xFF22, --(B) [0x323] = 0xFF23, --(C) - [0x324] = 0xFF24, --(D) + [0x324] = 0xFF24, --(D) [0x325] = 0xFF25, --(E) - [0x326] = 0xFF26, --(F) + [0x326] = 0xFF26, --(F) [0x327] = 0xFF27, --(G) - [0x328] = 0xFF28, --(H) + [0x328] = 0xFF28, --(H) [0x329] = 0xFF29, --(I) - [0x32A] = 0xFF2A, --(J) + [0x32A] = 0xFF2A, --(J) [0x32B] = 0xFF2B, --(K) - [0x32C] = 0xFF2C, --(L) + [0x32C] = 0xFF2C, --(L) [0x32D] = 0xFF2D, --(M) - [0x32E] = 0xFF2E, --(N) + [0x32E] = 0xFF2E, --(N) [0x32F] = 0xFF2F, --(O) - [0x330] = 0xFF30, --(P) + [0x330] = 0xFF30, --(P) [0x331] = 0xFF31, --(Q) - [0x332] = 0xFF32, --(R) + [0x332] = 0xFF32, --(R) [0x333] = 0xFF33, --(S) - [0x334] = 0xFF34, --(T) + [0x334] = 0xFF34, --(T) [0x335] = 0xFF35, --(U) - [0x336] = 0xFF36, --(V) + [0x336] = 0xFF36, --(V) [0x337] = 0xFF37, --(W) - [0x338] = 0xFF38, --(X) + [0x338] = 0xFF38, --(X) [0x339] = 0xFF39, --(Y) - [0x33A] = 0xFF3A, --(Z) + [0x33A] = 0xFF3A, --(Z) [0x341] = 0xFF41, --(a) - [0x342] = 0xFF42, --(b) + [0x342] = 0xFF42, --(b) [0x343] = 0xFF43, --(c) - [0x344] = 0xFF44, --(d) + [0x344] = 0xFF44, --(d) [0x345] = 0xFF45, --(e) - [0x346] = 0xFF46, --(f) + [0x346] = 0xFF46, --(f) [0x347] = 0xFF47, --(g) - [0x348] = 0xFF48, --(h) + [0x348] = 0xFF48, --(h) [0x349] = 0xFF49, --(i) - [0x34A] = 0xFF4A, --(j) + [0x34A] = 0xFF4A, --(j) [0x34B] = 0xFF4B, --(k) - [0x34C] = 0xFF4C, --(l) + [0x34C] = 0xFF4C, --(l) [0x34D] = 0xFF4D, --(m) - [0x34E] = 0xFF4E, --(n) + [0x34E] = 0xFF4E, --(n) [0x34F] = 0xFF4F, --(o) - [0x350] = 0xFF50, --(p) + [0x350] = 0xFF50, --(p) [0x351] = 0xFF51, --(q) - [0x352] = 0xFF52, --(r) + [0x352] = 0xFF52, --(r) [0x353] = 0xFF53, --(s) - [0x354] = 0xFF54, --(t) + [0x354] = 0xFF54, --(t) [0x355] = 0xFF55, --(u) - [0x356] = 0xFF56, --(v) + [0x356] = 0xFF56, --(v) [0x357] = 0xFF57, --(w) - [0x358] = 0xFF58, --(x) + [0x358] = 0xFF58, --(x) [0x359] = 0xFF59, --(y) - [0x35A] = 0xFF5A, --(z) + [0x35A] = 0xFF5A, --(z) [0x401] = 0x3041, --(ぁ) - [0x402] = 0x3042, --(あ) + [0x402] = 0x3042, --(あ) [0x403] = 0x3043, --(ぃ) - [0x404] = 0x3044, --(い) + [0x404] = 0x3044, --(い) [0x405] = 0x3045, --(ぅ) - [0x406] = 0x3046, --(う) + [0x406] = 0x3046, --(う) [0x407] = 0x3047, --(ぇ) - [0x408] = 0x3048, --(え) + [0x408] = 0x3048, --(え) [0x409] = 0x3049, --(ぉ) - [0x40A] = 0x304A, --(お) + [0x40A] = 0x304A, --(お) [0x40B] = 0x304B, --(か) - [0x40C] = 0x304C, --(が) + [0x40C] = 0x304C, --(が) [0x40D] = 0x304D, --(き) - [0x40E] = 0x304E, --(ぎ) + [0x40E] = 0x304E, --(ぎ) [0x40F] = 0x304F, --(く) - [0x410] = 0x3050, --(ぐ) + [0x410] = 0x3050, --(ぐ) [0x411] = 0x3051, --(け) - [0x412] = 0x3052, --(げ) + [0x412] = 0x3052, --(げ) [0x413] = 0x3053, --(こ) - [0x414] = 0x3054, --(ご) + [0x414] = 0x3054, --(ご) [0x415] = 0x3055, --(さ) - [0x416] = 0x3056, --(ざ) + [0x416] = 0x3056, --(ざ) [0x417] = 0x3057, --(し) - [0x418] = 0x3058, --(じ) + [0x418] = 0x3058, --(じ) [0x419] = 0x3059, --(す) - [0x41A] = 0x305A, --(ず) + [0x41A] = 0x305A, --(ず) [0x41B] = 0x305B, --(せ) - [0x41C] = 0x305C, --(ぜ) + [0x41C] = 0x305C, --(ぜ) [0x41D] = 0x305D, --(そ) - [0x41E] = 0x305E, --(ぞ) + [0x41E] = 0x305E, --(ぞ) [0x41F] = 0x305F, --(た) - [0x420] = 0x3060, --(だ) + [0x420] = 0x3060, --(だ) [0x421] = 0x3061, --(ち) - [0x422] = 0x3062, --(ぢ) + [0x422] = 0x3062, --(ぢ) [0x423] = 0x3063, --(っ) - [0x424] = 0x3064, --(つ) + [0x424] = 0x3064, --(つ) [0x425] = 0x3065, --(づ) - [0x426] = 0x3066, --(て) + [0x426] = 0x3066, --(て) [0x427] = 0x3067, --(で) - [0x428] = 0x3068, --(と) + [0x428] = 0x3068, --(と) [0x429] = 0x3069, --(ど) - [0x42A] = 0x306A, --(な) + [0x42A] = 0x306A, --(な) [0x42B] = 0x306B, --(に) - [0x42C] = 0x306C, --(ぬ) + [0x42C] = 0x306C, --(ぬ) [0x42D] = 0x306D, --(ね) - [0x42E] = 0x306E, --(の) + [0x42E] = 0x306E, --(の) [0x42F] = 0x306F, --(は) - [0x430] = 0x3070, --(ば) + [0x430] = 0x3070, --(ば) [0x431] = 0x3071, --(ぱ) - [0x432] = 0x3072, --(ひ) + [0x432] = 0x3072, --(ひ) [0x433] = 0x3073, --(び) - [0x434] = 0x3074, --(ぴ) + [0x434] = 0x3074, --(ぴ) [0x435] = 0x3075, --(ふ) - [0x436] = 0x3076, --(ぶ) + [0x436] = 0x3076, --(ぶ) [0x437] = 0x3077, --(ぷ) - [0x438] = 0x3078, --(へ) + [0x438] = 0x3078, --(へ) [0x439] = 0x3079, --(べ) - [0x43A] = 0x307A, --(ぺ) + [0x43A] = 0x307A, --(ぺ) [0x43B] = 0x307B, --(ほ) - [0x43C] = 0x307C, --(ぼ) + [0x43C] = 0x307C, --(ぼ) [0x43D] = 0x307D, --(ぽ) - [0x43E] = 0x307E, --(ま) + [0x43E] = 0x307E, --(ま) [0x43F] = 0x307F, --(み) - [0x440] = 0x3080, --(む) + [0x440] = 0x3080, --(む) [0x441] = 0x3081, --(め) - [0x442] = 0x3082, --(も) + [0x442] = 0x3082, --(も) [0x443] = 0x3083, --(ゃ) - [0x444] = 0x3084, --(や) + [0x444] = 0x3084, --(や) [0x445] = 0x3085, --(ゅ) - [0x446] = 0x3086, --(ゆ) + [0x446] = 0x3086, --(ゆ) [0x447] = 0x3087, --(ょ) - [0x448] = 0x3088, --(よ) + [0x448] = 0x3088, --(よ) [0x449] = 0x3089, --(ら) - [0x44A] = 0x308A, --(り) + [0x44A] = 0x308A, --(り) [0x44B] = 0x308B, --(る) - [0x44C] = 0x308C, --(れ) + [0x44C] = 0x308C, --(れ) [0x44D] = 0x308D, --(ろ) - [0x44E] = 0x308E, --(ゎ) + [0x44E] = 0x308E, --(ゎ) [0x44F] = 0x308F, --(わ) - [0x450] = 0x3090, --(ゐ) + [0x450] = 0x3090, --(ゐ) [0x451] = 0x3091, --(ゑ) - [0x452] = 0x3092, --(を) + [0x452] = 0x3092, --(を) [0x453] = 0x3093, --(ん) - [0x501] = 0x30A1, --(ァ) + [0x501] = 0x30A1, --(ァ) [0x502] = 0x30A2, --(ア) - [0x503] = 0x30A3, --(ィ) + [0x503] = 0x30A3, --(ィ) [0x504] = 0x30A4, --(イ) - [0x505] = 0x30A5, --(ゥ) + [0x505] = 0x30A5, --(ゥ) [0x506] = 0x30A6, --(ウ) - [0x507] = 0x30A7, --(ェ) + [0x507] = 0x30A7, --(ェ) [0x508] = 0x30A8, --(エ) - [0x509] = 0x30A9, --(ォ) + [0x509] = 0x30A9, --(ォ) [0x50A] = 0x30AA, --(オ) - [0x50B] = 0x30AB, --(カ) + [0x50B] = 0x30AB, --(カ) [0x50C] = 0x30AC, --(ガ) - [0x50D] = 0x30AD, --(キ) + [0x50D] = 0x30AD, --(キ) [0x50E] = 0x30AE, --(ギ) - [0x50F] = 0x30AF, --(ク) + [0x50F] = 0x30AF, --(ク) [0x510] = 0x30B0, --(グ) - [0x511] = 0x30B1, --(ケ) + [0x511] = 0x30B1, --(ケ) [0x512] = 0x30B2, --(ゲ) - [0x513] = 0x30B3, --(コ) + [0x513] = 0x30B3, --(コ) [0x514] = 0x30B4, --(ゴ) - [0x515] = 0x30B5, --(サ) + [0x515] = 0x30B5, --(サ) [0x516] = 0x30B6, --(ザ) - [0x517] = 0x30B7, --(シ) + [0x517] = 0x30B7, --(シ) [0x518] = 0x30B8, --(ジ) - [0x519] = 0x30B9, --(ス) + [0x519] = 0x30B9, --(ス) [0x51A] = 0x30BA, --(ズ) - [0x51B] = 0x30BB, --(セ) + [0x51B] = 0x30BB, --(セ) [0x51C] = 0x30BC, --(ゼ) - [0x51D] = 0x30BD, --(ソ) + [0x51D] = 0x30BD, --(ソ) [0x51E] = 0x30BE, --(ゾ) - [0x51F] = 0x30BF, --(タ) + [0x51F] = 0x30BF, --(タ) [0x520] = 0x30C0, --(ダ) - [0x521] = 0x30C1, --(チ) + [0x521] = 0x30C1, --(チ) [0x522] = 0x30C2, --(ヂ) - [0x523] = 0x30C3, --(ッ) + [0x523] = 0x30C3, --(ッ) [0x524] = 0x30C4, --(ツ) - [0x525] = 0x30C5, --(ヅ) + [0x525] = 0x30C5, --(ヅ) [0x526] = 0x30C6, --(テ) - [0x527] = 0x30C7, --(デ) + [0x527] = 0x30C7, --(デ) [0x528] = 0x30C8, --(ト) - [0x529] = 0x30C9, --(ド) + [0x529] = 0x30C9, --(ド) [0x52A] = 0x30CA, --(ナ) - [0x52B] = 0x30CB, --(ニ) + [0x52B] = 0x30CB, --(ニ) [0x52C] = 0x30CC, --(ヌ) - [0x52D] = 0x30CD, --(ネ) + [0x52D] = 0x30CD, --(ネ) [0x52E] = 0x30CE, --(ノ) - [0x52F] = 0x30CF, --(ハ) + [0x52F] = 0x30CF, --(ハ) [0x530] = 0x30D0, --(バ) - [0x531] = 0x30D1, --(パ) + [0x531] = 0x30D1, --(パ) [0x532] = 0x30D2, --(ヒ) - [0x533] = 0x30D3, --(ビ) + [0x533] = 0x30D3, --(ビ) [0x534] = 0x30D4, --(ピ) - [0x535] = 0x30D5, --(フ) + [0x535] = 0x30D5, --(フ) [0x536] = 0x30D6, --(ブ) - [0x537] = 0x30D7, --(プ) + [0x537] = 0x30D7, --(プ) [0x538] = 0x30D8, --(ヘ) - [0x539] = 0x30D9, --(ベ) + [0x539] = 0x30D9, --(ベ) [0x53A] = 0x30DA, --(ペ) - [0x53B] = 0x30DB, --(ホ) + [0x53B] = 0x30DB, --(ホ) [0x53C] = 0x30DC, --(ボ) - [0x53D] = 0x30DD, --(ポ) + [0x53D] = 0x30DD, --(ポ) [0x53E] = 0x30DE, --(マ) - [0x53F] = 0x30DF, --(ミ) + [0x53F] = 0x30DF, --(ミ) [0x540] = 0x30E0, --(ム) - [0x541] = 0x30E1, --(メ) + [0x541] = 0x30E1, --(メ) [0x542] = 0x30E2, --(モ) - [0x543] = 0x30E3, --(ャ) + [0x543] = 0x30E3, --(ャ) [0x544] = 0x30E4, --(ヤ) - [0x545] = 0x30E5, --(ュ) + [0x545] = 0x30E5, --(ュ) [0x546] = 0x30E6, --(ユ) - [0x547] = 0x30E7, --(ョ) + [0x547] = 0x30E7, --(ョ) [0x548] = 0x30E8, --(ヨ) - [0x549] = 0x30E9, --(ラ) + [0x549] = 0x30E9, --(ラ) [0x54A] = 0x30EA, --(リ) - [0x54B] = 0x30EB, --(ル) + [0x54B] = 0x30EB, --(ル) [0x54C] = 0x30EC, --(レ) - [0x54D] = 0x30ED, --(ロ) + [0x54D] = 0x30ED, --(ロ) [0x54E] = 0x30EE, --(ヮ) - [0x54F] = 0x30EF, --(ワ) + [0x54F] = 0x30EF, --(ワ) [0x550] = 0x30F0, --(ヰ) - [0x551] = 0x30F1, --(ヱ) + [0x551] = 0x30F1, --(ヱ) [0x552] = 0x30F2, --(ヲ) - [0x553] = 0x30F3, --(ン) + [0x553] = 0x30F3, --(ン) [0x554] = 0x30F4, --(ヴ) - [0x555] = 0x30F5, --(ヵ) + [0x555] = 0x30F5, --(ヵ) [0x556] = 0x30F6, --(ヶ) - [0x601] = 0x391, --(Α) - [0x602] = 0x392, --(Β) + [0x601] = 0x391, --(Α) + [0x602] = 0x392, --(Β) [0x603] = 0x393, --(Γ) - [0x604] = 0x394, --(Δ) - [0x605] = 0x395, --(Ε) + [0x604] = 0x394, --(Δ) + [0x605] = 0x395, --(Ε) [0x606] = 0x396, --(Ζ) - [0x607] = 0x397, --(Η) - [0x608] = 0x398, --(Θ) + [0x607] = 0x397, --(Η) + [0x608] = 0x398, --(Θ) [0x609] = 0x399, --(Ι) - [0x60A] = 0x39A, --(Κ) - [0x60B] = 0x39B, --(Λ) + [0x60A] = 0x39A, --(Κ) + [0x60B] = 0x39B, --(Λ) [0x60C] = 0x39C, --(Μ) - [0x60D] = 0x39D, --(Ν) - [0x60E] = 0x39E, --(Ξ) + [0x60D] = 0x39D, --(Ν) + [0x60E] = 0x39E, --(Ξ) [0x60F] = 0x39F, --(Ο) - [0x610] = 0x3A0, --(Π) - [0x611] = 0x3A1, --(Ρ) + [0x610] = 0x3A0, --(Π) + [0x611] = 0x3A1, --(Ρ) [0x612] = 0x3A3, --(Σ) - [0x613] = 0x3A4, --(Τ) - [0x614] = 0x3A5, --(Υ) + [0x613] = 0x3A4, --(Τ) + [0x614] = 0x3A5, --(Υ) [0x615] = 0x3A6, --(Φ) - [0x616] = 0x3A7, --(Χ) - [0x617] = 0x3A8, --(Ψ) + [0x616] = 0x3A7, --(Χ) + [0x617] = 0x3A8, --(Ψ) [0x618] = 0x3A9, --(Ω) - [0x621] = 0x3B1, --(α) - [0x622] = 0x3B2, --(β) + [0x621] = 0x3B1, --(α) + [0x622] = 0x3B2, --(β) [0x623] = 0x3B3, --(γ) - [0x624] = 0x3B4, --(δ) - [0x625] = 0x3B5, --(ε) + [0x624] = 0x3B4, --(δ) + [0x625] = 0x3B5, --(ε) [0x626] = 0x3B6, --(ζ) - [0x627] = 0x3B7, --(η) - [0x628] = 0x3B8, --(θ) + [0x627] = 0x3B7, --(η) + [0x628] = 0x3B8, --(θ) [0x629] = 0x3B9, --(ι) - [0x62A] = 0x3BA, --(κ) - [0x62B] = 0x3BB, --(λ) + [0x62A] = 0x3BA, --(κ) + [0x62B] = 0x3BB, --(λ) [0x62C] = 0x3BC, --(μ) - [0x62D] = 0x3BD, --(ν) - [0x62E] = 0x3BE, --(ξ) + [0x62D] = 0x3BD, --(ν) + [0x62E] = 0x3BE, --(ξ) [0x62F] = 0x3BF, --(ο) - [0x630] = 0x3C0, --(π) - [0x631] = 0x3C1, --(ρ) + [0x630] = 0x3C0, --(π) + [0x631] = 0x3C1, --(ρ) [0x632] = 0x3C3, --(σ) - [0x633] = 0x3C4, --(τ) - [0x634] = 0x3C5, --(υ) + [0x633] = 0x3C4, --(τ) + [0x634] = 0x3C5, --(υ) [0x635] = 0x3C6, --(φ) - [0x636] = 0x3C7, --(χ) - [0x637] = 0x3C8, --(ψ) + [0x636] = 0x3C7, --(χ) + [0x637] = 0x3C8, --(ψ) [0x638] = 0x3C9, --(ω) - [0x701] = 0x410, --(А) - [0x702] = 0x411, --(Б) + [0x701] = 0x410, --(А) + [0x702] = 0x411, --(Б) [0x703] = 0x412, --(В) - [0x704] = 0x413, --(Г) - [0x705] = 0x414, --(Д) + [0x704] = 0x413, --(Г) + [0x705] = 0x414, --(Д) [0x706] = 0x415, --(Е) - [0x707] = 0x401, --(Ё) - [0x708] = 0x416, --(Ж) + [0x707] = 0x401, --(Ё) + [0x708] = 0x416, --(Ж) [0x709] = 0x417, --(З) - [0x70A] = 0x418, --(И) - [0x70B] = 0x419, --(Й) + [0x70A] = 0x418, --(И) + [0x70B] = 0x419, --(Й) [0x70C] = 0x41A, --(К) - [0x70D] = 0x41B, --(Л) - [0x70E] = 0x41C, --(М) + [0x70D] = 0x41B, --(Л) + [0x70E] = 0x41C, --(М) [0x70F] = 0x41D, --(Н) - [0x710] = 0x41E, --(О) - [0x711] = 0x41F, --(П) + [0x710] = 0x41E, --(О) + [0x711] = 0x41F, --(П) [0x712] = 0x420, --(Р) - [0x713] = 0x421, --(С) - [0x714] = 0x422, --(Т) + [0x713] = 0x421, --(С) + [0x714] = 0x422, --(Т) [0x715] = 0x423, --(У) - [0x716] = 0x424, --(Ф) - [0x717] = 0x425, --(Х) + [0x716] = 0x424, --(Ф) + [0x717] = 0x425, --(Х) [0x718] = 0x426, --(Ц) - [0x719] = 0x427, --(Ч) - [0x71A] = 0x428, --(Ш) + [0x719] = 0x427, --(Ч) + [0x71A] = 0x428, --(Ш) [0x71B] = 0x429, --(Щ) - [0x71C] = 0x42A, --(Ъ) - [0x71D] = 0x42B, --(Ы) + [0x71C] = 0x42A, --(Ъ) + [0x71D] = 0x42B, --(Ы) [0x71E] = 0x42C, --(Ь) - [0x71F] = 0x42D, --(Э) - [0x720] = 0x42E, --(Ю) + [0x71F] = 0x42D, --(Э) + [0x720] = 0x42E, --(Ю) [0x721] = 0x42F, --(Я) - [0x731] = 0x430, --(а) - [0x732] = 0x431, --(б) + [0x731] = 0x430, --(а) + [0x732] = 0x431, --(б) [0x733] = 0x432, --(в) - [0x734] = 0x433, --(г) - [0x735] = 0x434, --(д) + [0x734] = 0x433, --(г) + [0x735] = 0x434, --(д) [0x736] = 0x435, --(е) - [0x737] = 0x451, --(ё) - [0x738] = 0x436, --(ж) + [0x737] = 0x451, --(ё) + [0x738] = 0x436, --(ж) [0x739] = 0x437, --(з) - [0x73A] = 0x438, --(и) - [0x73B] = 0x439, --(й) + [0x73A] = 0x438, --(и) + [0x73B] = 0x439, --(й) [0x73C] = 0x43A, --(к) - [0x73D] = 0x43B, --(л) - [0x73E] = 0x43C, --(м) + [0x73D] = 0x43B, --(л) + [0x73E] = 0x43C, --(м) [0x73F] = 0x43D, --(н) - [0x740] = 0x43E, --(о) - [0x741] = 0x43F, --(п) + [0x740] = 0x43E, --(о) + [0x741] = 0x43F, --(п) [0x742] = 0x440, --(р) - [0x743] = 0x441, --(с) - [0x744] = 0x442, --(т) + [0x743] = 0x441, --(с) + [0x744] = 0x442, --(т) [0x745] = 0x443, --(у) - [0x746] = 0x444, --(ф) - [0x747] = 0x445, --(х) + [0x746] = 0x444, --(ф) + [0x747] = 0x445, --(х) [0x748] = 0x446, --(ц) - [0x749] = 0x447, --(ч) - [0x74A] = 0x448, --(ш) + [0x749] = 0x447, --(ч) + [0x74A] = 0x448, --(ш) [0x74B] = 0x449, --(щ) - [0x74C] = 0x44A, --(ъ) - [0x74D] = 0x44B, --(ы) + [0x74C] = 0x44A, --(ъ) + [0x74D] = 0x44B, --(ы) [0x74E] = 0x44C, --(ь) - [0x74F] = 0x44D, --(э) - [0x750] = 0x44E, --(ю) + [0x74F] = 0x44D, --(э) + [0x750] = 0x44E, --(ю) [0x751] = 0x44F, --(я) - [0x801] = 0x2500, --(─) + [0x801] = 0x2500, --(─) [0x802] = 0x2502, --(│) - [0x803] = 0x250C, --(┌) + [0x803] = 0x250C, --(┌) [0x804] = 0x2510, --(┐) - [0x805] = 0x2518, --(┘) + [0x805] = 0x2518, --(┘) [0x806] = 0x2514, --(└) - [0x807] = 0x251C, --(├) + [0x807] = 0x251C, --(├) [0x808] = 0x252C, --(┬) - [0x809] = 0x2524, --(┤) + [0x809] = 0x2524, --(┤) [0x80A] = 0x2534, --(┴) - [0x80B] = 0x253C, --(┼) + [0x80B] = 0x253C, --(┼) [0x80C] = 0x2501, --(━) - [0x80D] = 0x2503, --(┃) + [0x80D] = 0x2503, --(┃) [0x80E] = 0x250F, --(┏) - [0x80F] = 0x2513, --(┓) + [0x80F] = 0x2513, --(┓) [0x810] = 0x251B, --(┛) - [0x811] = 0x2517, --(┗) + [0x811] = 0x2517, --(┗) [0x812] = 0x2523, --(┣) - [0x813] = 0x2533, --(┳) + [0x813] = 0x2533, --(┳) [0x814] = 0x252B, --(┫) - [0x815] = 0x253B, --(┻) + [0x815] = 0x253B, --(┻) [0x816] = 0x254B, --(╋) - [0x817] = 0x2520, --(┠) + [0x817] = 0x2520, --(┠) [0x818] = 0x252F, --(┯) - [0x819] = 0x2528, --(┨) + [0x819] = 0x2528, --(┨) [0x81A] = 0x2537, --(┷) - [0x81B] = 0x253F, --(┿) + [0x81B] = 0x253F, --(┿) [0x81C] = 0x251D, --(┝) - [0x81D] = 0x2530, --(┰) + [0x81D] = 0x2530, --(┰) [0x81E] = 0x2525, --(┥) - [0x81F] = 0x2538, --(┸) + [0x81F] = 0x2538, --(┸) [0x820] = 0x2542, --(╂) - [0x1001] = 0x4E9C, --(亜) + [0x1001] = 0x4E9C, --(亜) [0x1002] = 0x5516, --(唖) - [0x1003] = 0x5A03, --(娃) + [0x1003] = 0x5A03, --(娃) [0x1004] = 0x963F, --(阿) - [0x1005] = 0x54C0, --(哀) + [0x1005] = 0x54C0, --(哀) [0x1006] = 0x611B, --(愛) - [0x1007] = 0x6328, --(挨) + [0x1007] = 0x6328, --(挨) [0x1008] = 0x59F6, --(姶) - [0x1009] = 0x9022, --(逢) + [0x1009] = 0x9022, --(逢) [0x100A] = 0x8475, --(葵) - [0x100B] = 0x831C, --(茜) + [0x100B] = 0x831C, --(茜) [0x100C] = 0x7A50, --(穐) - [0x100D] = 0x60AA, --(悪) + [0x100D] = 0x60AA, --(悪) [0x100E] = 0x63E1, --(握) - [0x100F] = 0x6E25, --(渥) + [0x100F] = 0x6E25, --(渥) [0x1010] = 0x65ED, --(旭) - [0x1011] = 0x8466, --(葦) + [0x1011] = 0x8466, --(葦) [0x1012] = 0x82A6, --(芦) - [0x1013] = 0x9BF5, --(鯵) + [0x1013] = 0x9BF5, --(鯵) [0x1014] = 0x6893, --(梓) - [0x1015] = 0x5727, --(圧) + [0x1015] = 0x5727, --(圧) [0x1016] = 0x65A1, --(斡) - [0x1017] = 0x6271, --(扱) + [0x1017] = 0x6271, --(扱) [0x1018] = 0x5B9B, --(宛) - [0x1019] = 0x59D0, --(姐) + [0x1019] = 0x59D0, --(姐) [0x101A] = 0x867B, --(虻) - [0x101B] = 0x98F4, --(飴) + [0x101B] = 0x98F4, --(飴) [0x101C] = 0x7D62, --(絢) - [0x101D] = 0x7DBE, --(綾) + [0x101D] = 0x7DBE, --(綾) [0x101E] = 0x9B8E, --(鮎) - [0x101F] = 0x6216, --(或) + [0x101F] = 0x6216, --(或) [0x1020] = 0x7C9F, --(粟) - [0x1021] = 0x88B7, --(袷) + [0x1021] = 0x88B7, --(袷) [0x1022] = 0x5B89, --(安) - [0x1023] = 0x5EB5, --(庵) + [0x1023] = 0x5EB5, --(庵) [0x1024] = 0x6309, --(按) - [0x1025] = 0x6697, --(暗) + [0x1025] = 0x6697, --(暗) [0x1026] = 0x6848, --(案) - [0x1027] = 0x95C7, --(闇) + [0x1027] = 0x95C7, --(闇) [0x1028] = 0x978D, --(鞍) - [0x1029] = 0x674F, --(杏) + [0x1029] = 0x674F, --(杏) [0x102A] = 0x4EE5, --(以) - [0x102B] = 0x4F0A, --(伊) + [0x102B] = 0x4F0A, --(伊) [0x102C] = 0x4F4D, --(位) - [0x102D] = 0x4F9D, --(依) + [0x102D] = 0x4F9D, --(依) [0x102E] = 0x5049, --(偉) - [0x102F] = 0x56F2, --(囲) + [0x102F] = 0x56F2, --(囲) [0x1030] = 0x5937, --(夷) - [0x1031] = 0x59D4, --(委) + [0x1031] = 0x59D4, --(委) [0x1032] = 0x5A01, --(威) - [0x1033] = 0x5C09, --(尉) + [0x1033] = 0x5C09, --(尉) [0x1034] = 0x60DF, --(惟) - [0x1035] = 0x610F, --(意) + [0x1035] = 0x610F, --(意) [0x1036] = 0x6170, --(慰) - [0x1037] = 0x6613, --(易) + [0x1037] = 0x6613, --(易) [0x1038] = 0x6905, --(椅) - [0x1039] = 0x70BA, --(為) + [0x1039] = 0x70BA, --(為) [0x103A] = 0x754F, --(畏) - [0x103B] = 0x7570, --(異) + [0x103B] = 0x7570, --(異) [0x103C] = 0x79FB, --(移) - [0x103D] = 0x7DAD, --(維) + [0x103D] = 0x7DAD, --(維) [0x103E] = 0x7DEF, --(緯) - [0x103F] = 0x80C3, --(胃) + [0x103F] = 0x80C3, --(胃) [0x1040] = 0x840E, --(萎) - [0x1041] = 0x8863, --(衣) + [0x1041] = 0x8863, --(衣) [0x1042] = 0x8B02, --(謂) - [0x1043] = 0x9055, --(違) + [0x1043] = 0x9055, --(違) [0x1044] = 0x907A, --(遺) - [0x1045] = 0x533B, --(医) + [0x1045] = 0x533B, --(医) [0x1046] = 0x4E95, --(井) - [0x1047] = 0x4EA5, --(亥) + [0x1047] = 0x4EA5, --(亥) [0x1048] = 0x57DF, --(域) - [0x1049] = 0x80B2, --(育) + [0x1049] = 0x80B2, --(育) [0x104A] = 0x90C1, --(郁) - [0x104B] = 0x78EF, --(磯) + [0x104B] = 0x78EF, --(磯) [0x104C] = 0x4E00, --(一) - [0x104D] = 0x58F1, --(壱) + [0x104D] = 0x58F1, --(壱) [0x104E] = 0x6EA2, --(溢) - [0x104F] = 0x9038, --(逸) + [0x104F] = 0x9038, --(逸) [0x1050] = 0x7A32, --(稲) - [0x1051] = 0x8328, --(茨) + [0x1051] = 0x8328, --(茨) [0x1052] = 0x828B, --(芋) - [0x1053] = 0x9C2F, --(鰯) + [0x1053] = 0x9C2F, --(鰯) [0x1054] = 0x5141, --(允) - [0x1055] = 0x5370, --(印) + [0x1055] = 0x5370, --(印) [0x1056] = 0x54BD, --(咽) - [0x1057] = 0x54E1, --(員) + [0x1057] = 0x54E1, --(員) [0x1058] = 0x56E0, --(因) - [0x1059] = 0x59FB, --(姻) + [0x1059] = 0x59FB, --(姻) [0x105A] = 0x5F15, --(引) - [0x105B] = 0x98F2, --(飲) + [0x105B] = 0x98F2, --(飲) [0x105C] = 0x6DEB, --(淫) - [0x105D] = 0x80E4, --(胤) + [0x105D] = 0x80E4, --(胤) [0x105E] = 0x852D, --(蔭) - [0x1101] = 0x9662, --(院) + [0x1101] = 0x9662, --(院) [0x1102] = 0x9670, --(陰) - [0x1103] = 0x96A0, --(隠) + [0x1103] = 0x96A0, --(隠) [0x1104] = 0x97FB, --(韻) - [0x1105] = 0x540B, --(吋) + [0x1105] = 0x540B, --(吋) [0x1106] = 0x53F3, --(右) - [0x1107] = 0x5B87, --(宇) + [0x1107] = 0x5B87, --(宇) [0x1108] = 0x70CF, --(烏) - [0x1109] = 0x7FBD, --(羽) + [0x1109] = 0x7FBD, --(羽) [0x110A] = 0x8FC2, --(迂) - [0x110B] = 0x96E8, --(雨) + [0x110B] = 0x96E8, --(雨) [0x110C] = 0x536F, --(卯) - [0x110D] = 0x9D5C, --(鵜) + [0x110D] = 0x9D5C, --(鵜) [0x110E] = 0x7ABA, --(窺) - [0x110F] = 0x4E11, --(丑) + [0x110F] = 0x4E11, --(丑) [0x1110] = 0x7893, --(碓) - [0x1111] = 0x81FC, --(臼) + [0x1111] = 0x81FC, --(臼) [0x1112] = 0x6E26, --(渦) - [0x1113] = 0x5618, --(嘘) + [0x1113] = 0x5618, --(嘘) [0x1114] = 0x5504, --(唄) - [0x1115] = 0x6B1D, --(欝) + [0x1115] = 0x6B1D, --(欝) [0x1116] = 0x851A, --(蔚) - [0x1117] = 0x9C3B, --(鰻) + [0x1117] = 0x9C3B, --(鰻) [0x1118] = 0x59E5, --(姥) - [0x1119] = 0x53A9, --(厩) + [0x1119] = 0x53A9, --(厩) [0x111A] = 0x6D66, --(浦) - [0x111B] = 0x74DC, --(瓜) + [0x111B] = 0x74DC, --(瓜) [0x111C] = 0x958F, --(閏) - [0x111D] = 0x5642, --(噂) + [0x111D] = 0x5642, --(噂) [0x111E] = 0x4E91, --(云) - [0x111F] = 0x904B, --(運) + [0x111F] = 0x904B, --(運) [0x1120] = 0x96F2, --(雲) - [0x1121] = 0x834F, --(荏) + [0x1121] = 0x834F, --(荏) [0x1122] = 0x990C, --(餌) - [0x1123] = 0x53E1, --(叡) + [0x1123] = 0x53E1, --(叡) [0x1124] = 0x55B6, --(営) - [0x1125] = 0x5B30, --(嬰) + [0x1125] = 0x5B30, --(嬰) [0x1126] = 0x5F71, --(影) - [0x1127] = 0x6620, --(映) + [0x1127] = 0x6620, --(映) [0x1128] = 0x66F3, --(曳) - [0x1129] = 0x6804, --(栄) + [0x1129] = 0x6804, --(栄) [0x112A] = 0x6C38, --(永) - [0x112B] = 0x6CF3, --(泳) + [0x112B] = 0x6CF3, --(泳) [0x112C] = 0x6D29, --(洩) - [0x112D] = 0x745B, --(瑛) + [0x112D] = 0x745B, --(瑛) [0x112E] = 0x76C8, --(盈) - [0x112F] = 0x7A4E, --(穎) + [0x112F] = 0x7A4E, --(穎) [0x1130] = 0x9834, --(頴) - [0x1131] = 0x82F1, --(英) + [0x1131] = 0x82F1, --(英) [0x1132] = 0x885B, --(衛) - [0x1133] = 0x8A60, --(詠) + [0x1133] = 0x8A60, --(詠) [0x1134] = 0x92ED, --(鋭) - [0x1135] = 0x6DB2, --(液) + [0x1135] = 0x6DB2, --(液) [0x1136] = 0x75AB, --(疫) - [0x1137] = 0x76CA, --(益) + [0x1137] = 0x76CA, --(益) [0x1138] = 0x99C5, --(駅) - [0x1139] = 0x60A6, --(悦) + [0x1139] = 0x60A6, --(悦) [0x113A] = 0x8B01, --(謁) - [0x113B] = 0x8D8A, --(越) + [0x113B] = 0x8D8A, --(越) [0x113C] = 0x95B2, --(閲) - [0x113D] = 0x698E, --(榎) + [0x113D] = 0x698E, --(榎) [0x113E] = 0x53AD, --(厭) - [0x113F] = 0x5186, --(円) + [0x113F] = 0x5186, --(円) [0x1140] = 0x5712, --(園) - [0x1141] = 0x5830, --(堰) + [0x1141] = 0x5830, --(堰) [0x1142] = 0x5944, --(奄) - [0x1143] = 0x5BB4, --(宴) + [0x1143] = 0x5BB4, --(宴) [0x1144] = 0x5EF6, --(延) - [0x1145] = 0x6028, --(怨) + [0x1145] = 0x6028, --(怨) [0x1146] = 0x63A9, --(掩) - [0x1147] = 0x63F4, --(援) + [0x1147] = 0x63F4, --(援) [0x1148] = 0x6CBF, --(沿) - [0x1149] = 0x6F14, --(演) + [0x1149] = 0x6F14, --(演) [0x114A] = 0x708E, --(炎) - [0x114B] = 0x7114, --(焔) + [0x114B] = 0x7114, --(焔) [0x114C] = 0x7159, --(煙) - [0x114D] = 0x71D5, --(燕) + [0x114D] = 0x71D5, --(燕) [0x114E] = 0x733F, --(猿) - [0x114F] = 0x7E01, --(縁) + [0x114F] = 0x7E01, --(縁) [0x1150] = 0x8276, --(艶) - [0x1151] = 0x82D1, --(苑) + [0x1151] = 0x82D1, --(苑) [0x1152] = 0x8597, --(薗) - [0x1153] = 0x9060, --(遠) + [0x1153] = 0x9060, --(遠) [0x1154] = 0x925B, --(鉛) - [0x1155] = 0x9D1B, --(鴛) + [0x1155] = 0x9D1B, --(鴛) [0x1156] = 0x5869, --(塩) - [0x1157] = 0x65BC, --(於) + [0x1157] = 0x65BC, --(於) [0x1158] = 0x6C5A, --(汚) - [0x1159] = 0x7525, --(甥) + [0x1159] = 0x7525, --(甥) [0x115A] = 0x51F9, --(凹) - [0x115B] = 0x592E, --(央) + [0x115B] = 0x592E, --(央) [0x115C] = 0x5965, --(奥) - [0x115D] = 0x5F80, --(往) + [0x115D] = 0x5F80, --(往) [0x115E] = 0x5FDC, --(応) - [0x1201] = 0x62BC, --(押) + [0x1201] = 0x62BC, --(押) [0x1202] = 0x65FA, --(旺) - [0x1203] = 0x6A2A, --(横) + [0x1203] = 0x6A2A, --(横) [0x1204] = 0x6B27, --(欧) - [0x1205] = 0x6BB4, --(殴) + [0x1205] = 0x6BB4, --(殴) [0x1206] = 0x738B, --(王) - [0x1207] = 0x7FC1, --(翁) + [0x1207] = 0x7FC1, --(翁) [0x1208] = 0x8956, --(襖) - [0x1209] = 0x9D2C, --(鴬) + [0x1209] = 0x9D2C, --(鴬) [0x120A] = 0x9D0E, --(鴎) - [0x120B] = 0x9EC4, --(黄) + [0x120B] = 0x9EC4, --(黄) [0x120C] = 0x5CA1, --(岡) - [0x120D] = 0x6C96, --(沖) + [0x120D] = 0x6C96, --(沖) [0x120E] = 0x837B, --(荻) - [0x120F] = 0x5104, --(億) + [0x120F] = 0x5104, --(億) [0x1210] = 0x5C4B, --(屋) - [0x1211] = 0x61B6, --(憶) + [0x1211] = 0x61B6, --(憶) [0x1212] = 0x81C6, --(臆) - [0x1213] = 0x6876, --(桶) + [0x1213] = 0x6876, --(桶) [0x1214] = 0x7261, --(牡) - [0x1215] = 0x4E59, --(乙) + [0x1215] = 0x4E59, --(乙) [0x1216] = 0x4FFA, --(俺) - [0x1217] = 0x5378, --(卸) + [0x1217] = 0x5378, --(卸) [0x1218] = 0x6069, --(恩) - [0x1219] = 0x6E29, --(温) + [0x1219] = 0x6E29, --(温) [0x121A] = 0x7A4F, --(穏) - [0x121B] = 0x97F3, --(音) + [0x121B] = 0x97F3, --(音) [0x121C] = 0x4E0B, --(下) - [0x121D] = 0x5316, --(化) + [0x121D] = 0x5316, --(化) [0x121E] = 0x4EEE, --(仮) - [0x121F] = 0x4F55, --(何) + [0x121F] = 0x4F55, --(何) [0x1220] = 0x4F3D, --(伽) - [0x1221] = 0x4FA1, --(価) + [0x1221] = 0x4FA1, --(価) [0x1222] = 0x4F73, --(佳) - [0x1223] = 0x52A0, --(加) + [0x1223] = 0x52A0, --(加) [0x1224] = 0x53EF, --(可) - [0x1225] = 0x5609, --(嘉) + [0x1225] = 0x5609, --(嘉) [0x1226] = 0x590F, --(夏) - [0x1227] = 0x5AC1, --(嫁) + [0x1227] = 0x5AC1, --(嫁) [0x1228] = 0x5BB6, --(家) - [0x1229] = 0x5BE1, --(寡) + [0x1229] = 0x5BE1, --(寡) [0x122A] = 0x79D1, --(科) - [0x122B] = 0x6687, --(暇) + [0x122B] = 0x6687, --(暇) [0x122C] = 0x679C, --(果) - [0x122D] = 0x67B6, --(架) + [0x122D] = 0x67B6, --(架) [0x122E] = 0x6B4C, --(歌) - [0x122F] = 0x6CB3, --(河) + [0x122F] = 0x6CB3, --(河) [0x1230] = 0x706B, --(火) - [0x1231] = 0x73C2, --(珂) + [0x1231] = 0x73C2, --(珂) [0x1232] = 0x798D, --(禍) - [0x1233] = 0x79BE, --(禾) + [0x1233] = 0x79BE, --(禾) [0x1234] = 0x7A3C, --(稼) - [0x1235] = 0x7B87, --(箇) + [0x1235] = 0x7B87, --(箇) [0x1236] = 0x82B1, --(花) - [0x1237] = 0x82DB, --(苛) + [0x1237] = 0x82DB, --(苛) [0x1238] = 0x8304, --(茄) - [0x1239] = 0x8377, --(荷) + [0x1239] = 0x8377, --(荷) [0x123A] = 0x83EF, --(華) - [0x123B] = 0x83D3, --(菓) + [0x123B] = 0x83D3, --(菓) [0x123C] = 0x8766, --(蝦) - [0x123D] = 0x8AB2, --(課) + [0x123D] = 0x8AB2, --(課) [0x123E] = 0x5629, --(嘩) - [0x123F] = 0x8CA8, --(貨) + [0x123F] = 0x8CA8, --(貨) [0x1240] = 0x8FE6, --(迦) - [0x1241] = 0x904E, --(過) + [0x1241] = 0x904E, --(過) [0x1242] = 0x971E, --(霞) - [0x1243] = 0x868A, --(蚊) + [0x1243] = 0x868A, --(蚊) [0x1244] = 0x4FC4, --(俄) - [0x1245] = 0x5CE8, --(峨) + [0x1245] = 0x5CE8, --(峨) [0x1246] = 0x6211, --(我) - [0x1247] = 0x7259, --(牙) + [0x1247] = 0x7259, --(牙) [0x1248] = 0x753B, --(画) - [0x1249] = 0x81E5, --(臥) + [0x1249] = 0x81E5, --(臥) [0x124A] = 0x82BD, --(芽) - [0x124B] = 0x86FE, --(蛾) + [0x124B] = 0x86FE, --(蛾) [0x124C] = 0x8CC0, --(賀) - [0x124D] = 0x96C5, --(雅) + [0x124D] = 0x96C5, --(雅) [0x124E] = 0x9913, --(餓) - [0x124F] = 0x99D5, --(駕) + [0x124F] = 0x99D5, --(駕) [0x1250] = 0x4ECB, --(介) - [0x1251] = 0x4F1A, --(会) + [0x1251] = 0x4F1A, --(会) [0x1252] = 0x89E3, --(解) - [0x1253] = 0x56DE, --(回) + [0x1253] = 0x56DE, --(回) [0x1254] = 0x584A, --(塊) - [0x1255] = 0x58CA, --(壊) + [0x1255] = 0x58CA, --(壊) [0x1256] = 0x5EFB, --(廻) - [0x1257] = 0x5FEB, --(快) + [0x1257] = 0x5FEB, --(快) [0x1258] = 0x602A, --(怪) - [0x1259] = 0x6094, --(悔) + [0x1259] = 0x6094, --(悔) [0x125A] = 0x6062, --(恢) - [0x125B] = 0x61D0, --(懐) + [0x125B] = 0x61D0, --(懐) [0x125C] = 0x6212, --(戒) - [0x125D] = 0x62D0, --(拐) + [0x125D] = 0x62D0, --(拐) [0x125E] = 0x6539, --(改) - [0x1301] = 0x9B41, --(魁) + [0x1301] = 0x9B41, --(魁) [0x1302] = 0x6666, --(晦) - [0x1303] = 0x68B0, --(械) + [0x1303] = 0x68B0, --(械) [0x1304] = 0x6D77, --(海) - [0x1305] = 0x7070, --(灰) + [0x1305] = 0x7070, --(灰) [0x1306] = 0x754C, --(界) - [0x1307] = 0x7686, --(皆) + [0x1307] = 0x7686, --(皆) [0x1308] = 0x7D75, --(絵) - [0x1309] = 0x82A5, --(芥) + [0x1309] = 0x82A5, --(芥) [0x130A] = 0x87F9, --(蟹) - [0x130B] = 0x958B, --(開) + [0x130B] = 0x958B, --(開) [0x130C] = 0x968E, --(階) - [0x130D] = 0x8C9D, --(貝) + [0x130D] = 0x8C9D, --(貝) [0x130E] = 0x51F1, --(凱) - [0x130F] = 0x52BE, --(劾) + [0x130F] = 0x52BE, --(劾) [0x1310] = 0x5916, --(外) - [0x1311] = 0x54B3, --(咳) + [0x1311] = 0x54B3, --(咳) [0x1312] = 0x5BB3, --(害) - [0x1313] = 0x5D16, --(崖) + [0x1313] = 0x5D16, --(崖) [0x1314] = 0x6168, --(慨) - [0x1315] = 0x6982, --(概) + [0x1315] = 0x6982, --(概) [0x1316] = 0x6DAF, --(涯) - [0x1317] = 0x788D, --(碍) + [0x1317] = 0x788D, --(碍) [0x1318] = 0x84CB, --(蓋) - [0x1319] = 0x8857, --(街) + [0x1319] = 0x8857, --(街) [0x131A] = 0x8A72, --(該) - [0x131B] = 0x93A7, --(鎧) + [0x131B] = 0x93A7, --(鎧) [0x131C] = 0x9AB8, --(骸) - [0x131D] = 0x6D6C, --(浬) + [0x131D] = 0x6D6C, --(浬) [0x131E] = 0x99A8, --(馨) - [0x131F] = 0x86D9, --(蛙) + [0x131F] = 0x86D9, --(蛙) [0x1320] = 0x57A3, --(垣) - [0x1321] = 0x67FF, --(柿) + [0x1321] = 0x67FF, --(柿) [0x1322] = 0x86CE, --(蛎) - [0x1323] = 0x920E, --(鈎) + [0x1323] = 0x920E, --(鈎) [0x1324] = 0x5283, --(劃) - [0x1325] = 0x5687, --(嚇) + [0x1325] = 0x5687, --(嚇) [0x1326] = 0x5404, --(各) - [0x1327] = 0x5ED3, --(廓) + [0x1327] = 0x5ED3, --(廓) [0x1328] = 0x62E1, --(拡) - [0x1329] = 0x64B9, --(撹) + [0x1329] = 0x64B9, --(撹) [0x132A] = 0x683C, --(格) - [0x132B] = 0x6838, --(核) + [0x132B] = 0x6838, --(核) [0x132C] = 0x6BBB, --(殻) - [0x132D] = 0x7372, --(獲) + [0x132D] = 0x7372, --(獲) [0x132E] = 0x78BA, --(確) - [0x132F] = 0x7A6B, --(穫) + [0x132F] = 0x7A6B, --(穫) [0x1330] = 0x899A, --(覚) - [0x1331] = 0x89D2, --(角) + [0x1331] = 0x89D2, --(角) [0x1332] = 0x8D6B, --(赫) - [0x1333] = 0x8F03, --(較) + [0x1333] = 0x8F03, --(較) [0x1334] = 0x90ED, --(郭) - [0x1335] = 0x95A3, --(閣) + [0x1335] = 0x95A3, --(閣) [0x1336] = 0x9694, --(隔) - [0x1337] = 0x9769, --(革) + [0x1337] = 0x9769, --(革) [0x1338] = 0x5B66, --(学) - [0x1339] = 0x5CB3, --(岳) + [0x1339] = 0x5CB3, --(岳) [0x133A] = 0x697D, --(楽) - [0x133B] = 0x984D, --(額) + [0x133B] = 0x984D, --(額) [0x133C] = 0x984E, --(顎) - [0x133D] = 0x639B, --(掛) + [0x133D] = 0x639B, --(掛) [0x133E] = 0x7B20, --(笠) - [0x133F] = 0x6A2B, --(樫) + [0x133F] = 0x6A2B, --(樫) [0x1340] = 0x6A7F, --(橿) - [0x1341] = 0x68B6, --(梶) + [0x1341] = 0x68B6, --(梶) [0x1342] = 0x9C0D, --(鰍) - [0x1343] = 0x6F5F, --(潟) + [0x1343] = 0x6F5F, --(潟) [0x1344] = 0x5272, --(割) - [0x1345] = 0x559D, --(喝) + [0x1345] = 0x559D, --(喝) [0x1346] = 0x6070, --(恰) - [0x1347] = 0x62EC, --(括) + [0x1347] = 0x62EC, --(括) [0x1348] = 0x6D3B, --(活) - [0x1349] = 0x6E07, --(渇) + [0x1349] = 0x6E07, --(渇) [0x134A] = 0x6ED1, --(滑) - [0x134B] = 0x845B, --(葛) + [0x134B] = 0x845B, --(葛) [0x134C] = 0x8910, --(褐) - [0x134D] = 0x8F44, --(轄) + [0x134D] = 0x8F44, --(轄) [0x134E] = 0x4E14, --(且) - [0x134F] = 0x9C39, --(鰹) + [0x134F] = 0x9C39, --(鰹) [0x1350] = 0x53F6, --(叶) - [0x1351] = 0x691B, --(椛) + [0x1351] = 0x691B, --(椛) [0x1352] = 0x6A3A, --(樺) - [0x1353] = 0x9784, --(鞄) + [0x1353] = 0x9784, --(鞄) [0x1354] = 0x682A, --(株) - [0x1355] = 0x515C, --(兜) + [0x1355] = 0x515C, --(兜) [0x1356] = 0x7AC3, --(竃) - [0x1357] = 0x84B2, --(蒲) + [0x1357] = 0x84B2, --(蒲) [0x1358] = 0x91DC, --(釜) - [0x1359] = 0x938C, --(鎌) + [0x1359] = 0x938C, --(鎌) [0x135A] = 0x565B, --(噛) - [0x135B] = 0x9D28, --(鴨) + [0x135B] = 0x9D28, --(鴨) [0x135C] = 0x6822, --(栢) - [0x135D] = 0x8305, --(茅) + [0x135D] = 0x8305, --(茅) [0x135E] = 0x8431, --(萱) - [0x1401] = 0x7CA5, --(粥) + [0x1401] = 0x7CA5, --(粥) [0x1402] = 0x5208, --(刈) - [0x1403] = 0x82C5, --(苅) + [0x1403] = 0x82C5, --(苅) [0x1404] = 0x74E6, --(瓦) - [0x1405] = 0x4E7E, --(乾) + [0x1405] = 0x4E7E, --(乾) [0x1406] = 0x4F83, --(侃) - [0x1407] = 0x51A0, --(冠) + [0x1407] = 0x51A0, --(冠) [0x1408] = 0x5BD2, --(寒) - [0x1409] = 0x520A, --(刊) + [0x1409] = 0x520A, --(刊) [0x140A] = 0x52D8, --(勘) - [0x140B] = 0x52E7, --(勧) + [0x140B] = 0x52E7, --(勧) [0x140C] = 0x5DFB, --(巻) - [0x140D] = 0x559A, --(喚) + [0x140D] = 0x559A, --(喚) [0x140E] = 0x582A, --(堪) - [0x140F] = 0x59E6, --(姦) + [0x140F] = 0x59E6, --(姦) [0x1410] = 0x5B8C, --(完) - [0x1411] = 0x5B98, --(官) + [0x1411] = 0x5B98, --(官) [0x1412] = 0x5BDB, --(寛) - [0x1413] = 0x5E72, --(干) + [0x1413] = 0x5E72, --(干) [0x1414] = 0x5E79, --(幹) - [0x1415] = 0x60A3, --(患) + [0x1415] = 0x60A3, --(患) [0x1416] = 0x611F, --(感) - [0x1417] = 0x6163, --(慣) + [0x1417] = 0x6163, --(慣) [0x1418] = 0x61BE, --(憾) - [0x1419] = 0x63DB, --(換) + [0x1419] = 0x63DB, --(換) [0x141A] = 0x6562, --(敢) - [0x141B] = 0x67D1, --(柑) + [0x141B] = 0x67D1, --(柑) [0x141C] = 0x6853, --(桓) - [0x141D] = 0x68FA, --(棺) + [0x141D] = 0x68FA, --(棺) [0x141E] = 0x6B3E, --(款) - [0x141F] = 0x6B53, --(歓) + [0x141F] = 0x6B53, --(歓) [0x1420] = 0x6C57, --(汗) - [0x1421] = 0x6F22, --(漢) + [0x1421] = 0x6F22, --(漢) [0x1422] = 0x6F97, --(澗) - [0x1423] = 0x6F45, --(潅) + [0x1423] = 0x6F45, --(潅) [0x1424] = 0x74B0, --(環) - [0x1425] = 0x7518, --(甘) + [0x1425] = 0x7518, --(甘) [0x1426] = 0x76E3, --(監) - [0x1427] = 0x770B, --(看) + [0x1427] = 0x770B, --(看) [0x1428] = 0x7AFF, --(竿) - [0x1429] = 0x7BA1, --(管) + [0x1429] = 0x7BA1, --(管) [0x142A] = 0x7C21, --(簡) - [0x142B] = 0x7DE9, --(緩) + [0x142B] = 0x7DE9, --(緩) [0x142C] = 0x7F36, --(缶) - [0x142D] = 0x7FF0, --(翰) + [0x142D] = 0x7FF0, --(翰) [0x142E] = 0x809D, --(肝) - [0x142F] = 0x8266, --(艦) + [0x142F] = 0x8266, --(艦) [0x1430] = 0x839E, --(莞) - [0x1431] = 0x89B3, --(観) + [0x1431] = 0x89B3, --(観) [0x1432] = 0x8ACC, --(諌) - [0x1433] = 0x8CAB, --(貫) + [0x1433] = 0x8CAB, --(貫) [0x1434] = 0x9084, --(還) - [0x1435] = 0x9451, --(鑑) + [0x1435] = 0x9451, --(鑑) [0x1436] = 0x9593, --(間) - [0x1437] = 0x9591, --(閑) + [0x1437] = 0x9591, --(閑) [0x1438] = 0x95A2, --(関) - [0x1439] = 0x9665, --(陥) + [0x1439] = 0x9665, --(陥) [0x143A] = 0x97D3, --(韓) - [0x143B] = 0x9928, --(館) + [0x143B] = 0x9928, --(館) [0x143C] = 0x8218, --(舘) - [0x143D] = 0x4E38, --(丸) + [0x143D] = 0x4E38, --(丸) [0x143E] = 0x542B, --(含) - [0x143F] = 0x5CB8, --(岸) + [0x143F] = 0x5CB8, --(岸) [0x1440] = 0x5DCC, --(巌) - [0x1441] = 0x73A9, --(玩) + [0x1441] = 0x73A9, --(玩) [0x1442] = 0x764C, --(癌) - [0x1443] = 0x773C, --(眼) + [0x1443] = 0x773C, --(眼) [0x1444] = 0x5CA9, --(岩) - [0x1445] = 0x7FEB, --(翫) + [0x1445] = 0x7FEB, --(翫) [0x1446] = 0x8D0B, --(贋) - [0x1447] = 0x96C1, --(雁) + [0x1447] = 0x96C1, --(雁) [0x1448] = 0x9811, --(頑) - [0x1449] = 0x9854, --(顔) + [0x1449] = 0x9854, --(顔) [0x144A] = 0x9858, --(願) - [0x144B] = 0x4F01, --(企) + [0x144B] = 0x4F01, --(企) [0x144C] = 0x4F0E, --(伎) - [0x144D] = 0x5371, --(危) + [0x144D] = 0x5371, --(危) [0x144E] = 0x559C, --(喜) - [0x144F] = 0x5668, --(器) + [0x144F] = 0x5668, --(器) [0x1450] = 0x57FA, --(基) - [0x1451] = 0x5947, --(奇) + [0x1451] = 0x5947, --(奇) [0x1452] = 0x5B09, --(嬉) - [0x1453] = 0x5BC4, --(寄) + [0x1453] = 0x5BC4, --(寄) [0x1454] = 0x5C90, --(岐) - [0x1455] = 0x5E0C, --(希) + [0x1455] = 0x5E0C, --(希) [0x1456] = 0x5E7E, --(幾) - [0x1457] = 0x5FCC, --(忌) + [0x1457] = 0x5FCC, --(忌) [0x1458] = 0x63EE, --(揮) - [0x1459] = 0x673A, --(机) + [0x1459] = 0x673A, --(机) [0x145A] = 0x65D7, --(旗) - [0x145B] = 0x65E2, --(既) + [0x145B] = 0x65E2, --(既) [0x145C] = 0x671F, --(期) - [0x145D] = 0x68CB, --(棋) + [0x145D] = 0x68CB, --(棋) [0x145E] = 0x68C4, --(棄) - [0x1501] = 0x6A5F, --(機) + [0x1501] = 0x6A5F, --(機) [0x1502] = 0x5E30, --(帰) - [0x1503] = 0x6BC5, --(毅) + [0x1503] = 0x6BC5, --(毅) [0x1504] = 0x6C17, --(気) - [0x1505] = 0x6C7D, --(汽) + [0x1505] = 0x6C7D, --(汽) [0x1506] = 0x757F, --(畿) - [0x1507] = 0x7948, --(祈) + [0x1507] = 0x7948, --(祈) [0x1508] = 0x5B63, --(季) - [0x1509] = 0x7A00, --(稀) + [0x1509] = 0x7A00, --(稀) [0x150A] = 0x7D00, --(紀) - [0x150B] = 0x5FBD, --(徽) + [0x150B] = 0x5FBD, --(徽) [0x150C] = 0x898F, --(規) - [0x150D] = 0x8A18, --(記) + [0x150D] = 0x8A18, --(記) [0x150E] = 0x8CB4, --(貴) - [0x150F] = 0x8D77, --(起) + [0x150F] = 0x8D77, --(起) [0x1510] = 0x8ECC, --(軌) - [0x1511] = 0x8F1D, --(輝) + [0x1511] = 0x8F1D, --(輝) [0x1512] = 0x98E2, --(飢) - [0x1513] = 0x9A0E, --(騎) + [0x1513] = 0x9A0E, --(騎) [0x1514] = 0x9B3C, --(鬼) - [0x1515] = 0x4E80, --(亀) + [0x1515] = 0x4E80, --(亀) [0x1516] = 0x507D, --(偽) - [0x1517] = 0x5100, --(儀) + [0x1517] = 0x5100, --(儀) [0x1518] = 0x5993, --(妓) - [0x1519] = 0x5B9C, --(宜) + [0x1519] = 0x5B9C, --(宜) [0x151A] = 0x622F, --(戯) - [0x151B] = 0x6280, --(技) + [0x151B] = 0x6280, --(技) [0x151C] = 0x64EC, --(擬) - [0x151D] = 0x6B3A, --(欺) + [0x151D] = 0x6B3A, --(欺) [0x151E] = 0x72A0, --(犠) - [0x151F] = 0x7591, --(疑) + [0x151F] = 0x7591, --(疑) [0x1520] = 0x7947, --(祇) - [0x1521] = 0x7FA9, --(義) + [0x1521] = 0x7FA9, --(義) [0x1522] = 0x87FB, --(蟻) - [0x1523] = 0x8ABC, --(誼) + [0x1523] = 0x8ABC, --(誼) [0x1524] = 0x8B70, --(議) - [0x1525] = 0x63AC, --(掬) + [0x1525] = 0x63AC, --(掬) [0x1526] = 0x83CA, --(菊) - [0x1527] = 0x97A0, --(鞠) + [0x1527] = 0x97A0, --(鞠) [0x1528] = 0x5409, --(吉) - [0x1529] = 0x5403, --(吃) + [0x1529] = 0x5403, --(吃) [0x152A] = 0x55AB, --(喫) - [0x152B] = 0x6854, --(桔) + [0x152B] = 0x6854, --(桔) [0x152C] = 0x6A58, --(橘) - [0x152D] = 0x8A70, --(詰) + [0x152D] = 0x8A70, --(詰) [0x152E] = 0x7827, --(砧) - [0x152F] = 0x6775, --(杵) + [0x152F] = 0x6775, --(杵) [0x1530] = 0x9ECD, --(黍) - [0x1531] = 0x5374, --(却) + [0x1531] = 0x5374, --(却) [0x1532] = 0x5BA2, --(客) - [0x1533] = 0x811A, --(脚) + [0x1533] = 0x811A, --(脚) [0x1534] = 0x8650, --(虐) - [0x1535] = 0x9006, --(逆) + [0x1535] = 0x9006, --(逆) [0x1536] = 0x4E18, --(丘) - [0x1537] = 0x4E45, --(久) + [0x1537] = 0x4E45, --(久) [0x1538] = 0x4EC7, --(仇) - [0x1539] = 0x4F11, --(休) + [0x1539] = 0x4F11, --(休) [0x153A] = 0x53CA, --(及) - [0x153B] = 0x5438, --(吸) + [0x153B] = 0x5438, --(吸) [0x153C] = 0x5BAE, --(宮) - [0x153D] = 0x5F13, --(弓) + [0x153D] = 0x5F13, --(弓) [0x153E] = 0x6025, --(急) - [0x153F] = 0x6551, --(救) + [0x153F] = 0x6551, --(救) [0x1540] = 0x673D, --(朽) - [0x1541] = 0x6C42, --(求) + [0x1541] = 0x6C42, --(求) [0x1542] = 0x6C72, --(汲) - [0x1543] = 0x6CE3, --(泣) + [0x1543] = 0x6CE3, --(泣) [0x1544] = 0x7078, --(灸) - [0x1545] = 0x7403, --(球) + [0x1545] = 0x7403, --(球) [0x1546] = 0x7A76, --(究) - [0x1547] = 0x7AAE, --(窮) + [0x1547] = 0x7AAE, --(窮) [0x1548] = 0x7B08, --(笈) - [0x1549] = 0x7D1A, --(級) + [0x1549] = 0x7D1A, --(級) [0x154A] = 0x7CFE, --(糾) - [0x154B] = 0x7D66, --(給) + [0x154B] = 0x7D66, --(給) [0x154C] = 0x65E7, --(旧) - [0x154D] = 0x725B, --(牛) + [0x154D] = 0x725B, --(牛) [0x154E] = 0x53BB, --(去) - [0x154F] = 0x5C45, --(居) + [0x154F] = 0x5C45, --(居) [0x1550] = 0x5DE8, --(巨) - [0x1551] = 0x62D2, --(拒) + [0x1551] = 0x62D2, --(拒) [0x1552] = 0x62E0, --(拠) - [0x1553] = 0x6319, --(挙) + [0x1553] = 0x6319, --(挙) [0x1554] = 0x6E20, --(渠) - [0x1555] = 0x865A, --(虚) + [0x1555] = 0x865A, --(虚) [0x1556] = 0x8A31, --(許) - [0x1557] = 0x8DDD, --(距) + [0x1557] = 0x8DDD, --(距) [0x1558] = 0x92F8, --(鋸) - [0x1559] = 0x6F01, --(漁) + [0x1559] = 0x6F01, --(漁) [0x155A] = 0x79A6, --(禦) - [0x155B] = 0x9B5A, --(魚) + [0x155B] = 0x9B5A, --(魚) [0x155C] = 0x4EA8, --(亨) - [0x155D] = 0x4EAB, --(享) + [0x155D] = 0x4EAB, --(享) [0x155E] = 0x4EAC, --(京) - [0x1601] = 0x4F9B, --(供) + [0x1601] = 0x4F9B, --(供) [0x1602] = 0x4FA0, --(侠) - [0x1603] = 0x50D1, --(僑) + [0x1603] = 0x50D1, --(僑) [0x1604] = 0x5147, --(兇) - [0x1605] = 0x7AF6, --(競) + [0x1605] = 0x7AF6, --(競) [0x1606] = 0x5171, --(共) - [0x1607] = 0x51F6, --(凶) + [0x1607] = 0x51F6, --(凶) [0x1608] = 0x5354, --(協) - [0x1609] = 0x5321, --(匡) + [0x1609] = 0x5321, --(匡) [0x160A] = 0x537F, --(卿) - [0x160B] = 0x53EB, --(叫) + [0x160B] = 0x53EB, --(叫) [0x160C] = 0x55AC, --(喬) - [0x160D] = 0x5883, --(境) + [0x160D] = 0x5883, --(境) [0x160E] = 0x5CE1, --(峡) - [0x160F] = 0x5F37, --(強) + [0x160F] = 0x5F37, --(強) [0x1610] = 0x5F4A, --(彊) - [0x1611] = 0x602F, --(怯) + [0x1611] = 0x602F, --(怯) [0x1612] = 0x6050, --(恐) - [0x1613] = 0x606D, --(恭) + [0x1613] = 0x606D, --(恭) [0x1614] = 0x631F, --(挟) - [0x1615] = 0x6559, --(教) + [0x1615] = 0x6559, --(教) [0x1616] = 0x6A4B, --(橋) - [0x1617] = 0x6CC1, --(況) + [0x1617] = 0x6CC1, --(況) [0x1618] = 0x72C2, --(狂) - [0x1619] = 0x72ED, --(狭) + [0x1619] = 0x72ED, --(狭) [0x161A] = 0x77EF, --(矯) - [0x161B] = 0x80F8, --(胸) + [0x161B] = 0x80F8, --(胸) [0x161C] = 0x8105, --(脅) - [0x161D] = 0x8208, --(興) + [0x161D] = 0x8208, --(興) [0x161E] = 0x854E, --(蕎) - [0x161F] = 0x90F7, --(郷) + [0x161F] = 0x90F7, --(郷) [0x1620] = 0x93E1, --(鏡) - [0x1621] = 0x97FF, --(響) + [0x1621] = 0x97FF, --(響) [0x1622] = 0x9957, --(饗) - [0x1623] = 0x9A5A, --(驚) + [0x1623] = 0x9A5A, --(驚) [0x1624] = 0x4EF0, --(仰) - [0x1625] = 0x51DD, --(凝) + [0x1625] = 0x51DD, --(凝) [0x1626] = 0x5C2D, --(尭) - [0x1627] = 0x6681, --(暁) + [0x1627] = 0x6681, --(暁) [0x1628] = 0x696D, --(業) - [0x1629] = 0x5C40, --(局) + [0x1629] = 0x5C40, --(局) [0x162A] = 0x66F2, --(曲) - [0x162B] = 0x6975, --(極) + [0x162B] = 0x6975, --(極) [0x162C] = 0x7389, --(玉) - [0x162D] = 0x6850, --(桐) + [0x162D] = 0x6850, --(桐) [0x162E] = 0x7C81, --(粁) - [0x162F] = 0x50C5, --(僅) + [0x162F] = 0x50C5, --(僅) [0x1630] = 0x52E4, --(勤) - [0x1631] = 0x5747, --(均) + [0x1631] = 0x5747, --(均) [0x1632] = 0x5DFE, --(巾) - [0x1633] = 0x9326, --(錦) + [0x1633] = 0x9326, --(錦) [0x1634] = 0x65A4, --(斤) - [0x1635] = 0x6B23, --(欣) + [0x1635] = 0x6B23, --(欣) [0x1636] = 0x6B3D, --(欽) - [0x1637] = 0x7434, --(琴) + [0x1637] = 0x7434, --(琴) [0x1638] = 0x7981, --(禁) - [0x1639] = 0x79BD, --(禽) + [0x1639] = 0x79BD, --(禽) [0x163A] = 0x7B4B, --(筋) - [0x163B] = 0x7DCA, --(緊) + [0x163B] = 0x7DCA, --(緊) [0x163C] = 0x82B9, --(芹) - [0x163D] = 0x83CC, --(菌) + [0x163D] = 0x83CC, --(菌) [0x163E] = 0x887F, --(衿) - [0x163F] = 0x895F, --(襟) + [0x163F] = 0x895F, --(襟) [0x1640] = 0x8B39, --(謹) - [0x1641] = 0x8FD1, --(近) + [0x1641] = 0x8FD1, --(近) [0x1642] = 0x91D1, --(金) - [0x1643] = 0x541F, --(吟) + [0x1643] = 0x541F, --(吟) [0x1644] = 0x9280, --(銀) - [0x1645] = 0x4E5D, --(九) + [0x1645] = 0x4E5D, --(九) [0x1646] = 0x5036, --(倶) - [0x1647] = 0x53E5, --(句) + [0x1647] = 0x53E5, --(句) [0x1648] = 0x533A, --(区) - [0x1649] = 0x72D7, --(狗) + [0x1649] = 0x72D7, --(狗) [0x164A] = 0x7396, --(玖) - [0x164B] = 0x77E9, --(矩) + [0x164B] = 0x77E9, --(矩) [0x164C] = 0x82E6, --(苦) - [0x164D] = 0x8EAF, --(躯) + [0x164D] = 0x8EAF, --(躯) [0x164E] = 0x99C6, --(駆) - [0x164F] = 0x99C8, --(駈) + [0x164F] = 0x99C8, --(駈) [0x1650] = 0x99D2, --(駒) - [0x1651] = 0x5177, --(具) + [0x1651] = 0x5177, --(具) [0x1652] = 0x611A, --(愚) - [0x1653] = 0x865E, --(虞) + [0x1653] = 0x865E, --(虞) [0x1654] = 0x55B0, --(喰) - [0x1655] = 0x7A7A, --(空) + [0x1655] = 0x7A7A, --(空) [0x1656] = 0x5076, --(偶) - [0x1657] = 0x5BD3, --(寓) + [0x1657] = 0x5BD3, --(寓) [0x1658] = 0x9047, --(遇) - [0x1659] = 0x9685, --(隅) + [0x1659] = 0x9685, --(隅) [0x165A] = 0x4E32, --(串) - [0x165B] = 0x6ADB, --(櫛) + [0x165B] = 0x6ADB, --(櫛) [0x165C] = 0x91E7, --(釧) - [0x165D] = 0x5C51, --(屑) + [0x165D] = 0x5C51, --(屑) [0x165E] = 0x5C48, --(屈) - [0x1701] = 0x6398, --(掘) + [0x1701] = 0x6398, --(掘) [0x1702] = 0x7A9F, --(窟) - [0x1703] = 0x6C93, --(沓) + [0x1703] = 0x6C93, --(沓) [0x1704] = 0x9774, --(靴) - [0x1705] = 0x8F61, --(轡) + [0x1705] = 0x8F61, --(轡) [0x1706] = 0x7AAA, --(窪) - [0x1707] = 0x718A, --(熊) + [0x1707] = 0x718A, --(熊) [0x1708] = 0x9688, --(隈) - [0x1709] = 0x7C82, --(粂) + [0x1709] = 0x7C82, --(粂) [0x170A] = 0x6817, --(栗) - [0x170B] = 0x7E70, --(繰) + [0x170B] = 0x7E70, --(繰) [0x170C] = 0x6851, --(桑) - [0x170D] = 0x936C, --(鍬) + [0x170D] = 0x936C, --(鍬) [0x170E] = 0x52F2, --(勲) - [0x170F] = 0x541B, --(君) + [0x170F] = 0x541B, --(君) [0x1710] = 0x85AB, --(薫) - [0x1711] = 0x8A13, --(訓) + [0x1711] = 0x8A13, --(訓) [0x1712] = 0x7FA4, --(群) - [0x1713] = 0x8ECD, --(軍) + [0x1713] = 0x8ECD, --(軍) [0x1714] = 0x90E1, --(郡) - [0x1715] = 0x5366, --(卦) + [0x1715] = 0x5366, --(卦) [0x1716] = 0x8888, --(袈) - [0x1717] = 0x7941, --(祁) + [0x1717] = 0x7941, --(祁) [0x1718] = 0x4FC2, --(係) - [0x1719] = 0x50BE, --(傾) + [0x1719] = 0x50BE, --(傾) [0x171A] = 0x5211, --(刑) - [0x171B] = 0x5144, --(兄) + [0x171B] = 0x5144, --(兄) [0x171C] = 0x5553, --(啓) - [0x171D] = 0x572D, --(圭) + [0x171D] = 0x572D, --(圭) [0x171E] = 0x73EA, --(珪) - [0x171F] = 0x578B, --(型) + [0x171F] = 0x578B, --(型) [0x1720] = 0x5951, --(契) - [0x1721] = 0x5F62, --(形) + [0x1721] = 0x5F62, --(形) [0x1722] = 0x5F84, --(径) - [0x1723] = 0x6075, --(恵) + [0x1723] = 0x6075, --(恵) [0x1724] = 0x6176, --(慶) - [0x1725] = 0x6167, --(慧) + [0x1725] = 0x6167, --(慧) [0x1726] = 0x61A9, --(憩) - [0x1727] = 0x63B2, --(掲) + [0x1727] = 0x63B2, --(掲) [0x1728] = 0x643A, --(携) - [0x1729] = 0x656C, --(敬) + [0x1729] = 0x656C, --(敬) [0x172A] = 0x666F, --(景) - [0x172B] = 0x6842, --(桂) + [0x172B] = 0x6842, --(桂) [0x172C] = 0x6E13, --(渓) - [0x172D] = 0x7566, --(畦) + [0x172D] = 0x7566, --(畦) [0x172E] = 0x7A3D, --(稽) - [0x172F] = 0x7CFB, --(系) + [0x172F] = 0x7CFB, --(系) [0x1730] = 0x7D4C, --(経) - [0x1731] = 0x7D99, --(継) + [0x1731] = 0x7D99, --(継) [0x1732] = 0x7E4B, --(繋) - [0x1733] = 0x7F6B, --(罫) + [0x1733] = 0x7F6B, --(罫) [0x1734] = 0x830E, --(茎) - [0x1735] = 0x834A, --(荊) + [0x1735] = 0x834A, --(荊) [0x1736] = 0x86CD, --(蛍) - [0x1737] = 0x8A08, --(計) + [0x1737] = 0x8A08, --(計) [0x1738] = 0x8A63, --(詣) - [0x1739] = 0x8B66, --(警) + [0x1739] = 0x8B66, --(警) [0x173A] = 0x8EFD, --(軽) - [0x173B] = 0x981A, --(頚) + [0x173B] = 0x981A, --(頚) [0x173C] = 0x9D8F, --(鶏) - [0x173D] = 0x82B8, --(芸) + [0x173D] = 0x82B8, --(芸) [0x173E] = 0x8FCE, --(迎) - [0x173F] = 0x9BE8, --(鯨) + [0x173F] = 0x9BE8, --(鯨) [0x1740] = 0x5287, --(劇) - [0x1741] = 0x621F, --(戟) + [0x1741] = 0x621F, --(戟) [0x1742] = 0x6483, --(撃) - [0x1743] = 0x6FC0, --(激) + [0x1743] = 0x6FC0, --(激) [0x1744] = 0x9699, --(隙) - [0x1745] = 0x6841, --(桁) + [0x1745] = 0x6841, --(桁) [0x1746] = 0x5091, --(傑) - [0x1747] = 0x6B20, --(欠) + [0x1747] = 0x6B20, --(欠) [0x1748] = 0x6C7A, --(決) - [0x1749] = 0x6F54, --(潔) + [0x1749] = 0x6F54, --(潔) [0x174A] = 0x7A74, --(穴) - [0x174B] = 0x7D50, --(結) + [0x174B] = 0x7D50, --(結) [0x174C] = 0x8840, --(血) - [0x174D] = 0x8A23, --(訣) + [0x174D] = 0x8A23, --(訣) [0x174E] = 0x6708, --(月) - [0x174F] = 0x4EF6, --(件) + [0x174F] = 0x4EF6, --(件) [0x1750] = 0x5039, --(倹) - [0x1751] = 0x5026, --(倦) + [0x1751] = 0x5026, --(倦) [0x1752] = 0x5065, --(健) - [0x1753] = 0x517C, --(兼) + [0x1753] = 0x517C, --(兼) [0x1754] = 0x5238, --(券) - [0x1755] = 0x5263, --(剣) + [0x1755] = 0x5263, --(剣) [0x1756] = 0x55A7, --(喧) - [0x1757] = 0x570F, --(圏) + [0x1757] = 0x570F, --(圏) [0x1758] = 0x5805, --(堅) - [0x1759] = 0x5ACC, --(嫌) + [0x1759] = 0x5ACC, --(嫌) [0x175A] = 0x5EFA, --(建) - [0x175B] = 0x61B2, --(憲) + [0x175B] = 0x61B2, --(憲) [0x175C] = 0x61F8, --(懸) - [0x175D] = 0x62F3, --(拳) + [0x175D] = 0x62F3, --(拳) [0x175E] = 0x6372, --(捲) - [0x1801] = 0x691C, --(検) + [0x1801] = 0x691C, --(検) [0x1802] = 0x6A29, --(権) - [0x1803] = 0x727D, --(牽) + [0x1803] = 0x727D, --(牽) [0x1804] = 0x72AC, --(犬) - [0x1805] = 0x732E, --(献) + [0x1805] = 0x732E, --(献) [0x1806] = 0x7814, --(研) - [0x1807] = 0x786F, --(硯) + [0x1807] = 0x786F, --(硯) [0x1808] = 0x7D79, --(絹) - [0x1809] = 0x770C, --(県) + [0x1809] = 0x770C, --(県) [0x180A] = 0x80A9, --(肩) - [0x180B] = 0x898B, --(見) + [0x180B] = 0x898B, --(見) [0x180C] = 0x8B19, --(謙) - [0x180D] = 0x8CE2, --(賢) + [0x180D] = 0x8CE2, --(賢) [0x180E] = 0x8ED2, --(軒) - [0x180F] = 0x9063, --(遣) + [0x180F] = 0x9063, --(遣) [0x1810] = 0x9375, --(鍵) - [0x1811] = 0x967A, --(険) + [0x1811] = 0x967A, --(険) [0x1812] = 0x9855, --(顕) - [0x1813] = 0x9A13, --(験) + [0x1813] = 0x9A13, --(験) [0x1814] = 0x9E78, --(鹸) - [0x1815] = 0x5143, --(元) + [0x1815] = 0x5143, --(元) [0x1816] = 0x539F, --(原) - [0x1817] = 0x53B3, --(厳) + [0x1817] = 0x53B3, --(厳) [0x1818] = 0x5E7B, --(幻) - [0x1819] = 0x5F26, --(弦) + [0x1819] = 0x5F26, --(弦) [0x181A] = 0x6E1B, --(減) - [0x181B] = 0x6E90, --(源) + [0x181B] = 0x6E90, --(源) [0x181C] = 0x7384, --(玄) - [0x181D] = 0x73FE, --(現) + [0x181D] = 0x73FE, --(現) [0x181E] = 0x7D43, --(絃) - [0x181F] = 0x8237, --(舷) + [0x181F] = 0x8237, --(舷) [0x1820] = 0x8A00, --(言) - [0x1821] = 0x8AFA, --(諺) + [0x1821] = 0x8AFA, --(諺) [0x1822] = 0x9650, --(限) - [0x1823] = 0x4E4E, --(乎) + [0x1823] = 0x4E4E, --(乎) [0x1824] = 0x500B, --(個) - [0x1825] = 0x53E4, --(古) + [0x1825] = 0x53E4, --(古) [0x1826] = 0x547C, --(呼) - [0x1827] = 0x56FA, --(固) + [0x1827] = 0x56FA, --(固) [0x1828] = 0x59D1, --(姑) - [0x1829] = 0x5B64, --(孤) + [0x1829] = 0x5B64, --(孤) [0x182A] = 0x5DF1, --(己) - [0x182B] = 0x5EAB, --(庫) + [0x182B] = 0x5EAB, --(庫) [0x182C] = 0x5F27, --(弧) - [0x182D] = 0x6238, --(戸) + [0x182D] = 0x6238, --(戸) [0x182E] = 0x6545, --(故) - [0x182F] = 0x67AF, --(枯) + [0x182F] = 0x67AF, --(枯) [0x1830] = 0x6E56, --(湖) - [0x1831] = 0x72D0, --(狐) + [0x1831] = 0x72D0, --(狐) [0x1832] = 0x7CCA, --(糊) - [0x1833] = 0x88B4, --(袴) + [0x1833] = 0x88B4, --(袴) [0x1834] = 0x80A1, --(股) - [0x1835] = 0x80E1, --(胡) + [0x1835] = 0x80E1, --(胡) [0x1836] = 0x83F0, --(菰) - [0x1837] = 0x864E, --(虎) + [0x1837] = 0x864E, --(虎) [0x1838] = 0x8A87, --(誇) - [0x1839] = 0x8DE8, --(跨) + [0x1839] = 0x8DE8, --(跨) [0x183A] = 0x9237, --(鈷) - [0x183B] = 0x96C7, --(雇) + [0x183B] = 0x96C7, --(雇) [0x183C] = 0x9867, --(顧) - [0x183D] = 0x9F13, --(鼓) + [0x183D] = 0x9F13, --(鼓) [0x183E] = 0x4E94, --(五) - [0x183F] = 0x4E92, --(互) + [0x183F] = 0x4E92, --(互) [0x1840] = 0x4F0D, --(伍) - [0x1841] = 0x5348, --(午) + [0x1841] = 0x5348, --(午) [0x1842] = 0x5449, --(呉) - [0x1843] = 0x543E, --(吾) + [0x1843] = 0x543E, --(吾) [0x1844] = 0x5A2F, --(娯) - [0x1845] = 0x5F8C, --(後) + [0x1845] = 0x5F8C, --(後) [0x1846] = 0x5FA1, --(御) - [0x1847] = 0x609F, --(悟) + [0x1847] = 0x609F, --(悟) [0x1848] = 0x68A7, --(梧) - [0x1849] = 0x6A8E, --(檎) + [0x1849] = 0x6A8E, --(檎) [0x184A] = 0x745A, --(瑚) - [0x184B] = 0x7881, --(碁) + [0x184B] = 0x7881, --(碁) [0x184C] = 0x8A9E, --(語) - [0x184D] = 0x8AA4, --(誤) + [0x184D] = 0x8AA4, --(誤) [0x184E] = 0x8B77, --(護) - [0x184F] = 0x9190, --(醐) + [0x184F] = 0x9190, --(醐) [0x1850] = 0x4E5E, --(乞) - [0x1851] = 0x9BC9, --(鯉) + [0x1851] = 0x9BC9, --(鯉) [0x1852] = 0x4EA4, --(交) - [0x1853] = 0x4F7C, --(佼) + [0x1853] = 0x4F7C, --(佼) [0x1854] = 0x4FAF, --(侯) - [0x1855] = 0x5019, --(候) + [0x1855] = 0x5019, --(候) [0x1856] = 0x5016, --(倖) - [0x1857] = 0x5149, --(光) + [0x1857] = 0x5149, --(光) [0x1858] = 0x516C, --(公) - [0x1859] = 0x529F, --(功) + [0x1859] = 0x529F, --(功) [0x185A] = 0x52B9, --(効) - [0x185B] = 0x52FE, --(勾) + [0x185B] = 0x52FE, --(勾) [0x185C] = 0x539A, --(厚) - [0x185D] = 0x53E3, --(口) + [0x185D] = 0x53E3, --(口) [0x185E] = 0x5411, --(向) - [0x1901] = 0x540E, --(后) + [0x1901] = 0x540E, --(后) [0x1902] = 0x5589, --(喉) - [0x1903] = 0x5751, --(坑) + [0x1903] = 0x5751, --(坑) [0x1904] = 0x57A2, --(垢) - [0x1905] = 0x597D, --(好) + [0x1905] = 0x597D, --(好) [0x1906] = 0x5B54, --(孔) - [0x1907] = 0x5B5D, --(孝) + [0x1907] = 0x5B5D, --(孝) [0x1908] = 0x5B8F, --(宏) - [0x1909] = 0x5DE5, --(工) + [0x1909] = 0x5DE5, --(工) [0x190A] = 0x5DE7, --(巧) - [0x190B] = 0x5DF7, --(巷) + [0x190B] = 0x5DF7, --(巷) [0x190C] = 0x5E78, --(幸) - [0x190D] = 0x5E83, --(広) + [0x190D] = 0x5E83, --(広) [0x190E] = 0x5E9A, --(庚) - [0x190F] = 0x5EB7, --(康) + [0x190F] = 0x5EB7, --(康) [0x1910] = 0x5F18, --(弘) - [0x1911] = 0x6052, --(恒) + [0x1911] = 0x6052, --(恒) [0x1912] = 0x614C, --(慌) - [0x1913] = 0x6297, --(抗) + [0x1913] = 0x6297, --(抗) [0x1914] = 0x62D8, --(拘) - [0x1915] = 0x63A7, --(控) + [0x1915] = 0x63A7, --(控) [0x1916] = 0x653B, --(攻) - [0x1917] = 0x6602, --(昂) + [0x1917] = 0x6602, --(昂) [0x1918] = 0x6643, --(晃) - [0x1919] = 0x66F4, --(更) + [0x1919] = 0x66F4, --(更) [0x191A] = 0x676D, --(杭) - [0x191B] = 0x6821, --(校) + [0x191B] = 0x6821, --(校) [0x191C] = 0x6897, --(梗) - [0x191D] = 0x69CB, --(構) + [0x191D] = 0x69CB, --(構) [0x191E] = 0x6C5F, --(江) - [0x191F] = 0x6D2A, --(洪) + [0x191F] = 0x6D2A, --(洪) [0x1920] = 0x6D69, --(浩) - [0x1921] = 0x6E2F, --(港) + [0x1921] = 0x6E2F, --(港) [0x1922] = 0x6E9D, --(溝) - [0x1923] = 0x7532, --(甲) + [0x1923] = 0x7532, --(甲) [0x1924] = 0x7687, --(皇) - [0x1925] = 0x786C, --(硬) + [0x1925] = 0x786C, --(硬) [0x1926] = 0x7A3F, --(稿) - [0x1927] = 0x7CE0, --(糠) + [0x1927] = 0x7CE0, --(糠) [0x1928] = 0x7D05, --(紅) - [0x1929] = 0x7D18, --(紘) + [0x1929] = 0x7D18, --(紘) [0x192A] = 0x7D5E, --(絞) - [0x192B] = 0x7DB1, --(綱) + [0x192B] = 0x7DB1, --(綱) [0x192C] = 0x8015, --(耕) - [0x192D] = 0x8003, --(考) + [0x192D] = 0x8003, --(考) [0x192E] = 0x80AF, --(肯) - [0x192F] = 0x80B1, --(肱) + [0x192F] = 0x80B1, --(肱) [0x1930] = 0x8154, --(腔) - [0x1931] = 0x818F, --(膏) + [0x1931] = 0x818F, --(膏) [0x1932] = 0x822A, --(航) - [0x1933] = 0x8352, --(荒) + [0x1933] = 0x8352, --(荒) [0x1934] = 0x884C, --(行) - [0x1935] = 0x8861, --(衡) + [0x1935] = 0x8861, --(衡) [0x1936] = 0x8B1B, --(講) - [0x1937] = 0x8CA2, --(貢) + [0x1937] = 0x8CA2, --(貢) [0x1938] = 0x8CFC, --(購) - [0x1939] = 0x90CA, --(郊) + [0x1939] = 0x90CA, --(郊) [0x193A] = 0x9175, --(酵) - [0x193B] = 0x9271, --(鉱) + [0x193B] = 0x9271, --(鉱) [0x193C] = 0x783F, --(砿) - [0x193D] = 0x92FC, --(鋼) + [0x193D] = 0x92FC, --(鋼) [0x193E] = 0x95A4, --(閤) - [0x193F] = 0x964D, --(降) + [0x193F] = 0x964D, --(降) [0x1940] = 0x9805, --(項) - [0x1941] = 0x9999, --(香) + [0x1941] = 0x9999, --(香) [0x1942] = 0x9AD8, --(高) - [0x1943] = 0x9D3B, --(鴻) + [0x1943] = 0x9D3B, --(鴻) [0x1944] = 0x525B, --(剛) - [0x1945] = 0x52AB, --(劫) + [0x1945] = 0x52AB, --(劫) [0x1946] = 0x53F7, --(号) - [0x1947] = 0x5408, --(合) + [0x1947] = 0x5408, --(合) [0x1948] = 0x58D5, --(壕) - [0x1949] = 0x62F7, --(拷) + [0x1949] = 0x62F7, --(拷) [0x194A] = 0x6FE0, --(濠) - [0x194B] = 0x8C6A, --(豪) + [0x194B] = 0x8C6A, --(豪) [0x194C] = 0x8F5F, --(轟) - [0x194D] = 0x9EB9, --(麹) + [0x194D] = 0x9EB9, --(麹) [0x194E] = 0x514B, --(克) - [0x194F] = 0x523B, --(刻) + [0x194F] = 0x523B, --(刻) [0x1950] = 0x544A, --(告) - [0x1951] = 0x56FD, --(国) + [0x1951] = 0x56FD, --(国) [0x1952] = 0x7A40, --(穀) - [0x1953] = 0x9177, --(酷) + [0x1953] = 0x9177, --(酷) [0x1954] = 0x9D60, --(鵠) - [0x1955] = 0x9ED2, --(黒) + [0x1955] = 0x9ED2, --(黒) [0x1956] = 0x7344, --(獄) - [0x1957] = 0x6F09, --(漉) + [0x1957] = 0x6F09, --(漉) [0x1958] = 0x8170, --(腰) - [0x1959] = 0x7511, --(甑) + [0x1959] = 0x7511, --(甑) [0x195A] = 0x5FFD, --(忽) - [0x195B] = 0x60DA, --(惚) + [0x195B] = 0x60DA, --(惚) [0x195C] = 0x9AA8, --(骨) - [0x195D] = 0x72DB, --(狛) + [0x195D] = 0x72DB, --(狛) [0x195E] = 0x8FBC, --(込) - [0x1A01] = 0x6B64, --(此) + [0x1A01] = 0x6B64, --(此) [0x1A02] = 0x9803, --(頃) - [0x1A03] = 0x4ECA, --(今) + [0x1A03] = 0x4ECA, --(今) [0x1A04] = 0x56F0, --(困) - [0x1A05] = 0x5764, --(坤) + [0x1A05] = 0x5764, --(坤) [0x1A06] = 0x58BE, --(墾) - [0x1A07] = 0x5A5A, --(婚) + [0x1A07] = 0x5A5A, --(婚) [0x1A08] = 0x6068, --(恨) - [0x1A09] = 0x61C7, --(懇) + [0x1A09] = 0x61C7, --(懇) [0x1A0A] = 0x660F, --(昏) - [0x1A0B] = 0x6606, --(昆) + [0x1A0B] = 0x6606, --(昆) [0x1A0C] = 0x6839, --(根) - [0x1A0D] = 0x68B1, --(梱) + [0x1A0D] = 0x68B1, --(梱) [0x1A0E] = 0x6DF7, --(混) - [0x1A0F] = 0x75D5, --(痕) + [0x1A0F] = 0x75D5, --(痕) [0x1A10] = 0x7D3A, --(紺) - [0x1A11] = 0x826E, --(艮) + [0x1A11] = 0x826E, --(艮) [0x1A12] = 0x9B42, --(魂) - [0x1A13] = 0x4E9B, --(些) + [0x1A13] = 0x4E9B, --(些) [0x1A14] = 0x4F50, --(佐) - [0x1A15] = 0x53C9, --(叉) + [0x1A15] = 0x53C9, --(叉) [0x1A16] = 0x5506, --(唆) - [0x1A17] = 0x5D6F, --(嵯) + [0x1A17] = 0x5D6F, --(嵯) [0x1A18] = 0x5DE6, --(左) - [0x1A19] = 0x5DEE, --(差) + [0x1A19] = 0x5DEE, --(差) [0x1A1A] = 0x67FB, --(査) - [0x1A1B] = 0x6C99, --(沙) + [0x1A1B] = 0x6C99, --(沙) [0x1A1C] = 0x7473, --(瑳) - [0x1A1D] = 0x7802, --(砂) + [0x1A1D] = 0x7802, --(砂) [0x1A1E] = 0x8A50, --(詐) - [0x1A1F] = 0x9396, --(鎖) + [0x1A1F] = 0x9396, --(鎖) [0x1A20] = 0x88DF, --(裟) - [0x1A21] = 0x5750, --(坐) + [0x1A21] = 0x5750, --(坐) [0x1A22] = 0x5EA7, --(座) - [0x1A23] = 0x632B, --(挫) + [0x1A23] = 0x632B, --(挫) [0x1A24] = 0x50B5, --(債) - [0x1A25] = 0x50AC, --(催) + [0x1A25] = 0x50AC, --(催) [0x1A26] = 0x518D, --(再) - [0x1A27] = 0x6700, --(最) + [0x1A27] = 0x6700, --(最) [0x1A28] = 0x54C9, --(哉) - [0x1A29] = 0x585E, --(塞) + [0x1A29] = 0x585E, --(塞) [0x1A2A] = 0x59BB, --(妻) - [0x1A2B] = 0x5BB0, --(宰) + [0x1A2B] = 0x5BB0, --(宰) [0x1A2C] = 0x5F69, --(彩) - [0x1A2D] = 0x624D, --(才) + [0x1A2D] = 0x624D, --(才) [0x1A2E] = 0x63A1, --(採) - [0x1A2F] = 0x683D, --(栽) + [0x1A2F] = 0x683D, --(栽) [0x1A30] = 0x6B73, --(歳) - [0x1A31] = 0x6E08, --(済) + [0x1A31] = 0x6E08, --(済) [0x1A32] = 0x707D, --(災) - [0x1A33] = 0x91C7, --(采) + [0x1A33] = 0x91C7, --(采) [0x1A34] = 0x7280, --(犀) - [0x1A35] = 0x7815, --(砕) + [0x1A35] = 0x7815, --(砕) [0x1A36] = 0x7826, --(砦) - [0x1A37] = 0x796D, --(祭) + [0x1A37] = 0x796D, --(祭) [0x1A38] = 0x658E, --(斎) - [0x1A39] = 0x7D30, --(細) + [0x1A39] = 0x7D30, --(細) [0x1A3A] = 0x83DC, --(菜) - [0x1A3B] = 0x88C1, --(裁) + [0x1A3B] = 0x88C1, --(裁) [0x1A3C] = 0x8F09, --(載) - [0x1A3D] = 0x969B, --(際) + [0x1A3D] = 0x969B, --(際) [0x1A3E] = 0x5264, --(剤) - [0x1A3F] = 0x5728, --(在) + [0x1A3F] = 0x5728, --(在) [0x1A40] = 0x6750, --(材) - [0x1A41] = 0x7F6A, --(罪) + [0x1A41] = 0x7F6A, --(罪) [0x1A42] = 0x8CA1, --(財) - [0x1A43] = 0x51B4, --(冴) + [0x1A43] = 0x51B4, --(冴) [0x1A44] = 0x5742, --(坂) - [0x1A45] = 0x962A, --(阪) + [0x1A45] = 0x962A, --(阪) [0x1A46] = 0x583A, --(堺) - [0x1A47] = 0x698A, --(榊) + [0x1A47] = 0x698A, --(榊) [0x1A48] = 0x80B4, --(肴) - [0x1A49] = 0x54B2, --(咲) + [0x1A49] = 0x54B2, --(咲) [0x1A4A] = 0x5D0E, --(崎) - [0x1A4B] = 0x57FC, --(埼) + [0x1A4B] = 0x57FC, --(埼) [0x1A4C] = 0x7895, --(碕) - [0x1A4D] = 0x9DFA, --(鷺) + [0x1A4D] = 0x9DFA, --(鷺) [0x1A4E] = 0x4F5C, --(作) - [0x1A4F] = 0x524A, --(削) + [0x1A4F] = 0x524A, --(削) [0x1A50] = 0x548B, --(咋) - [0x1A51] = 0x643E, --(搾) + [0x1A51] = 0x643E, --(搾) [0x1A52] = 0x6628, --(昨) - [0x1A53] = 0x6714, --(朔) + [0x1A53] = 0x6714, --(朔) [0x1A54] = 0x67F5, --(柵) - [0x1A55] = 0x7A84, --(窄) + [0x1A55] = 0x7A84, --(窄) [0x1A56] = 0x7B56, --(策) - [0x1A57] = 0x7D22, --(索) + [0x1A57] = 0x7D22, --(索) [0x1A58] = 0x932F, --(錯) - [0x1A59] = 0x685C, --(桜) + [0x1A59] = 0x685C, --(桜) [0x1A5A] = 0x9BAD, --(鮭) - [0x1A5B] = 0x7B39, --(笹) + [0x1A5B] = 0x7B39, --(笹) [0x1A5C] = 0x5319, --(匙) - [0x1A5D] = 0x518A, --(冊) + [0x1A5D] = 0x518A, --(冊) [0x1A5E] = 0x5237, --(刷) - [0x1B01] = 0x5BDF, --(察) + [0x1B01] = 0x5BDF, --(察) [0x1B02] = 0x62F6, --(拶) - [0x1B03] = 0x64AE, --(撮) + [0x1B03] = 0x64AE, --(撮) [0x1B04] = 0x64E6, --(擦) - [0x1B05] = 0x672D, --(札) + [0x1B05] = 0x672D, --(札) [0x1B06] = 0x6BBA, --(殺) - [0x1B07] = 0x85A9, --(薩) + [0x1B07] = 0x85A9, --(薩) [0x1B08] = 0x96D1, --(雑) - [0x1B09] = 0x7690, --(皐) + [0x1B09] = 0x7690, --(皐) [0x1B0A] = 0x9BD6, --(鯖) - [0x1B0B] = 0x634C, --(捌) + [0x1B0B] = 0x634C, --(捌) [0x1B0C] = 0x9306, --(錆) - [0x1B0D] = 0x9BAB, --(鮫) + [0x1B0D] = 0x9BAB, --(鮫) [0x1B0E] = 0x76BF, --(皿) - [0x1B0F] = 0x6652, --(晒) + [0x1B0F] = 0x6652, --(晒) [0x1B10] = 0x4E09, --(三) - [0x1B11] = 0x5098, --(傘) + [0x1B11] = 0x5098, --(傘) [0x1B12] = 0x53C2, --(参) - [0x1B13] = 0x5C71, --(山) + [0x1B13] = 0x5C71, --(山) [0x1B14] = 0x60E8, --(惨) - [0x1B15] = 0x6492, --(撒) + [0x1B15] = 0x6492, --(撒) [0x1B16] = 0x6563, --(散) - [0x1B17] = 0x685F, --(桟) + [0x1B17] = 0x685F, --(桟) [0x1B18] = 0x71E6, --(燦) - [0x1B19] = 0x73CA, --(珊) + [0x1B19] = 0x73CA, --(珊) [0x1B1A] = 0x7523, --(産) - [0x1B1B] = 0x7B97, --(算) + [0x1B1B] = 0x7B97, --(算) [0x1B1C] = 0x7E82, --(纂) - [0x1B1D] = 0x8695, --(蚕) + [0x1B1D] = 0x8695, --(蚕) [0x1B1E] = 0x8B83, --(讃) - [0x1B1F] = 0x8CDB, --(賛) + [0x1B1F] = 0x8CDB, --(賛) [0x1B20] = 0x9178, --(酸) - [0x1B21] = 0x9910, --(餐) + [0x1B21] = 0x9910, --(餐) [0x1B22] = 0x65AC, --(斬) - [0x1B23] = 0x66AB, --(暫) + [0x1B23] = 0x66AB, --(暫) [0x1B24] = 0x6B8B, --(残) - [0x1B25] = 0x4ED5, --(仕) + [0x1B25] = 0x4ED5, --(仕) [0x1B26] = 0x4ED4, --(仔) - [0x1B27] = 0x4F3A, --(伺) + [0x1B27] = 0x4F3A, --(伺) [0x1B28] = 0x4F7F, --(使) - [0x1B29] = 0x523A, --(刺) + [0x1B29] = 0x523A, --(刺) [0x1B2A] = 0x53F8, --(司) - [0x1B2B] = 0x53F2, --(史) + [0x1B2B] = 0x53F2, --(史) [0x1B2C] = 0x55E3, --(嗣) - [0x1B2D] = 0x56DB, --(四) + [0x1B2D] = 0x56DB, --(四) [0x1B2E] = 0x58EB, --(士) - [0x1B2F] = 0x59CB, --(始) + [0x1B2F] = 0x59CB, --(始) [0x1B30] = 0x59C9, --(姉) - [0x1B31] = 0x59FF, --(姿) + [0x1B31] = 0x59FF, --(姿) [0x1B32] = 0x5B50, --(子) - [0x1B33] = 0x5C4D, --(屍) + [0x1B33] = 0x5C4D, --(屍) [0x1B34] = 0x5E02, --(市) - [0x1B35] = 0x5E2B, --(師) + [0x1B35] = 0x5E2B, --(師) [0x1B36] = 0x5FD7, --(志) - [0x1B37] = 0x601D, --(思) + [0x1B37] = 0x601D, --(思) [0x1B38] = 0x6307, --(指) - [0x1B39] = 0x652F, --(支) + [0x1B39] = 0x652F, --(支) [0x1B3A] = 0x5B5C, --(孜) - [0x1B3B] = 0x65AF, --(斯) + [0x1B3B] = 0x65AF, --(斯) [0x1B3C] = 0x65BD, --(施) - [0x1B3D] = 0x65E8, --(旨) + [0x1B3D] = 0x65E8, --(旨) [0x1B3E] = 0x679D, --(枝) - [0x1B3F] = 0x6B62, --(止) + [0x1B3F] = 0x6B62, --(止) [0x1B40] = 0x6B7B, --(死) - [0x1B41] = 0x6C0F, --(氏) + [0x1B41] = 0x6C0F, --(氏) [0x1B42] = 0x7345, --(獅) - [0x1B43] = 0x7949, --(祉) + [0x1B43] = 0x7949, --(祉) [0x1B44] = 0x79C1, --(私) - [0x1B45] = 0x7CF8, --(糸) + [0x1B45] = 0x7CF8, --(糸) [0x1B46] = 0x7D19, --(紙) - [0x1B47] = 0x7D2B, --(紫) + [0x1B47] = 0x7D2B, --(紫) [0x1B48] = 0x80A2, --(肢) - [0x1B49] = 0x8102, --(脂) + [0x1B49] = 0x8102, --(脂) [0x1B4A] = 0x81F3, --(至) - [0x1B4B] = 0x8996, --(視) + [0x1B4B] = 0x8996, --(視) [0x1B4C] = 0x8A5E, --(詞) - [0x1B4D] = 0x8A69, --(詩) + [0x1B4D] = 0x8A69, --(詩) [0x1B4E] = 0x8A66, --(試) - [0x1B4F] = 0x8A8C, --(誌) + [0x1B4F] = 0x8A8C, --(誌) [0x1B50] = 0x8AEE, --(諮) - [0x1B51] = 0x8CC7, --(資) + [0x1B51] = 0x8CC7, --(資) [0x1B52] = 0x8CDC, --(賜) - [0x1B53] = 0x96CC, --(雌) + [0x1B53] = 0x96CC, --(雌) [0x1B54] = 0x98FC, --(飼) - [0x1B55] = 0x6B6F, --(歯) + [0x1B55] = 0x6B6F, --(歯) [0x1B56] = 0x4E8B, --(事) - [0x1B57] = 0x4F3C, --(似) + [0x1B57] = 0x4F3C, --(似) [0x1B58] = 0x4F8D, --(侍) - [0x1B59] = 0x5150, --(児) + [0x1B59] = 0x5150, --(児) [0x1B5A] = 0x5B57, --(字) - [0x1B5B] = 0x5BFA, --(寺) + [0x1B5B] = 0x5BFA, --(寺) [0x1B5C] = 0x6148, --(慈) - [0x1B5D] = 0x6301, --(持) + [0x1B5D] = 0x6301, --(持) [0x1B5E] = 0x6642, --(時) - [0x1C01] = 0x6B21, --(次) + [0x1C01] = 0x6B21, --(次) [0x1C02] = 0x6ECB, --(滋) - [0x1C03] = 0x6CBB, --(治) + [0x1C03] = 0x6CBB, --(治) [0x1C04] = 0x723E, --(爾) - [0x1C05] = 0x74BD, --(璽) + [0x1C05] = 0x74BD, --(璽) [0x1C06] = 0x75D4, --(痔) - [0x1C07] = 0x78C1, --(磁) + [0x1C07] = 0x78C1, --(磁) [0x1C08] = 0x793A, --(示) - [0x1C09] = 0x800C, --(而) + [0x1C09] = 0x800C, --(而) [0x1C0A] = 0x8033, --(耳) - [0x1C0B] = 0x81EA, --(自) + [0x1C0B] = 0x81EA, --(自) [0x1C0C] = 0x8494, --(蒔) - [0x1C0D] = 0x8F9E, --(辞) + [0x1C0D] = 0x8F9E, --(辞) [0x1C0E] = 0x6C50, --(汐) - [0x1C0F] = 0x9E7F, --(鹿) + [0x1C0F] = 0x9E7F, --(鹿) [0x1C10] = 0x5F0F, --(式) - [0x1C11] = 0x8B58, --(識) + [0x1C11] = 0x8B58, --(識) [0x1C12] = 0x9D2B, --(鴫) - [0x1C13] = 0x7AFA, --(竺) + [0x1C13] = 0x7AFA, --(竺) [0x1C14] = 0x8EF8, --(軸) - [0x1C15] = 0x5B8D, --(宍) + [0x1C15] = 0x5B8D, --(宍) [0x1C16] = 0x96EB, --(雫) - [0x1C17] = 0x4E03, --(七) + [0x1C17] = 0x4E03, --(七) [0x1C18] = 0x53F1, --(叱) - [0x1C19] = 0x57F7, --(執) + [0x1C19] = 0x57F7, --(執) [0x1C1A] = 0x5931, --(失) - [0x1C1B] = 0x5AC9, --(嫉) + [0x1C1B] = 0x5AC9, --(嫉) [0x1C1C] = 0x5BA4, --(室) - [0x1C1D] = 0x6089, --(悉) + [0x1C1D] = 0x6089, --(悉) [0x1C1E] = 0x6E7F, --(湿) - [0x1C1F] = 0x6F06, --(漆) + [0x1C1F] = 0x6F06, --(漆) [0x1C20] = 0x75BE, --(疾) - [0x1C21] = 0x8CEA, --(質) + [0x1C21] = 0x8CEA, --(質) [0x1C22] = 0x5B9F, --(実) - [0x1C23] = 0x8500, --(蔀) + [0x1C23] = 0x8500, --(蔀) [0x1C24] = 0x7BE0, --(篠) - [0x1C25] = 0x5072, --(偲) + [0x1C25] = 0x5072, --(偲) [0x1C26] = 0x67F4, --(柴) - [0x1C27] = 0x829D, --(芝) + [0x1C27] = 0x829D, --(芝) [0x1C28] = 0x5C61, --(屡) - [0x1C29] = 0x854A, --(蕊) + [0x1C29] = 0x854A, --(蕊) [0x1C2A] = 0x7E1E, --(縞) - [0x1C2B] = 0x820E, --(舎) + [0x1C2B] = 0x820E, --(舎) [0x1C2C] = 0x5199, --(写) - [0x1C2D] = 0x5C04, --(射) + [0x1C2D] = 0x5C04, --(射) [0x1C2E] = 0x6368, --(捨) - [0x1C2F] = 0x8D66, --(赦) + [0x1C2F] = 0x8D66, --(赦) [0x1C30] = 0x659C, --(斜) - [0x1C31] = 0x716E, --(煮) + [0x1C31] = 0x716E, --(煮) [0x1C32] = 0x793E, --(社) - [0x1C33] = 0x7D17, --(紗) + [0x1C33] = 0x7D17, --(紗) [0x1C34] = 0x8005, --(者) - [0x1C35] = 0x8B1D, --(謝) + [0x1C35] = 0x8B1D, --(謝) [0x1C36] = 0x8ECA, --(車) - [0x1C37] = 0x906E, --(遮) + [0x1C37] = 0x906E, --(遮) [0x1C38] = 0x86C7, --(蛇) - [0x1C39] = 0x90AA, --(邪) + [0x1C39] = 0x90AA, --(邪) [0x1C3A] = 0x501F, --(借) - [0x1C3B] = 0x52FA, --(勺) + [0x1C3B] = 0x52FA, --(勺) [0x1C3C] = 0x5C3A, --(尺) - [0x1C3D] = 0x6753, --(杓) + [0x1C3D] = 0x6753, --(杓) [0x1C3E] = 0x707C, --(灼) - [0x1C3F] = 0x7235, --(爵) + [0x1C3F] = 0x7235, --(爵) [0x1C40] = 0x914C, --(酌) - [0x1C41] = 0x91C8, --(釈) + [0x1C41] = 0x91C8, --(釈) [0x1C42] = 0x932B, --(錫) - [0x1C43] = 0x82E5, --(若) + [0x1C43] = 0x82E5, --(若) [0x1C44] = 0x5BC2, --(寂) - [0x1C45] = 0x5F31, --(弱) + [0x1C45] = 0x5F31, --(弱) [0x1C46] = 0x60F9, --(惹) - [0x1C47] = 0x4E3B, --(主) + [0x1C47] = 0x4E3B, --(主) [0x1C48] = 0x53D6, --(取) - [0x1C49] = 0x5B88, --(守) + [0x1C49] = 0x5B88, --(守) [0x1C4A] = 0x624B, --(手) - [0x1C4B] = 0x6731, --(朱) + [0x1C4B] = 0x6731, --(朱) [0x1C4C] = 0x6B8A, --(殊) - [0x1C4D] = 0x72E9, --(狩) + [0x1C4D] = 0x72E9, --(狩) [0x1C4E] = 0x73E0, --(珠) - [0x1C4F] = 0x7A2E, --(種) + [0x1C4F] = 0x7A2E, --(種) [0x1C50] = 0x816B, --(腫) - [0x1C51] = 0x8DA3, --(趣) + [0x1C51] = 0x8DA3, --(趣) [0x1C52] = 0x9152, --(酒) - [0x1C53] = 0x9996, --(首) + [0x1C53] = 0x9996, --(首) [0x1C54] = 0x5112, --(儒) - [0x1C55] = 0x53D7, --(受) + [0x1C55] = 0x53D7, --(受) [0x1C56] = 0x546A, --(呪) - [0x1C57] = 0x5BFF, --(寿) + [0x1C57] = 0x5BFF, --(寿) [0x1C58] = 0x6388, --(授) - [0x1C59] = 0x6A39, --(樹) + [0x1C59] = 0x6A39, --(樹) [0x1C5A] = 0x7DAC, --(綬) - [0x1C5B] = 0x9700, --(需) + [0x1C5B] = 0x9700, --(需) [0x1C5C] = 0x56DA, --(囚) - [0x1C5D] = 0x53CE, --(収) + [0x1C5D] = 0x53CE, --(収) [0x1C5E] = 0x5468, --(周) - [0x1D01] = 0x5B97, --(宗) + [0x1D01] = 0x5B97, --(宗) [0x1D02] = 0x5C31, --(就) - [0x1D03] = 0x5DDE, --(州) + [0x1D03] = 0x5DDE, --(州) [0x1D04] = 0x4FEE, --(修) - [0x1D05] = 0x6101, --(愁) + [0x1D05] = 0x6101, --(愁) [0x1D06] = 0x62FE, --(拾) - [0x1D07] = 0x6D32, --(洲) + [0x1D07] = 0x6D32, --(洲) [0x1D08] = 0x79C0, --(秀) - [0x1D09] = 0x79CB, --(秋) + [0x1D09] = 0x79CB, --(秋) [0x1D0A] = 0x7D42, --(終) - [0x1D0B] = 0x7E4D, --(繍) + [0x1D0B] = 0x7E4D, --(繍) [0x1D0C] = 0x7FD2, --(習) - [0x1D0D] = 0x81ED, --(臭) + [0x1D0D] = 0x81ED, --(臭) [0x1D0E] = 0x821F, --(舟) - [0x1D0F] = 0x8490, --(蒐) + [0x1D0F] = 0x8490, --(蒐) [0x1D10] = 0x8846, --(衆) - [0x1D11] = 0x8972, --(襲) + [0x1D11] = 0x8972, --(襲) [0x1D12] = 0x8B90, --(讐) - [0x1D13] = 0x8E74, --(蹴) + [0x1D13] = 0x8E74, --(蹴) [0x1D14] = 0x8F2F, --(輯) - [0x1D15] = 0x9031, --(週) + [0x1D15] = 0x9031, --(週) [0x1D16] = 0x914B, --(酋) - [0x1D17] = 0x916C, --(酬) + [0x1D17] = 0x916C, --(酬) [0x1D18] = 0x96C6, --(集) - [0x1D19] = 0x919C, --(醜) + [0x1D19] = 0x919C, --(醜) [0x1D1A] = 0x4EC0, --(什) - [0x1D1B] = 0x4F4F, --(住) + [0x1D1B] = 0x4F4F, --(住) [0x1D1C] = 0x5145, --(充) - [0x1D1D] = 0x5341, --(十) + [0x1D1D] = 0x5341, --(十) [0x1D1E] = 0x5F93, --(従) - [0x1D1F] = 0x620E, --(戎) + [0x1D1F] = 0x620E, --(戎) [0x1D20] = 0x67D4, --(柔) - [0x1D21] = 0x6C41, --(汁) + [0x1D21] = 0x6C41, --(汁) [0x1D22] = 0x6E0B, --(渋) - [0x1D23] = 0x7363, --(獣) + [0x1D23] = 0x7363, --(獣) [0x1D24] = 0x7E26, --(縦) - [0x1D25] = 0x91CD, --(重) + [0x1D25] = 0x91CD, --(重) [0x1D26] = 0x9283, --(銃) - [0x1D27] = 0x53D4, --(叔) + [0x1D27] = 0x53D4, --(叔) [0x1D28] = 0x5919, --(夙) - [0x1D29] = 0x5BBF, --(宿) + [0x1D29] = 0x5BBF, --(宿) [0x1D2A] = 0x6DD1, --(淑) - [0x1D2B] = 0x795D, --(祝) + [0x1D2B] = 0x795D, --(祝) [0x1D2C] = 0x7E2E, --(縮) - [0x1D2D] = 0x7C9B, --(粛) + [0x1D2D] = 0x7C9B, --(粛) [0x1D2E] = 0x587E, --(塾) - [0x1D2F] = 0x719F, --(熟) + [0x1D2F] = 0x719F, --(熟) [0x1D30] = 0x51FA, --(出) - [0x1D31] = 0x8853, --(術) + [0x1D31] = 0x8853, --(術) [0x1D32] = 0x8FF0, --(述) - [0x1D33] = 0x4FCA, --(俊) + [0x1D33] = 0x4FCA, --(俊) [0x1D34] = 0x5CFB, --(峻) - [0x1D35] = 0x6625, --(春) + [0x1D35] = 0x6625, --(春) [0x1D36] = 0x77AC, --(瞬) - [0x1D37] = 0x7AE3, --(竣) + [0x1D37] = 0x7AE3, --(竣) [0x1D38] = 0x821C, --(舜) - [0x1D39] = 0x99FF, --(駿) + [0x1D39] = 0x99FF, --(駿) [0x1D3A] = 0x51C6, --(准) - [0x1D3B] = 0x5FAA, --(循) + [0x1D3B] = 0x5FAA, --(循) [0x1D3C] = 0x65EC, --(旬) - [0x1D3D] = 0x696F, --(楯) + [0x1D3D] = 0x696F, --(楯) [0x1D3E] = 0x6B89, --(殉) - [0x1D3F] = 0x6DF3, --(淳) + [0x1D3F] = 0x6DF3, --(淳) [0x1D40] = 0x6E96, --(準) - [0x1D41] = 0x6F64, --(潤) + [0x1D41] = 0x6F64, --(潤) [0x1D42] = 0x76FE, --(盾) - [0x1D43] = 0x7D14, --(純) + [0x1D43] = 0x7D14, --(純) [0x1D44] = 0x5DE1, --(巡) - [0x1D45] = 0x9075, --(遵) + [0x1D45] = 0x9075, --(遵) [0x1D46] = 0x9187, --(醇) - [0x1D47] = 0x9806, --(順) + [0x1D47] = 0x9806, --(順) [0x1D48] = 0x51E6, --(処) - [0x1D49] = 0x521D, --(初) + [0x1D49] = 0x521D, --(初) [0x1D4A] = 0x6240, --(所) - [0x1D4B] = 0x6691, --(暑) + [0x1D4B] = 0x6691, --(暑) [0x1D4C] = 0x66D9, --(曙) - [0x1D4D] = 0x6E1A, --(渚) + [0x1D4D] = 0x6E1A, --(渚) [0x1D4E] = 0x5EB6, --(庶) - [0x1D4F] = 0x7DD2, --(緒) + [0x1D4F] = 0x7DD2, --(緒) [0x1D50] = 0x7F72, --(署) - [0x1D51] = 0x66F8, --(書) + [0x1D51] = 0x66F8, --(書) [0x1D52] = 0x85AF, --(薯) - [0x1D53] = 0x85F7, --(藷) + [0x1D53] = 0x85F7, --(藷) [0x1D54] = 0x8AF8, --(諸) - [0x1D55] = 0x52A9, --(助) + [0x1D55] = 0x52A9, --(助) [0x1D56] = 0x53D9, --(叙) - [0x1D57] = 0x5973, --(女) + [0x1D57] = 0x5973, --(女) [0x1D58] = 0x5E8F, --(序) - [0x1D59] = 0x5F90, --(徐) + [0x1D59] = 0x5F90, --(徐) [0x1D5A] = 0x6055, --(恕) - [0x1D5B] = 0x92E4, --(鋤) + [0x1D5B] = 0x92E4, --(鋤) [0x1D5C] = 0x9664, --(除) - [0x1D5D] = 0x50B7, --(傷) + [0x1D5D] = 0x50B7, --(傷) [0x1D5E] = 0x511F, --(償) - [0x1E01] = 0x52DD, --(勝) + [0x1E01] = 0x52DD, --(勝) [0x1E02] = 0x5320, --(匠) - [0x1E03] = 0x5347, --(升) + [0x1E03] = 0x5347, --(升) [0x1E04] = 0x53EC, --(召) - [0x1E05] = 0x54E8, --(哨) + [0x1E05] = 0x54E8, --(哨) [0x1E06] = 0x5546, --(商) - [0x1E07] = 0x5531, --(唱) + [0x1E07] = 0x5531, --(唱) [0x1E08] = 0x5617, --(嘗) - [0x1E09] = 0x5968, --(奨) + [0x1E09] = 0x5968, --(奨) [0x1E0A] = 0x59BE, --(妾) - [0x1E0B] = 0x5A3C, --(娼) + [0x1E0B] = 0x5A3C, --(娼) [0x1E0C] = 0x5BB5, --(宵) - [0x1E0D] = 0x5C06, --(将) + [0x1E0D] = 0x5C06, --(将) [0x1E0E] = 0x5C0F, --(小) - [0x1E0F] = 0x5C11, --(少) + [0x1E0F] = 0x5C11, --(少) [0x1E10] = 0x5C1A, --(尚) - [0x1E11] = 0x5E84, --(庄) + [0x1E11] = 0x5E84, --(庄) [0x1E12] = 0x5E8A, --(床) - [0x1E13] = 0x5EE0, --(廠) + [0x1E13] = 0x5EE0, --(廠) [0x1E14] = 0x5F70, --(彰) - [0x1E15] = 0x627F, --(承) + [0x1E15] = 0x627F, --(承) [0x1E16] = 0x6284, --(抄) - [0x1E17] = 0x62DB, --(招) + [0x1E17] = 0x62DB, --(招) [0x1E18] = 0x638C, --(掌) - [0x1E19] = 0x6377, --(捷) + [0x1E19] = 0x6377, --(捷) [0x1E1A] = 0x6607, --(昇) - [0x1E1B] = 0x660C, --(昌) + [0x1E1B] = 0x660C, --(昌) [0x1E1C] = 0x662D, --(昭) - [0x1E1D] = 0x6676, --(晶) + [0x1E1D] = 0x6676, --(晶) [0x1E1E] = 0x677E, --(松) - [0x1E1F] = 0x68A2, --(梢) + [0x1E1F] = 0x68A2, --(梢) [0x1E20] = 0x6A1F, --(樟) - [0x1E21] = 0x6A35, --(樵) + [0x1E21] = 0x6A35, --(樵) [0x1E22] = 0x6CBC, --(沼) - [0x1E23] = 0x6D88, --(消) + [0x1E23] = 0x6D88, --(消) [0x1E24] = 0x6E09, --(渉) - [0x1E25] = 0x6E58, --(湘) + [0x1E25] = 0x6E58, --(湘) [0x1E26] = 0x713C, --(焼) - [0x1E27] = 0x7126, --(焦) + [0x1E27] = 0x7126, --(焦) [0x1E28] = 0x7167, --(照) - [0x1E29] = 0x75C7, --(症) + [0x1E29] = 0x75C7, --(症) [0x1E2A] = 0x7701, --(省) - [0x1E2B] = 0x785D, --(硝) + [0x1E2B] = 0x785D, --(硝) [0x1E2C] = 0x7901, --(礁) - [0x1E2D] = 0x7965, --(祥) + [0x1E2D] = 0x7965, --(祥) [0x1E2E] = 0x79F0, --(称) - [0x1E2F] = 0x7AE0, --(章) + [0x1E2F] = 0x7AE0, --(章) [0x1E30] = 0x7B11, --(笑) - [0x1E31] = 0x7CA7, --(粧) + [0x1E31] = 0x7CA7, --(粧) [0x1E32] = 0x7D39, --(紹) - [0x1E33] = 0x8096, --(肖) + [0x1E33] = 0x8096, --(肖) [0x1E34] = 0x83D6, --(菖) - [0x1E35] = 0x848B, --(蒋) + [0x1E35] = 0x848B, --(蒋) [0x1E36] = 0x8549, --(蕉) - [0x1E37] = 0x885D, --(衝) + [0x1E37] = 0x885D, --(衝) [0x1E38] = 0x88F3, --(裳) - [0x1E39] = 0x8A1F, --(訟) + [0x1E39] = 0x8A1F, --(訟) [0x1E3A] = 0x8A3C, --(証) - [0x1E3B] = 0x8A54, --(詔) + [0x1E3B] = 0x8A54, --(詔) [0x1E3C] = 0x8A73, --(詳) - [0x1E3D] = 0x8C61, --(象) + [0x1E3D] = 0x8C61, --(象) [0x1E3E] = 0x8CDE, --(賞) - [0x1E3F] = 0x91A4, --(醤) + [0x1E3F] = 0x91A4, --(醤) [0x1E40] = 0x9266, --(鉦) - [0x1E41] = 0x937E, --(鍾) + [0x1E41] = 0x937E, --(鍾) [0x1E42] = 0x9418, --(鐘) - [0x1E43] = 0x969C, --(障) + [0x1E43] = 0x969C, --(障) [0x1E44] = 0x9798, --(鞘) - [0x1E45] = 0x4E0A, --(上) + [0x1E45] = 0x4E0A, --(上) [0x1E46] = 0x4E08, --(丈) - [0x1E47] = 0x4E1E, --(丞) + [0x1E47] = 0x4E1E, --(丞) [0x1E48] = 0x4E57, --(乗) - [0x1E49] = 0x5197, --(冗) + [0x1E49] = 0x5197, --(冗) [0x1E4A] = 0x5270, --(剰) - [0x1E4B] = 0x57CE, --(城) + [0x1E4B] = 0x57CE, --(城) [0x1E4C] = 0x5834, --(場) - [0x1E4D] = 0x58CC, --(壌) + [0x1E4D] = 0x58CC, --(壌) [0x1E4E] = 0x5B22, --(嬢) - [0x1E4F] = 0x5E38, --(常) + [0x1E4F] = 0x5E38, --(常) [0x1E50] = 0x60C5, --(情) - [0x1E51] = 0x64FE, --(擾) + [0x1E51] = 0x64FE, --(擾) [0x1E52] = 0x6761, --(条) - [0x1E53] = 0x6756, --(杖) + [0x1E53] = 0x6756, --(杖) [0x1E54] = 0x6D44, --(浄) - [0x1E55] = 0x72B6, --(状) + [0x1E55] = 0x72B6, --(状) [0x1E56] = 0x7573, --(畳) - [0x1E57] = 0x7A63, --(穣) + [0x1E57] = 0x7A63, --(穣) [0x1E58] = 0x84B8, --(蒸) - [0x1E59] = 0x8B72, --(譲) + [0x1E59] = 0x8B72, --(譲) [0x1E5A] = 0x91B8, --(醸) - [0x1E5B] = 0x9320, --(錠) + [0x1E5B] = 0x9320, --(錠) [0x1E5C] = 0x5631, --(嘱) - [0x1E5D] = 0x57F4, --(埴) + [0x1E5D] = 0x57F4, --(埴) [0x1E5E] = 0x98FE, --(飾) - [0x1F01] = 0x62ED, --(拭) + [0x1F01] = 0x62ED, --(拭) [0x1F02] = 0x690D, --(植) - [0x1F03] = 0x6B96, --(殖) + [0x1F03] = 0x6B96, --(殖) [0x1F04] = 0x71ED, --(燭) - [0x1F05] = 0x7E54, --(織) + [0x1F05] = 0x7E54, --(織) [0x1F06] = 0x8077, --(職) - [0x1F07] = 0x8272, --(色) + [0x1F07] = 0x8272, --(色) [0x1F08] = 0x89E6, --(触) - [0x1F09] = 0x98DF, --(食) + [0x1F09] = 0x98DF, --(食) [0x1F0A] = 0x8755, --(蝕) - [0x1F0B] = 0x8FB1, --(辱) + [0x1F0B] = 0x8FB1, --(辱) [0x1F0C] = 0x5C3B, --(尻) - [0x1F0D] = 0x4F38, --(伸) + [0x1F0D] = 0x4F38, --(伸) [0x1F0E] = 0x4FE1, --(信) - [0x1F0F] = 0x4FB5, --(侵) + [0x1F0F] = 0x4FB5, --(侵) [0x1F10] = 0x5507, --(唇) - [0x1F11] = 0x5A20, --(娠) + [0x1F11] = 0x5A20, --(娠) [0x1F12] = 0x5BDD, --(寝) - [0x1F13] = 0x5BE9, --(審) + [0x1F13] = 0x5BE9, --(審) [0x1F14] = 0x5FC3, --(心) - [0x1F15] = 0x614E, --(慎) + [0x1F15] = 0x614E, --(慎) [0x1F16] = 0x632F, --(振) - [0x1F17] = 0x65B0, --(新) + [0x1F17] = 0x65B0, --(新) [0x1F18] = 0x664B, --(晋) - [0x1F19] = 0x68EE, --(森) + [0x1F19] = 0x68EE, --(森) [0x1F1A] = 0x699B, --(榛) - [0x1F1B] = 0x6D78, --(浸) + [0x1F1B] = 0x6D78, --(浸) [0x1F1C] = 0x6DF1, --(深) - [0x1F1D] = 0x7533, --(申) + [0x1F1D] = 0x7533, --(申) [0x1F1E] = 0x75B9, --(疹) - [0x1F1F] = 0x771F, --(真) + [0x1F1F] = 0x771F, --(真) [0x1F20] = 0x795E, --(神) - [0x1F21] = 0x79E6, --(秦) + [0x1F21] = 0x79E6, --(秦) [0x1F22] = 0x7D33, --(紳) - [0x1F23] = 0x81E3, --(臣) + [0x1F23] = 0x81E3, --(臣) [0x1F24] = 0x82AF, --(芯) - [0x1F25] = 0x85AA, --(薪) + [0x1F25] = 0x85AA, --(薪) [0x1F26] = 0x89AA, --(親) - [0x1F27] = 0x8A3A, --(診) + [0x1F27] = 0x8A3A, --(診) [0x1F28] = 0x8EAB, --(身) - [0x1F29] = 0x8F9B, --(辛) + [0x1F29] = 0x8F9B, --(辛) [0x1F2A] = 0x9032, --(進) - [0x1F2B] = 0x91DD, --(針) + [0x1F2B] = 0x91DD, --(針) [0x1F2C] = 0x9707, --(震) - [0x1F2D] = 0x4EBA, --(人) + [0x1F2D] = 0x4EBA, --(人) [0x1F2E] = 0x4EC1, --(仁) - [0x1F2F] = 0x5203, --(刃) + [0x1F2F] = 0x5203, --(刃) [0x1F30] = 0x5875, --(塵) - [0x1F31] = 0x58EC, --(壬) + [0x1F31] = 0x58EC, --(壬) [0x1F32] = 0x5C0B, --(尋) - [0x1F33] = 0x751A, --(甚) + [0x1F33] = 0x751A, --(甚) [0x1F34] = 0x5C3D, --(尽) - [0x1F35] = 0x814E, --(腎) + [0x1F35] = 0x814E, --(腎) [0x1F36] = 0x8A0A, --(訊) - [0x1F37] = 0x8FC5, --(迅) + [0x1F37] = 0x8FC5, --(迅) [0x1F38] = 0x9663, --(陣) - [0x1F39] = 0x976D, --(靭) + [0x1F39] = 0x976D, --(靭) [0x1F3A] = 0x7B25, --(笥) - [0x1F3B] = 0x8ACF, --(諏) + [0x1F3B] = 0x8ACF, --(諏) [0x1F3C] = 0x9808, --(須) - [0x1F3D] = 0x9162, --(酢) + [0x1F3D] = 0x9162, --(酢) [0x1F3E] = 0x56F3, --(図) - [0x1F3F] = 0x53A8, --(厨) + [0x1F3F] = 0x53A8, --(厨) [0x1F40] = 0x9017, --(逗) - [0x1F41] = 0x5439, --(吹) + [0x1F41] = 0x5439, --(吹) [0x1F42] = 0x5782, --(垂) - [0x1F43] = 0x5E25, --(帥) + [0x1F43] = 0x5E25, --(帥) [0x1F44] = 0x63A8, --(推) - [0x1F45] = 0x6C34, --(水) + [0x1F45] = 0x6C34, --(水) [0x1F46] = 0x708A, --(炊) - [0x1F47] = 0x7761, --(睡) + [0x1F47] = 0x7761, --(睡) [0x1F48] = 0x7C8B, --(粋) - [0x1F49] = 0x7FE0, --(翠) + [0x1F49] = 0x7FE0, --(翠) [0x1F4A] = 0x8870, --(衰) - [0x1F4B] = 0x9042, --(遂) + [0x1F4B] = 0x9042, --(遂) [0x1F4C] = 0x9154, --(酔) - [0x1F4D] = 0x9310, --(錐) + [0x1F4D] = 0x9310, --(錐) [0x1F4E] = 0x9318, --(錘) - [0x1F4F] = 0x968F, --(随) + [0x1F4F] = 0x968F, --(随) [0x1F50] = 0x745E, --(瑞) - [0x1F51] = 0x9AC4, --(髄) + [0x1F51] = 0x9AC4, --(髄) [0x1F52] = 0x5D07, --(崇) - [0x1F53] = 0x5D69, --(嵩) + [0x1F53] = 0x5D69, --(嵩) [0x1F54] = 0x6570, --(数) - [0x1F55] = 0x67A2, --(枢) + [0x1F55] = 0x67A2, --(枢) [0x1F56] = 0x8DA8, --(趨) - [0x1F57] = 0x96DB, --(雛) + [0x1F57] = 0x96DB, --(雛) [0x1F58] = 0x636E, --(据) - [0x1F59] = 0x6749, --(杉) + [0x1F59] = 0x6749, --(杉) [0x1F5A] = 0x6919, --(椙) - [0x1F5B] = 0x83C5, --(菅) + [0x1F5B] = 0x83C5, --(菅) [0x1F5C] = 0x9817, --(頗) - [0x1F5D] = 0x96C0, --(雀) + [0x1F5D] = 0x96C0, --(雀) [0x1F5E] = 0x88FE, --(裾) - [0x2001] = 0x6F84, --(澄) + [0x2001] = 0x6F84, --(澄) [0x2002] = 0x647A, --(摺) - [0x2003] = 0x5BF8, --(寸) + [0x2003] = 0x5BF8, --(寸) [0x2004] = 0x4E16, --(世) - [0x2005] = 0x702C, --(瀬) + [0x2005] = 0x702C, --(瀬) [0x2006] = 0x755D, --(畝) - [0x2007] = 0x662F, --(是) + [0x2007] = 0x662F, --(是) [0x2008] = 0x51C4, --(凄) - [0x2009] = 0x5236, --(制) + [0x2009] = 0x5236, --(制) [0x200A] = 0x52E2, --(勢) - [0x200B] = 0x59D3, --(姓) + [0x200B] = 0x59D3, --(姓) [0x200C] = 0x5F81, --(征) - [0x200D] = 0x6027, --(性) + [0x200D] = 0x6027, --(性) [0x200E] = 0x6210, --(成) - [0x200F] = 0x653F, --(政) + [0x200F] = 0x653F, --(政) [0x2010] = 0x6574, --(整) - [0x2011] = 0x661F, --(星) + [0x2011] = 0x661F, --(星) [0x2012] = 0x6674, --(晴) - [0x2013] = 0x68F2, --(棲) + [0x2013] = 0x68F2, --(棲) [0x2014] = 0x6816, --(栖) - [0x2015] = 0x6B63, --(正) + [0x2015] = 0x6B63, --(正) [0x2016] = 0x6E05, --(清) - [0x2017] = 0x7272, --(牲) + [0x2017] = 0x7272, --(牲) [0x2018] = 0x751F, --(生) - [0x2019] = 0x76DB, --(盛) + [0x2019] = 0x76DB, --(盛) [0x201A] = 0x7CBE, --(精) - [0x201B] = 0x8056, --(聖) + [0x201B] = 0x8056, --(聖) [0x201C] = 0x58F0, --(声) - [0x201D] = 0x88FD, --(製) + [0x201D] = 0x88FD, --(製) [0x201E] = 0x897F, --(西) - [0x201F] = 0x8AA0, --(誠) + [0x201F] = 0x8AA0, --(誠) [0x2020] = 0x8A93, --(誓) - [0x2021] = 0x8ACB, --(請) + [0x2021] = 0x8ACB, --(請) [0x2022] = 0x901D, --(逝) - [0x2023] = 0x9192, --(醒) + [0x2023] = 0x9192, --(醒) [0x2024] = 0x9752, --(青) - [0x2025] = 0x9759, --(静) + [0x2025] = 0x9759, --(静) [0x2026] = 0x6589, --(斉) - [0x2027] = 0x7A0E, --(税) + [0x2027] = 0x7A0E, --(税) [0x2028] = 0x8106, --(脆) - [0x2029] = 0x96BB, --(隻) + [0x2029] = 0x96BB, --(隻) [0x202A] = 0x5E2D, --(席) - [0x202B] = 0x60DC, --(惜) + [0x202B] = 0x60DC, --(惜) [0x202C] = 0x621A, --(戚) - [0x202D] = 0x65A5, --(斥) + [0x202D] = 0x65A5, --(斥) [0x202E] = 0x6614, --(昔) - [0x202F] = 0x6790, --(析) + [0x202F] = 0x6790, --(析) [0x2030] = 0x77F3, --(石) - [0x2031] = 0x7A4D, --(積) + [0x2031] = 0x7A4D, --(積) [0x2032] = 0x7C4D, --(籍) - [0x2033] = 0x7E3E, --(績) + [0x2033] = 0x7E3E, --(績) [0x2034] = 0x810A, --(脊) - [0x2035] = 0x8CAC, --(責) + [0x2035] = 0x8CAC, --(責) [0x2036] = 0x8D64, --(赤) - [0x2037] = 0x8DE1, --(跡) + [0x2037] = 0x8DE1, --(跡) [0x2038] = 0x8E5F, --(蹟) - [0x2039] = 0x78A9, --(碩) + [0x2039] = 0x78A9, --(碩) [0x203A] = 0x5207, --(切) - [0x203B] = 0x62D9, --(拙) + [0x203B] = 0x62D9, --(拙) [0x203C] = 0x63A5, --(接) - [0x203D] = 0x6442, --(摂) + [0x203D] = 0x6442, --(摂) [0x203E] = 0x6298, --(折) - [0x203F] = 0x8A2D, --(設) + [0x203F] = 0x8A2D, --(設) [0x2040] = 0x7A83, --(窃) - [0x2041] = 0x7BC0, --(節) + [0x2041] = 0x7BC0, --(節) [0x2042] = 0x8AAC, --(説) - [0x2043] = 0x96EA, --(雪) + [0x2043] = 0x96EA, --(雪) [0x2044] = 0x7D76, --(絶) - [0x2045] = 0x820C, --(舌) + [0x2045] = 0x820C, --(舌) [0x2046] = 0x8749, --(蝉) - [0x2047] = 0x4ED9, --(仙) + [0x2047] = 0x4ED9, --(仙) [0x2048] = 0x5148, --(先) - [0x2049] = 0x5343, --(千) + [0x2049] = 0x5343, --(千) [0x204A] = 0x5360, --(占) - [0x204B] = 0x5BA3, --(宣) + [0x204B] = 0x5BA3, --(宣) [0x204C] = 0x5C02, --(専) - [0x204D] = 0x5C16, --(尖) + [0x204D] = 0x5C16, --(尖) [0x204E] = 0x5DDD, --(川) - [0x204F] = 0x6226, --(戦) + [0x204F] = 0x6226, --(戦) [0x2050] = 0x6247, --(扇) - [0x2051] = 0x64B0, --(撰) + [0x2051] = 0x64B0, --(撰) [0x2052] = 0x6813, --(栓) - [0x2053] = 0x6834, --(栴) + [0x2053] = 0x6834, --(栴) [0x2054] = 0x6CC9, --(泉) - [0x2055] = 0x6D45, --(浅) + [0x2055] = 0x6D45, --(浅) [0x2056] = 0x6D17, --(洗) - [0x2057] = 0x67D3, --(染) + [0x2057] = 0x67D3, --(染) [0x2058] = 0x6F5C, --(潜) - [0x2059] = 0x714E, --(煎) + [0x2059] = 0x714E, --(煎) [0x205A] = 0x717D, --(煽) - [0x205B] = 0x65CB, --(旋) + [0x205B] = 0x65CB, --(旋) [0x205C] = 0x7A7F, --(穿) - [0x205D] = 0x7BAD, --(箭) + [0x205D] = 0x7BAD, --(箭) [0x205E] = 0x7DDA, --(線) - [0x2101] = 0x7E4A, --(繊) + [0x2101] = 0x7E4A, --(繊) [0x2102] = 0x7FA8, --(羨) - [0x2103] = 0x817A, --(腺) + [0x2103] = 0x817A, --(腺) [0x2104] = 0x821B, --(舛) - [0x2105] = 0x8239, --(船) + [0x2105] = 0x8239, --(船) [0x2106] = 0x85A6, --(薦) - [0x2107] = 0x8A6E, --(詮) + [0x2107] = 0x8A6E, --(詮) [0x2108] = 0x8CCE, --(賎) - [0x2109] = 0x8DF5, --(践) + [0x2109] = 0x8DF5, --(践) [0x210A] = 0x9078, --(選) - [0x210B] = 0x9077, --(遷) + [0x210B] = 0x9077, --(遷) [0x210C] = 0x92AD, --(銭) - [0x210D] = 0x9291, --(銑) + [0x210D] = 0x9291, --(銑) [0x210E] = 0x9583, --(閃) - [0x210F] = 0x9BAE, --(鮮) + [0x210F] = 0x9BAE, --(鮮) [0x2110] = 0x524D, --(前) - [0x2111] = 0x5584, --(善) + [0x2111] = 0x5584, --(善) [0x2112] = 0x6F38, --(漸) - [0x2113] = 0x7136, --(然) + [0x2113] = 0x7136, --(然) [0x2114] = 0x5168, --(全) - [0x2115] = 0x7985, --(禅) + [0x2115] = 0x7985, --(禅) [0x2116] = 0x7E55, --(繕) - [0x2117] = 0x81B3, --(膳) + [0x2117] = 0x81B3, --(膳) [0x2118] = 0x7CCE, --(糎) - [0x2119] = 0x564C, --(噌) + [0x2119] = 0x564C, --(噌) [0x211A] = 0x5851, --(塑) - [0x211B] = 0x5CA8, --(岨) + [0x211B] = 0x5CA8, --(岨) [0x211C] = 0x63AA, --(措) - [0x211D] = 0x66FE, --(曾) + [0x211D] = 0x66FE, --(曾) [0x211E] = 0x66FD, --(曽) - [0x211F] = 0x695A, --(楚) + [0x211F] = 0x695A, --(楚) [0x2120] = 0x72D9, --(狙) - [0x2121] = 0x758F, --(疏) + [0x2121] = 0x758F, --(疏) [0x2122] = 0x758E, --(疎) - [0x2123] = 0x790E, --(礎) + [0x2123] = 0x790E, --(礎) [0x2124] = 0x7956, --(祖) - [0x2125] = 0x79DF, --(租) + [0x2125] = 0x79DF, --(租) [0x2126] = 0x7C97, --(粗) - [0x2127] = 0x7D20, --(素) + [0x2127] = 0x7D20, --(素) [0x2128] = 0x7D44, --(組) - [0x2129] = 0x8607, --(蘇) + [0x2129] = 0x8607, --(蘇) [0x212A] = 0x8A34, --(訴) - [0x212B] = 0x963B, --(阻) + [0x212B] = 0x963B, --(阻) [0x212C] = 0x9061, --(遡) - [0x212D] = 0x9F20, --(鼠) + [0x212D] = 0x9F20, --(鼠) [0x212E] = 0x50E7, --(僧) - [0x212F] = 0x5275, --(創) + [0x212F] = 0x5275, --(創) [0x2130] = 0x53CC, --(双) - [0x2131] = 0x53E2, --(叢) + [0x2131] = 0x53E2, --(叢) [0x2132] = 0x5009, --(倉) - [0x2133] = 0x55AA, --(喪) + [0x2133] = 0x55AA, --(喪) [0x2134] = 0x58EE, --(壮) - [0x2135] = 0x594F, --(奏) + [0x2135] = 0x594F, --(奏) [0x2136] = 0x723D, --(爽) - [0x2137] = 0x5B8B, --(宋) + [0x2137] = 0x5B8B, --(宋) [0x2138] = 0x5C64, --(層) - [0x2139] = 0x531D, --(匝) + [0x2139] = 0x531D, --(匝) [0x213A] = 0x60E3, --(惣) - [0x213B] = 0x60F3, --(想) + [0x213B] = 0x60F3, --(想) [0x213C] = 0x635C, --(捜) - [0x213D] = 0x6383, --(掃) + [0x213D] = 0x6383, --(掃) [0x213E] = 0x633F, --(挿) - [0x213F] = 0x63BB, --(掻) + [0x213F] = 0x63BB, --(掻) [0x2140] = 0x64CD, --(操) - [0x2141] = 0x65E9, --(早) + [0x2141] = 0x65E9, --(早) [0x2142] = 0x66F9, --(曹) - [0x2143] = 0x5DE3, --(巣) + [0x2143] = 0x5DE3, --(巣) [0x2144] = 0x69CD, --(槍) - [0x2145] = 0x69FD, --(槽) + [0x2145] = 0x69FD, --(槽) [0x2146] = 0x6F15, --(漕) - [0x2147] = 0x71E5, --(燥) + [0x2147] = 0x71E5, --(燥) [0x2148] = 0x4E89, --(争) - [0x2149] = 0x75E9, --(痩) + [0x2149] = 0x75E9, --(痩) [0x214A] = 0x76F8, --(相) - [0x214B] = 0x7A93, --(窓) + [0x214B] = 0x7A93, --(窓) [0x214C] = 0x7CDF, --(糟) - [0x214D] = 0x7DCF, --(総) + [0x214D] = 0x7DCF, --(総) [0x214E] = 0x7D9C, --(綜) - [0x214F] = 0x8061, --(聡) + [0x214F] = 0x8061, --(聡) [0x2150] = 0x8349, --(草) - [0x2151] = 0x8358, --(荘) + [0x2151] = 0x8358, --(荘) [0x2152] = 0x846C, --(葬) - [0x2153] = 0x84BC, --(蒼) + [0x2153] = 0x84BC, --(蒼) [0x2154] = 0x85FB, --(藻) - [0x2155] = 0x88C5, --(装) + [0x2155] = 0x88C5, --(装) [0x2156] = 0x8D70, --(走) - [0x2157] = 0x9001, --(送) + [0x2157] = 0x9001, --(送) [0x2158] = 0x906D, --(遭) - [0x2159] = 0x9397, --(鎗) + [0x2159] = 0x9397, --(鎗) [0x215A] = 0x971C, --(霜) - [0x215B] = 0x9A12, --(騒) + [0x215B] = 0x9A12, --(騒) [0x215C] = 0x50CF, --(像) - [0x215D] = 0x5897, --(増) + [0x215D] = 0x5897, --(増) [0x215E] = 0x618E, --(憎) - [0x2201] = 0x81D3, --(臓) + [0x2201] = 0x81D3, --(臓) [0x2202] = 0x8535, --(蔵) - [0x2203] = 0x8D08, --(贈) + [0x2203] = 0x8D08, --(贈) [0x2204] = 0x9020, --(造) - [0x2205] = 0x4FC3, --(促) + [0x2205] = 0x4FC3, --(促) [0x2206] = 0x5074, --(側) - [0x2207] = 0x5247, --(則) + [0x2207] = 0x5247, --(則) [0x2208] = 0x5373, --(即) - [0x2209] = 0x606F, --(息) + [0x2209] = 0x606F, --(息) [0x220A] = 0x6349, --(捉) - [0x220B] = 0x675F, --(束) + [0x220B] = 0x675F, --(束) [0x220C] = 0x6E2C, --(測) - [0x220D] = 0x8DB3, --(足) + [0x220D] = 0x8DB3, --(足) [0x220E] = 0x901F, --(速) - [0x220F] = 0x4FD7, --(俗) + [0x220F] = 0x4FD7, --(俗) [0x2210] = 0x5C5E, --(属) - [0x2211] = 0x8CCA, --(賊) + [0x2211] = 0x8CCA, --(賊) [0x2212] = 0x65CF, --(族) - [0x2213] = 0x7D9A, --(続) + [0x2213] = 0x7D9A, --(続) [0x2214] = 0x5352, --(卒) - [0x2215] = 0x8896, --(袖) + [0x2215] = 0x8896, --(袖) [0x2216] = 0x5176, --(其) - [0x2217] = 0x63C3, --(揃) + [0x2217] = 0x63C3, --(揃) [0x2218] = 0x5B58, --(存) - [0x2219] = 0x5B6B, --(孫) + [0x2219] = 0x5B6B, --(孫) [0x221A] = 0x5C0A, --(尊) - [0x221B] = 0x640D, --(損) + [0x221B] = 0x640D, --(損) [0x221C] = 0x6751, --(村) - [0x221D] = 0x905C, --(遜) + [0x221D] = 0x905C, --(遜) [0x221E] = 0x4ED6, --(他) - [0x221F] = 0x591A, --(多) + [0x221F] = 0x591A, --(多) [0x2220] = 0x592A, --(太) - [0x2221] = 0x6C70, --(汰) + [0x2221] = 0x6C70, --(汰) [0x2222] = 0x8A51, --(詑) - [0x2223] = 0x553E, --(唾) + [0x2223] = 0x553E, --(唾) [0x2224] = 0x5815, --(堕) - [0x2225] = 0x59A5, --(妥) + [0x2225] = 0x59A5, --(妥) [0x2226] = 0x60F0, --(惰) - [0x2227] = 0x6253, --(打) + [0x2227] = 0x6253, --(打) [0x2228] = 0x67C1, --(柁) - [0x2229] = 0x8235, --(舵) + [0x2229] = 0x8235, --(舵) [0x222A] = 0x6955, --(楕) - [0x222B] = 0x9640, --(陀) + [0x222B] = 0x9640, --(陀) [0x222C] = 0x99C4, --(駄) - [0x222D] = 0x9A28, --(騨) + [0x222D] = 0x9A28, --(騨) [0x222E] = 0x4F53, --(体) - [0x222F] = 0x5806, --(堆) + [0x222F] = 0x5806, --(堆) [0x2230] = 0x5BFE, --(対) - [0x2231] = 0x8010, --(耐) + [0x2231] = 0x8010, --(耐) [0x2232] = 0x5CB1, --(岱) - [0x2233] = 0x5E2F, --(帯) + [0x2233] = 0x5E2F, --(帯) [0x2234] = 0x5F85, --(待) - [0x2235] = 0x6020, --(怠) + [0x2235] = 0x6020, --(怠) [0x2236] = 0x614B, --(態) - [0x2237] = 0x6234, --(戴) + [0x2237] = 0x6234, --(戴) [0x2238] = 0x66FF, --(替) - [0x2239] = 0x6CF0, --(泰) + [0x2239] = 0x6CF0, --(泰) [0x223A] = 0x6EDE, --(滞) - [0x223B] = 0x80CE, --(胎) + [0x223B] = 0x80CE, --(胎) [0x223C] = 0x817F, --(腿) - [0x223D] = 0x82D4, --(苔) + [0x223D] = 0x82D4, --(苔) [0x223E] = 0x888B, --(袋) - [0x223F] = 0x8CB8, --(貸) + [0x223F] = 0x8CB8, --(貸) [0x2240] = 0x9000, --(退) - [0x2241] = 0x902E, --(逮) + [0x2241] = 0x902E, --(逮) [0x2242] = 0x968A, --(隊) - [0x2243] = 0x9EDB, --(黛) + [0x2243] = 0x9EDB, --(黛) [0x2244] = 0x9BDB, --(鯛) - [0x2245] = 0x4EE3, --(代) + [0x2245] = 0x4EE3, --(代) [0x2246] = 0x53F0, --(台) - [0x2247] = 0x5927, --(大) + [0x2247] = 0x5927, --(大) [0x2248] = 0x7B2C, --(第) - [0x2249] = 0x918D, --(醍) + [0x2249] = 0x918D, --(醍) [0x224A] = 0x984C, --(題) - [0x224B] = 0x9DF9, --(鷹) + [0x224B] = 0x9DF9, --(鷹) [0x224C] = 0x6EDD, --(滝) - [0x224D] = 0x7027, --(瀧) + [0x224D] = 0x7027, --(瀧) [0x224E] = 0x5353, --(卓) - [0x224F] = 0x5544, --(啄) + [0x224F] = 0x5544, --(啄) [0x2250] = 0x5B85, --(宅) - [0x2251] = 0x6258, --(托) + [0x2251] = 0x6258, --(托) [0x2252] = 0x629E, --(択) - [0x2253] = 0x62D3, --(拓) + [0x2253] = 0x62D3, --(拓) [0x2254] = 0x6CA2, --(沢) - [0x2255] = 0x6FEF, --(濯) + [0x2255] = 0x6FEF, --(濯) [0x2256] = 0x7422, --(琢) - [0x2257] = 0x8A17, --(託) + [0x2257] = 0x8A17, --(託) [0x2258] = 0x9438, --(鐸) - [0x2259] = 0x6FC1, --(濁) + [0x2259] = 0x6FC1, --(濁) [0x225A] = 0x8AFE, --(諾) - [0x225B] = 0x8338, --(茸) + [0x225B] = 0x8338, --(茸) [0x225C] = 0x51E7, --(凧) - [0x225D] = 0x86F8, --(蛸) + [0x225D] = 0x86F8, --(蛸) [0x225E] = 0x53EA, --(只) - [0x2301] = 0x53E9, --(叩) + [0x2301] = 0x53E9, --(叩) [0x2302] = 0x4F46, --(但) - [0x2303] = 0x9054, --(達) + [0x2303] = 0x9054, --(達) [0x2304] = 0x8FB0, --(辰) - [0x2305] = 0x596A, --(奪) + [0x2305] = 0x596A, --(奪) [0x2306] = 0x8131, --(脱) - [0x2307] = 0x5DFD, --(巽) + [0x2307] = 0x5DFD, --(巽) [0x2308] = 0x7AEA, --(竪) - [0x2309] = 0x8FBF, --(辿) + [0x2309] = 0x8FBF, --(辿) [0x230A] = 0x68DA, --(棚) - [0x230B] = 0x8C37, --(谷) + [0x230B] = 0x8C37, --(谷) [0x230C] = 0x72F8, --(狸) - [0x230D] = 0x9C48, --(鱈) + [0x230D] = 0x9C48, --(鱈) [0x230E] = 0x6A3D, --(樽) - [0x230F] = 0x8AB0, --(誰) + [0x230F] = 0x8AB0, --(誰) [0x2310] = 0x4E39, --(丹) - [0x2311] = 0x5358, --(単) + [0x2311] = 0x5358, --(単) [0x2312] = 0x5606, --(嘆) - [0x2313] = 0x5766, --(坦) + [0x2313] = 0x5766, --(坦) [0x2314] = 0x62C5, --(担) - [0x2315] = 0x63A2, --(探) + [0x2315] = 0x63A2, --(探) [0x2316] = 0x65E6, --(旦) - [0x2317] = 0x6B4E, --(歎) + [0x2317] = 0x6B4E, --(歎) [0x2318] = 0x6DE1, --(淡) - [0x2319] = 0x6E5B, --(湛) + [0x2319] = 0x6E5B, --(湛) [0x231A] = 0x70AD, --(炭) - [0x231B] = 0x77ED, --(短) + [0x231B] = 0x77ED, --(短) [0x231C] = 0x7AEF, --(端) - [0x231D] = 0x7BAA, --(箪) + [0x231D] = 0x7BAA, --(箪) [0x231E] = 0x7DBB, --(綻) - [0x231F] = 0x803D, --(耽) + [0x231F] = 0x803D, --(耽) [0x2320] = 0x80C6, --(胆) - [0x2321] = 0x86CB, --(蛋) + [0x2321] = 0x86CB, --(蛋) [0x2322] = 0x8A95, --(誕) - [0x2323] = 0x935B, --(鍛) + [0x2323] = 0x935B, --(鍛) [0x2324] = 0x56E3, --(団) - [0x2325] = 0x58C7, --(壇) + [0x2325] = 0x58C7, --(壇) [0x2326] = 0x5F3E, --(弾) - [0x2327] = 0x65AD, --(断) + [0x2327] = 0x65AD, --(断) [0x2328] = 0x6696, --(暖) - [0x2329] = 0x6A80, --(檀) + [0x2329] = 0x6A80, --(檀) [0x232A] = 0x6BB5, --(段) - [0x232B] = 0x7537, --(男) + [0x232B] = 0x7537, --(男) [0x232C] = 0x8AC7, --(談) - [0x232D] = 0x5024, --(値) + [0x232D] = 0x5024, --(値) [0x232E] = 0x77E5, --(知) - [0x232F] = 0x5730, --(地) + [0x232F] = 0x5730, --(地) [0x2330] = 0x5F1B, --(弛) - [0x2331] = 0x6065, --(恥) + [0x2331] = 0x6065, --(恥) [0x2332] = 0x667A, --(智) - [0x2333] = 0x6C60, --(池) + [0x2333] = 0x6C60, --(池) [0x2334] = 0x75F4, --(痴) - [0x2335] = 0x7A1A, --(稚) + [0x2335] = 0x7A1A, --(稚) [0x2336] = 0x7F6E, --(置) - [0x2337] = 0x81F4, --(致) + [0x2337] = 0x81F4, --(致) [0x2338] = 0x8718, --(蜘) - [0x2339] = 0x9045, --(遅) + [0x2339] = 0x9045, --(遅) [0x233A] = 0x99B3, --(馳) - [0x233B] = 0x7BC9, --(築) + [0x233B] = 0x7BC9, --(築) [0x233C] = 0x755C, --(畜) - [0x233D] = 0x7AF9, --(竹) + [0x233D] = 0x7AF9, --(竹) [0x233E] = 0x7B51, --(筑) - [0x233F] = 0x84C4, --(蓄) + [0x233F] = 0x84C4, --(蓄) [0x2340] = 0x9010, --(逐) - [0x2341] = 0x79E9, --(秩) + [0x2341] = 0x79E9, --(秩) [0x2342] = 0x7A92, --(窒) - [0x2343] = 0x8336, --(茶) + [0x2343] = 0x8336, --(茶) [0x2344] = 0x5AE1, --(嫡) - [0x2345] = 0x7740, --(着) + [0x2345] = 0x7740, --(着) [0x2346] = 0x4E2D, --(中) - [0x2347] = 0x4EF2, --(仲) + [0x2347] = 0x4EF2, --(仲) [0x2348] = 0x5B99, --(宙) - [0x2349] = 0x5FE0, --(忠) + [0x2349] = 0x5FE0, --(忠) [0x234A] = 0x62BD, --(抽) - [0x234B] = 0x663C, --(昼) + [0x234B] = 0x663C, --(昼) [0x234C] = 0x67F1, --(柱) - [0x234D] = 0x6CE8, --(注) + [0x234D] = 0x6CE8, --(注) [0x234E] = 0x866B, --(虫) - [0x234F] = 0x8877, --(衷) + [0x234F] = 0x8877, --(衷) [0x2350] = 0x8A3B, --(註) - [0x2351] = 0x914E, --(酎) + [0x2351] = 0x914E, --(酎) [0x2352] = 0x92F3, --(鋳) - [0x2353] = 0x99D0, --(駐) + [0x2353] = 0x99D0, --(駐) [0x2354] = 0x6A17, --(樗) - [0x2355] = 0x7026, --(瀦) + [0x2355] = 0x7026, --(瀦) [0x2356] = 0x732A, --(猪) - [0x2357] = 0x82E7, --(苧) + [0x2357] = 0x82E7, --(苧) [0x2358] = 0x8457, --(著) - [0x2359] = 0x8CAF, --(貯) + [0x2359] = 0x8CAF, --(貯) [0x235A] = 0x4E01, --(丁) - [0x235B] = 0x5146, --(兆) + [0x235B] = 0x5146, --(兆) [0x235C] = 0x51CB, --(凋) - [0x235D] = 0x558B, --(喋) + [0x235D] = 0x558B, --(喋) [0x235E] = 0x5BF5, --(寵) - [0x2401] = 0x5E16, --(帖) + [0x2401] = 0x5E16, --(帖) [0x2402] = 0x5E33, --(帳) - [0x2403] = 0x5E81, --(庁) + [0x2403] = 0x5E81, --(庁) [0x2404] = 0x5F14, --(弔) - [0x2405] = 0x5F35, --(張) + [0x2405] = 0x5F35, --(張) [0x2406] = 0x5F6B, --(彫) - [0x2407] = 0x5FB4, --(徴) + [0x2407] = 0x5FB4, --(徴) [0x2408] = 0x61F2, --(懲) - [0x2409] = 0x6311, --(挑) + [0x2409] = 0x6311, --(挑) [0x240A] = 0x66A2, --(暢) - [0x240B] = 0x671D, --(朝) + [0x240B] = 0x671D, --(朝) [0x240C] = 0x6F6E, --(潮) - [0x240D] = 0x7252, --(牒) + [0x240D] = 0x7252, --(牒) [0x240E] = 0x753A, --(町) - [0x240F] = 0x773A, --(眺) + [0x240F] = 0x773A, --(眺) [0x2410] = 0x8074, --(聴) - [0x2411] = 0x8139, --(脹) + [0x2411] = 0x8139, --(脹) [0x2412] = 0x8178, --(腸) - [0x2413] = 0x8776, --(蝶) + [0x2413] = 0x8776, --(蝶) [0x2414] = 0x8ABF, --(調) - [0x2415] = 0x8ADC, --(諜) + [0x2415] = 0x8ADC, --(諜) [0x2416] = 0x8D85, --(超) - [0x2417] = 0x8DF3, --(跳) + [0x2417] = 0x8DF3, --(跳) [0x2418] = 0x929A, --(銚) - [0x2419] = 0x9577, --(長) + [0x2419] = 0x9577, --(長) [0x241A] = 0x9802, --(頂) - [0x241B] = 0x9CE5, --(鳥) + [0x241B] = 0x9CE5, --(鳥) [0x241C] = 0x52C5, --(勅) - [0x241D] = 0x6357, --(捗) + [0x241D] = 0x6357, --(捗) [0x241E] = 0x76F4, --(直) - [0x241F] = 0x6715, --(朕) + [0x241F] = 0x6715, --(朕) [0x2420] = 0x6C88, --(沈) - [0x2421] = 0x73CD, --(珍) + [0x2421] = 0x73CD, --(珍) [0x2422] = 0x8CC3, --(賃) - [0x2423] = 0x93AE, --(鎮) + [0x2423] = 0x93AE, --(鎮) [0x2424] = 0x9673, --(陳) - [0x2425] = 0x6D25, --(津) + [0x2425] = 0x6D25, --(津) [0x2426] = 0x589C, --(墜) - [0x2427] = 0x690E, --(椎) + [0x2427] = 0x690E, --(椎) [0x2428] = 0x69CC, --(槌) - [0x2429] = 0x8FFD, --(追) + [0x2429] = 0x8FFD, --(追) [0x242A] = 0x939A, --(鎚) - [0x242B] = 0x75DB, --(痛) + [0x242B] = 0x75DB, --(痛) [0x242C] = 0x901A, --(通) - [0x242D] = 0x585A, --(塚) + [0x242D] = 0x585A, --(塚) [0x242E] = 0x6802, --(栂) - [0x242F] = 0x63B4, --(掴) + [0x242F] = 0x63B4, --(掴) [0x2430] = 0x69FB, --(槻) - [0x2431] = 0x4F43, --(佃) + [0x2431] = 0x4F43, --(佃) [0x2432] = 0x6F2C, --(漬) - [0x2433] = 0x67D8, --(柘) + [0x2433] = 0x67D8, --(柘) [0x2434] = 0x8FBB, --(辻) - [0x2435] = 0x8526, --(蔦) + [0x2435] = 0x8526, --(蔦) [0x2436] = 0x7DB4, --(綴) - [0x2437] = 0x9354, --(鍔) + [0x2437] = 0x9354, --(鍔) [0x2438] = 0x693F, --(椿) - [0x2439] = 0x6F70, --(潰) + [0x2439] = 0x6F70, --(潰) [0x243A] = 0x576A, --(坪) - [0x243B] = 0x58F7, --(壷) + [0x243B] = 0x58F7, --(壷) [0x243C] = 0x5B2C, --(嬬) - [0x243D] = 0x7D2C, --(紬) + [0x243D] = 0x7D2C, --(紬) [0x243E] = 0x722A, --(爪) - [0x243F] = 0x540A, --(吊) + [0x243F] = 0x540A, --(吊) [0x2440] = 0x91E3, --(釣) - [0x2441] = 0x9DB4, --(鶴) + [0x2441] = 0x9DB4, --(鶴) [0x2442] = 0x4EAD, --(亭) - [0x2443] = 0x4F4E, --(低) + [0x2443] = 0x4F4E, --(低) [0x2444] = 0x505C, --(停) - [0x2445] = 0x5075, --(偵) + [0x2445] = 0x5075, --(偵) [0x2446] = 0x5243, --(剃) - [0x2447] = 0x8C9E, --(貞) + [0x2447] = 0x8C9E, --(貞) [0x2448] = 0x5448, --(呈) - [0x2449] = 0x5824, --(堤) + [0x2449] = 0x5824, --(堤) [0x244A] = 0x5B9A, --(定) - [0x244B] = 0x5E1D, --(帝) + [0x244B] = 0x5E1D, --(帝) [0x244C] = 0x5E95, --(底) - [0x244D] = 0x5EAD, --(庭) + [0x244D] = 0x5EAD, --(庭) [0x244E] = 0x5EF7, --(廷) - [0x244F] = 0x5F1F, --(弟) + [0x244F] = 0x5F1F, --(弟) [0x2450] = 0x608C, --(悌) - [0x2451] = 0x62B5, --(抵) + [0x2451] = 0x62B5, --(抵) [0x2452] = 0x633A, --(挺) - [0x2453] = 0x63D0, --(提) + [0x2453] = 0x63D0, --(提) [0x2454] = 0x68AF, --(梯) - [0x2455] = 0x6C40, --(汀) + [0x2455] = 0x6C40, --(汀) [0x2456] = 0x7887, --(碇) - [0x2457] = 0x798E, --(禎) + [0x2457] = 0x798E, --(禎) [0x2458] = 0x7A0B, --(程) - [0x2459] = 0x7DE0, --(締) + [0x2459] = 0x7DE0, --(締) [0x245A] = 0x8247, --(艇) - [0x245B] = 0x8A02, --(訂) + [0x245B] = 0x8A02, --(訂) [0x245C] = 0x8AE6, --(諦) - [0x245D] = 0x8E44, --(蹄) + [0x245D] = 0x8E44, --(蹄) [0x245E] = 0x9013, --(逓) - [0x2501] = 0x90B8, --(邸) + [0x2501] = 0x90B8, --(邸) [0x2502] = 0x912D, --(鄭) - [0x2503] = 0x91D8, --(釘) + [0x2503] = 0x91D8, --(釘) [0x2504] = 0x9F0E, --(鼎) - [0x2505] = 0x6CE5, --(泥) + [0x2505] = 0x6CE5, --(泥) [0x2506] = 0x6458, --(摘) - [0x2507] = 0x64E2, --(擢) + [0x2507] = 0x64E2, --(擢) [0x2508] = 0x6575, --(敵) - [0x2509] = 0x6EF4, --(滴) + [0x2509] = 0x6EF4, --(滴) [0x250A] = 0x7684, --(的) - [0x250B] = 0x7B1B, --(笛) + [0x250B] = 0x7B1B, --(笛) [0x250C] = 0x9069, --(適) - [0x250D] = 0x93D1, --(鏑) + [0x250D] = 0x93D1, --(鏑) [0x250E] = 0x6EBA, --(溺) - [0x250F] = 0x54F2, --(哲) + [0x250F] = 0x54F2, --(哲) [0x2510] = 0x5FB9, --(徹) - [0x2511] = 0x64A4, --(撤) + [0x2511] = 0x64A4, --(撤) [0x2512] = 0x8F4D, --(轍) - [0x2513] = 0x8FED, --(迭) + [0x2513] = 0x8FED, --(迭) [0x2514] = 0x9244, --(鉄) - [0x2515] = 0x5178, --(典) + [0x2515] = 0x5178, --(典) [0x2516] = 0x586B, --(填) - [0x2517] = 0x5929, --(天) + [0x2517] = 0x5929, --(天) [0x2518] = 0x5C55, --(展) - [0x2519] = 0x5E97, --(店) + [0x2519] = 0x5E97, --(店) [0x251A] = 0x6DFB, --(添) - [0x251B] = 0x7E8F, --(纏) + [0x251B] = 0x7E8F, --(纏) [0x251C] = 0x751C, --(甜) - [0x251D] = 0x8CBC, --(貼) + [0x251D] = 0x8CBC, --(貼) [0x251E] = 0x8EE2, --(転) - [0x251F] = 0x985B, --(顛) + [0x251F] = 0x985B, --(顛) [0x2520] = 0x70B9, --(点) - [0x2521] = 0x4F1D, --(伝) + [0x2521] = 0x4F1D, --(伝) [0x2522] = 0x6BBF, --(殿) - [0x2523] = 0x6FB1, --(澱) + [0x2523] = 0x6FB1, --(澱) [0x2524] = 0x7530, --(田) - [0x2525] = 0x96FB, --(電) + [0x2525] = 0x96FB, --(電) [0x2526] = 0x514E, --(兎) - [0x2527] = 0x5410, --(吐) + [0x2527] = 0x5410, --(吐) [0x2528] = 0x5835, --(堵) - [0x2529] = 0x5857, --(塗) + [0x2529] = 0x5857, --(塗) [0x252A] = 0x59AC, --(妬) - [0x252B] = 0x5C60, --(屠) + [0x252B] = 0x5C60, --(屠) [0x252C] = 0x5F92, --(徒) - [0x252D] = 0x6597, --(斗) + [0x252D] = 0x6597, --(斗) [0x252E] = 0x675C, --(杜) - [0x252F] = 0x6E21, --(渡) + [0x252F] = 0x6E21, --(渡) [0x2530] = 0x767B, --(登) - [0x2531] = 0x83DF, --(菟) + [0x2531] = 0x83DF, --(菟) [0x2532] = 0x8CED, --(賭) - [0x2533] = 0x9014, --(途) + [0x2533] = 0x9014, --(途) [0x2534] = 0x90FD, --(都) - [0x2535] = 0x934D, --(鍍) + [0x2535] = 0x934D, --(鍍) [0x2536] = 0x7825, --(砥) - [0x2537] = 0x783A, --(砺) + [0x2537] = 0x783A, --(砺) [0x2538] = 0x52AA, --(努) - [0x2539] = 0x5EA6, --(度) + [0x2539] = 0x5EA6, --(度) [0x253A] = 0x571F, --(土) - [0x253B] = 0x5974, --(奴) + [0x253B] = 0x5974, --(奴) [0x253C] = 0x6012, --(怒) - [0x253D] = 0x5012, --(倒) + [0x253D] = 0x5012, --(倒) [0x253E] = 0x515A, --(党) - [0x253F] = 0x51AC, --(冬) + [0x253F] = 0x51AC, --(冬) [0x2540] = 0x51CD, --(凍) - [0x2541] = 0x5200, --(刀) + [0x2541] = 0x5200, --(刀) [0x2542] = 0x5510, --(唐) - [0x2543] = 0x5854, --(塔) + [0x2543] = 0x5854, --(塔) [0x2544] = 0x5858, --(塘) - [0x2545] = 0x5957, --(套) + [0x2545] = 0x5957, --(套) [0x2546] = 0x5B95, --(宕) - [0x2547] = 0x5CF6, --(島) + [0x2547] = 0x5CF6, --(島) [0x2548] = 0x5D8B, --(嶋) - [0x2549] = 0x60BC, --(悼) + [0x2549] = 0x60BC, --(悼) [0x254A] = 0x6295, --(投) - [0x254B] = 0x642D, --(搭) + [0x254B] = 0x642D, --(搭) [0x254C] = 0x6771, --(東) - [0x254D] = 0x6843, --(桃) + [0x254D] = 0x6843, --(桃) [0x254E] = 0x68BC, --(梼) - [0x254F] = 0x68DF, --(棟) + [0x254F] = 0x68DF, --(棟) [0x2550] = 0x76D7, --(盗) - [0x2551] = 0x6DD8, --(淘) + [0x2551] = 0x6DD8, --(淘) [0x2552] = 0x6E6F, --(湯) - [0x2553] = 0x6D9B, --(涛) + [0x2553] = 0x6D9B, --(涛) [0x2554] = 0x706F, --(灯) - [0x2555] = 0x71C8, --(燈) + [0x2555] = 0x71C8, --(燈) [0x2556] = 0x5F53, --(当) - [0x2557] = 0x75D8, --(痘) + [0x2557] = 0x75D8, --(痘) [0x2558] = 0x7977, --(祷) - [0x2559] = 0x7B49, --(等) + [0x2559] = 0x7B49, --(等) [0x255A] = 0x7B54, --(答) - [0x255B] = 0x7B52, --(筒) + [0x255B] = 0x7B52, --(筒) [0x255C] = 0x7CD6, --(糖) - [0x255D] = 0x7D71, --(統) + [0x255D] = 0x7D71, --(統) [0x255E] = 0x5230, --(到) - [0x2601] = 0x8463, --(董) + [0x2601] = 0x8463, --(董) [0x2602] = 0x8569, --(蕩) - [0x2603] = 0x85E4, --(藤) + [0x2603] = 0x85E4, --(藤) [0x2604] = 0x8A0E, --(討) - [0x2605] = 0x8B04, --(謄) + [0x2605] = 0x8B04, --(謄) [0x2606] = 0x8C46, --(豆) - [0x2607] = 0x8E0F, --(踏) + [0x2607] = 0x8E0F, --(踏) [0x2608] = 0x9003, --(逃) - [0x2609] = 0x900F, --(透) + [0x2609] = 0x900F, --(透) [0x260A] = 0x9419, --(鐙) - [0x260B] = 0x9676, --(陶) + [0x260B] = 0x9676, --(陶) [0x260C] = 0x982D, --(頭) - [0x260D] = 0x9A30, --(騰) + [0x260D] = 0x9A30, --(騰) [0x260E] = 0x95D8, --(闘) - [0x260F] = 0x50CD, --(働) + [0x260F] = 0x50CD, --(働) [0x2610] = 0x52D5, --(動) - [0x2611] = 0x540C, --(同) + [0x2611] = 0x540C, --(同) [0x2612] = 0x5802, --(堂) - [0x2613] = 0x5C0E, --(導) + [0x2613] = 0x5C0E, --(導) [0x2614] = 0x61A7, --(憧) - [0x2615] = 0x649E, --(撞) + [0x2615] = 0x649E, --(撞) [0x2616] = 0x6D1E, --(洞) - [0x2617] = 0x77B3, --(瞳) + [0x2617] = 0x77B3, --(瞳) [0x2618] = 0x7AE5, --(童) - [0x2619] = 0x80F4, --(胴) + [0x2619] = 0x80F4, --(胴) [0x261A] = 0x8404, --(萄) - [0x261B] = 0x9053, --(道) + [0x261B] = 0x9053, --(道) [0x261C] = 0x9285, --(銅) - [0x261D] = 0x5CE0, --(峠) + [0x261D] = 0x5CE0, --(峠) [0x261E] = 0x9D07, --(鴇) - [0x261F] = 0x533F, --(匿) + [0x261F] = 0x533F, --(匿) [0x2620] = 0x5F97, --(得) - [0x2621] = 0x5FB3, --(徳) + [0x2621] = 0x5FB3, --(徳) [0x2622] = 0x6D9C, --(涜) - [0x2623] = 0x7279, --(特) + [0x2623] = 0x7279, --(特) [0x2624] = 0x7763, --(督) - [0x2625] = 0x79BF, --(禿) + [0x2625] = 0x79BF, --(禿) [0x2626] = 0x7BE4, --(篤) - [0x2627] = 0x6BD2, --(毒) + [0x2627] = 0x6BD2, --(毒) [0x2628] = 0x72EC, --(独) - [0x2629] = 0x8AAD, --(読) + [0x2629] = 0x8AAD, --(読) [0x262A] = 0x6803, --(栃) - [0x262B] = 0x6A61, --(橡) + [0x262B] = 0x6A61, --(橡) [0x262C] = 0x51F8, --(凸) - [0x262D] = 0x7A81, --(突) + [0x262D] = 0x7A81, --(突) [0x262E] = 0x6934, --(椴) - [0x262F] = 0x5C4A, --(届) + [0x262F] = 0x5C4A, --(届) [0x2630] = 0x9CF6, --(鳶) - [0x2631] = 0x82EB, --(苫) + [0x2631] = 0x82EB, --(苫) [0x2632] = 0x5BC5, --(寅) - [0x2633] = 0x9149, --(酉) + [0x2633] = 0x9149, --(酉) [0x2634] = 0x701E, --(瀞) - [0x2635] = 0x5678, --(噸) + [0x2635] = 0x5678, --(噸) [0x2636] = 0x5C6F, --(屯) - [0x2637] = 0x60C7, --(惇) + [0x2637] = 0x60C7, --(惇) [0x2638] = 0x6566, --(敦) - [0x2639] = 0x6C8C, --(沌) + [0x2639] = 0x6C8C, --(沌) [0x263A] = 0x8C5A, --(豚) - [0x263B] = 0x9041, --(遁) + [0x263B] = 0x9041, --(遁) [0x263C] = 0x9813, --(頓) - [0x263D] = 0x5451, --(呑) + [0x263D] = 0x5451, --(呑) [0x263E] = 0x66C7, --(曇) - [0x263F] = 0x920D, --(鈍) + [0x263F] = 0x920D, --(鈍) [0x2640] = 0x5948, --(奈) - [0x2641] = 0x90A3, --(那) + [0x2641] = 0x90A3, --(那) [0x2642] = 0x5185, --(内) - [0x2643] = 0x4E4D, --(乍) + [0x2643] = 0x4E4D, --(乍) [0x2644] = 0x51EA, --(凪) - [0x2645] = 0x8599, --(薙) + [0x2645] = 0x8599, --(薙) [0x2646] = 0x8B0E, --(謎) - [0x2647] = 0x7058, --(灘) + [0x2647] = 0x7058, --(灘) [0x2648] = 0x637A, --(捺) - [0x2649] = 0x934B, --(鍋) + [0x2649] = 0x934B, --(鍋) [0x264A] = 0x6962, --(楢) - [0x264B] = 0x99B4, --(馴) + [0x264B] = 0x99B4, --(馴) [0x264C] = 0x7E04, --(縄) - [0x264D] = 0x7577, --(畷) + [0x264D] = 0x7577, --(畷) [0x264E] = 0x5357, --(南) - [0x264F] = 0x6960, --(楠) + [0x264F] = 0x6960, --(楠) [0x2650] = 0x8EDF, --(軟) - [0x2651] = 0x96E3, --(難) + [0x2651] = 0x96E3, --(難) [0x2652] = 0x6C5D, --(汝) - [0x2653] = 0x4E8C, --(二) + [0x2653] = 0x4E8C, --(二) [0x2654] = 0x5C3C, --(尼) - [0x2655] = 0x5F10, --(弐) + [0x2655] = 0x5F10, --(弐) [0x2656] = 0x8FE9, --(迩) - [0x2657] = 0x5302, --(匂) + [0x2657] = 0x5302, --(匂) [0x2658] = 0x8CD1, --(賑) - [0x2659] = 0x8089, --(肉) + [0x2659] = 0x8089, --(肉) [0x265A] = 0x8679, --(虹) - [0x265B] = 0x5EFF, --(廿) + [0x265B] = 0x5EFF, --(廿) [0x265C] = 0x65E5, --(日) - [0x265D] = 0x4E73, --(乳) + [0x265D] = 0x4E73, --(乳) [0x265E] = 0x5165, --(入) - [0x2701] = 0x5982, --(如) + [0x2701] = 0x5982, --(如) [0x2702] = 0x5C3F, --(尿) - [0x2703] = 0x97EE, --(韮) + [0x2703] = 0x97EE, --(韮) [0x2704] = 0x4EFB, --(任) - [0x2705] = 0x598A, --(妊) + [0x2705] = 0x598A, --(妊) [0x2706] = 0x5FCD, --(忍) - [0x2707] = 0x8A8D, --(認) + [0x2707] = 0x8A8D, --(認) [0x2708] = 0x6FE1, --(濡) - [0x2709] = 0x79B0, --(禰) + [0x2709] = 0x79B0, --(禰) [0x270A] = 0x7962, --(祢) - [0x270B] = 0x5BE7, --(寧) + [0x270B] = 0x5BE7, --(寧) [0x270C] = 0x8471, --(葱) - [0x270D] = 0x732B, --(猫) + [0x270D] = 0x732B, --(猫) [0x270E] = 0x71B1, --(熱) - [0x270F] = 0x5E74, --(年) + [0x270F] = 0x5E74, --(年) [0x2710] = 0x5FF5, --(念) - [0x2711] = 0x637B, --(捻) + [0x2711] = 0x637B, --(捻) [0x2712] = 0x649A, --(撚) - [0x2713] = 0x71C3, --(燃) + [0x2713] = 0x71C3, --(燃) [0x2714] = 0x7C98, --(粘) - [0x2715] = 0x4E43, --(乃) + [0x2715] = 0x4E43, --(乃) [0x2716] = 0x5EFC, --(廼) - [0x2717] = 0x4E4B, --(之) + [0x2717] = 0x4E4B, --(之) [0x2718] = 0x57DC, --(埜) - [0x2719] = 0x56A2, --(嚢) + [0x2719] = 0x56A2, --(嚢) [0x271A] = 0x60A9, --(悩) - [0x271B] = 0x6FC3, --(濃) + [0x271B] = 0x6FC3, --(濃) [0x271C] = 0x7D0D, --(納) - [0x271D] = 0x80FD, --(能) + [0x271D] = 0x80FD, --(能) [0x271E] = 0x8133, --(脳) - [0x271F] = 0x81BF, --(膿) + [0x271F] = 0x81BF, --(膿) [0x2720] = 0x8FB2, --(農) - [0x2721] = 0x8997, --(覗) + [0x2721] = 0x8997, --(覗) [0x2722] = 0x86A4, --(蚤) - [0x2723] = 0x5DF4, --(巴) + [0x2723] = 0x5DF4, --(巴) [0x2724] = 0x628A, --(把) - [0x2725] = 0x64AD, --(播) + [0x2725] = 0x64AD, --(播) [0x2726] = 0x8987, --(覇) - [0x2727] = 0x6777, --(杷) + [0x2727] = 0x6777, --(杷) [0x2728] = 0x6CE2, --(波) - [0x2729] = 0x6D3E, --(派) + [0x2729] = 0x6D3E, --(派) [0x272A] = 0x7436, --(琶) - [0x272B] = 0x7834, --(破) + [0x272B] = 0x7834, --(破) [0x272C] = 0x5A46, --(婆) - [0x272D] = 0x7F75, --(罵) + [0x272D] = 0x7F75, --(罵) [0x272E] = 0x82AD, --(芭) - [0x272F] = 0x99AC, --(馬) + [0x272F] = 0x99AC, --(馬) [0x2730] = 0x4FF3, --(俳) - [0x2731] = 0x5EC3, --(廃) + [0x2731] = 0x5EC3, --(廃) [0x2732] = 0x62DD, --(拝) - [0x2733] = 0x6392, --(排) + [0x2733] = 0x6392, --(排) [0x2734] = 0x6557, --(敗) - [0x2735] = 0x676F, --(杯) + [0x2735] = 0x676F, --(杯) [0x2736] = 0x76C3, --(盃) - [0x2737] = 0x724C, --(牌) + [0x2737] = 0x724C, --(牌) [0x2738] = 0x80CC, --(背) - [0x2739] = 0x80BA, --(肺) + [0x2739] = 0x80BA, --(肺) [0x273A] = 0x8F29, --(輩) - [0x273B] = 0x914D, --(配) + [0x273B] = 0x914D, --(配) [0x273C] = 0x500D, --(倍) - [0x273D] = 0x57F9, --(培) + [0x273D] = 0x57F9, --(培) [0x273E] = 0x5A92, --(媒) - [0x273F] = 0x6885, --(梅) + [0x273F] = 0x6885, --(梅) [0x2740] = 0x6973, --(楳) - [0x2741] = 0x7164, --(煤) + [0x2741] = 0x7164, --(煤) [0x2742] = 0x72FD, --(狽) - [0x2743] = 0x8CB7, --(買) + [0x2743] = 0x8CB7, --(買) [0x2744] = 0x58F2, --(売) - [0x2745] = 0x8CE0, --(賠) + [0x2745] = 0x8CE0, --(賠) [0x2746] = 0x966A, --(陪) - [0x2747] = 0x9019, --(這) + [0x2747] = 0x9019, --(這) [0x2748] = 0x877F, --(蝿) - [0x2749] = 0x79E4, --(秤) + [0x2749] = 0x79E4, --(秤) [0x274A] = 0x77E7, --(矧) - [0x274B] = 0x8429, --(萩) + [0x274B] = 0x8429, --(萩) [0x274C] = 0x4F2F, --(伯) - [0x274D] = 0x5265, --(剥) + [0x274D] = 0x5265, --(剥) [0x274E] = 0x535A, --(博) - [0x274F] = 0x62CD, --(拍) + [0x274F] = 0x62CD, --(拍) [0x2750] = 0x67CF, --(柏) - [0x2751] = 0x6CCA, --(泊) + [0x2751] = 0x6CCA, --(泊) [0x2752] = 0x767D, --(白) - [0x2753] = 0x7B94, --(箔) + [0x2753] = 0x7B94, --(箔) [0x2754] = 0x7C95, --(粕) - [0x2755] = 0x8236, --(舶) + [0x2755] = 0x8236, --(舶) [0x2756] = 0x8584, --(薄) - [0x2757] = 0x8FEB, --(迫) + [0x2757] = 0x8FEB, --(迫) [0x2758] = 0x66DD, --(曝) - [0x2759] = 0x6F20, --(漠) + [0x2759] = 0x6F20, --(漠) [0x275A] = 0x7206, --(爆) - [0x275B] = 0x7E1B, --(縛) + [0x275B] = 0x7E1B, --(縛) [0x275C] = 0x83AB, --(莫) - [0x275D] = 0x99C1, --(駁) + [0x275D] = 0x99C1, --(駁) [0x275E] = 0x9EA6, --(麦) - [0x2801] = 0x51FD, --(函) + [0x2801] = 0x51FD, --(函) [0x2802] = 0x7BB1, --(箱) - [0x2803] = 0x7872, --(硲) + [0x2803] = 0x7872, --(硲) [0x2804] = 0x7BB8, --(箸) - [0x2805] = 0x8087, --(肇) + [0x2805] = 0x8087, --(肇) [0x2806] = 0x7B48, --(筈) - [0x2807] = 0x6AE8, --(櫨) + [0x2807] = 0x6AE8, --(櫨) [0x2808] = 0x5E61, --(幡) - [0x2809] = 0x808C, --(肌) + [0x2809] = 0x808C, --(肌) [0x280A] = 0x7551, --(畑) - [0x280B] = 0x7560, --(畠) + [0x280B] = 0x7560, --(畠) [0x280C] = 0x516B, --(八) - [0x280D] = 0x9262, --(鉢) + [0x280D] = 0x9262, --(鉢) [0x280E] = 0x6E8C, --(溌) - [0x280F] = 0x767A, --(発) + [0x280F] = 0x767A, --(発) [0x2810] = 0x9197, --(醗) - [0x2811] = 0x9AEA, --(髪) + [0x2811] = 0x9AEA, --(髪) [0x2812] = 0x4F10, --(伐) - [0x2813] = 0x7F70, --(罰) + [0x2813] = 0x7F70, --(罰) [0x2814] = 0x629C, --(抜) - [0x2815] = 0x7B4F, --(筏) + [0x2815] = 0x7B4F, --(筏) [0x2816] = 0x95A5, --(閥) - [0x2817] = 0x9CE9, --(鳩) + [0x2817] = 0x9CE9, --(鳩) [0x2818] = 0x567A, --(噺) - [0x2819] = 0x5859, --(塙) + [0x2819] = 0x5859, --(塙) [0x281A] = 0x86E4, --(蛤) - [0x281B] = 0x96BC, --(隼) + [0x281B] = 0x96BC, --(隼) [0x281C] = 0x4F34, --(伴) - [0x281D] = 0x5224, --(判) + [0x281D] = 0x5224, --(判) [0x281E] = 0x534A, --(半) - [0x281F] = 0x53CD, --(反) + [0x281F] = 0x53CD, --(反) [0x2820] = 0x53DB, --(叛) - [0x2821] = 0x5E06, --(帆) + [0x2821] = 0x5E06, --(帆) [0x2822] = 0x642C, --(搬) - [0x2823] = 0x6591, --(斑) + [0x2823] = 0x6591, --(斑) [0x2824] = 0x677F, --(板) - [0x2825] = 0x6C3E, --(氾) + [0x2825] = 0x6C3E, --(氾) [0x2826] = 0x6C4E, --(汎) - [0x2827] = 0x7248, --(版) + [0x2827] = 0x7248, --(版) [0x2828] = 0x72AF, --(犯) - [0x2829] = 0x73ED, --(班) + [0x2829] = 0x73ED, --(班) [0x282A] = 0x7554, --(畔) - [0x282B] = 0x7E41, --(繁) + [0x282B] = 0x7E41, --(繁) [0x282C] = 0x822C, --(般) - [0x282D] = 0x85E9, --(藩) + [0x282D] = 0x85E9, --(藩) [0x282E] = 0x8CA9, --(販) - [0x282F] = 0x7BC4, --(範) + [0x282F] = 0x7BC4, --(範) [0x2830] = 0x91C6, --(釆) - [0x2831] = 0x7169, --(煩) + [0x2831] = 0x7169, --(煩) [0x2832] = 0x9812, --(頒) - [0x2833] = 0x98EF, --(飯) + [0x2833] = 0x98EF, --(飯) [0x2834] = 0x633D, --(挽) - [0x2835] = 0x6669, --(晩) + [0x2835] = 0x6669, --(晩) [0x2836] = 0x756A, --(番) - [0x2837] = 0x76E4, --(盤) + [0x2837] = 0x76E4, --(盤) [0x2838] = 0x78D0, --(磐) - [0x2839] = 0x8543, --(蕃) + [0x2839] = 0x8543, --(蕃) [0x283A] = 0x86EE, --(蛮) - [0x283B] = 0x532A, --(匪) + [0x283B] = 0x532A, --(匪) [0x283C] = 0x5351, --(卑) - [0x283D] = 0x5426, --(否) + [0x283D] = 0x5426, --(否) [0x283E] = 0x5983, --(妃) - [0x283F] = 0x5E87, --(庇) + [0x283F] = 0x5E87, --(庇) [0x2840] = 0x5F7C, --(彼) - [0x2841] = 0x60B2, --(悲) + [0x2841] = 0x60B2, --(悲) [0x2842] = 0x6249, --(扉) - [0x2843] = 0x6279, --(批) + [0x2843] = 0x6279, --(批) [0x2844] = 0x62AB, --(披) - [0x2845] = 0x6590, --(斐) + [0x2845] = 0x6590, --(斐) [0x2846] = 0x6BD4, --(比) - [0x2847] = 0x6CCC, --(泌) + [0x2847] = 0x6CCC, --(泌) [0x2848] = 0x75B2, --(疲) - [0x2849] = 0x76AE, --(皮) + [0x2849] = 0x76AE, --(皮) [0x284A] = 0x7891, --(碑) - [0x284B] = 0x79D8, --(秘) + [0x284B] = 0x79D8, --(秘) [0x284C] = 0x7DCB, --(緋) - [0x284D] = 0x7F77, --(罷) + [0x284D] = 0x7F77, --(罷) [0x284E] = 0x80A5, --(肥) - [0x284F] = 0x88AB, --(被) + [0x284F] = 0x88AB, --(被) [0x2850] = 0x8AB9, --(誹) - [0x2851] = 0x8CBB, --(費) + [0x2851] = 0x8CBB, --(費) [0x2852] = 0x907F, --(避) - [0x2853] = 0x975E, --(非) + [0x2853] = 0x975E, --(非) [0x2854] = 0x98DB, --(飛) - [0x2855] = 0x6A0B, --(樋) + [0x2855] = 0x6A0B, --(樋) [0x2856] = 0x7C38, --(簸) - [0x2857] = 0x5099, --(備) + [0x2857] = 0x5099, --(備) [0x2858] = 0x5C3E, --(尾) - [0x2859] = 0x5FAE, --(微) + [0x2859] = 0x5FAE, --(微) [0x285A] = 0x6787, --(枇) - [0x285B] = 0x6BD8, --(毘) + [0x285B] = 0x6BD8, --(毘) [0x285C] = 0x7435, --(琵) - [0x285D] = 0x7709, --(眉) + [0x285D] = 0x7709, --(眉) [0x285E] = 0x7F8E, --(美) - [0x2901] = 0x9F3B, --(鼻) + [0x2901] = 0x9F3B, --(鼻) [0x2902] = 0x67CA, --(柊) - [0x2903] = 0x7A17, --(稗) + [0x2903] = 0x7A17, --(稗) [0x2904] = 0x5339, --(匹) - [0x2905] = 0x758B, --(疋) + [0x2905] = 0x758B, --(疋) [0x2906] = 0x9AED, --(髭) - [0x2907] = 0x5F66, --(彦) + [0x2907] = 0x5F66, --(彦) [0x2908] = 0x819D, --(膝) - [0x2909] = 0x83F1, --(菱) + [0x2909] = 0x83F1, --(菱) [0x290A] = 0x8098, --(肘) - [0x290B] = 0x5F3C, --(弼) + [0x290B] = 0x5F3C, --(弼) [0x290C] = 0x5FC5, --(必) - [0x290D] = 0x7562, --(畢) + [0x290D] = 0x7562, --(畢) [0x290E] = 0x7B46, --(筆) - [0x290F] = 0x903C, --(逼) + [0x290F] = 0x903C, --(逼) [0x2910] = 0x6867, --(桧) - [0x2911] = 0x59EB, --(姫) + [0x2911] = 0x59EB, --(姫) [0x2912] = 0x5A9B, --(媛) - [0x2913] = 0x7D10, --(紐) + [0x2913] = 0x7D10, --(紐) [0x2914] = 0x767E, --(百) - [0x2915] = 0x8B2C, --(謬) + [0x2915] = 0x8B2C, --(謬) [0x2916] = 0x4FF5, --(俵) - [0x2917] = 0x5F6A, --(彪) + [0x2917] = 0x5F6A, --(彪) [0x2918] = 0x6A19, --(標) - [0x2919] = 0x6C37, --(氷) + [0x2919] = 0x6C37, --(氷) [0x291A] = 0x6F02, --(漂) - [0x291B] = 0x74E2, --(瓢) + [0x291B] = 0x74E2, --(瓢) [0x291C] = 0x7968, --(票) - [0x291D] = 0x8868, --(表) + [0x291D] = 0x8868, --(表) [0x291E] = 0x8A55, --(評) - [0x291F] = 0x8C79, --(豹) + [0x291F] = 0x8C79, --(豹) [0x2920] = 0x5EDF, --(廟) - [0x2921] = 0x63CF, --(描) + [0x2921] = 0x63CF, --(描) [0x2922] = 0x75C5, --(病) - [0x2923] = 0x79D2, --(秒) + [0x2923] = 0x79D2, --(秒) [0x2924] = 0x82D7, --(苗) - [0x2925] = 0x9328, --(錨) + [0x2925] = 0x9328, --(錨) [0x2926] = 0x92F2, --(鋲) - [0x2927] = 0x849C, --(蒜) + [0x2927] = 0x849C, --(蒜) [0x2928] = 0x86ED, --(蛭) - [0x2929] = 0x9C2D, --(鰭) + [0x2929] = 0x9C2D, --(鰭) [0x292A] = 0x54C1, --(品) - [0x292B] = 0x5F6C, --(彬) + [0x292B] = 0x5F6C, --(彬) [0x292C] = 0x658C, --(斌) - [0x292D] = 0x6D5C, --(浜) + [0x292D] = 0x6D5C, --(浜) [0x292E] = 0x7015, --(瀕) - [0x292F] = 0x8CA7, --(貧) + [0x292F] = 0x8CA7, --(貧) [0x2930] = 0x8CD3, --(賓) - [0x2931] = 0x983B, --(頻) + [0x2931] = 0x983B, --(頻) [0x2932] = 0x654F, --(敏) - [0x2933] = 0x74F6, --(瓶) + [0x2933] = 0x74F6, --(瓶) [0x2934] = 0x4E0D, --(不) - [0x2935] = 0x4ED8, --(付) + [0x2935] = 0x4ED8, --(付) [0x2936] = 0x57E0, --(埠) - [0x2937] = 0x592B, --(夫) + [0x2937] = 0x592B, --(夫) [0x2938] = 0x5A66, --(婦) - [0x2939] = 0x5BCC, --(富) + [0x2939] = 0x5BCC, --(富) [0x293A] = 0x51A8, --(冨) - [0x293B] = 0x5E03, --(布) + [0x293B] = 0x5E03, --(布) [0x293C] = 0x5E9C, --(府) - [0x293D] = 0x6016, --(怖) + [0x293D] = 0x6016, --(怖) [0x293E] = 0x6276, --(扶) - [0x293F] = 0x6577, --(敷) + [0x293F] = 0x6577, --(敷) [0x2940] = 0x65A7, --(斧) - [0x2941] = 0x666E, --(普) + [0x2941] = 0x666E, --(普) [0x2942] = 0x6D6E, --(浮) - [0x2943] = 0x7236, --(父) + [0x2943] = 0x7236, --(父) [0x2944] = 0x7B26, --(符) - [0x2945] = 0x8150, --(腐) + [0x2945] = 0x8150, --(腐) [0x2946] = 0x819A, --(膚) - [0x2947] = 0x8299, --(芙) + [0x2947] = 0x8299, --(芙) [0x2948] = 0x8B5C, --(譜) - [0x2949] = 0x8CA0, --(負) + [0x2949] = 0x8CA0, --(負) [0x294A] = 0x8CE6, --(賦) - [0x294B] = 0x8D74, --(赴) + [0x294B] = 0x8D74, --(赴) [0x294C] = 0x961C, --(阜) - [0x294D] = 0x9644, --(附) + [0x294D] = 0x9644, --(附) [0x294E] = 0x4FAE, --(侮) - [0x294F] = 0x64AB, --(撫) + [0x294F] = 0x64AB, --(撫) [0x2950] = 0x6B66, --(武) - [0x2951] = 0x821E, --(舞) + [0x2951] = 0x821E, --(舞) [0x2952] = 0x8461, --(葡) - [0x2953] = 0x856A, --(蕪) + [0x2953] = 0x856A, --(蕪) [0x2954] = 0x90E8, --(部) - [0x2955] = 0x5C01, --(封) + [0x2955] = 0x5C01, --(封) [0x2956] = 0x6953, --(楓) - [0x2957] = 0x98A8, --(風) + [0x2957] = 0x98A8, --(風) [0x2958] = 0x847A, --(葺) - [0x2959] = 0x8557, --(蕗) + [0x2959] = 0x8557, --(蕗) [0x295A] = 0x4F0F, --(伏) - [0x295B] = 0x526F, --(副) + [0x295B] = 0x526F, --(副) [0x295C] = 0x5FA9, --(復) - [0x295D] = 0x5E45, --(幅) + [0x295D] = 0x5E45, --(幅) [0x295E] = 0x670D, --(服) - [0x2A01] = 0x798F, --(福) + [0x2A01] = 0x798F, --(福) [0x2A02] = 0x8179, --(腹) - [0x2A03] = 0x8907, --(複) + [0x2A03] = 0x8907, --(複) [0x2A04] = 0x8986, --(覆) - [0x2A05] = 0x6DF5, --(淵) + [0x2A05] = 0x6DF5, --(淵) [0x2A06] = 0x5F17, --(弗) - [0x2A07] = 0x6255, --(払) + [0x2A07] = 0x6255, --(払) [0x2A08] = 0x6CB8, --(沸) - [0x2A09] = 0x4ECF, --(仏) + [0x2A09] = 0x4ECF, --(仏) [0x2A0A] = 0x7269, --(物) - [0x2A0B] = 0x9B92, --(鮒) + [0x2A0B] = 0x9B92, --(鮒) [0x2A0C] = 0x5206, --(分) - [0x2A0D] = 0x543B, --(吻) + [0x2A0D] = 0x543B, --(吻) [0x2A0E] = 0x5674, --(噴) - [0x2A0F] = 0x58B3, --(墳) + [0x2A0F] = 0x58B3, --(墳) [0x2A10] = 0x61A4, --(憤) - [0x2A11] = 0x626E, --(扮) + [0x2A11] = 0x626E, --(扮) [0x2A12] = 0x711A, --(焚) - [0x2A13] = 0x596E, --(奮) + [0x2A13] = 0x596E, --(奮) [0x2A14] = 0x7C89, --(粉) - [0x2A15] = 0x7CDE, --(糞) + [0x2A15] = 0x7CDE, --(糞) [0x2A16] = 0x7D1B, --(紛) - [0x2A17] = 0x96F0, --(雰) + [0x2A17] = 0x96F0, --(雰) [0x2A18] = 0x6587, --(文) - [0x2A19] = 0x805E, --(聞) + [0x2A19] = 0x805E, --(聞) [0x2A1A] = 0x4E19, --(丙) - [0x2A1B] = 0x4F75, --(併) + [0x2A1B] = 0x4F75, --(併) [0x2A1C] = 0x5175, --(兵) - [0x2A1D] = 0x5840, --(塀) + [0x2A1D] = 0x5840, --(塀) [0x2A1E] = 0x5E63, --(幣) - [0x2A1F] = 0x5E73, --(平) + [0x2A1F] = 0x5E73, --(平) [0x2A20] = 0x5F0A, --(弊) - [0x2A21] = 0x67C4, --(柄) + [0x2A21] = 0x67C4, --(柄) [0x2A22] = 0x4E26, --(並) - [0x2A23] = 0x853D, --(蔽) + [0x2A23] = 0x853D, --(蔽) [0x2A24] = 0x9589, --(閉) - [0x2A25] = 0x965B, --(陛) + [0x2A25] = 0x965B, --(陛) [0x2A26] = 0x7C73, --(米) - [0x2A27] = 0x9801, --(頁) + [0x2A27] = 0x9801, --(頁) [0x2A28] = 0x50FB, --(僻) - [0x2A29] = 0x58C1, --(壁) + [0x2A29] = 0x58C1, --(壁) [0x2A2A] = 0x7656, --(癖) - [0x2A2B] = 0x78A7, --(碧) + [0x2A2B] = 0x78A7, --(碧) [0x2A2C] = 0x5225, --(別) - [0x2A2D] = 0x77A5, --(瞥) + [0x2A2D] = 0x77A5, --(瞥) [0x2A2E] = 0x8511, --(蔑) - [0x2A2F] = 0x7B86, --(箆) + [0x2A2F] = 0x7B86, --(箆) [0x2A30] = 0x504F, --(偏) - [0x2A31] = 0x5909, --(変) + [0x2A31] = 0x5909, --(変) [0x2A32] = 0x7247, --(片) - [0x2A33] = 0x7BC7, --(篇) + [0x2A33] = 0x7BC7, --(篇) [0x2A34] = 0x7DE8, --(編) - [0x2A35] = 0x8FBA, --(辺) + [0x2A35] = 0x8FBA, --(辺) [0x2A36] = 0x8FD4, --(返) - [0x2A37] = 0x904D, --(遍) + [0x2A37] = 0x904D, --(遍) [0x2A38] = 0x4FBF, --(便) - [0x2A39] = 0x52C9, --(勉) + [0x2A39] = 0x52C9, --(勉) [0x2A3A] = 0x5A29, --(娩) - [0x2A3B] = 0x5F01, --(弁) + [0x2A3B] = 0x5F01, --(弁) [0x2A3C] = 0x97AD, --(鞭) - [0x2A3D] = 0x4FDD, --(保) + [0x2A3D] = 0x4FDD, --(保) [0x2A3E] = 0x8217, --(舗) - [0x2A3F] = 0x92EA, --(鋪) + [0x2A3F] = 0x92EA, --(鋪) [0x2A40] = 0x5703, --(圃) - [0x2A41] = 0x6355, --(捕) + [0x2A41] = 0x6355, --(捕) [0x2A42] = 0x6B69, --(歩) - [0x2A43] = 0x752B, --(甫) + [0x2A43] = 0x752B, --(甫) [0x2A44] = 0x88DC, --(補) - [0x2A45] = 0x8F14, --(輔) + [0x2A45] = 0x8F14, --(輔) [0x2A46] = 0x7A42, --(穂) - [0x2A47] = 0x52DF, --(募) + [0x2A47] = 0x52DF, --(募) [0x2A48] = 0x5893, --(墓) - [0x2A49] = 0x6155, --(慕) + [0x2A49] = 0x6155, --(慕) [0x2A4A] = 0x620A, --(戊) - [0x2A4B] = 0x66AE, --(暮) + [0x2A4B] = 0x66AE, --(暮) [0x2A4C] = 0x6BCD, --(母) - [0x2A4D] = 0x7C3F, --(簿) + [0x2A4D] = 0x7C3F, --(簿) [0x2A4E] = 0x83E9, --(菩) - [0x2A4F] = 0x5023, --(倣) + [0x2A4F] = 0x5023, --(倣) [0x2A50] = 0x4FF8, --(俸) - [0x2A51] = 0x5305, --(包) + [0x2A51] = 0x5305, --(包) [0x2A52] = 0x5446, --(呆) - [0x2A53] = 0x5831, --(報) + [0x2A53] = 0x5831, --(報) [0x2A54] = 0x5949, --(奉) - [0x2A55] = 0x5B9D, --(宝) + [0x2A55] = 0x5B9D, --(宝) [0x2A56] = 0x5CF0, --(峰) - [0x2A57] = 0x5CEF, --(峯) + [0x2A57] = 0x5CEF, --(峯) [0x2A58] = 0x5D29, --(崩) - [0x2A59] = 0x5E96, --(庖) + [0x2A59] = 0x5E96, --(庖) [0x2A5A] = 0x62B1, --(抱) - [0x2A5B] = 0x6367, --(捧) + [0x2A5B] = 0x6367, --(捧) [0x2A5C] = 0x653E, --(放) - [0x2A5D] = 0x65B9, --(方) + [0x2A5D] = 0x65B9, --(方) [0x2A5E] = 0x670B, --(朋) - [0x2B01] = 0x6CD5, --(法) + [0x2B01] = 0x6CD5, --(法) [0x2B02] = 0x6CE1, --(泡) - [0x2B03] = 0x70F9, --(烹) + [0x2B03] = 0x70F9, --(烹) [0x2B04] = 0x7832, --(砲) - [0x2B05] = 0x7E2B, --(縫) + [0x2B05] = 0x7E2B, --(縫) [0x2B06] = 0x80DE, --(胞) - [0x2B07] = 0x82B3, --(芳) + [0x2B07] = 0x82B3, --(芳) [0x2B08] = 0x840C, --(萌) - [0x2B09] = 0x84EC, --(蓬) + [0x2B09] = 0x84EC, --(蓬) [0x2B0A] = 0x8702, --(蜂) - [0x2B0B] = 0x8912, --(褒) + [0x2B0B] = 0x8912, --(褒) [0x2B0C] = 0x8A2A, --(訪) - [0x2B0D] = 0x8C4A, --(豊) + [0x2B0D] = 0x8C4A, --(豊) [0x2B0E] = 0x90A6, --(邦) - [0x2B0F] = 0x92D2, --(鋒) + [0x2B0F] = 0x92D2, --(鋒) [0x2B10] = 0x98FD, --(飽) - [0x2B11] = 0x9CF3, --(鳳) + [0x2B11] = 0x9CF3, --(鳳) [0x2B12] = 0x9D6C, --(鵬) - [0x2B13] = 0x4E4F, --(乏) + [0x2B13] = 0x4E4F, --(乏) [0x2B14] = 0x4EA1, --(亡) - [0x2B15] = 0x508D, --(傍) + [0x2B15] = 0x508D, --(傍) [0x2B16] = 0x5256, --(剖) - [0x2B17] = 0x574A, --(坊) + [0x2B17] = 0x574A, --(坊) [0x2B18] = 0x59A8, --(妨) - [0x2B19] = 0x5E3D, --(帽) + [0x2B19] = 0x5E3D, --(帽) [0x2B1A] = 0x5FD8, --(忘) - [0x2B1B] = 0x5FD9, --(忙) + [0x2B1B] = 0x5FD9, --(忙) [0x2B1C] = 0x623F, --(房) - [0x2B1D] = 0x66B4, --(暴) + [0x2B1D] = 0x66B4, --(暴) [0x2B1E] = 0x671B, --(望) - [0x2B1F] = 0x67D0, --(某) + [0x2B1F] = 0x67D0, --(某) [0x2B20] = 0x68D2, --(棒) - [0x2B21] = 0x5192, --(冒) + [0x2B21] = 0x5192, --(冒) [0x2B22] = 0x7D21, --(紡) - [0x2B23] = 0x80AA, --(肪) + [0x2B23] = 0x80AA, --(肪) [0x2B24] = 0x81A8, --(膨) - [0x2B25] = 0x8B00, --(謀) + [0x2B25] = 0x8B00, --(謀) [0x2B26] = 0x8C8C, --(貌) - [0x2B27] = 0x8CBF, --(貿) + [0x2B27] = 0x8CBF, --(貿) [0x2B28] = 0x927E, --(鉾) - [0x2B29] = 0x9632, --(防) + [0x2B29] = 0x9632, --(防) [0x2B2A] = 0x5420, --(吠) - [0x2B2B] = 0x982C, --(頬) + [0x2B2B] = 0x982C, --(頬) [0x2B2C] = 0x5317, --(北) - [0x2B2D] = 0x50D5, --(僕) + [0x2B2D] = 0x50D5, --(僕) [0x2B2E] = 0x535C, --(卜) - [0x2B2F] = 0x58A8, --(墨) + [0x2B2F] = 0x58A8, --(墨) [0x2B30] = 0x64B2, --(撲) - [0x2B31] = 0x6734, --(朴) + [0x2B31] = 0x6734, --(朴) [0x2B32] = 0x7267, --(牧) - [0x2B33] = 0x7766, --(睦) + [0x2B33] = 0x7766, --(睦) [0x2B34] = 0x7A46, --(穆) - [0x2B35] = 0x91E6, --(釦) + [0x2B35] = 0x91E6, --(釦) [0x2B36] = 0x52C3, --(勃) - [0x2B37] = 0x6CA1, --(没) + [0x2B37] = 0x6CA1, --(没) [0x2B38] = 0x6B86, --(殆) - [0x2B39] = 0x5800, --(堀) + [0x2B39] = 0x5800, --(堀) [0x2B3A] = 0x5E4C, --(幌) - [0x2B3B] = 0x5954, --(奔) + [0x2B3B] = 0x5954, --(奔) [0x2B3C] = 0x672C, --(本) - [0x2B3D] = 0x7FFB, --(翻) + [0x2B3D] = 0x7FFB, --(翻) [0x2B3E] = 0x51E1, --(凡) - [0x2B3F] = 0x76C6, --(盆) + [0x2B3F] = 0x76C6, --(盆) [0x2B40] = 0x6469, --(摩) - [0x2B41] = 0x78E8, --(磨) + [0x2B41] = 0x78E8, --(磨) [0x2B42] = 0x9B54, --(魔) - [0x2B43] = 0x9EBB, --(麻) + [0x2B43] = 0x9EBB, --(麻) [0x2B44] = 0x57CB, --(埋) - [0x2B45] = 0x59B9, --(妹) + [0x2B45] = 0x59B9, --(妹) [0x2B46] = 0x6627, --(昧) - [0x2B47] = 0x679A, --(枚) + [0x2B47] = 0x679A, --(枚) [0x2B48] = 0x6BCE, --(毎) - [0x2B49] = 0x54E9, --(哩) + [0x2B49] = 0x54E9, --(哩) [0x2B4A] = 0x69D9, --(槙) - [0x2B4B] = 0x5E55, --(幕) + [0x2B4B] = 0x5E55, --(幕) [0x2B4C] = 0x819C, --(膜) - [0x2B4D] = 0x6795, --(枕) + [0x2B4D] = 0x6795, --(枕) [0x2B4E] = 0x9BAA, --(鮪) - [0x2B4F] = 0x67FE, --(柾) + [0x2B4F] = 0x67FE, --(柾) [0x2B50] = 0x9C52, --(鱒) - [0x2B51] = 0x685D, --(桝) + [0x2B51] = 0x685D, --(桝) [0x2B52] = 0x4EA6, --(亦) - [0x2B53] = 0x4FE3, --(俣) + [0x2B53] = 0x4FE3, --(俣) [0x2B54] = 0x53C8, --(又) - [0x2B55] = 0x62B9, --(抹) + [0x2B55] = 0x62B9, --(抹) [0x2B56] = 0x672B, --(末) - [0x2B57] = 0x6CAB, --(沫) + [0x2B57] = 0x6CAB, --(沫) [0x2B58] = 0x8FC4, --(迄) - [0x2B59] = 0x4FAD, --(侭) + [0x2B59] = 0x4FAD, --(侭) [0x2B5A] = 0x7E6D, --(繭) - [0x2B5B] = 0x9EBF, --(麿) + [0x2B5B] = 0x9EBF, --(麿) [0x2B5C] = 0x4E07, --(万) - [0x2B5D] = 0x6162, --(慢) + [0x2B5D] = 0x6162, --(慢) [0x2B5E] = 0x6E80, --(満) - [0x2C01] = 0x6F2B, --(漫) + [0x2C01] = 0x6F2B, --(漫) [0x2C02] = 0x8513, --(蔓) - [0x2C03] = 0x5473, --(味) + [0x2C03] = 0x5473, --(味) [0x2C04] = 0x672A, --(未) - [0x2C05] = 0x9B45, --(魅) + [0x2C05] = 0x9B45, --(魅) [0x2C06] = 0x5DF3, --(巳) - [0x2C07] = 0x7B95, --(箕) + [0x2C07] = 0x7B95, --(箕) [0x2C08] = 0x5CAC, --(岬) - [0x2C09] = 0x5BC6, --(密) + [0x2C09] = 0x5BC6, --(密) [0x2C0A] = 0x871C, --(蜜) - [0x2C0B] = 0x6E4A, --(湊) + [0x2C0B] = 0x6E4A, --(湊) [0x2C0C] = 0x84D1, --(蓑) - [0x2C0D] = 0x7A14, --(稔) + [0x2C0D] = 0x7A14, --(稔) [0x2C0E] = 0x8108, --(脈) - [0x2C0F] = 0x5999, --(妙) + [0x2C0F] = 0x5999, --(妙) [0x2C10] = 0x7C8D, --(粍) - [0x2C11] = 0x6C11, --(民) + [0x2C11] = 0x6C11, --(民) [0x2C12] = 0x7720, --(眠) - [0x2C13] = 0x52D9, --(務) + [0x2C13] = 0x52D9, --(務) [0x2C14] = 0x5922, --(夢) - [0x2C15] = 0x7121, --(無) + [0x2C15] = 0x7121, --(無) [0x2C16] = 0x725F, --(牟) - [0x2C17] = 0x77DB, --(矛) + [0x2C17] = 0x77DB, --(矛) [0x2C18] = 0x9727, --(霧) - [0x2C19] = 0x9D61, --(鵡) + [0x2C19] = 0x9D61, --(鵡) [0x2C1A] = 0x690B, --(椋) - [0x2C1B] = 0x5A7F, --(婿) + [0x2C1B] = 0x5A7F, --(婿) [0x2C1C] = 0x5A18, --(娘) - [0x2C1D] = 0x51A5, --(冥) + [0x2C1D] = 0x51A5, --(冥) [0x2C1E] = 0x540D, --(名) - [0x2C1F] = 0x547D, --(命) + [0x2C1F] = 0x547D, --(命) [0x2C20] = 0x660E, --(明) - [0x2C21] = 0x76DF, --(盟) + [0x2C21] = 0x76DF, --(盟) [0x2C22] = 0x8FF7, --(迷) - [0x2C23] = 0x9298, --(銘) + [0x2C23] = 0x9298, --(銘) [0x2C24] = 0x9CF4, --(鳴) - [0x2C25] = 0x59EA, --(姪) + [0x2C25] = 0x59EA, --(姪) [0x2C26] = 0x725D, --(牝) - [0x2C27] = 0x6EC5, --(滅) + [0x2C27] = 0x6EC5, --(滅) [0x2C28] = 0x514D, --(免) - [0x2C29] = 0x68C9, --(棉) + [0x2C29] = 0x68C9, --(棉) [0x2C2A] = 0x7DBF, --(綿) - [0x2C2B] = 0x7DEC, --(緬) + [0x2C2B] = 0x7DEC, --(緬) [0x2C2C] = 0x9762, --(面) - [0x2C2D] = 0x9EBA, --(麺) + [0x2C2D] = 0x9EBA, --(麺) [0x2C2E] = 0x6478, --(摸) - [0x2C2F] = 0x6A21, --(模) + [0x2C2F] = 0x6A21, --(模) [0x2C30] = 0x8302, --(茂) - [0x2C31] = 0x5984, --(妄) + [0x2C31] = 0x5984, --(妄) [0x2C32] = 0x5B5F, --(孟) - [0x2C33] = 0x6BDB, --(毛) + [0x2C33] = 0x6BDB, --(毛) [0x2C34] = 0x731B, --(猛) - [0x2C35] = 0x76F2, --(盲) + [0x2C35] = 0x76F2, --(盲) [0x2C36] = 0x7DB2, --(網) - [0x2C37] = 0x8017, --(耗) + [0x2C37] = 0x8017, --(耗) [0x2C38] = 0x8499, --(蒙) - [0x2C39] = 0x5132, --(儲) + [0x2C39] = 0x5132, --(儲) [0x2C3A] = 0x6728, --(木) - [0x2C3B] = 0x9ED9, --(黙) + [0x2C3B] = 0x9ED9, --(黙) [0x2C3C] = 0x76EE, --(目) - [0x2C3D] = 0x6762, --(杢) + [0x2C3D] = 0x6762, --(杢) [0x2C3E] = 0x52FF, --(勿) - [0x2C3F] = 0x9905, --(餅) + [0x2C3F] = 0x9905, --(餅) [0x2C40] = 0x5C24, --(尤) - [0x2C41] = 0x623B, --(戻) + [0x2C41] = 0x623B, --(戻) [0x2C42] = 0x7C7E, --(籾) - [0x2C43] = 0x8CB0, --(貰) + [0x2C43] = 0x8CB0, --(貰) [0x2C44] = 0x554F, --(問) - [0x2C45] = 0x60B6, --(悶) + [0x2C45] = 0x60B6, --(悶) [0x2C46] = 0x7D0B, --(紋) - [0x2C47] = 0x9580, --(門) + [0x2C47] = 0x9580, --(門) [0x2C48] = 0x5301, --(匁) - [0x2C49] = 0x4E5F, --(也) + [0x2C49] = 0x4E5F, --(也) [0x2C4A] = 0x51B6, --(冶) - [0x2C4B] = 0x591C, --(夜) + [0x2C4B] = 0x591C, --(夜) [0x2C4C] = 0x723A, --(爺) - [0x2C4D] = 0x8036, --(耶) + [0x2C4D] = 0x8036, --(耶) [0x2C4E] = 0x91CE, --(野) - [0x2C4F] = 0x5F25, --(弥) + [0x2C4F] = 0x5F25, --(弥) [0x2C50] = 0x77E2, --(矢) - [0x2C51] = 0x5384, --(厄) + [0x2C51] = 0x5384, --(厄) [0x2C52] = 0x5F79, --(役) - [0x2C53] = 0x7D04, --(約) + [0x2C53] = 0x7D04, --(約) [0x2C54] = 0x85AC, --(薬) - [0x2C55] = 0x8A33, --(訳) + [0x2C55] = 0x8A33, --(訳) [0x2C56] = 0x8E8D, --(躍) - [0x2C57] = 0x9756, --(靖) + [0x2C57] = 0x9756, --(靖) [0x2C58] = 0x67F3, --(柳) - [0x2C59] = 0x85AE, --(薮) + [0x2C59] = 0x85AE, --(薮) [0x2C5A] = 0x9453, --(鑓) - [0x2C5B] = 0x6109, --(愉) + [0x2C5B] = 0x6109, --(愉) [0x2C5C] = 0x6108, --(愈) - [0x2C5D] = 0x6CB9, --(油) + [0x2C5D] = 0x6CB9, --(油) [0x2C5E] = 0x7652, --(癒) - [0x2D01] = 0x8AED, --(諭) + [0x2D01] = 0x8AED, --(諭) [0x2D02] = 0x8F38, --(輸) - [0x2D03] = 0x552F, --(唯) + [0x2D03] = 0x552F, --(唯) [0x2D04] = 0x4F51, --(佑) - [0x2D05] = 0x512A, --(優) + [0x2D05] = 0x512A, --(優) [0x2D06] = 0x52C7, --(勇) - [0x2D07] = 0x53CB, --(友) + [0x2D07] = 0x53CB, --(友) [0x2D08] = 0x5BA5, --(宥) - [0x2D09] = 0x5E7D, --(幽) + [0x2D09] = 0x5E7D, --(幽) [0x2D0A] = 0x60A0, --(悠) - [0x2D0B] = 0x6182, --(憂) + [0x2D0B] = 0x6182, --(憂) [0x2D0C] = 0x63D6, --(揖) - [0x2D0D] = 0x6709, --(有) + [0x2D0D] = 0x6709, --(有) [0x2D0E] = 0x67DA, --(柚) - [0x2D0F] = 0x6E67, --(湧) + [0x2D0F] = 0x6E67, --(湧) [0x2D10] = 0x6D8C, --(涌) - [0x2D11] = 0x7336, --(猶) + [0x2D11] = 0x7336, --(猶) [0x2D12] = 0x7337, --(猷) - [0x2D13] = 0x7531, --(由) + [0x2D13] = 0x7531, --(由) [0x2D14] = 0x7950, --(祐) - [0x2D15] = 0x88D5, --(裕) + [0x2D15] = 0x88D5, --(裕) [0x2D16] = 0x8A98, --(誘) - [0x2D17] = 0x904A, --(遊) + [0x2D17] = 0x904A, --(遊) [0x2D18] = 0x9091, --(邑) - [0x2D19] = 0x90F5, --(郵) + [0x2D19] = 0x90F5, --(郵) [0x2D1A] = 0x96C4, --(雄) - [0x2D1B] = 0x878D, --(融) + [0x2D1B] = 0x878D, --(融) [0x2D1C] = 0x5915, --(夕) - [0x2D1D] = 0x4E88, --(予) + [0x2D1D] = 0x4E88, --(予) [0x2D1E] = 0x4F59, --(余) - [0x2D1F] = 0x4E0E, --(与) + [0x2D1F] = 0x4E0E, --(与) [0x2D20] = 0x8A89, --(誉) - [0x2D21] = 0x8F3F, --(輿) + [0x2D21] = 0x8F3F, --(輿) [0x2D22] = 0x9810, --(預) - [0x2D23] = 0x50AD, --(傭) + [0x2D23] = 0x50AD, --(傭) [0x2D24] = 0x5E7C, --(幼) - [0x2D25] = 0x5996, --(妖) + [0x2D25] = 0x5996, --(妖) [0x2D26] = 0x5BB9, --(容) - [0x2D27] = 0x5EB8, --(庸) + [0x2D27] = 0x5EB8, --(庸) [0x2D28] = 0x63DA, --(揚) - [0x2D29] = 0x63FA, --(揺) + [0x2D29] = 0x63FA, --(揺) [0x2D2A] = 0x64C1, --(擁) - [0x2D2B] = 0x66DC, --(曜) + [0x2D2B] = 0x66DC, --(曜) [0x2D2C] = 0x694A, --(楊) - [0x2D2D] = 0x69D8, --(様) + [0x2D2D] = 0x69D8, --(様) [0x2D2E] = 0x6D0B, --(洋) - [0x2D2F] = 0x6EB6, --(溶) + [0x2D2F] = 0x6EB6, --(溶) [0x2D30] = 0x7194, --(熔) - [0x2D31] = 0x7528, --(用) + [0x2D31] = 0x7528, --(用) [0x2D32] = 0x7AAF, --(窯) - [0x2D33] = 0x7F8A, --(羊) + [0x2D33] = 0x7F8A, --(羊) [0x2D34] = 0x8000, --(耀) - [0x2D35] = 0x8449, --(葉) + [0x2D35] = 0x8449, --(葉) [0x2D36] = 0x84C9, --(蓉) - [0x2D37] = 0x8981, --(要) + [0x2D37] = 0x8981, --(要) [0x2D38] = 0x8B21, --(謡) - [0x2D39] = 0x8E0A, --(踊) + [0x2D39] = 0x8E0A, --(踊) [0x2D3A] = 0x9065, --(遥) - [0x2D3B] = 0x967D, --(陽) + [0x2D3B] = 0x967D, --(陽) [0x2D3C] = 0x990A, --(養) - [0x2D3D] = 0x617E, --(慾) + [0x2D3D] = 0x617E, --(慾) [0x2D3E] = 0x6291, --(抑) - [0x2D3F] = 0x6B32, --(欲) + [0x2D3F] = 0x6B32, --(欲) [0x2D40] = 0x6C83, --(沃) - [0x2D41] = 0x6D74, --(浴) + [0x2D41] = 0x6D74, --(浴) [0x2D42] = 0x7FCC, --(翌) - [0x2D43] = 0x7FFC, --(翼) + [0x2D43] = 0x7FFC, --(翼) [0x2D44] = 0x6DC0, --(淀) - [0x2D45] = 0x7F85, --(羅) + [0x2D45] = 0x7F85, --(羅) [0x2D46] = 0x87BA, --(螺) - [0x2D47] = 0x88F8, --(裸) + [0x2D47] = 0x88F8, --(裸) [0x2D48] = 0x6765, --(来) - [0x2D49] = 0x83B1, --(莱) + [0x2D49] = 0x83B1, --(莱) [0x2D4A] = 0x983C, --(頼) - [0x2D4B] = 0x96F7, --(雷) + [0x2D4B] = 0x96F7, --(雷) [0x2D4C] = 0x6D1B, --(洛) - [0x2D4D] = 0x7D61, --(絡) + [0x2D4D] = 0x7D61, --(絡) [0x2D4E] = 0x843D, --(落) - [0x2D4F] = 0x916A, --(酪) + [0x2D4F] = 0x916A, --(酪) [0x2D50] = 0x4E71, --(乱) - [0x2D51] = 0x5375, --(卵) + [0x2D51] = 0x5375, --(卵) [0x2D52] = 0x5D50, --(嵐) - [0x2D53] = 0x6B04, --(欄) + [0x2D53] = 0x6B04, --(欄) [0x2D54] = 0x6FEB, --(濫) - [0x2D55] = 0x85CD, --(藍) + [0x2D55] = 0x85CD, --(藍) [0x2D56] = 0x862D, --(蘭) - [0x2D57] = 0x89A7, --(覧) + [0x2D57] = 0x89A7, --(覧) [0x2D58] = 0x5229, --(利) - [0x2D59] = 0x540F, --(吏) + [0x2D59] = 0x540F, --(吏) [0x2D5A] = 0x5C65, --(履) - [0x2D5B] = 0x674E, --(李) + [0x2D5B] = 0x674E, --(李) [0x2D5C] = 0x68A8, --(梨) - [0x2D5D] = 0x7406, --(理) + [0x2D5D] = 0x7406, --(理) [0x2D5E] = 0x7483, --(璃) - [0x2E01] = 0x75E2, --(痢) + [0x2E01] = 0x75E2, --(痢) [0x2E02] = 0x88CF, --(裏) - [0x2E03] = 0x88E1, --(裡) + [0x2E03] = 0x88E1, --(裡) [0x2E04] = 0x91CC, --(里) - [0x2E05] = 0x96E2, --(離) + [0x2E05] = 0x96E2, --(離) [0x2E06] = 0x9678, --(陸) - [0x2E07] = 0x5F8B, --(律) + [0x2E07] = 0x5F8B, --(律) [0x2E08] = 0x7387, --(率) - [0x2E09] = 0x7ACB, --(立) + [0x2E09] = 0x7ACB, --(立) [0x2E0A] = 0x844E, --(葎) - [0x2E0B] = 0x63A0, --(掠) + [0x2E0B] = 0x63A0, --(掠) [0x2E0C] = 0x7565, --(略) - [0x2E0D] = 0x5289, --(劉) + [0x2E0D] = 0x5289, --(劉) [0x2E0E] = 0x6D41, --(流) - [0x2E0F] = 0x6E9C, --(溜) + [0x2E0F] = 0x6E9C, --(溜) [0x2E10] = 0x7409, --(琉) - [0x2E11] = 0x7559, --(留) + [0x2E11] = 0x7559, --(留) [0x2E12] = 0x786B, --(硫) - [0x2E13] = 0x7C92, --(粒) + [0x2E13] = 0x7C92, --(粒) [0x2E14] = 0x9686, --(隆) - [0x2E15] = 0x7ADC, --(竜) + [0x2E15] = 0x7ADC, --(竜) [0x2E16] = 0x9F8D, --(龍) - [0x2E17] = 0x4FB6, --(侶) + [0x2E17] = 0x4FB6, --(侶) [0x2E18] = 0x616E, --(慮) - [0x2E19] = 0x65C5, --(旅) + [0x2E19] = 0x65C5, --(旅) [0x2E1A] = 0x865C, --(虜) - [0x2E1B] = 0x4E86, --(了) + [0x2E1B] = 0x4E86, --(了) [0x2E1C] = 0x4EAE, --(亮) - [0x2E1D] = 0x50DA, --(僚) + [0x2E1D] = 0x50DA, --(僚) [0x2E1E] = 0x4E21, --(両) - [0x2E1F] = 0x51CC, --(凌) + [0x2E1F] = 0x51CC, --(凌) [0x2E20] = 0x5BEE, --(寮) - [0x2E21] = 0x6599, --(料) + [0x2E21] = 0x6599, --(料) [0x2E22] = 0x6881, --(梁) - [0x2E23] = 0x6DBC, --(涼) + [0x2E23] = 0x6DBC, --(涼) [0x2E24] = 0x731F, --(猟) - [0x2E25] = 0x7642, --(療) + [0x2E25] = 0x7642, --(療) [0x2E26] = 0x77AD, --(瞭) - [0x2E27] = 0x7A1C, --(稜) + [0x2E27] = 0x7A1C, --(稜) [0x2E28] = 0x7CE7, --(糧) - [0x2E29] = 0x826F, --(良) + [0x2E29] = 0x826F, --(良) [0x2E2A] = 0x8AD2, --(諒) - [0x2E2B] = 0x907C, --(遼) + [0x2E2B] = 0x907C, --(遼) [0x2E2C] = 0x91CF, --(量) - [0x2E2D] = 0x9675, --(陵) + [0x2E2D] = 0x9675, --(陵) [0x2E2E] = 0x9818, --(領) - [0x2E2F] = 0x529B, --(力) + [0x2E2F] = 0x529B, --(力) [0x2E30] = 0x7DD1, --(緑) - [0x2E31] = 0x502B, --(倫) + [0x2E31] = 0x502B, --(倫) [0x2E32] = 0x5398, --(厘) - [0x2E33] = 0x6797, --(林) + [0x2E33] = 0x6797, --(林) [0x2E34] = 0x6DCB, --(淋) - [0x2E35] = 0x71D0, --(燐) + [0x2E35] = 0x71D0, --(燐) [0x2E36] = 0x7433, --(琳) - [0x2E37] = 0x81E8, --(臨) + [0x2E37] = 0x81E8, --(臨) [0x2E38] = 0x8F2A, --(輪) - [0x2E39] = 0x96A3, --(隣) + [0x2E39] = 0x96A3, --(隣) [0x2E3A] = 0x9C57, --(鱗) - [0x2E3B] = 0x9E9F, --(麟) + [0x2E3B] = 0x9E9F, --(麟) [0x2E3C] = 0x7460, --(瑠) - [0x2E3D] = 0x5841, --(塁) + [0x2E3D] = 0x5841, --(塁) [0x2E3E] = 0x6D99, --(涙) - [0x2E3F] = 0x7D2F, --(累) + [0x2E3F] = 0x7D2F, --(累) [0x2E40] = 0x985E, --(類) - [0x2E41] = 0x4EE4, --(令) + [0x2E41] = 0x4EE4, --(令) [0x2E42] = 0x4F36, --(伶) - [0x2E43] = 0x4F8B, --(例) + [0x2E43] = 0x4F8B, --(例) [0x2E44] = 0x51B7, --(冷) - [0x2E45] = 0x52B1, --(励) + [0x2E45] = 0x52B1, --(励) [0x2E46] = 0x5DBA, --(嶺) - [0x2E47] = 0x601C, --(怜) + [0x2E47] = 0x601C, --(怜) [0x2E48] = 0x73B2, --(玲) - [0x2E49] = 0x793C, --(礼) + [0x2E49] = 0x793C, --(礼) [0x2E4A] = 0x82D3, --(苓) - [0x2E4B] = 0x9234, --(鈴) + [0x2E4B] = 0x9234, --(鈴) [0x2E4C] = 0x96B7, --(隷) - [0x2E4D] = 0x96F6, --(零) + [0x2E4D] = 0x96F6, --(零) [0x2E4E] = 0x970A, --(霊) - [0x2E4F] = 0x9E97, --(麗) + [0x2E4F] = 0x9E97, --(麗) [0x2E50] = 0x9F62, --(齢) - [0x2E51] = 0x66A6, --(暦) + [0x2E51] = 0x66A6, --(暦) [0x2E52] = 0x6B74, --(歴) - [0x2E53] = 0x5217, --(列) + [0x2E53] = 0x5217, --(列) [0x2E54] = 0x52A3, --(劣) - [0x2E55] = 0x70C8, --(烈) + [0x2E55] = 0x70C8, --(烈) [0x2E56] = 0x88C2, --(裂) - [0x2E57] = 0x5EC9, --(廉) + [0x2E57] = 0x5EC9, --(廉) [0x2E58] = 0x604B, --(恋) - [0x2E59] = 0x6190, --(憐) + [0x2E59] = 0x6190, --(憐) [0x2E5A] = 0x6F23, --(漣) - [0x2E5B] = 0x7149, --(煉) + [0x2E5B] = 0x7149, --(煉) [0x2E5C] = 0x7C3E, --(簾) - [0x2E5D] = 0x7DF4, --(練) + [0x2E5D] = 0x7DF4, --(練) [0x2E5E] = 0x806F, --(聯) - [0x2F01] = 0x84EE, --(蓮) + [0x2F01] = 0x84EE, --(蓮) [0x2F02] = 0x9023, --(連) - [0x2F03] = 0x932C, --(錬) + [0x2F03] = 0x932C, --(錬) [0x2F04] = 0x5442, --(呂) - [0x2F05] = 0x9B6F, --(魯) + [0x2F05] = 0x9B6F, --(魯) [0x2F06] = 0x6AD3, --(櫓) - [0x2F07] = 0x7089, --(炉) + [0x2F07] = 0x7089, --(炉) [0x2F08] = 0x8CC2, --(賂) - [0x2F09] = 0x8DEF, --(路) + [0x2F09] = 0x8DEF, --(路) [0x2F0A] = 0x9732, --(露) - [0x2F0B] = 0x52B4, --(労) + [0x2F0B] = 0x52B4, --(労) [0x2F0C] = 0x5A41, --(婁) - [0x2F0D] = 0x5ECA, --(廊) + [0x2F0D] = 0x5ECA, --(廊) [0x2F0E] = 0x5F04, --(弄) - [0x2F0F] = 0x6717, --(朗) + [0x2F0F] = 0x6717, --(朗) [0x2F10] = 0x697C, --(楼) - [0x2F11] = 0x6994, --(榔) + [0x2F11] = 0x6994, --(榔) [0x2F12] = 0x6D6A, --(浪) - [0x2F13] = 0x6F0F, --(漏) + [0x2F13] = 0x6F0F, --(漏) [0x2F14] = 0x7262, --(牢) - [0x2F15] = 0x72FC, --(狼) + [0x2F15] = 0x72FC, --(狼) [0x2F16] = 0x7BED, --(篭) - [0x2F17] = 0x8001, --(老) + [0x2F17] = 0x8001, --(老) [0x2F18] = 0x807E, --(聾) - [0x2F19] = 0x874B, --(蝋) + [0x2F19] = 0x874B, --(蝋) [0x2F1A] = 0x90CE, --(郎) - [0x2F1B] = 0x516D, --(六) + [0x2F1B] = 0x516D, --(六) [0x2F1C] = 0x9E93, --(麓) - [0x2F1D] = 0x7984, --(禄) + [0x2F1D] = 0x7984, --(禄) [0x2F1E] = 0x808B, --(肋) - [0x2F1F] = 0x9332, --(録) + [0x2F1F] = 0x9332, --(録) [0x2F20] = 0x8AD6, --(論) - [0x2F21] = 0x502D, --(倭) + [0x2F21] = 0x502D, --(倭) [0x2F22] = 0x548C, --(和) - [0x2F23] = 0x8A71, --(話) + [0x2F23] = 0x8A71, --(話) [0x2F24] = 0x6B6A, --(歪) - [0x2F25] = 0x8CC4, --(賄) + [0x2F25] = 0x8CC4, --(賄) [0x2F26] = 0x8107, --(脇) - [0x2F27] = 0x60D1, --(惑) + [0x2F27] = 0x60D1, --(惑) [0x2F28] = 0x67A0, --(枠) - [0x2F29] = 0x9DF2, --(鷲) + [0x2F29] = 0x9DF2, --(鷲) [0x2F2A] = 0x4E99, --(亙) - [0x2F2B] = 0x4E98, --(亘) + [0x2F2B] = 0x4E98, --(亘) [0x2F2C] = 0x9C10, --(鰐) - [0x2F2D] = 0x8A6B, --(詫) + [0x2F2D] = 0x8A6B, --(詫) [0x2F2E] = 0x85C1, --(藁) - [0x2F2F] = 0x8568, --(蕨) + [0x2F2F] = 0x8568, --(蕨) [0x2F30] = 0x6900, --(椀) - [0x2F31] = 0x6E7E, --(湾) + [0x2F31] = 0x6E7E, --(湾) [0x2F32] = 0x7897, --(碗) - [0x2F33] = 0x8155, --(腕) + [0x2F33] = 0x8155, --(腕) [0x3001] = 0x5F0C, --(弌) - [0x3002] = 0x4E10, --(丐) + [0x3002] = 0x4E10, --(丐) [0x3003] = 0x4E15, --(丕) - [0x3004] = 0x4E2A, --(个) + [0x3004] = 0x4E2A, --(个) [0x3005] = 0x4E31, --(丱) - [0x3006] = 0x4E36, --(丶) + [0x3006] = 0x4E36, --(丶) [0x3007] = 0x4E3C, --(丼) - [0x3008] = 0x4E3F, --(丿) + [0x3008] = 0x4E3F, --(丿) [0x3009] = 0x4E42, --(乂) - [0x300A] = 0x4E56, --(乖) + [0x300A] = 0x4E56, --(乖) [0x300B] = 0x4E58, --(乘) - [0x300C] = 0x4E82, --(亂) + [0x300C] = 0x4E82, --(亂) [0x300D] = 0x4E85, --(亅) - [0x300E] = 0x8C6B, --(豫) + [0x300E] = 0x8C6B, --(豫) [0x300F] = 0x4E8A, --(亊) - [0x3010] = 0x8212, --(舒) + [0x3010] = 0x8212, --(舒) [0x3011] = 0x5F0D, --(弍) - [0x3012] = 0x4E8E, --(于) + [0x3012] = 0x4E8E, --(于) [0x3013] = 0x4E9E, --(亞) - [0x3014] = 0x4E9F, --(亟) + [0x3014] = 0x4E9F, --(亟) [0x3015] = 0x4EA0, --(亠) - [0x3016] = 0x4EA2, --(亢) + [0x3016] = 0x4EA2, --(亢) [0x3017] = 0x4EB0, --(亰) - [0x3018] = 0x4EB3, --(亳) + [0x3018] = 0x4EB3, --(亳) [0x3019] = 0x4EB6, --(亶) - [0x301A] = 0x4ECE, --(从) + [0x301A] = 0x4ECE, --(从) [0x301B] = 0x4ECD, --(仍) - [0x301C] = 0x4EC4, --(仄) + [0x301C] = 0x4EC4, --(仄) [0x301D] = 0x4EC6, --(仆) - [0x301E] = 0x4EC2, --(仂) + [0x301E] = 0x4EC2, --(仂) [0x301F] = 0x4ED7, --(仗) - [0x3020] = 0x4EDE, --(仞) + [0x3020] = 0x4EDE, --(仞) [0x3021] = 0x4EED, --(仭) - [0x3022] = 0x4EDF, --(仟) + [0x3022] = 0x4EDF, --(仟) [0x3023] = 0x4EF7, --(价) - [0x3024] = 0x4F09, --(伉) + [0x3024] = 0x4F09, --(伉) [0x3025] = 0x4F5A, --(佚) - [0x3026] = 0x4F30, --(估) + [0x3026] = 0x4F30, --(估) [0x3027] = 0x4F5B, --(佛) - [0x3028] = 0x4F5D, --(佝) + [0x3028] = 0x4F5D, --(佝) [0x3029] = 0x4F57, --(佗) - [0x302A] = 0x4F47, --(佇) + [0x302A] = 0x4F47, --(佇) [0x302B] = 0x4F76, --(佶) - [0x302C] = 0x4F88, --(侈) + [0x302C] = 0x4F88, --(侈) [0x302D] = 0x4F8F, --(侏) - [0x302E] = 0x4F98, --(侘) + [0x302E] = 0x4F98, --(侘) [0x302F] = 0x4F7B, --(佻) - [0x3030] = 0x4F69, --(佩) + [0x3030] = 0x4F69, --(佩) [0x3031] = 0x4F70, --(佰) - [0x3032] = 0x4F91, --(侑) + [0x3032] = 0x4F91, --(侑) [0x3033] = 0x4F6F, --(佯) - [0x3034] = 0x4F86, --(來) + [0x3034] = 0x4F86, --(來) [0x3035] = 0x4F96, --(侖) - [0x3036] = 0x5118, --(儘) + [0x3036] = 0x5118, --(儘) [0x3037] = 0x4FD4, --(俔) - [0x3038] = 0x4FDF, --(俟) + [0x3038] = 0x4FDF, --(俟) [0x3039] = 0x4FCE, --(俎) - [0x303A] = 0x4FD8, --(俘) + [0x303A] = 0x4FD8, --(俘) [0x303B] = 0x4FDB, --(俛) - [0x303C] = 0x4FD1, --(俑) + [0x303C] = 0x4FD1, --(俑) [0x303D] = 0x4FDA, --(俚) - [0x303E] = 0x4FD0, --(俐) + [0x303E] = 0x4FD0, --(俐) [0x303F] = 0x4FE4, --(俤) - [0x3040] = 0x4FE5, --(俥) + [0x3040] = 0x4FE5, --(俥) [0x3041] = 0x501A, --(倚) - [0x3042] = 0x5028, --(倨) + [0x3042] = 0x5028, --(倨) [0x3043] = 0x5014, --(倔) - [0x3044] = 0x502A, --(倪) + [0x3044] = 0x502A, --(倪) [0x3045] = 0x5025, --(倥) - [0x3046] = 0x5005, --(倅) + [0x3046] = 0x5005, --(倅) [0x3047] = 0x4F1C, --(伜) - [0x3048] = 0x4FF6, --(俶) + [0x3048] = 0x4FF6, --(俶) [0x3049] = 0x5021, --(倡) - [0x304A] = 0x5029, --(倩) + [0x304A] = 0x5029, --(倩) [0x304B] = 0x502C, --(倬) - [0x304C] = 0x4FFE, --(俾) + [0x304C] = 0x4FFE, --(俾) [0x304D] = 0x4FEF, --(俯) - [0x304E] = 0x5011, --(們) + [0x304E] = 0x5011, --(們) [0x304F] = 0x5006, --(倆) - [0x3050] = 0x5043, --(偃) + [0x3050] = 0x5043, --(偃) [0x3051] = 0x5047, --(假) - [0x3052] = 0x6703, --(會) + [0x3052] = 0x6703, --(會) [0x3053] = 0x5055, --(偕) - [0x3054] = 0x5050, --(偐) + [0x3054] = 0x5050, --(偐) [0x3055] = 0x5048, --(偈) - [0x3056] = 0x505A, --(做) + [0x3056] = 0x505A, --(做) [0x3057] = 0x5056, --(偖) - [0x3058] = 0x506C, --(偬) + [0x3058] = 0x506C, --(偬) [0x3059] = 0x5078, --(偸) - [0x305A] = 0x5080, --(傀) + [0x305A] = 0x5080, --(傀) [0x305B] = 0x509A, --(傚) - [0x305C] = 0x5085, --(傅) + [0x305C] = 0x5085, --(傅) [0x305D] = 0x50B4, --(傴) - [0x305E] = 0x50B2, --(傲) + [0x305E] = 0x50B2, --(傲) [0x3101] = 0x50C9, --(僉) - [0x3102] = 0x50CA, --(僊) + [0x3102] = 0x50CA, --(僊) [0x3103] = 0x50B3, --(傳) - [0x3104] = 0x50C2, --(僂) + [0x3104] = 0x50C2, --(僂) [0x3105] = 0x50D6, --(僖) - [0x3106] = 0x50DE, --(僞) + [0x3106] = 0x50DE, --(僞) [0x3107] = 0x50E5, --(僥) - [0x3108] = 0x50ED, --(僭) + [0x3108] = 0x50ED, --(僭) [0x3109] = 0x50E3, --(僣) - [0x310A] = 0x50EE, --(僮) + [0x310A] = 0x50EE, --(僮) [0x310B] = 0x50F9, --(價) - [0x310C] = 0x50F5, --(僵) + [0x310C] = 0x50F5, --(僵) [0x310D] = 0x5109, --(儉) - [0x310E] = 0x5101, --(儁) + [0x310E] = 0x5101, --(儁) [0x310F] = 0x5102, --(儂) - [0x3110] = 0x5116, --(儖) + [0x3110] = 0x5116, --(儖) [0x3111] = 0x5115, --(儕) - [0x3112] = 0x5114, --(儔) + [0x3112] = 0x5114, --(儔) [0x3113] = 0x511A, --(儚) - [0x3114] = 0x5121, --(儡) + [0x3114] = 0x5121, --(儡) [0x3115] = 0x513A, --(儺) - [0x3116] = 0x5137, --(儷) + [0x3116] = 0x5137, --(儷) [0x3117] = 0x513C, --(儼) - [0x3118] = 0x513B, --(儻) + [0x3118] = 0x513B, --(儻) [0x3119] = 0x513F, --(儿) - [0x311A] = 0x5140, --(兀) + [0x311A] = 0x5140, --(兀) [0x311B] = 0x5152, --(兒) - [0x311C] = 0x514C, --(兌) + [0x311C] = 0x514C, --(兌) [0x311D] = 0x5154, --(兔) - [0x311E] = 0x5162, --(兢) + [0x311E] = 0x5162, --(兢) [0x311F] = 0x7AF8, --(竸) - [0x3120] = 0x5169, --(兩) + [0x3120] = 0x5169, --(兩) [0x3121] = 0x516A, --(兪) - [0x3122] = 0x516E, --(兮) + [0x3122] = 0x516E, --(兮) [0x3123] = 0x5180, --(冀) - [0x3124] = 0x5182, --(冂) + [0x3124] = 0x5182, --(冂) [0x3125] = 0x56D8, --(囘) - [0x3126] = 0x518C, --(册) + [0x3126] = 0x518C, --(册) [0x3127] = 0x5189, --(冉) - [0x3128] = 0x518F, --(冏) + [0x3128] = 0x518F, --(冏) [0x3129] = 0x5191, --(冑) - [0x312A] = 0x5193, --(冓) + [0x312A] = 0x5193, --(冓) [0x312B] = 0x5195, --(冕) - [0x312C] = 0x5196, --(冖) + [0x312C] = 0x5196, --(冖) [0x312D] = 0x51A4, --(冤) - [0x312E] = 0x51A6, --(冦) + [0x312E] = 0x51A6, --(冦) [0x312F] = 0x51A2, --(冢) - [0x3130] = 0x51A9, --(冩) + [0x3130] = 0x51A9, --(冩) [0x3131] = 0x51AA, --(冪) - [0x3132] = 0x51AB, --(冫) + [0x3132] = 0x51AB, --(冫) [0x3133] = 0x51B3, --(决) - [0x3134] = 0x51B1, --(冱) + [0x3134] = 0x51B1, --(冱) [0x3135] = 0x51B2, --(冲) - [0x3136] = 0x51B0, --(冰) + [0x3136] = 0x51B0, --(冰) [0x3137] = 0x51B5, --(况) - [0x3138] = 0x51BD, --(冽) + [0x3138] = 0x51BD, --(冽) [0x3139] = 0x51C5, --(凅) - [0x313A] = 0x51C9, --(凉) + [0x313A] = 0x51C9, --(凉) [0x313B] = 0x51DB, --(凛) - [0x313C] = 0x51E0, --(几) + [0x313C] = 0x51E0, --(几) [0x313D] = 0x8655, --(處) - [0x313E] = 0x51E9, --(凩) + [0x313E] = 0x51E9, --(凩) [0x313F] = 0x51ED, --(凭) - [0x3140] = 0x51F0, --(凰) + [0x3140] = 0x51F0, --(凰) [0x3141] = 0x51F5, --(凵) - [0x3142] = 0x51FE, --(凾) + [0x3142] = 0x51FE, --(凾) [0x3143] = 0x5204, --(刄) - [0x3144] = 0x520B, --(刋) + [0x3144] = 0x520B, --(刋) [0x3145] = 0x5214, --(刔) - [0x3146] = 0x520E, --(刎) + [0x3146] = 0x520E, --(刎) [0x3147] = 0x5227, --(刧) - [0x3148] = 0x522A, --(刪) + [0x3148] = 0x522A, --(刪) [0x3149] = 0x522E, --(刮) - [0x314A] = 0x5233, --(刳) + [0x314A] = 0x5233, --(刳) [0x314B] = 0x5239, --(刹) - [0x314C] = 0x524F, --(剏) + [0x314C] = 0x524F, --(剏) [0x314D] = 0x5244, --(剄) - [0x314E] = 0x524B, --(剋) + [0x314E] = 0x524B, --(剋) [0x314F] = 0x524C, --(剌) - [0x3150] = 0x525E, --(剞) + [0x3150] = 0x525E, --(剞) [0x3151] = 0x5254, --(剔) - [0x3152] = 0x526A, --(剪) + [0x3152] = 0x526A, --(剪) [0x3153] = 0x5274, --(剴) - [0x3154] = 0x5269, --(剩) + [0x3154] = 0x5269, --(剩) [0x3155] = 0x5273, --(剳) - [0x3156] = 0x527F, --(剿) + [0x3156] = 0x527F, --(剿) [0x3157] = 0x527D, --(剽) - [0x3158] = 0x528D, --(劍) + [0x3158] = 0x528D, --(劍) [0x3159] = 0x5294, --(劔) - [0x315A] = 0x5292, --(劒) + [0x315A] = 0x5292, --(劒) [0x315B] = 0x5271, --(剱) - [0x315C] = 0x5288, --(劈) + [0x315C] = 0x5288, --(劈) [0x315D] = 0x5291, --(劑) - [0x315E] = 0x8FA8, --(辨) + [0x315E] = 0x8FA8, --(辨) [0x3201] = 0x8FA7, --(辧) - [0x3202] = 0x52AC, --(劬) + [0x3202] = 0x52AC, --(劬) [0x3203] = 0x52AD, --(劭) - [0x3204] = 0x52BC, --(劼) + [0x3204] = 0x52BC, --(劼) [0x3205] = 0x52B5, --(劵) - [0x3206] = 0x52C1, --(勁) + [0x3206] = 0x52C1, --(勁) [0x3207] = 0x52CD, --(勍) - [0x3208] = 0x52D7, --(勗) + [0x3208] = 0x52D7, --(勗) [0x3209] = 0x52DE, --(勞) - [0x320A] = 0x52E3, --(勣) + [0x320A] = 0x52E3, --(勣) [0x320B] = 0x52E6, --(勦) - [0x320C] = 0x98ED, --(飭) + [0x320C] = 0x98ED, --(飭) [0x320D] = 0x52E0, --(勠) - [0x320E] = 0x52F3, --(勳) + [0x320E] = 0x52F3, --(勳) [0x320F] = 0x52F5, --(勵) - [0x3210] = 0x52F8, --(勸) + [0x3210] = 0x52F8, --(勸) [0x3211] = 0x52F9, --(勹) - [0x3212] = 0x5306, --(匆) + [0x3212] = 0x5306, --(匆) [0x3213] = 0x5308, --(匈) - [0x3214] = 0x7538, --(甸) + [0x3214] = 0x7538, --(甸) [0x3215] = 0x530D, --(匍) - [0x3216] = 0x5310, --(匐) + [0x3216] = 0x5310, --(匐) [0x3217] = 0x530F, --(匏) - [0x3218] = 0x5315, --(匕) + [0x3218] = 0x5315, --(匕) [0x3219] = 0x531A, --(匚) - [0x321A] = 0x5323, --(匣) + [0x321A] = 0x5323, --(匣) [0x321B] = 0x532F, --(匯) - [0x321C] = 0x5331, --(匱) + [0x321C] = 0x5331, --(匱) [0x321D] = 0x5333, --(匳) - [0x321E] = 0x5338, --(匸) + [0x321E] = 0x5338, --(匸) [0x321F] = 0x5340, --(區) - [0x3220] = 0x5346, --(卆) + [0x3220] = 0x5346, --(卆) [0x3221] = 0x5345, --(卅) - [0x3222] = 0x4E17, --(丗) + [0x3222] = 0x4E17, --(丗) [0x3223] = 0x5349, --(卉) - [0x3224] = 0x534D, --(卍) + [0x3224] = 0x534D, --(卍) [0x3225] = 0x51D6, --(凖) - [0x3226] = 0x535E, --(卞) + [0x3226] = 0x535E, --(卞) [0x3227] = 0x5369, --(卩) - [0x3228] = 0x536E, --(卮) + [0x3228] = 0x536E, --(卮) [0x3229] = 0x5918, --(夘) - [0x322A] = 0x537B, --(卻) + [0x322A] = 0x537B, --(卻) [0x322B] = 0x5377, --(卷) - [0x322C] = 0x5382, --(厂) + [0x322C] = 0x5382, --(厂) [0x322D] = 0x5396, --(厖) - [0x322E] = 0x53A0, --(厠) + [0x322E] = 0x53A0, --(厠) [0x322F] = 0x53A6, --(厦) - [0x3230] = 0x53A5, --(厥) + [0x3230] = 0x53A5, --(厥) [0x3231] = 0x53AE, --(厮) - [0x3232] = 0x53B0, --(厰) + [0x3232] = 0x53B0, --(厰) [0x3233] = 0x53B6, --(厶) - [0x3234] = 0x53C3, --(參) + [0x3234] = 0x53C3, --(參) [0x3235] = 0x7C12, --(簒) - [0x3236] = 0x96D9, --(雙) + [0x3236] = 0x96D9, --(雙) [0x3237] = 0x53DF, --(叟) - [0x3238] = 0x66FC, --(曼) + [0x3238] = 0x66FC, --(曼) [0x3239] = 0x71EE, --(燮) - [0x323A] = 0x53EE, --(叮) + [0x323A] = 0x53EE, --(叮) [0x323B] = 0x53E8, --(叨) - [0x323C] = 0x53ED, --(叭) + [0x323C] = 0x53ED, --(叭) [0x323D] = 0x53FA, --(叺) - [0x323E] = 0x5401, --(吁) + [0x323E] = 0x5401, --(吁) [0x323F] = 0x543D, --(吽) - [0x3240] = 0x5440, --(呀) + [0x3240] = 0x5440, --(呀) [0x3241] = 0x542C, --(听) - [0x3242] = 0x542D, --(吭) + [0x3242] = 0x542D, --(吭) [0x3243] = 0x543C, --(吼) - [0x3244] = 0x542E, --(吮) + [0x3244] = 0x542E, --(吮) [0x3245] = 0x5436, --(吶) - [0x3246] = 0x5429, --(吩) + [0x3246] = 0x5429, --(吩) [0x3247] = 0x541D, --(吝) - [0x3248] = 0x544E, --(呎) + [0x3248] = 0x544E, --(呎) [0x3249] = 0x548F, --(咏) - [0x324A] = 0x5475, --(呵) + [0x324A] = 0x5475, --(呵) [0x324B] = 0x548E, --(咎) - [0x324C] = 0x545F, --(呟) + [0x324C] = 0x545F, --(呟) [0x324D] = 0x5471, --(呱) - [0x324E] = 0x5477, --(呷) + [0x324E] = 0x5477, --(呷) [0x324F] = 0x5470, --(呰) - [0x3250] = 0x5492, --(咒) + [0x3250] = 0x5492, --(咒) [0x3251] = 0x547B, --(呻) - [0x3252] = 0x5480, --(咀) + [0x3252] = 0x5480, --(咀) [0x3253] = 0x5476, --(呶) - [0x3254] = 0x5484, --(咄) + [0x3254] = 0x5484, --(咄) [0x3255] = 0x5490, --(咐) - [0x3256] = 0x5486, --(咆) + [0x3256] = 0x5486, --(咆) [0x3257] = 0x54C7, --(哇) - [0x3258] = 0x54A2, --(咢) + [0x3258] = 0x54A2, --(咢) [0x3259] = 0x54B8, --(咸) - [0x325A] = 0x54A5, --(咥) + [0x325A] = 0x54A5, --(咥) [0x325B] = 0x54AC, --(咬) - [0x325C] = 0x54C4, --(哄) + [0x325C] = 0x54C4, --(哄) [0x325D] = 0x54C8, --(哈) - [0x325E] = 0x54A8, --(咨) + [0x325E] = 0x54A8, --(咨) [0x3301] = 0x54AB, --(咫) - [0x3302] = 0x54C2, --(哂) + [0x3302] = 0x54C2, --(哂) [0x3303] = 0x54A4, --(咤) - [0x3304] = 0x54BE, --(咾) + [0x3304] = 0x54BE, --(咾) [0x3305] = 0x54BC, --(咼) - [0x3306] = 0x54D8, --(哘) + [0x3306] = 0x54D8, --(哘) [0x3307] = 0x54E5, --(哥) - [0x3308] = 0x54E6, --(哦) + [0x3308] = 0x54E6, --(哦) [0x3309] = 0x550F, --(唏) - [0x330A] = 0x5514, --(唔) + [0x330A] = 0x5514, --(唔) [0x330B] = 0x54FD, --(哽) - [0x330C] = 0x54EE, --(哮) + [0x330C] = 0x54EE, --(哮) [0x330D] = 0x54ED, --(哭) - [0x330E] = 0x54FA, --(哺) + [0x330E] = 0x54FA, --(哺) [0x330F] = 0x54E2, --(哢) - [0x3310] = 0x5539, --(唹) + [0x3310] = 0x5539, --(唹) [0x3311] = 0x5540, --(啀) - [0x3312] = 0x5563, --(啣) + [0x3312] = 0x5563, --(啣) [0x3313] = 0x554C, --(啌) - [0x3314] = 0x552E, --(售) + [0x3314] = 0x552E, --(售) [0x3315] = 0x555C, --(啜) - [0x3316] = 0x5545, --(啅) + [0x3316] = 0x5545, --(啅) [0x3317] = 0x5556, --(啖) - [0x3318] = 0x5557, --(啗) + [0x3318] = 0x5557, --(啗) [0x3319] = 0x5538, --(唸) - [0x331A] = 0x5533, --(唳) + [0x331A] = 0x5533, --(唳) [0x331B] = 0x555D, --(啝) - [0x331C] = 0x5599, --(喙) + [0x331C] = 0x5599, --(喙) [0x331D] = 0x5580, --(喀) - [0x331E] = 0x54AF, --(咯) + [0x331E] = 0x54AF, --(咯) [0x331F] = 0x558A, --(喊) - [0x3320] = 0x559F, --(喟) + [0x3320] = 0x559F, --(喟) [0x3321] = 0x557B, --(啻) - [0x3322] = 0x557E, --(啾) + [0x3322] = 0x557E, --(啾) [0x3323] = 0x5598, --(喘) - [0x3324] = 0x559E, --(喞) + [0x3324] = 0x559E, --(喞) [0x3325] = 0x55AE, --(單) - [0x3326] = 0x557C, --(啼) + [0x3326] = 0x557C, --(啼) [0x3327] = 0x5583, --(喃) - [0x3328] = 0x55A9, --(喩) + [0x3328] = 0x55A9, --(喩) [0x3329] = 0x5587, --(喇) - [0x332A] = 0x55A8, --(喨) + [0x332A] = 0x55A8, --(喨) [0x332B] = 0x55DA, --(嗚) - [0x332C] = 0x55C5, --(嗅) + [0x332C] = 0x55C5, --(嗅) [0x332D] = 0x55DF, --(嗟) - [0x332E] = 0x55C4, --(嗄) + [0x332E] = 0x55C4, --(嗄) [0x332F] = 0x55DC, --(嗜) - [0x3330] = 0x55E4, --(嗤) + [0x3330] = 0x55E4, --(嗤) [0x3331] = 0x55D4, --(嗔) - [0x3332] = 0x5614, --(嘔) + [0x3332] = 0x5614, --(嘔) [0x3333] = 0x55F7, --(嗷) - [0x3334] = 0x5616, --(嘖) + [0x3334] = 0x5616, --(嘖) [0x3335] = 0x55FE, --(嗾) - [0x3336] = 0x55FD, --(嗽) + [0x3336] = 0x55FD, --(嗽) [0x3337] = 0x561B, --(嘛) - [0x3338] = 0x55F9, --(嗹) + [0x3338] = 0x55F9, --(嗹) [0x3339] = 0x564E, --(噎) - [0x333A] = 0x5650, --(噐) + [0x333A] = 0x5650, --(噐) [0x333B] = 0x71DF, --(營) - [0x333C] = 0x5634, --(嘴) + [0x333C] = 0x5634, --(嘴) [0x333D] = 0x5636, --(嘶) - [0x333E] = 0x5632, --(嘲) + [0x333E] = 0x5632, --(嘲) [0x333F] = 0x5638, --(嘸) - [0x3340] = 0x566B, --(噫) + [0x3340] = 0x566B, --(噫) [0x3341] = 0x5664, --(噤) - [0x3342] = 0x562F, --(嘯) + [0x3342] = 0x562F, --(嘯) [0x3343] = 0x566C, --(噬) - [0x3344] = 0x566A, --(噪) + [0x3344] = 0x566A, --(噪) [0x3345] = 0x5686, --(嚆) - [0x3346] = 0x5680, --(嚀) + [0x3346] = 0x5680, --(嚀) [0x3347] = 0x568A, --(嚊) - [0x3348] = 0x56A0, --(嚠) + [0x3348] = 0x56A0, --(嚠) [0x3349] = 0x5694, --(嚔) - [0x334A] = 0x568F, --(嚏) + [0x334A] = 0x568F, --(嚏) [0x334B] = 0x56A5, --(嚥) - [0x334C] = 0x56AE, --(嚮) + [0x334C] = 0x56AE, --(嚮) [0x334D] = 0x56B6, --(嚶) - [0x334E] = 0x56B4, --(嚴) + [0x334E] = 0x56B4, --(嚴) [0x334F] = 0x56C2, --(囂) - [0x3350] = 0x56BC, --(嚼) + [0x3350] = 0x56BC, --(嚼) [0x3351] = 0x56C1, --(囁) - [0x3352] = 0x56C3, --(囃) + [0x3352] = 0x56C3, --(囃) [0x3353] = 0x56C0, --(囀) - [0x3354] = 0x56C8, --(囈) + [0x3354] = 0x56C8, --(囈) [0x3355] = 0x56CE, --(囎) - [0x3356] = 0x56D1, --(囑) + [0x3356] = 0x56D1, --(囑) [0x3357] = 0x56D3, --(囓) - [0x3358] = 0x56D7, --(囗) + [0x3358] = 0x56D7, --(囗) [0x3359] = 0x56EE, --(囮) - [0x335A] = 0x56F9, --(囹) + [0x335A] = 0x56F9, --(囹) [0x335B] = 0x5700, --(圀) - [0x335C] = 0x56FF, --(囿) + [0x335C] = 0x56FF, --(囿) [0x335D] = 0x5704, --(圄) - [0x335E] = 0x5709, --(圉) + [0x335E] = 0x5709, --(圉) [0x3401] = 0x5708, --(圈) - [0x3402] = 0x570B, --(國) + [0x3402] = 0x570B, --(國) [0x3403] = 0x570D, --(圍) - [0x3404] = 0x5713, --(圓) + [0x3404] = 0x5713, --(圓) [0x3405] = 0x5718, --(團) - [0x3406] = 0x5716, --(圖) + [0x3406] = 0x5716, --(圖) [0x3407] = 0x55C7, --(嗇) - [0x3408] = 0x571C, --(圜) + [0x3408] = 0x571C, --(圜) [0x3409] = 0x5726, --(圦) - [0x340A] = 0x5737, --(圷) + [0x340A] = 0x5737, --(圷) [0x340B] = 0x5738, --(圸) - [0x340C] = 0x574E, --(坎) + [0x340C] = 0x574E, --(坎) [0x340D] = 0x573B, --(圻) - [0x340E] = 0x5740, --(址) + [0x340E] = 0x5740, --(址) [0x340F] = 0x574F, --(坏) - [0x3410] = 0x5769, --(坩) + [0x3410] = 0x5769, --(坩) [0x3411] = 0x57C0, --(埀) - [0x3412] = 0x5788, --(垈) + [0x3412] = 0x5788, --(垈) [0x3413] = 0x5761, --(坡) - [0x3414] = 0x577F, --(坿) + [0x3414] = 0x577F, --(坿) [0x3415] = 0x5789, --(垉) - [0x3416] = 0x5793, --(垓) + [0x3416] = 0x5793, --(垓) [0x3417] = 0x57A0, --(垠) - [0x3418] = 0x57B3, --(垳) + [0x3418] = 0x57B3, --(垳) [0x3419] = 0x57A4, --(垤) - [0x341A] = 0x57AA, --(垪) + [0x341A] = 0x57AA, --(垪) [0x341B] = 0x57B0, --(垰) - [0x341C] = 0x57C3, --(埃) + [0x341C] = 0x57C3, --(埃) [0x341D] = 0x57C6, --(埆) - [0x341E] = 0x57D4, --(埔) + [0x341E] = 0x57D4, --(埔) [0x341F] = 0x57D2, --(埒) - [0x3420] = 0x57D3, --(埓) + [0x3420] = 0x57D3, --(埓) [0x3421] = 0x580A, --(堊) - [0x3422] = 0x57D6, --(埖) + [0x3422] = 0x57D6, --(埖) [0x3423] = 0x57E3, --(埣) - [0x3424] = 0x580B, --(堋) + [0x3424] = 0x580B, --(堋) [0x3425] = 0x5819, --(堙) - [0x3426] = 0x581D, --(堝) + [0x3426] = 0x581D, --(堝) [0x3427] = 0x5872, --(塲) - [0x3428] = 0x5821, --(堡) + [0x3428] = 0x5821, --(堡) [0x3429] = 0x5862, --(塢) - [0x342A] = 0x584B, --(塋) + [0x342A] = 0x584B, --(塋) [0x342B] = 0x5870, --(塰) - [0x342C] = 0x6BC0, --(毀) + [0x342C] = 0x6BC0, --(毀) [0x342D] = 0x5852, --(塒) - [0x342E] = 0x583D, --(堽) + [0x342E] = 0x583D, --(堽) [0x342F] = 0x5879, --(塹) - [0x3430] = 0x5885, --(墅) + [0x3430] = 0x5885, --(墅) [0x3431] = 0x58B9, --(墹) - [0x3432] = 0x589F, --(墟) + [0x3432] = 0x589F, --(墟) [0x3433] = 0x58AB, --(墫) - [0x3434] = 0x58BA, --(墺) + [0x3434] = 0x58BA, --(墺) [0x3435] = 0x58DE, --(壞) - [0x3436] = 0x58BB, --(墻) + [0x3436] = 0x58BB, --(墻) [0x3437] = 0x58B8, --(墸) - [0x3438] = 0x58AE, --(墮) + [0x3438] = 0x58AE, --(墮) [0x3439] = 0x58C5, --(壅) - [0x343A] = 0x58D3, --(壓) + [0x343A] = 0x58D3, --(壓) [0x343B] = 0x58D1, --(壑) - [0x343C] = 0x58D7, --(壗) + [0x343C] = 0x58D7, --(壗) [0x343D] = 0x58D9, --(壙) - [0x343E] = 0x58D8, --(壘) + [0x343E] = 0x58D8, --(壘) [0x343F] = 0x58E5, --(壥) - [0x3440] = 0x58DC, --(壜) + [0x3440] = 0x58DC, --(壜) [0x3441] = 0x58E4, --(壤) - [0x3442] = 0x58DF, --(壟) + [0x3442] = 0x58DF, --(壟) [0x3443] = 0x58EF, --(壯) - [0x3444] = 0x58FA, --(壺) + [0x3444] = 0x58FA, --(壺) [0x3445] = 0x58F9, --(壹) - [0x3446] = 0x58FB, --(壻) + [0x3446] = 0x58FB, --(壻) [0x3447] = 0x58FC, --(壼) - [0x3448] = 0x58FD, --(壽) + [0x3448] = 0x58FD, --(壽) [0x3449] = 0x5902, --(夂) - [0x344A] = 0x590A, --(夊) + [0x344A] = 0x590A, --(夊) [0x344B] = 0x5910, --(夐) - [0x344C] = 0x591B, --(夛) + [0x344C] = 0x591B, --(夛) [0x344D] = 0x68A6, --(梦) - [0x344E] = 0x5925, --(夥) + [0x344E] = 0x5925, --(夥) [0x344F] = 0x592C, --(夬) - [0x3450] = 0x592D, --(夭) + [0x3450] = 0x592D, --(夭) [0x3451] = 0x5932, --(夲) - [0x3452] = 0x5938, --(夸) + [0x3452] = 0x5938, --(夸) [0x3453] = 0x593E, --(夾) - [0x3454] = 0x7AD2, --(竒) + [0x3454] = 0x7AD2, --(竒) [0x3455] = 0x5955, --(奕) - [0x3456] = 0x5950, --(奐) + [0x3456] = 0x5950, --(奐) [0x3457] = 0x594E, --(奎) - [0x3458] = 0x595A, --(奚) + [0x3458] = 0x595A, --(奚) [0x3459] = 0x5958, --(奘) - [0x345A] = 0x5962, --(奢) + [0x345A] = 0x5962, --(奢) [0x345B] = 0x5960, --(奠) - [0x345C] = 0x5967, --(奧) + [0x345C] = 0x5967, --(奧) [0x345D] = 0x596C, --(奬) - [0x345E] = 0x5969, --(奩) + [0x345E] = 0x5969, --(奩) [0x3501] = 0x5978, --(奸) - [0x3502] = 0x5981, --(妁) + [0x3502] = 0x5981, --(妁) [0x3503] = 0x599D, --(妝) - [0x3504] = 0x4F5E, --(佞) + [0x3504] = 0x4F5E, --(佞) [0x3505] = 0x4FAB, --(侫) - [0x3506] = 0x59A3, --(妣) + [0x3506] = 0x59A3, --(妣) [0x3507] = 0x59B2, --(妲) - [0x3508] = 0x59C6, --(姆) + [0x3508] = 0x59C6, --(姆) [0x3509] = 0x59E8, --(姨) - [0x350A] = 0x59DC, --(姜) + [0x350A] = 0x59DC, --(姜) [0x350B] = 0x598D, --(妍) - [0x350C] = 0x59D9, --(姙) + [0x350C] = 0x59D9, --(姙) [0x350D] = 0x59DA, --(姚) - [0x350E] = 0x5A25, --(娥) + [0x350E] = 0x5A25, --(娥) [0x350F] = 0x5A1F, --(娟) - [0x3510] = 0x5A11, --(娑) + [0x3510] = 0x5A11, --(娑) [0x3511] = 0x5A1C, --(娜) - [0x3512] = 0x5A09, --(娉) + [0x3512] = 0x5A09, --(娉) [0x3513] = 0x5A1A, --(娚) - [0x3514] = 0x5A40, --(婀) + [0x3514] = 0x5A40, --(婀) [0x3515] = 0x5A6C, --(婬) - [0x3516] = 0x5A49, --(婉) + [0x3516] = 0x5A49, --(婉) [0x3517] = 0x5A35, --(娵) - [0x3518] = 0x5A36, --(娶) + [0x3518] = 0x5A36, --(娶) [0x3519] = 0x5A62, --(婢) - [0x351A] = 0x5A6A, --(婪) + [0x351A] = 0x5A6A, --(婪) [0x351B] = 0x5A9A, --(媚) - [0x351C] = 0x5ABC, --(媼) + [0x351C] = 0x5ABC, --(媼) [0x351D] = 0x5ABE, --(媾) - [0x351E] = 0x5ACB, --(嫋) + [0x351E] = 0x5ACB, --(嫋) [0x351F] = 0x5AC2, --(嫂) - [0x3520] = 0x5ABD, --(媽) + [0x3520] = 0x5ABD, --(媽) [0x3521] = 0x5AE3, --(嫣) - [0x3522] = 0x5AD7, --(嫗) + [0x3522] = 0x5AD7, --(嫗) [0x3523] = 0x5AE6, --(嫦) - [0x3524] = 0x5AE9, --(嫩) + [0x3524] = 0x5AE9, --(嫩) [0x3525] = 0x5AD6, --(嫖) - [0x3526] = 0x5AFA, --(嫺) + [0x3526] = 0x5AFA, --(嫺) [0x3527] = 0x5AFB, --(嫻) - [0x3528] = 0x5B0C, --(嬌) + [0x3528] = 0x5B0C, --(嬌) [0x3529] = 0x5B0B, --(嬋) - [0x352A] = 0x5B16, --(嬖) + [0x352A] = 0x5B16, --(嬖) [0x352B] = 0x5B32, --(嬲) - [0x352C] = 0x5AD0, --(嫐) + [0x352C] = 0x5AD0, --(嫐) [0x352D] = 0x5B2A, --(嬪) - [0x352E] = 0x5B36, --(嬶) + [0x352E] = 0x5B36, --(嬶) [0x352F] = 0x5B3E, --(嬾) - [0x3530] = 0x5B43, --(孃) + [0x3530] = 0x5B43, --(孃) [0x3531] = 0x5B45, --(孅) - [0x3532] = 0x5B40, --(孀) + [0x3532] = 0x5B40, --(孀) [0x3533] = 0x5B51, --(孑) - [0x3534] = 0x5B55, --(孕) + [0x3534] = 0x5B55, --(孕) [0x3535] = 0x5B5A, --(孚) - [0x3536] = 0x5B5B, --(孛) + [0x3536] = 0x5B5B, --(孛) [0x3537] = 0x5B65, --(孥) - [0x3538] = 0x5B69, --(孩) + [0x3538] = 0x5B69, --(孩) [0x3539] = 0x5B70, --(孰) - [0x353A] = 0x5B73, --(孳) + [0x353A] = 0x5B73, --(孳) [0x353B] = 0x5B75, --(孵) - [0x353C] = 0x5B78, --(學) + [0x353C] = 0x5B78, --(學) [0x353D] = 0x6588, --(斈) - [0x353E] = 0x5B7A, --(孺) + [0x353E] = 0x5B7A, --(孺) [0x353F] = 0x5B80, --(宀) - [0x3540] = 0x5B83, --(它) + [0x3540] = 0x5B83, --(它) [0x3541] = 0x5BA6, --(宦) - [0x3542] = 0x5BB8, --(宸) + [0x3542] = 0x5BB8, --(宸) [0x3543] = 0x5BC3, --(寃) - [0x3544] = 0x5BC7, --(寇) + [0x3544] = 0x5BC7, --(寇) [0x3545] = 0x5BC9, --(寉) - [0x3546] = 0x5BD4, --(寔) + [0x3546] = 0x5BD4, --(寔) [0x3547] = 0x5BD0, --(寐) - [0x3548] = 0x5BE4, --(寤) + [0x3548] = 0x5BE4, --(寤) [0x3549] = 0x5BE6, --(實) - [0x354A] = 0x5BE2, --(寢) + [0x354A] = 0x5BE2, --(寢) [0x354B] = 0x5BDE, --(寞) - [0x354C] = 0x5BE5, --(寥) + [0x354C] = 0x5BE5, --(寥) [0x354D] = 0x5BEB, --(寫) - [0x354E] = 0x5BF0, --(寰) + [0x354E] = 0x5BF0, --(寰) [0x354F] = 0x5BF6, --(寶) - [0x3550] = 0x5BF3, --(寳) + [0x3550] = 0x5BF3, --(寳) [0x3551] = 0x5C05, --(尅) - [0x3552] = 0x5C07, --(將) + [0x3552] = 0x5C07, --(將) [0x3553] = 0x5C08, --(專) - [0x3554] = 0x5C0D, --(對) + [0x3554] = 0x5C0D, --(對) [0x3555] = 0x5C13, --(尓) - [0x3556] = 0x5C20, --(尠) + [0x3556] = 0x5C20, --(尠) [0x3557] = 0x5C22, --(尢) - [0x3558] = 0x5C28, --(尨) + [0x3558] = 0x5C28, --(尨) [0x3559] = 0x5C38, --(尸) - [0x355A] = 0x5C39, --(尹) + [0x355A] = 0x5C39, --(尹) [0x355B] = 0x5C41, --(屁) - [0x355C] = 0x5C46, --(屆) + [0x355C] = 0x5C46, --(屆) [0x355D] = 0x5C4E, --(屎) - [0x355E] = 0x5C53, --(屓) + [0x355E] = 0x5C53, --(屓) [0x3601] = 0x5C50, --(屐) - [0x3602] = 0x5C4F, --(屏) + [0x3602] = 0x5C4F, --(屏) [0x3603] = 0x5B71, --(孱) - [0x3604] = 0x5C6C, --(屬) + [0x3604] = 0x5C6C, --(屬) [0x3605] = 0x5C6E, --(屮) - [0x3606] = 0x4E62, --(乢) + [0x3606] = 0x4E62, --(乢) [0x3607] = 0x5C76, --(屶) - [0x3608] = 0x5C79, --(屹) + [0x3608] = 0x5C79, --(屹) [0x3609] = 0x5C8C, --(岌) - [0x360A] = 0x5C91, --(岑) + [0x360A] = 0x5C91, --(岑) [0x360B] = 0x5C94, --(岔) - [0x360C] = 0x599B, --(妛) + [0x360C] = 0x599B, --(妛) [0x360D] = 0x5CAB, --(岫) - [0x360E] = 0x5CBB, --(岻) + [0x360E] = 0x5CBB, --(岻) [0x360F] = 0x5CB6, --(岶) - [0x3610] = 0x5CBC, --(岼) + [0x3610] = 0x5CBC, --(岼) [0x3611] = 0x5CB7, --(岷) - [0x3612] = 0x5CC5, --(峅) + [0x3612] = 0x5CC5, --(峅) [0x3613] = 0x5CBE, --(岾) - [0x3614] = 0x5CC7, --(峇) + [0x3614] = 0x5CC7, --(峇) [0x3615] = 0x5CD9, --(峙) - [0x3616] = 0x5CE9, --(峩) + [0x3616] = 0x5CE9, --(峩) [0x3617] = 0x5CFD, --(峽) - [0x3618] = 0x5CFA, --(峺) + [0x3618] = 0x5CFA, --(峺) [0x3619] = 0x5CED, --(峭) - [0x361A] = 0x5D8C, --(嶌) + [0x361A] = 0x5D8C, --(嶌) [0x361B] = 0x5CEA, --(峪) - [0x361C] = 0x5D0B, --(崋) + [0x361C] = 0x5D0B, --(崋) [0x361D] = 0x5D15, --(崕) - [0x361E] = 0x5D17, --(崗) + [0x361E] = 0x5D17, --(崗) [0x361F] = 0x5D5C, --(嵜) - [0x3620] = 0x5D1F, --(崟) + [0x3620] = 0x5D1F, --(崟) [0x3621] = 0x5D1B, --(崛) - [0x3622] = 0x5D11, --(崑) + [0x3622] = 0x5D11, --(崑) [0x3623] = 0x5D14, --(崔) - [0x3624] = 0x5D22, --(崢) + [0x3624] = 0x5D22, --(崢) [0x3625] = 0x5D1A, --(崚) - [0x3626] = 0x5D19, --(崙) + [0x3626] = 0x5D19, --(崙) [0x3627] = 0x5D18, --(崘) - [0x3628] = 0x5D4C, --(嵌) + [0x3628] = 0x5D4C, --(嵌) [0x3629] = 0x5D52, --(嵒) - [0x362A] = 0x5D4E, --(嵎) + [0x362A] = 0x5D4E, --(嵎) [0x362B] = 0x5D4B, --(嵋) - [0x362C] = 0x5D6C, --(嵬) + [0x362C] = 0x5D6C, --(嵬) [0x362D] = 0x5D73, --(嵳) - [0x362E] = 0x5D76, --(嵶) + [0x362E] = 0x5D76, --(嵶) [0x362F] = 0x5D87, --(嶇) - [0x3630] = 0x5D84, --(嶄) + [0x3630] = 0x5D84, --(嶄) [0x3631] = 0x5D82, --(嶂) - [0x3632] = 0x5DA2, --(嶢) + [0x3632] = 0x5DA2, --(嶢) [0x3633] = 0x5D9D, --(嶝) - [0x3634] = 0x5DAC, --(嶬) + [0x3634] = 0x5DAC, --(嶬) [0x3635] = 0x5DAE, --(嶮) - [0x3636] = 0x5DBD, --(嶽) + [0x3636] = 0x5DBD, --(嶽) [0x3637] = 0x5D90, --(嶐) - [0x3638] = 0x5DB7, --(嶷) + [0x3638] = 0x5DB7, --(嶷) [0x3639] = 0x5DBC, --(嶼) - [0x363A] = 0x5DC9, --(巉) + [0x363A] = 0x5DC9, --(巉) [0x363B] = 0x5DCD, --(巍) - [0x363C] = 0x5DD3, --(巓) + [0x363C] = 0x5DD3, --(巓) [0x363D] = 0x5DD2, --(巒) - [0x363E] = 0x5DD6, --(巖) + [0x363E] = 0x5DD6, --(巖) [0x363F] = 0x5DDB, --(巛) - [0x3640] = 0x5DEB, --(巫) + [0x3640] = 0x5DEB, --(巫) [0x3641] = 0x5DF2, --(已) - [0x3642] = 0x5DF5, --(巵) + [0x3642] = 0x5DF5, --(巵) [0x3643] = 0x5E0B, --(帋) - [0x3644] = 0x5E1A, --(帚) + [0x3644] = 0x5E1A, --(帚) [0x3645] = 0x5E19, --(帙) - [0x3646] = 0x5E11, --(帑) + [0x3646] = 0x5E11, --(帑) [0x3647] = 0x5E1B, --(帛) - [0x3648] = 0x5E36, --(帶) + [0x3648] = 0x5E36, --(帶) [0x3649] = 0x5E37, --(帷) - [0x364A] = 0x5E44, --(幄) + [0x364A] = 0x5E44, --(幄) [0x364B] = 0x5E43, --(幃) - [0x364C] = 0x5E40, --(幀) + [0x364C] = 0x5E40, --(幀) [0x364D] = 0x5E4E, --(幎) - [0x364E] = 0x5E57, --(幗) + [0x364E] = 0x5E57, --(幗) [0x364F] = 0x5E54, --(幔) - [0x3650] = 0x5E5F, --(幟) + [0x3650] = 0x5E5F, --(幟) [0x3651] = 0x5E62, --(幢) - [0x3652] = 0x5E64, --(幤) + [0x3652] = 0x5E64, --(幤) [0x3653] = 0x5E47, --(幇) - [0x3654] = 0x5E75, --(幵) + [0x3654] = 0x5E75, --(幵) [0x3655] = 0x5E76, --(并) - [0x3656] = 0x5E7A, --(幺) + [0x3656] = 0x5E7A, --(幺) [0x3657] = 0x9EBC, --(麼) - [0x3658] = 0x5E7F, --(广) + [0x3658] = 0x5E7F, --(广) [0x3659] = 0x5EA0, --(庠) - [0x365A] = 0x5EC1, --(廁) + [0x365A] = 0x5EC1, --(廁) [0x365B] = 0x5EC2, --(廂) - [0x365C] = 0x5EC8, --(廈) + [0x365C] = 0x5EC8, --(廈) [0x365D] = 0x5ED0, --(廐) - [0x365E] = 0x5ECF, --(廏) + [0x365E] = 0x5ECF, --(廏) [0x3701] = 0x5ED6, --(廖) - [0x3702] = 0x5EE3, --(廣) + [0x3702] = 0x5EE3, --(廣) [0x3703] = 0x5EDD, --(廝) - [0x3704] = 0x5EDA, --(廚) + [0x3704] = 0x5EDA, --(廚) [0x3705] = 0x5EDB, --(廛) - [0x3706] = 0x5EE2, --(廢) + [0x3706] = 0x5EE2, --(廢) [0x3707] = 0x5EE1, --(廡) - [0x3708] = 0x5EE8, --(廨) + [0x3708] = 0x5EE8, --(廨) [0x3709] = 0x5EE9, --(廩) - [0x370A] = 0x5EEC, --(廬) + [0x370A] = 0x5EEC, --(廬) [0x370B] = 0x5EF1, --(廱) - [0x370C] = 0x5EF3, --(廳) + [0x370C] = 0x5EF3, --(廳) [0x370D] = 0x5EF0, --(廰) - [0x370E] = 0x5EF4, --(廴) + [0x370E] = 0x5EF4, --(廴) [0x370F] = 0x5EF8, --(廸) - [0x3710] = 0x5EFE, --(廾) + [0x3710] = 0x5EFE, --(廾) [0x3711] = 0x5F03, --(弃) - [0x3712] = 0x5F09, --(弉) + [0x3712] = 0x5F09, --(弉) [0x3713] = 0x5F5D, --(彝) - [0x3714] = 0x5F5C, --(彜) + [0x3714] = 0x5F5C, --(彜) [0x3715] = 0x5F0B, --(弋) - [0x3716] = 0x5F11, --(弑) + [0x3716] = 0x5F11, --(弑) [0x3717] = 0x5F16, --(弖) - [0x3718] = 0x5F29, --(弩) + [0x3718] = 0x5F29, --(弩) [0x3719] = 0x5F2D, --(弭) - [0x371A] = 0x5F38, --(弸) + [0x371A] = 0x5F38, --(弸) [0x371B] = 0x5F41, --(彁) - [0x371C] = 0x5F48, --(彈) + [0x371C] = 0x5F48, --(彈) [0x371D] = 0x5F4C, --(彌) - [0x371E] = 0x5F4E, --(彎) + [0x371E] = 0x5F4E, --(彎) [0x371F] = 0x5F2F, --(弯) - [0x3720] = 0x5F51, --(彑) + [0x3720] = 0x5F51, --(彑) [0x3721] = 0x5F56, --(彖) - [0x3722] = 0x5F57, --(彗) + [0x3722] = 0x5F57, --(彗) [0x3723] = 0x5F59, --(彙) - [0x3724] = 0x5F61, --(彡) + [0x3724] = 0x5F61, --(彡) [0x3725] = 0x5F6D, --(彭) - [0x3726] = 0x5F73, --(彳) + [0x3726] = 0x5F73, --(彳) [0x3727] = 0x5F77, --(彷) - [0x3728] = 0x5F83, --(徃) + [0x3728] = 0x5F83, --(徃) [0x3729] = 0x5F82, --(徂) - [0x372A] = 0x5F7F, --(彿) + [0x372A] = 0x5F7F, --(彿) [0x372B] = 0x5F8A, --(徊) - [0x372C] = 0x5F88, --(很) + [0x372C] = 0x5F88, --(很) [0x372D] = 0x5F91, --(徑) - [0x372E] = 0x5F87, --(徇) + [0x372E] = 0x5F87, --(徇) [0x372F] = 0x5F9E, --(從) - [0x3730] = 0x5F99, --(徙) + [0x3730] = 0x5F99, --(徙) [0x3731] = 0x5F98, --(徘) - [0x3732] = 0x5FA0, --(徠) + [0x3732] = 0x5FA0, --(徠) [0x3733] = 0x5FA8, --(徨) - [0x3734] = 0x5FAD, --(徭) + [0x3734] = 0x5FAD, --(徭) [0x3735] = 0x5FBC, --(徼) - [0x3736] = 0x5FD6, --(忖) + [0x3736] = 0x5FD6, --(忖) [0x3737] = 0x5FFB, --(忻) - [0x3738] = 0x5FE4, --(忤) + [0x3738] = 0x5FE4, --(忤) [0x3739] = 0x5FF8, --(忸) - [0x373A] = 0x5FF1, --(忱) + [0x373A] = 0x5FF1, --(忱) [0x373B] = 0x5FDD, --(忝) - [0x373C] = 0x60B3, --(悳) + [0x373C] = 0x60B3, --(悳) [0x373D] = 0x5FFF, --(忿) - [0x373E] = 0x6021, --(怡) + [0x373E] = 0x6021, --(怡) [0x373F] = 0x6060, --(恠) - [0x3740] = 0x6019, --(怙) + [0x3740] = 0x6019, --(怙) [0x3741] = 0x6010, --(怐) - [0x3742] = 0x6029, --(怩) + [0x3742] = 0x6029, --(怩) [0x3743] = 0x600E, --(怎) - [0x3744] = 0x6031, --(怱) + [0x3744] = 0x6031, --(怱) [0x3745] = 0x601B, --(怛) - [0x3746] = 0x6015, --(怕) + [0x3746] = 0x6015, --(怕) [0x3747] = 0x602B, --(怫) - [0x3748] = 0x6026, --(怦) + [0x3748] = 0x6026, --(怦) [0x3749] = 0x600F, --(怏) - [0x374A] = 0x603A, --(怺) + [0x374A] = 0x603A, --(怺) [0x374B] = 0x605A, --(恚) - [0x374C] = 0x6041, --(恁) + [0x374C] = 0x6041, --(恁) [0x374D] = 0x606A, --(恪) - [0x374E] = 0x6077, --(恷) + [0x374E] = 0x6077, --(恷) [0x374F] = 0x605F, --(恟) - [0x3750] = 0x604A, --(恊) + [0x3750] = 0x604A, --(恊) [0x3751] = 0x6046, --(恆) - [0x3752] = 0x604D, --(恍) + [0x3752] = 0x604D, --(恍) [0x3753] = 0x6063, --(恣) - [0x3754] = 0x6043, --(恃) + [0x3754] = 0x6043, --(恃) [0x3755] = 0x6064, --(恤) - [0x3756] = 0x6042, --(恂) + [0x3756] = 0x6042, --(恂) [0x3757] = 0x606C, --(恬) - [0x3758] = 0x606B, --(恫) + [0x3758] = 0x606B, --(恫) [0x3759] = 0x6059, --(恙) - [0x375A] = 0x6081, --(悁) + [0x375A] = 0x6081, --(悁) [0x375B] = 0x608D, --(悍) - [0x375C] = 0x60E7, --(惧) + [0x375C] = 0x60E7, --(惧) [0x375D] = 0x6083, --(悃) - [0x375E] = 0x609A, --(悚) + [0x375E] = 0x609A, --(悚) [0x3801] = 0x6084, --(悄) - [0x3802] = 0x609B, --(悛) + [0x3802] = 0x609B, --(悛) [0x3803] = 0x6096, --(悖) - [0x3804] = 0x6097, --(悗) + [0x3804] = 0x6097, --(悗) [0x3805] = 0x6092, --(悒) - [0x3806] = 0x60A7, --(悧) + [0x3806] = 0x60A7, --(悧) [0x3807] = 0x608B, --(悋) - [0x3808] = 0x60E1, --(惡) + [0x3808] = 0x60E1, --(惡) [0x3809] = 0x60B8, --(悸) - [0x380A] = 0x60E0, --(惠) + [0x380A] = 0x60E0, --(惠) [0x380B] = 0x60D3, --(惓) - [0x380C] = 0x60B4, --(悴) + [0x380C] = 0x60B4, --(悴) [0x380D] = 0x5FF0, --(忰) - [0x380E] = 0x60BD, --(悽) + [0x380E] = 0x60BD, --(悽) [0x380F] = 0x60C6, --(惆) - [0x3810] = 0x60B5, --(悵) + [0x3810] = 0x60B5, --(悵) [0x3811] = 0x60D8, --(惘) - [0x3812] = 0x614D, --(慍) + [0x3812] = 0x614D, --(慍) [0x3813] = 0x6115, --(愕) - [0x3814] = 0x6106, --(愆) + [0x3814] = 0x6106, --(愆) [0x3815] = 0x60F6, --(惶) - [0x3816] = 0x60F7, --(惷) + [0x3816] = 0x60F7, --(惷) [0x3817] = 0x6100, --(愀) - [0x3818] = 0x60F4, --(惴) + [0x3818] = 0x60F4, --(惴) [0x3819] = 0x60FA, --(惺) - [0x381A] = 0x6103, --(愃) + [0x381A] = 0x6103, --(愃) [0x381B] = 0x6121, --(愡) - [0x381C] = 0x60FB, --(惻) + [0x381C] = 0x60FB, --(惻) [0x381D] = 0x60F1, --(惱) - [0x381E] = 0x610D, --(愍) + [0x381E] = 0x610D, --(愍) [0x381F] = 0x610E, --(愎) - [0x3820] = 0x6147, --(慇) + [0x3820] = 0x6147, --(慇) [0x3821] = 0x613E, --(愾) - [0x3822] = 0x6128, --(愨) + [0x3822] = 0x6128, --(愨) [0x3823] = 0x6127, --(愧) - [0x3824] = 0x614A, --(慊) + [0x3824] = 0x614A, --(慊) [0x3825] = 0x613F, --(愿) - [0x3826] = 0x613C, --(愼) + [0x3826] = 0x613C, --(愼) [0x3827] = 0x612C, --(愬) - [0x3828] = 0x6134, --(愴) + [0x3828] = 0x6134, --(愴) [0x3829] = 0x613D, --(愽) - [0x382A] = 0x6142, --(慂) + [0x382A] = 0x6142, --(慂) [0x382B] = 0x6144, --(慄) - [0x382C] = 0x6173, --(慳) + [0x382C] = 0x6173, --(慳) [0x382D] = 0x6177, --(慷) - [0x382E] = 0x6158, --(慘) + [0x382E] = 0x6158, --(慘) [0x382F] = 0x6159, --(慙) - [0x3830] = 0x615A, --(慚) + [0x3830] = 0x615A, --(慚) [0x3831] = 0x616B, --(慫) - [0x3832] = 0x6174, --(慴) + [0x3832] = 0x6174, --(慴) [0x3833] = 0x616F, --(慯) - [0x3834] = 0x6165, --(慥) + [0x3834] = 0x6165, --(慥) [0x3835] = 0x6171, --(慱) - [0x3836] = 0x615F, --(慟) + [0x3836] = 0x615F, --(慟) [0x3837] = 0x615D, --(慝) - [0x3838] = 0x6153, --(慓) + [0x3838] = 0x6153, --(慓) [0x3839] = 0x6175, --(慵) - [0x383A] = 0x6199, --(憙) + [0x383A] = 0x6199, --(憙) [0x383B] = 0x6196, --(憖) - [0x383C] = 0x6187, --(憇) + [0x383C] = 0x6187, --(憇) [0x383D] = 0x61AC, --(憬) - [0x383E] = 0x6194, --(憔) + [0x383E] = 0x6194, --(憔) [0x383F] = 0x619A, --(憚) - [0x3840] = 0x618A, --(憊) + [0x3840] = 0x618A, --(憊) [0x3841] = 0x6191, --(憑) - [0x3842] = 0x61AB, --(憫) + [0x3842] = 0x61AB, --(憫) [0x3843] = 0x61AE, --(憮) - [0x3844] = 0x61CC, --(懌) + [0x3844] = 0x61CC, --(懌) [0x3845] = 0x61CA, --(懊) - [0x3846] = 0x61C9, --(應) + [0x3846] = 0x61C9, --(應) [0x3847] = 0x61F7, --(懷) - [0x3848] = 0x61C8, --(懈) + [0x3848] = 0x61C8, --(懈) [0x3849] = 0x61C3, --(懃) - [0x384A] = 0x61C6, --(懆) + [0x384A] = 0x61C6, --(懆) [0x384B] = 0x61BA, --(憺) - [0x384C] = 0x61CB, --(懋) + [0x384C] = 0x61CB, --(懋) [0x384D] = 0x7F79, --(罹) - [0x384E] = 0x61CD, --(懍) + [0x384E] = 0x61CD, --(懍) [0x384F] = 0x61E6, --(懦) - [0x3850] = 0x61E3, --(懣) + [0x3850] = 0x61E3, --(懣) [0x3851] = 0x61F6, --(懶) - [0x3852] = 0x61FA, --(懺) + [0x3852] = 0x61FA, --(懺) [0x3853] = 0x61F4, --(懴) - [0x3854] = 0x61FF, --(懿) + [0x3854] = 0x61FF, --(懿) [0x3855] = 0x61FD, --(懽) - [0x3856] = 0x61FC, --(懼) + [0x3856] = 0x61FC, --(懼) [0x3857] = 0x61FE, --(懾) - [0x3858] = 0x6200, --(戀) + [0x3858] = 0x6200, --(戀) [0x3859] = 0x6208, --(戈) - [0x385A] = 0x6209, --(戉) + [0x385A] = 0x6209, --(戉) [0x385B] = 0x620D, --(戍) - [0x385C] = 0x620C, --(戌) + [0x385C] = 0x620C, --(戌) [0x385D] = 0x6214, --(戔) - [0x385E] = 0x621B, --(戛) + [0x385E] = 0x621B, --(戛) [0x3901] = 0x621E, --(戞) - [0x3902] = 0x6221, --(戡) + [0x3902] = 0x6221, --(戡) [0x3903] = 0x622A, --(截) - [0x3904] = 0x622E, --(戮) + [0x3904] = 0x622E, --(戮) [0x3905] = 0x6230, --(戰) - [0x3906] = 0x6232, --(戲) + [0x3906] = 0x6232, --(戲) [0x3907] = 0x6233, --(戳) - [0x3908] = 0x6241, --(扁) + [0x3908] = 0x6241, --(扁) [0x3909] = 0x624E, --(扎) - [0x390A] = 0x625E, --(扞) + [0x390A] = 0x625E, --(扞) [0x390B] = 0x6263, --(扣) - [0x390C] = 0x625B, --(扛) + [0x390C] = 0x625B, --(扛) [0x390D] = 0x6260, --(扠) - [0x390E] = 0x6268, --(扨) + [0x390E] = 0x6268, --(扨) [0x390F] = 0x627C, --(扼) - [0x3910] = 0x6282, --(抂) + [0x3910] = 0x6282, --(抂) [0x3911] = 0x6289, --(抉) - [0x3912] = 0x627E, --(找) + [0x3912] = 0x627E, --(找) [0x3913] = 0x6292, --(抒) - [0x3914] = 0x6293, --(抓) + [0x3914] = 0x6293, --(抓) [0x3915] = 0x6296, --(抖) - [0x3916] = 0x62D4, --(拔) + [0x3916] = 0x62D4, --(拔) [0x3917] = 0x6283, --(抃) - [0x3918] = 0x6294, --(抔) + [0x3918] = 0x6294, --(抔) [0x3919] = 0x62D7, --(拗) - [0x391A] = 0x62D1, --(拑) + [0x391A] = 0x62D1, --(拑) [0x391B] = 0x62BB, --(抻) - [0x391C] = 0x62CF, --(拏) + [0x391C] = 0x62CF, --(拏) [0x391D] = 0x62FF, --(拿) - [0x391E] = 0x62C6, --(拆) + [0x391E] = 0x62C6, --(拆) [0x391F] = 0x64D4, --(擔) - [0x3920] = 0x62C8, --(拈) + [0x3920] = 0x62C8, --(拈) [0x3921] = 0x62DC, --(拜) - [0x3922] = 0x62CC, --(拌) + [0x3922] = 0x62CC, --(拌) [0x3923] = 0x62CA, --(拊) - [0x3924] = 0x62C2, --(拂) + [0x3924] = 0x62C2, --(拂) [0x3925] = 0x62C7, --(拇) - [0x3926] = 0x629B, --(抛) + [0x3926] = 0x629B, --(抛) [0x3927] = 0x62C9, --(拉) - [0x3928] = 0x630C, --(挌) + [0x3928] = 0x630C, --(挌) [0x3929] = 0x62EE, --(拮) - [0x392A] = 0x62F1, --(拱) + [0x392A] = 0x62F1, --(拱) [0x392B] = 0x6327, --(挧) - [0x392C] = 0x6302, --(挂) + [0x392C] = 0x6302, --(挂) [0x392D] = 0x6308, --(挈) - [0x392E] = 0x62EF, --(拯) + [0x392E] = 0x62EF, --(拯) [0x392F] = 0x62F5, --(拵) - [0x3930] = 0x6350, --(捐) + [0x3930] = 0x6350, --(捐) [0x3931] = 0x633E, --(挾) - [0x3932] = 0x634D, --(捍) + [0x3932] = 0x634D, --(捍) [0x3933] = 0x641C, --(搜) - [0x3934] = 0x634F, --(捏) + [0x3934] = 0x634F, --(捏) [0x3935] = 0x6396, --(掖) - [0x3936] = 0x638E, --(掎) + [0x3936] = 0x638E, --(掎) [0x3937] = 0x6380, --(掀) - [0x3938] = 0x63AB, --(掫) + [0x3938] = 0x63AB, --(掫) [0x3939] = 0x6376, --(捶) - [0x393A] = 0x63A3, --(掣) + [0x393A] = 0x63A3, --(掣) [0x393B] = 0x638F, --(掏) - [0x393C] = 0x6389, --(掉) + [0x393C] = 0x6389, --(掉) [0x393D] = 0x639F, --(掟) - [0x393E] = 0x63B5, --(掵) + [0x393E] = 0x63B5, --(掵) [0x393F] = 0x636B, --(捫) - [0x3940] = 0x6369, --(捩) + [0x3940] = 0x6369, --(捩) [0x3941] = 0x63BE, --(掾) - [0x3942] = 0x63E9, --(揩) + [0x3942] = 0x63E9, --(揩) [0x3943] = 0x63C0, --(揀) - [0x3944] = 0x63C6, --(揆) + [0x3944] = 0x63C6, --(揆) [0x3945] = 0x63E3, --(揣) - [0x3946] = 0x63C9, --(揉) + [0x3946] = 0x63C9, --(揉) [0x3947] = 0x63D2, --(插) - [0x3948] = 0x63F6, --(揶) + [0x3948] = 0x63F6, --(揶) [0x3949] = 0x63C4, --(揄) - [0x394A] = 0x6416, --(搖) + [0x394A] = 0x6416, --(搖) [0x394B] = 0x6434, --(搴) - [0x394C] = 0x6406, --(搆) + [0x394C] = 0x6406, --(搆) [0x394D] = 0x6413, --(搓) - [0x394E] = 0x6426, --(搦) + [0x394E] = 0x6426, --(搦) [0x394F] = 0x6436, --(搶) - [0x3950] = 0x651D, --(攝) + [0x3950] = 0x651D, --(攝) [0x3951] = 0x6417, --(搗) - [0x3952] = 0x6428, --(搨) + [0x3952] = 0x6428, --(搨) [0x3953] = 0x640F, --(搏) - [0x3954] = 0x6467, --(摧) + [0x3954] = 0x6467, --(摧) [0x3955] = 0x646F, --(摯) - [0x3956] = 0x6476, --(摶) + [0x3956] = 0x6476, --(摶) [0x3957] = 0x644E, --(摎) - [0x3958] = 0x652A, --(攪) + [0x3958] = 0x652A, --(攪) [0x3959] = 0x6495, --(撕) - [0x395A] = 0x6493, --(撓) + [0x395A] = 0x6493, --(撓) [0x395B] = 0x64A5, --(撥) - [0x395C] = 0x64A9, --(撩) + [0x395C] = 0x64A9, --(撩) [0x395D] = 0x6488, --(撈) - [0x395E] = 0x64BC, --(撼) + [0x395E] = 0x64BC, --(撼) [0x3A01] = 0x64DA, --(據) - [0x3A02] = 0x64D2, --(擒) + [0x3A02] = 0x64D2, --(擒) [0x3A03] = 0x64C5, --(擅) - [0x3A04] = 0x64C7, --(擇) + [0x3A04] = 0x64C7, --(擇) [0x3A05] = 0x64BB, --(撻) - [0x3A06] = 0x64D8, --(擘) + [0x3A06] = 0x64D8, --(擘) [0x3A07] = 0x64C2, --(擂) - [0x3A08] = 0x64F1, --(擱) + [0x3A08] = 0x64F1, --(擱) [0x3A09] = 0x64E7, --(擧) - [0x3A0A] = 0x8209, --(舉) + [0x3A0A] = 0x8209, --(舉) [0x3A0B] = 0x64E0, --(擠) - [0x3A0C] = 0x64E1, --(擡) + [0x3A0C] = 0x64E1, --(擡) [0x3A0D] = 0x62AC, --(抬) - [0x3A0E] = 0x64E3, --(擣) + [0x3A0E] = 0x64E3, --(擣) [0x3A0F] = 0x64EF, --(擯) - [0x3A10] = 0x652C, --(攬) + [0x3A10] = 0x652C, --(攬) [0x3A11] = 0x64F6, --(擶) - [0x3A12] = 0x64F4, --(擴) + [0x3A12] = 0x64F4, --(擴) [0x3A13] = 0x64F2, --(擲) - [0x3A14] = 0x64FA, --(擺) + [0x3A14] = 0x64FA, --(擺) [0x3A15] = 0x6500, --(攀) - [0x3A16] = 0x64FD, --(擽) + [0x3A16] = 0x64FD, --(擽) [0x3A17] = 0x6518, --(攘) - [0x3A18] = 0x651C, --(攜) + [0x3A18] = 0x651C, --(攜) [0x3A19] = 0x6505, --(攅) - [0x3A1A] = 0x6524, --(攤) + [0x3A1A] = 0x6524, --(攤) [0x3A1B] = 0x6523, --(攣) - [0x3A1C] = 0x652B, --(攫) + [0x3A1C] = 0x652B, --(攫) [0x3A1D] = 0x6534, --(攴) - [0x3A1E] = 0x6535, --(攵) + [0x3A1E] = 0x6535, --(攵) [0x3A1F] = 0x6537, --(攷) - [0x3A20] = 0x6536, --(收) + [0x3A20] = 0x6536, --(收) [0x3A21] = 0x6538, --(攸) - [0x3A22] = 0x754B, --(畋) + [0x3A22] = 0x754B, --(畋) [0x3A23] = 0x6548, --(效) - [0x3A24] = 0x6556, --(敖) + [0x3A24] = 0x6556, --(敖) [0x3A25] = 0x6555, --(敕) - [0x3A26] = 0x654D, --(敍) + [0x3A26] = 0x654D, --(敍) [0x3A27] = 0x6558, --(敘) - [0x3A28] = 0x655E, --(敞) + [0x3A28] = 0x655E, --(敞) [0x3A29] = 0x655D, --(敝) - [0x3A2A] = 0x6572, --(敲) + [0x3A2A] = 0x6572, --(敲) [0x3A2B] = 0x6578, --(數) - [0x3A2C] = 0x6582, --(斂) + [0x3A2C] = 0x6582, --(斂) [0x3A2D] = 0x6583, --(斃) - [0x3A2E] = 0x8B8A, --(變) + [0x3A2E] = 0x8B8A, --(變) [0x3A2F] = 0x659B, --(斛) - [0x3A30] = 0x659F, --(斟) + [0x3A30] = 0x659F, --(斟) [0x3A31] = 0x65AB, --(斫) - [0x3A32] = 0x65B7, --(斷) + [0x3A32] = 0x65B7, --(斷) [0x3A33] = 0x65C3, --(旃) - [0x3A34] = 0x65C6, --(旆) + [0x3A34] = 0x65C6, --(旆) [0x3A35] = 0x65C1, --(旁) - [0x3A36] = 0x65C4, --(旄) + [0x3A36] = 0x65C4, --(旄) [0x3A37] = 0x65CC, --(旌) - [0x3A38] = 0x65D2, --(旒) + [0x3A38] = 0x65D2, --(旒) [0x3A39] = 0x65DB, --(旛) - [0x3A3A] = 0x65D9, --(旙) + [0x3A3A] = 0x65D9, --(旙) [0x3A3B] = 0x65E0, --(无) - [0x3A3C] = 0x65E1, --(旡) + [0x3A3C] = 0x65E1, --(旡) [0x3A3D] = 0x65F1, --(旱) - [0x3A3E] = 0x6772, --(杲) + [0x3A3E] = 0x6772, --(杲) [0x3A3F] = 0x660A, --(昊) - [0x3A40] = 0x6603, --(昃) + [0x3A40] = 0x6603, --(昃) [0x3A41] = 0x65FB, --(旻) - [0x3A42] = 0x6773, --(杳) + [0x3A42] = 0x6773, --(杳) [0x3A43] = 0x6635, --(昵) - [0x3A44] = 0x6636, --(昶) + [0x3A44] = 0x6636, --(昶) [0x3A45] = 0x6634, --(昴) - [0x3A46] = 0x661C, --(昜) + [0x3A46] = 0x661C, --(昜) [0x3A47] = 0x664F, --(晏) - [0x3A48] = 0x6644, --(晄) + [0x3A48] = 0x6644, --(晄) [0x3A49] = 0x6649, --(晉) - [0x3A4A] = 0x6641, --(晁) + [0x3A4A] = 0x6641, --(晁) [0x3A4B] = 0x665E, --(晞) - [0x3A4C] = 0x665D, --(晝) + [0x3A4C] = 0x665D, --(晝) [0x3A4D] = 0x6664, --(晤) - [0x3A4E] = 0x6667, --(晧) + [0x3A4E] = 0x6667, --(晧) [0x3A4F] = 0x6668, --(晨) - [0x3A50] = 0x665F, --(晟) + [0x3A50] = 0x665F, --(晟) [0x3A51] = 0x6662, --(晢) - [0x3A52] = 0x6670, --(晰) + [0x3A52] = 0x6670, --(晰) [0x3A53] = 0x6683, --(暃) - [0x3A54] = 0x6688, --(暈) + [0x3A54] = 0x6688, --(暈) [0x3A55] = 0x668E, --(暎) - [0x3A56] = 0x6689, --(暉) + [0x3A56] = 0x6689, --(暉) [0x3A57] = 0x6684, --(暄) - [0x3A58] = 0x6698, --(暘) + [0x3A58] = 0x6698, --(暘) [0x3A59] = 0x669D, --(暝) - [0x3A5A] = 0x66C1, --(曁) + [0x3A5A] = 0x66C1, --(曁) [0x3A5B] = 0x66B9, --(暹) - [0x3A5C] = 0x66C9, --(曉) + [0x3A5C] = 0x66C9, --(曉) [0x3A5D] = 0x66BE, --(暾) - [0x3A5E] = 0x66BC, --(暼) + [0x3A5E] = 0x66BC, --(暼) [0x3B01] = 0x66C4, --(曄) - [0x3B02] = 0x66B8, --(暸) + [0x3B02] = 0x66B8, --(暸) [0x3B03] = 0x66D6, --(曖) - [0x3B04] = 0x66DA, --(曚) + [0x3B04] = 0x66DA, --(曚) [0x3B05] = 0x66E0, --(曠) - [0x3B06] = 0x663F, --(昿) + [0x3B06] = 0x663F, --(昿) [0x3B07] = 0x66E6, --(曦) - [0x3B08] = 0x66E9, --(曩) + [0x3B08] = 0x66E9, --(曩) [0x3B09] = 0x66F0, --(曰) - [0x3B0A] = 0x66F5, --(曵) + [0x3B0A] = 0x66F5, --(曵) [0x3B0B] = 0x66F7, --(曷) - [0x3B0C] = 0x670F, --(朏) + [0x3B0C] = 0x670F, --(朏) [0x3B0D] = 0x6716, --(朖) - [0x3B0E] = 0x671E, --(朞) + [0x3B0E] = 0x671E, --(朞) [0x3B0F] = 0x6726, --(朦) - [0x3B10] = 0x6727, --(朧) + [0x3B10] = 0x6727, --(朧) [0x3B11] = 0x9738, --(霸) - [0x3B12] = 0x672E, --(朮) + [0x3B12] = 0x672E, --(朮) [0x3B13] = 0x673F, --(朿) - [0x3B14] = 0x6736, --(朶) + [0x3B14] = 0x6736, --(朶) [0x3B15] = 0x6741, --(杁) - [0x3B16] = 0x6738, --(朸) + [0x3B16] = 0x6738, --(朸) [0x3B17] = 0x6737, --(朷) - [0x3B18] = 0x6746, --(杆) + [0x3B18] = 0x6746, --(杆) [0x3B19] = 0x675E, --(杞) - [0x3B1A] = 0x6760, --(杠) + [0x3B1A] = 0x6760, --(杠) [0x3B1B] = 0x6759, --(杙) - [0x3B1C] = 0x6763, --(杣) + [0x3B1C] = 0x6763, --(杣) [0x3B1D] = 0x6764, --(杤) - [0x3B1E] = 0x6789, --(枉) + [0x3B1E] = 0x6789, --(枉) [0x3B1F] = 0x6770, --(杰) - [0x3B20] = 0x67A9, --(枩) + [0x3B20] = 0x67A9, --(枩) [0x3B21] = 0x677C, --(杼) - [0x3B22] = 0x676A, --(杪) + [0x3B22] = 0x676A, --(杪) [0x3B23] = 0x678C, --(枌) - [0x3B24] = 0x678B, --(枋) + [0x3B24] = 0x678B, --(枋) [0x3B25] = 0x67A6, --(枦) - [0x3B26] = 0x67A1, --(枡) + [0x3B26] = 0x67A1, --(枡) [0x3B27] = 0x6785, --(枅) - [0x3B28] = 0x67B7, --(枷) + [0x3B28] = 0x67B7, --(枷) [0x3B29] = 0x67EF, --(柯) - [0x3B2A] = 0x67B4, --(枴) + [0x3B2A] = 0x67B4, --(枴) [0x3B2B] = 0x67EC, --(柬) - [0x3B2C] = 0x67B3, --(枳) + [0x3B2C] = 0x67B3, --(枳) [0x3B2D] = 0x67E9, --(柩) - [0x3B2E] = 0x67B8, --(枸) + [0x3B2E] = 0x67B8, --(枸) [0x3B2F] = 0x67E4, --(柤) - [0x3B30] = 0x67DE, --(柞) + [0x3B30] = 0x67DE, --(柞) [0x3B31] = 0x67DD, --(柝) - [0x3B32] = 0x67E2, --(柢) + [0x3B32] = 0x67E2, --(柢) [0x3B33] = 0x67EE, --(柮) - [0x3B34] = 0x67B9, --(枹) + [0x3B34] = 0x67B9, --(枹) [0x3B35] = 0x67CE, --(柎) - [0x3B36] = 0x67C6, --(柆) + [0x3B36] = 0x67C6, --(柆) [0x3B37] = 0x67E7, --(柧) - [0x3B38] = 0x6A9C, --(檜) + [0x3B38] = 0x6A9C, --(檜) [0x3B39] = 0x681E, --(栞) - [0x3B3A] = 0x6846, --(框) + [0x3B3A] = 0x6846, --(框) [0x3B3B] = 0x6829, --(栩) - [0x3B3C] = 0x6840, --(桀) + [0x3B3C] = 0x6840, --(桀) [0x3B3D] = 0x684D, --(桍) - [0x3B3E] = 0x6832, --(栲) + [0x3B3E] = 0x6832, --(栲) [0x3B3F] = 0x684E, --(桎) - [0x3B40] = 0x68B3, --(梳) + [0x3B40] = 0x68B3, --(梳) [0x3B41] = 0x682B, --(栫) - [0x3B42] = 0x6859, --(桙) + [0x3B42] = 0x6859, --(桙) [0x3B43] = 0x6863, --(档) - [0x3B44] = 0x6877, --(桷) + [0x3B44] = 0x6877, --(桷) [0x3B45] = 0x687F, --(桿) - [0x3B46] = 0x689F, --(梟) + [0x3B46] = 0x689F, --(梟) [0x3B47] = 0x688F, --(梏) - [0x3B48] = 0x68AD, --(梭) + [0x3B48] = 0x68AD, --(梭) [0x3B49] = 0x6894, --(梔) - [0x3B4A] = 0x689D, --(條) + [0x3B4A] = 0x689D, --(條) [0x3B4B] = 0x689B, --(梛) - [0x3B4C] = 0x6883, --(梃) + [0x3B4C] = 0x6883, --(梃) [0x3B4D] = 0x6AAE, --(檮) - [0x3B4E] = 0x68B9, --(梹) + [0x3B4E] = 0x68B9, --(梹) [0x3B4F] = 0x6874, --(桴) - [0x3B50] = 0x68B5, --(梵) + [0x3B50] = 0x68B5, --(梵) [0x3B51] = 0x68A0, --(梠) - [0x3B52] = 0x68BA, --(梺) + [0x3B52] = 0x68BA, --(梺) [0x3B53] = 0x690F, --(椏) - [0x3B54] = 0x688D, --(梍) + [0x3B54] = 0x688D, --(梍) [0x3B55] = 0x687E, --(桾) - [0x3B56] = 0x6901, --(椁) + [0x3B56] = 0x6901, --(椁) [0x3B57] = 0x68CA, --(棊) - [0x3B58] = 0x6908, --(椈) + [0x3B58] = 0x6908, --(椈) [0x3B59] = 0x68D8, --(棘) - [0x3B5A] = 0x6922, --(椢) + [0x3B5A] = 0x6922, --(椢) [0x3B5B] = 0x6926, --(椦) - [0x3B5C] = 0x68E1, --(棡) + [0x3B5C] = 0x68E1, --(棡) [0x3B5D] = 0x690C, --(椌) - [0x3B5E] = 0x68CD, --(棍) + [0x3B5E] = 0x68CD, --(棍) [0x3C01] = 0x68D4, --(棔) - [0x3C02] = 0x68E7, --(棧) + [0x3C02] = 0x68E7, --(棧) [0x3C03] = 0x68D5, --(棕) - [0x3C04] = 0x6936, --(椶) + [0x3C04] = 0x6936, --(椶) [0x3C05] = 0x6912, --(椒) - [0x3C06] = 0x6904, --(椄) + [0x3C06] = 0x6904, --(椄) [0x3C07] = 0x68D7, --(棗) - [0x3C08] = 0x68E3, --(棣) + [0x3C08] = 0x68E3, --(棣) [0x3C09] = 0x6925, --(椥) - [0x3C0A] = 0x68F9, --(棹) + [0x3C0A] = 0x68F9, --(棹) [0x3C0B] = 0x68E0, --(棠) - [0x3C0C] = 0x68EF, --(棯) + [0x3C0C] = 0x68EF, --(棯) [0x3C0D] = 0x6928, --(椨) - [0x3C0E] = 0x692A, --(椪) + [0x3C0E] = 0x692A, --(椪) [0x3C0F] = 0x691A, --(椚) - [0x3C10] = 0x6923, --(椣) + [0x3C10] = 0x6923, --(椣) [0x3C11] = 0x6921, --(椡) - [0x3C12] = 0x68C6, --(棆) + [0x3C12] = 0x68C6, --(棆) [0x3C13] = 0x6979, --(楹) - [0x3C14] = 0x6977, --(楷) + [0x3C14] = 0x6977, --(楷) [0x3C15] = 0x695C, --(楜) - [0x3C16] = 0x6978, --(楸) + [0x3C16] = 0x6978, --(楸) [0x3C17] = 0x696B, --(楫) - [0x3C18] = 0x6954, --(楔) + [0x3C18] = 0x6954, --(楔) [0x3C19] = 0x697E, --(楾) - [0x3C1A] = 0x696E, --(楮) + [0x3C1A] = 0x696E, --(楮) [0x3C1B] = 0x6939, --(椹) - [0x3C1C] = 0x6974, --(楴) + [0x3C1C] = 0x6974, --(楴) [0x3C1D] = 0x693D, --(椽) - [0x3C1E] = 0x6959, --(楙) + [0x3C1E] = 0x6959, --(楙) [0x3C1F] = 0x6930, --(椰) - [0x3C20] = 0x6961, --(楡) + [0x3C20] = 0x6961, --(楡) [0x3C21] = 0x695E, --(楞) - [0x3C22] = 0x695D, --(楝) + [0x3C22] = 0x695D, --(楝) [0x3C23] = 0x6981, --(榁) - [0x3C24] = 0x696A, --(楪) + [0x3C24] = 0x696A, --(楪) [0x3C25] = 0x69B2, --(榲) - [0x3C26] = 0x69AE, --(榮) + [0x3C26] = 0x69AE, --(榮) [0x3C27] = 0x69D0, --(槐) - [0x3C28] = 0x69BF, --(榿) + [0x3C28] = 0x69BF, --(榿) [0x3C29] = 0x69C1, --(槁) - [0x3C2A] = 0x69D3, --(槓) + [0x3C2A] = 0x69D3, --(槓) [0x3C2B] = 0x69BE, --(榾) - [0x3C2C] = 0x69CE, --(槎) + [0x3C2C] = 0x69CE, --(槎) [0x3C2D] = 0x5BE8, --(寨) - [0x3C2E] = 0x69CA, --(槊) + [0x3C2E] = 0x69CA, --(槊) [0x3C2F] = 0x69DD, --(槝) - [0x3C30] = 0x69BB, --(榻) + [0x3C30] = 0x69BB, --(榻) [0x3C31] = 0x69C3, --(槃) - [0x3C32] = 0x69A7, --(榧) + [0x3C32] = 0x69A7, --(榧) [0x3C33] = 0x6A2E, --(樮) - [0x3C34] = 0x6991, --(榑) + [0x3C34] = 0x6991, --(榑) [0x3C35] = 0x69A0, --(榠) - [0x3C36] = 0x699C, --(榜) + [0x3C36] = 0x699C, --(榜) [0x3C37] = 0x6995, --(榕) - [0x3C38] = 0x69B4, --(榴) + [0x3C38] = 0x69B4, --(榴) [0x3C39] = 0x69DE, --(槞) - [0x3C3A] = 0x69E8, --(槨) + [0x3C3A] = 0x69E8, --(槨) [0x3C3B] = 0x6A02, --(樂) - [0x3C3C] = 0x6A1B, --(樛) + [0x3C3C] = 0x6A1B, --(樛) [0x3C3D] = 0x69FF, --(槿) - [0x3C3E] = 0x6B0A, --(權) + [0x3C3E] = 0x6B0A, --(權) [0x3C3F] = 0x69F9, --(槹) - [0x3C40] = 0x69F2, --(槲) + [0x3C40] = 0x69F2, --(槲) [0x3C41] = 0x69E7, --(槧) - [0x3C42] = 0x6A05, --(樅) + [0x3C42] = 0x6A05, --(樅) [0x3C43] = 0x69B1, --(榱) - [0x3C44] = 0x6A1E, --(樞) + [0x3C44] = 0x6A1E, --(樞) [0x3C45] = 0x69ED, --(槭) - [0x3C46] = 0x6A14, --(樔) + [0x3C46] = 0x6A14, --(樔) [0x3C47] = 0x69EB, --(槫) - [0x3C48] = 0x6A0A, --(樊) + [0x3C48] = 0x6A0A, --(樊) [0x3C49] = 0x6A12, --(樒) - [0x3C4A] = 0x6AC1, --(櫁) + [0x3C4A] = 0x6AC1, --(櫁) [0x3C4B] = 0x6A23, --(樣) - [0x3C4C] = 0x6A13, --(樓) + [0x3C4C] = 0x6A13, --(樓) [0x3C4D] = 0x6A44, --(橄) - [0x3C4E] = 0x6A0C, --(樌) + [0x3C4E] = 0x6A0C, --(樌) [0x3C4F] = 0x6A72, --(橲) - [0x3C50] = 0x6A36, --(樶) + [0x3C50] = 0x6A36, --(樶) [0x3C51] = 0x6A78, --(橸) - [0x3C52] = 0x6A47, --(橇) + [0x3C52] = 0x6A47, --(橇) [0x3C53] = 0x6A62, --(橢) - [0x3C54] = 0x6A59, --(橙) + [0x3C54] = 0x6A59, --(橙) [0x3C55] = 0x6A66, --(橦) - [0x3C56] = 0x6A48, --(橈) + [0x3C56] = 0x6A48, --(橈) [0x3C57] = 0x6A38, --(樸) - [0x3C58] = 0x6A22, --(樢) + [0x3C58] = 0x6A22, --(樢) [0x3C59] = 0x6A90, --(檐) - [0x3C5A] = 0x6A8D, --(檍) + [0x3C5A] = 0x6A8D, --(檍) [0x3C5B] = 0x6AA0, --(檠) - [0x3C5C] = 0x6A84, --(檄) + [0x3C5C] = 0x6A84, --(檄) [0x3C5D] = 0x6AA2, --(檢) - [0x3C5E] = 0x6AA3, --(檣) + [0x3C5E] = 0x6AA3, --(檣) [0x3D01] = 0x6A97, --(檗) - [0x3D02] = 0x8617, --(蘗) + [0x3D02] = 0x8617, --(蘗) [0x3D03] = 0x6ABB, --(檻) - [0x3D04] = 0x6AC3, --(櫃) + [0x3D04] = 0x6AC3, --(櫃) [0x3D05] = 0x6AC2, --(櫂) - [0x3D06] = 0x6AB8, --(檸) + [0x3D06] = 0x6AB8, --(檸) [0x3D07] = 0x6AB3, --(檳) - [0x3D08] = 0x6AAC, --(檬) + [0x3D08] = 0x6AAC, --(檬) [0x3D09] = 0x6ADE, --(櫞) - [0x3D0A] = 0x6AD1, --(櫑) + [0x3D0A] = 0x6AD1, --(櫑) [0x3D0B] = 0x6ADF, --(櫟) - [0x3D0C] = 0x6AAA, --(檪) + [0x3D0C] = 0x6AAA, --(檪) [0x3D0D] = 0x6ADA, --(櫚) - [0x3D0E] = 0x6AEA, --(櫪) + [0x3D0E] = 0x6AEA, --(櫪) [0x3D0F] = 0x6AFB, --(櫻) - [0x3D10] = 0x6B05, --(欅) + [0x3D10] = 0x6B05, --(欅) [0x3D11] = 0x8616, --(蘖) - [0x3D12] = 0x6AFA, --(櫺) + [0x3D12] = 0x6AFA, --(櫺) [0x3D13] = 0x6B12, --(欒) - [0x3D14] = 0x6B16, --(欖) + [0x3D14] = 0x6B16, --(欖) [0x3D15] = 0x9B31, --(鬱) - [0x3D16] = 0x6B1F, --(欟) + [0x3D16] = 0x6B1F, --(欟) [0x3D17] = 0x6B38, --(欸) - [0x3D18] = 0x6B37, --(欷) + [0x3D18] = 0x6B37, --(欷) [0x3D19] = 0x76DC, --(盜) - [0x3D1A] = 0x6B39, --(欹) + [0x3D1A] = 0x6B39, --(欹) [0x3D1B] = 0x98EE, --(飮) - [0x3D1C] = 0x6B47, --(歇) + [0x3D1C] = 0x6B47, --(歇) [0x3D1D] = 0x6B43, --(歃) - [0x3D1E] = 0x6B49, --(歉) + [0x3D1E] = 0x6B49, --(歉) [0x3D1F] = 0x6B50, --(歐) - [0x3D20] = 0x6B59, --(歙) + [0x3D20] = 0x6B59, --(歙) [0x3D21] = 0x6B54, --(歔) - [0x3D22] = 0x6B5B, --(歛) + [0x3D22] = 0x6B5B, --(歛) [0x3D23] = 0x6B5F, --(歟) - [0x3D24] = 0x6B61, --(歡) + [0x3D24] = 0x6B61, --(歡) [0x3D25] = 0x6B78, --(歸) - [0x3D26] = 0x6B79, --(歹) + [0x3D26] = 0x6B79, --(歹) [0x3D27] = 0x6B7F, --(歿) - [0x3D28] = 0x6B80, --(殀) + [0x3D28] = 0x6B80, --(殀) [0x3D29] = 0x6B84, --(殄) - [0x3D2A] = 0x6B83, --(殃) + [0x3D2A] = 0x6B83, --(殃) [0x3D2B] = 0x6B8D, --(殍) - [0x3D2C] = 0x6B98, --(殘) + [0x3D2C] = 0x6B98, --(殘) [0x3D2D] = 0x6B95, --(殕) - [0x3D2E] = 0x6B9E, --(殞) + [0x3D2E] = 0x6B9E, --(殞) [0x3D2F] = 0x6BA4, --(殤) - [0x3D30] = 0x6BAA, --(殪) + [0x3D30] = 0x6BAA, --(殪) [0x3D31] = 0x6BAB, --(殫) - [0x3D32] = 0x6BAF, --(殯) + [0x3D32] = 0x6BAF, --(殯) [0x3D33] = 0x6BB2, --(殲) - [0x3D34] = 0x6BB1, --(殱) + [0x3D34] = 0x6BB1, --(殱) [0x3D35] = 0x6BB3, --(殳) - [0x3D36] = 0x6BB7, --(殷) + [0x3D36] = 0x6BB7, --(殷) [0x3D37] = 0x6BBC, --(殼) - [0x3D38] = 0x6BC6, --(毆) + [0x3D38] = 0x6BC6, --(毆) [0x3D39] = 0x6BCB, --(毋) - [0x3D3A] = 0x6BD3, --(毓) + [0x3D3A] = 0x6BD3, --(毓) [0x3D3B] = 0x6BDF, --(毟) - [0x3D3C] = 0x6BEC, --(毬) + [0x3D3C] = 0x6BEC, --(毬) [0x3D3D] = 0x6BEB, --(毫) - [0x3D3E] = 0x6BF3, --(毳) + [0x3D3E] = 0x6BF3, --(毳) [0x3D3F] = 0x6BEF, --(毯) - [0x3D40] = 0x9EBE, --(麾) + [0x3D40] = 0x9EBE, --(麾) [0x3D41] = 0x6C08, --(氈) - [0x3D42] = 0x6C13, --(氓) + [0x3D42] = 0x6C13, --(氓) [0x3D43] = 0x6C14, --(气) - [0x3D44] = 0x6C1B, --(氛) + [0x3D44] = 0x6C1B, --(氛) [0x3D45] = 0x6C24, --(氤) - [0x3D46] = 0x6C23, --(氣) + [0x3D46] = 0x6C23, --(氣) [0x3D47] = 0x6C5E, --(汞) - [0x3D48] = 0x6C55, --(汕) + [0x3D48] = 0x6C55, --(汕) [0x3D49] = 0x6C62, --(汢) - [0x3D4A] = 0x6C6A, --(汪) + [0x3D4A] = 0x6C6A, --(汪) [0x3D4B] = 0x6C82, --(沂) - [0x3D4C] = 0x6C8D, --(沍) + [0x3D4C] = 0x6C8D, --(沍) [0x3D4D] = 0x6C9A, --(沚) - [0x3D4E] = 0x6C81, --(沁) + [0x3D4E] = 0x6C81, --(沁) [0x3D4F] = 0x6C9B, --(沛) - [0x3D50] = 0x6C7E, --(汾) + [0x3D50] = 0x6C7E, --(汾) [0x3D51] = 0x6C68, --(汨) - [0x3D52] = 0x6C73, --(汳) + [0x3D52] = 0x6C73, --(汳) [0x3D53] = 0x6C92, --(沒) - [0x3D54] = 0x6C90, --(沐) + [0x3D54] = 0x6C90, --(沐) [0x3D55] = 0x6CC4, --(泄) - [0x3D56] = 0x6CF1, --(泱) + [0x3D56] = 0x6CF1, --(泱) [0x3D57] = 0x6CD3, --(泓) - [0x3D58] = 0x6CBD, --(沽) + [0x3D58] = 0x6CBD, --(沽) [0x3D59] = 0x6CD7, --(泗) - [0x3D5A] = 0x6CC5, --(泅) + [0x3D5A] = 0x6CC5, --(泅) [0x3D5B] = 0x6CDD, --(泝) - [0x3D5C] = 0x6CAE, --(沮) + [0x3D5C] = 0x6CAE, --(沮) [0x3D5D] = 0x6CB1, --(沱) - [0x3D5E] = 0x6CBE, --(沾) + [0x3D5E] = 0x6CBE, --(沾) [0x3E01] = 0x6CBA, --(沺) - [0x3E02] = 0x6CDB, --(泛) + [0x3E02] = 0x6CDB, --(泛) [0x3E03] = 0x6CEF, --(泯) - [0x3E04] = 0x6CD9, --(泙) + [0x3E04] = 0x6CD9, --(泙) [0x3E05] = 0x6CEA, --(泪) - [0x3E06] = 0x6D1F, --(洟) + [0x3E06] = 0x6D1F, --(洟) [0x3E07] = 0x884D, --(衍) - [0x3E08] = 0x6D36, --(洶) + [0x3E08] = 0x6D36, --(洶) [0x3E09] = 0x6D2B, --(洫) - [0x3E0A] = 0x6D3D, --(洽) + [0x3E0A] = 0x6D3D, --(洽) [0x3E0B] = 0x6D38, --(洸) - [0x3E0C] = 0x6D19, --(洙) + [0x3E0C] = 0x6D19, --(洙) [0x3E0D] = 0x6D35, --(洵) - [0x3E0E] = 0x6D33, --(洳) + [0x3E0E] = 0x6D33, --(洳) [0x3E0F] = 0x6D12, --(洒) - [0x3E10] = 0x6D0C, --(洌) + [0x3E10] = 0x6D0C, --(洌) [0x3E11] = 0x6D63, --(浣) - [0x3E12] = 0x6D93, --(涓) + [0x3E12] = 0x6D93, --(涓) [0x3E13] = 0x6D64, --(浤) - [0x3E14] = 0x6D5A, --(浚) + [0x3E14] = 0x6D5A, --(浚) [0x3E15] = 0x6D79, --(浹) - [0x3E16] = 0x6D59, --(浙) + [0x3E16] = 0x6D59, --(浙) [0x3E17] = 0x6D8E, --(涎) - [0x3E18] = 0x6D95, --(涕) + [0x3E18] = 0x6D95, --(涕) [0x3E19] = 0x6FE4, --(濤) - [0x3E1A] = 0x6D85, --(涅) + [0x3E1A] = 0x6D85, --(涅) [0x3E1B] = 0x6DF9, --(淹) - [0x3E1C] = 0x6E15, --(渕) + [0x3E1C] = 0x6E15, --(渕) [0x3E1D] = 0x6E0A, --(渊) - [0x3E1E] = 0x6DB5, --(涵) + [0x3E1E] = 0x6DB5, --(涵) [0x3E1F] = 0x6DC7, --(淇) - [0x3E20] = 0x6DE6, --(淦) + [0x3E20] = 0x6DE6, --(淦) [0x3E21] = 0x6DB8, --(涸) - [0x3E22] = 0x6DC6, --(淆) + [0x3E22] = 0x6DC6, --(淆) [0x3E23] = 0x6DEC, --(淬) - [0x3E24] = 0x6DDE, --(淞) + [0x3E24] = 0x6DDE, --(淞) [0x3E25] = 0x6DCC, --(淌) - [0x3E26] = 0x6DE8, --(淨) + [0x3E26] = 0x6DE8, --(淨) [0x3E27] = 0x6DD2, --(淒) - [0x3E28] = 0x6DC5, --(淅) + [0x3E28] = 0x6DC5, --(淅) [0x3E29] = 0x6DFA, --(淺) - [0x3E2A] = 0x6DD9, --(淙) + [0x3E2A] = 0x6DD9, --(淙) [0x3E2B] = 0x6DE4, --(淤) - [0x3E2C] = 0x6DD5, --(淕) + [0x3E2C] = 0x6DD5, --(淕) [0x3E2D] = 0x6DEA, --(淪) - [0x3E2E] = 0x6DEE, --(淮) + [0x3E2E] = 0x6DEE, --(淮) [0x3E2F] = 0x6E2D, --(渭) - [0x3E30] = 0x6E6E, --(湮) + [0x3E30] = 0x6E6E, --(湮) [0x3E31] = 0x6E2E, --(渮) - [0x3E32] = 0x6E19, --(渙) + [0x3E32] = 0x6E19, --(渙) [0x3E33] = 0x6E72, --(湲) - [0x3E34] = 0x6E5F, --(湟) + [0x3E34] = 0x6E5F, --(湟) [0x3E35] = 0x6E3E, --(渾) - [0x3E36] = 0x6E23, --(渣) + [0x3E36] = 0x6E23, --(渣) [0x3E37] = 0x6E6B, --(湫) - [0x3E38] = 0x6E2B, --(渫) + [0x3E38] = 0x6E2B, --(渫) [0x3E39] = 0x6E76, --(湶) - [0x3E3A] = 0x6E4D, --(湍) + [0x3E3A] = 0x6E4D, --(湍) [0x3E3B] = 0x6E1F, --(渟) - [0x3E3C] = 0x6E43, --(湃) + [0x3E3C] = 0x6E43, --(湃) [0x3E3D] = 0x6E3A, --(渺) - [0x3E3E] = 0x6E4E, --(湎) + [0x3E3E] = 0x6E4E, --(湎) [0x3E3F] = 0x6E24, --(渤) - [0x3E40] = 0x6EFF, --(滿) + [0x3E40] = 0x6EFF, --(滿) [0x3E41] = 0x6E1D, --(渝) - [0x3E42] = 0x6E38, --(游) + [0x3E42] = 0x6E38, --(游) [0x3E43] = 0x6E82, --(溂) - [0x3E44] = 0x6EAA, --(溪) + [0x3E44] = 0x6EAA, --(溪) [0x3E45] = 0x6E98, --(溘) - [0x3E46] = 0x6EC9, --(滉) + [0x3E46] = 0x6EC9, --(滉) [0x3E47] = 0x6EB7, --(溷) - [0x3E48] = 0x6ED3, --(滓) + [0x3E48] = 0x6ED3, --(滓) [0x3E49] = 0x6EBD, --(溽) - [0x3E4A] = 0x6EAF, --(溯) + [0x3E4A] = 0x6EAF, --(溯) [0x3E4B] = 0x6EC4, --(滄) - [0x3E4C] = 0x6EB2, --(溲) + [0x3E4C] = 0x6EB2, --(溲) [0x3E4D] = 0x6ED4, --(滔) - [0x3E4E] = 0x6ED5, --(滕) + [0x3E4E] = 0x6ED5, --(滕) [0x3E4F] = 0x6E8F, --(溏) - [0x3E50] = 0x6EA5, --(溥) + [0x3E50] = 0x6EA5, --(溥) [0x3E51] = 0x6EC2, --(滂) - [0x3E52] = 0x6E9F, --(溟) + [0x3E52] = 0x6E9F, --(溟) [0x3E53] = 0x6F41, --(潁) - [0x3E54] = 0x6F11, --(漑) + [0x3E54] = 0x6F11, --(漑) [0x3E55] = 0x704C, --(灌) - [0x3E56] = 0x6EEC, --(滬) + [0x3E56] = 0x6EEC, --(滬) [0x3E57] = 0x6EF8, --(滸) - [0x3E58] = 0x6EFE, --(滾) + [0x3E58] = 0x6EFE, --(滾) [0x3E59] = 0x6F3F, --(漿) - [0x3E5A] = 0x6EF2, --(滲) + [0x3E5A] = 0x6EF2, --(滲) [0x3E5B] = 0x6F31, --(漱) - [0x3E5C] = 0x6EEF, --(滯) + [0x3E5C] = 0x6EEF, --(滯) [0x3E5D] = 0x6F32, --(漲) - [0x3E5E] = 0x6ECC, --(滌) + [0x3E5E] = 0x6ECC, --(滌) [0x3F01] = 0x6F3E, --(漾) - [0x3F02] = 0x6F13, --(漓) + [0x3F02] = 0x6F13, --(漓) [0x3F03] = 0x6EF7, --(滷) - [0x3F04] = 0x6F86, --(澆) + [0x3F04] = 0x6F86, --(澆) [0x3F05] = 0x6F7A, --(潺) - [0x3F06] = 0x6F78, --(潸) + [0x3F06] = 0x6F78, --(潸) [0x3F07] = 0x6F81, --(澁) - [0x3F08] = 0x6F80, --(澀) + [0x3F08] = 0x6F80, --(澀) [0x3F09] = 0x6F6F, --(潯) - [0x3F0A] = 0x6F5B, --(潛) + [0x3F0A] = 0x6F5B, --(潛) [0x3F0B] = 0x6FF3, --(濳) - [0x3F0C] = 0x6F6D, --(潭) + [0x3F0C] = 0x6F6D, --(潭) [0x3F0D] = 0x6F82, --(澂) - [0x3F0E] = 0x6F7C, --(潼) + [0x3F0E] = 0x6F7C, --(潼) [0x3F0F] = 0x6F58, --(潘) - [0x3F10] = 0x6F8E, --(澎) + [0x3F10] = 0x6F8E, --(澎) [0x3F11] = 0x6F91, --(澑) - [0x3F12] = 0x6FC2, --(濂) + [0x3F12] = 0x6FC2, --(濂) [0x3F13] = 0x6F66, --(潦) - [0x3F14] = 0x6FB3, --(澳) + [0x3F14] = 0x6FB3, --(澳) [0x3F15] = 0x6FA3, --(澣) - [0x3F16] = 0x6FA1, --(澡) + [0x3F16] = 0x6FA1, --(澡) [0x3F17] = 0x6FA4, --(澤) - [0x3F18] = 0x6FB9, --(澹) + [0x3F18] = 0x6FB9, --(澹) [0x3F19] = 0x6FC6, --(濆) - [0x3F1A] = 0x6FAA, --(澪) + [0x3F1A] = 0x6FAA, --(澪) [0x3F1B] = 0x6FDF, --(濟) - [0x3F1C] = 0x6FD5, --(濕) + [0x3F1C] = 0x6FD5, --(濕) [0x3F1D] = 0x6FEC, --(濬) - [0x3F1E] = 0x6FD4, --(濔) + [0x3F1E] = 0x6FD4, --(濔) [0x3F1F] = 0x6FD8, --(濘) - [0x3F20] = 0x6FF1, --(濱) + [0x3F20] = 0x6FF1, --(濱) [0x3F21] = 0x6FEE, --(濮) - [0x3F22] = 0x6FDB, --(濛) + [0x3F22] = 0x6FDB, --(濛) [0x3F23] = 0x7009, --(瀉) - [0x3F24] = 0x700B, --(瀋) + [0x3F24] = 0x700B, --(瀋) [0x3F25] = 0x6FFA, --(濺) - [0x3F26] = 0x7011, --(瀑) + [0x3F26] = 0x7011, --(瀑) [0x3F27] = 0x7001, --(瀁) - [0x3F28] = 0x700F, --(瀏) + [0x3F28] = 0x700F, --(瀏) [0x3F29] = 0x6FFE, --(濾) - [0x3F2A] = 0x701B, --(瀛) + [0x3F2A] = 0x701B, --(瀛) [0x3F2B] = 0x701A, --(瀚) - [0x3F2C] = 0x6F74, --(潴) + [0x3F2C] = 0x6F74, --(潴) [0x3F2D] = 0x701D, --(瀝) - [0x3F2E] = 0x7018, --(瀘) + [0x3F2E] = 0x7018, --(瀘) [0x3F2F] = 0x701F, --(瀟) - [0x3F30] = 0x7030, --(瀰) + [0x3F30] = 0x7030, --(瀰) [0x3F31] = 0x703E, --(瀾) - [0x3F32] = 0x7032, --(瀲) + [0x3F32] = 0x7032, --(瀲) [0x3F33] = 0x7051, --(灑) - [0x3F34] = 0x7063, --(灣) + [0x3F34] = 0x7063, --(灣) [0x3F35] = 0x7099, --(炙) - [0x3F36] = 0x7092, --(炒) + [0x3F36] = 0x7092, --(炒) [0x3F37] = 0x70AF, --(炯) - [0x3F38] = 0x70F1, --(烱) + [0x3F38] = 0x70F1, --(烱) [0x3F39] = 0x70AC, --(炬) - [0x3F3A] = 0x70B8, --(炸) + [0x3F3A] = 0x70B8, --(炸) [0x3F3B] = 0x70B3, --(炳) - [0x3F3C] = 0x70AE, --(炮) + [0x3F3C] = 0x70AE, --(炮) [0x3F3D] = 0x70DF, --(烟) - [0x3F3E] = 0x70CB, --(烋) + [0x3F3E] = 0x70CB, --(烋) [0x3F3F] = 0x70DD, --(烝) - [0x3F40] = 0x70D9, --(烙) + [0x3F40] = 0x70D9, --(烙) [0x3F41] = 0x7109, --(焉) - [0x3F42] = 0x70FD, --(烽) + [0x3F42] = 0x70FD, --(烽) [0x3F43] = 0x711C, --(焜) - [0x3F44] = 0x7119, --(焙) + [0x3F44] = 0x7119, --(焙) [0x3F45] = 0x7165, --(煥) - [0x3F46] = 0x7155, --(煕) + [0x3F46] = 0x7155, --(煕) [0x3F47] = 0x7188, --(熈) - [0x3F48] = 0x7166, --(煦) + [0x3F48] = 0x7166, --(煦) [0x3F49] = 0x7162, --(煢) - [0x3F4A] = 0x714C, --(煌) + [0x3F4A] = 0x714C, --(煌) [0x3F4B] = 0x7156, --(煖) - [0x3F4C] = 0x716C, --(煬) + [0x3F4C] = 0x716C, --(煬) [0x3F4D] = 0x718F, --(熏) - [0x3F4E] = 0x71FB, --(燻) + [0x3F4E] = 0x71FB, --(燻) [0x3F4F] = 0x7184, --(熄) - [0x3F50] = 0x7195, --(熕) + [0x3F50] = 0x7195, --(熕) [0x3F51] = 0x71A8, --(熨) - [0x3F52] = 0x71AC, --(熬) + [0x3F52] = 0x71AC, --(熬) [0x3F53] = 0x71D7, --(燗) - [0x3F54] = 0x71B9, --(熹) + [0x3F54] = 0x71B9, --(熹) [0x3F55] = 0x71BE, --(熾) - [0x3F56] = 0x71D2, --(燒) + [0x3F56] = 0x71D2, --(燒) [0x3F57] = 0x71C9, --(燉) - [0x3F58] = 0x71D4, --(燔) + [0x3F58] = 0x71D4, --(燔) [0x3F59] = 0x71CE, --(燎) - [0x3F5A] = 0x71E0, --(燠) + [0x3F5A] = 0x71E0, --(燠) [0x3F5B] = 0x71EC, --(燬) - [0x3F5C] = 0x71E7, --(燧) + [0x3F5C] = 0x71E7, --(燧) [0x3F5D] = 0x71F5, --(燵) - [0x3F5E] = 0x71FC, --(燼) + [0x3F5E] = 0x71FC, --(燼) [0x4001] = 0x71F9, --(燹) - [0x4002] = 0x71FF, --(燿) + [0x4002] = 0x71FF, --(燿) [0x4003] = 0x720D, --(爍) - [0x4004] = 0x7210, --(爐) + [0x4004] = 0x7210, --(爐) [0x4005] = 0x721B, --(爛) - [0x4006] = 0x7228, --(爨) + [0x4006] = 0x7228, --(爨) [0x4007] = 0x722D, --(爭) - [0x4008] = 0x722C, --(爬) + [0x4008] = 0x722C, --(爬) [0x4009] = 0x7230, --(爰) - [0x400A] = 0x7232, --(爲) + [0x400A] = 0x7232, --(爲) [0x400B] = 0x723B, --(爻) - [0x400C] = 0x723C, --(爼) + [0x400C] = 0x723C, --(爼) [0x400D] = 0x723F, --(爿) - [0x400E] = 0x7240, --(牀) + [0x400E] = 0x7240, --(牀) [0x400F] = 0x7246, --(牆) - [0x4010] = 0x724B, --(牋) + [0x4010] = 0x724B, --(牋) [0x4011] = 0x7258, --(牘) - [0x4012] = 0x7274, --(牴) + [0x4012] = 0x7274, --(牴) [0x4013] = 0x727E, --(牾) - [0x4014] = 0x7282, --(犂) + [0x4014] = 0x7282, --(犂) [0x4015] = 0x7281, --(犁) - [0x4016] = 0x7287, --(犇) + [0x4016] = 0x7287, --(犇) [0x4017] = 0x7292, --(犒) - [0x4018] = 0x7296, --(犖) + [0x4018] = 0x7296, --(犖) [0x4019] = 0x72A2, --(犢) - [0x401A] = 0x72A7, --(犧) + [0x401A] = 0x72A7, --(犧) [0x401B] = 0x72B9, --(犹) - [0x401C] = 0x72B2, --(犲) + [0x401C] = 0x72B2, --(犲) [0x401D] = 0x72C3, --(狃) - [0x401E] = 0x72C6, --(狆) + [0x401E] = 0x72C6, --(狆) [0x401F] = 0x72C4, --(狄) - [0x4020] = 0x72CE, --(狎) + [0x4020] = 0x72CE, --(狎) [0x4021] = 0x72D2, --(狒) - [0x4022] = 0x72E2, --(狢) + [0x4022] = 0x72E2, --(狢) [0x4023] = 0x72E0, --(狠) - [0x4024] = 0x72E1, --(狡) + [0x4024] = 0x72E1, --(狡) [0x4025] = 0x72F9, --(狹) - [0x4026] = 0x72F7, --(狷) + [0x4026] = 0x72F7, --(狷) [0x4027] = 0x500F, --(倏) - [0x4028] = 0x7317, --(猗) + [0x4028] = 0x7317, --(猗) [0x4029] = 0x730A, --(猊) - [0x402A] = 0x731C, --(猜) + [0x402A] = 0x731C, --(猜) [0x402B] = 0x7316, --(猖) - [0x402C] = 0x731D, --(猝) + [0x402C] = 0x731D, --(猝) [0x402D] = 0x7334, --(猴) - [0x402E] = 0x732F, --(猯) + [0x402E] = 0x732F, --(猯) [0x402F] = 0x7329, --(猩) - [0x4030] = 0x7325, --(猥) + [0x4030] = 0x7325, --(猥) [0x4031] = 0x733E, --(猾) - [0x4032] = 0x734E, --(獎) + [0x4032] = 0x734E, --(獎) [0x4033] = 0x734F, --(獏) - [0x4034] = 0x9ED8, --(默) + [0x4034] = 0x9ED8, --(默) [0x4035] = 0x7357, --(獗) - [0x4036] = 0x736A, --(獪) + [0x4036] = 0x736A, --(獪) [0x4037] = 0x7368, --(獨) - [0x4038] = 0x7370, --(獰) + [0x4038] = 0x7370, --(獰) [0x4039] = 0x7378, --(獸) - [0x403A] = 0x7375, --(獵) + [0x403A] = 0x7375, --(獵) [0x403B] = 0x737B, --(獻) - [0x403C] = 0x737A, --(獺) + [0x403C] = 0x737A, --(獺) [0x403D] = 0x73C8, --(珈) - [0x403E] = 0x73B3, --(玳) + [0x403E] = 0x73B3, --(玳) [0x403F] = 0x73CE, --(珎) - [0x4040] = 0x73BB, --(玻) + [0x4040] = 0x73BB, --(玻) [0x4041] = 0x73C0, --(珀) - [0x4042] = 0x73E5, --(珥) + [0x4042] = 0x73E5, --(珥) [0x4043] = 0x73EE, --(珮) - [0x4044] = 0x73DE, --(珞) + [0x4044] = 0x73DE, --(珞) [0x4045] = 0x74A2, --(璢) - [0x4046] = 0x7405, --(琅) + [0x4046] = 0x7405, --(琅) [0x4047] = 0x746F, --(瑯) - [0x4048] = 0x7425, --(琥) + [0x4048] = 0x7425, --(琥) [0x4049] = 0x73F8, --(珸) - [0x404A] = 0x7432, --(琲) + [0x404A] = 0x7432, --(琲) [0x404B] = 0x743A, --(琺) - [0x404C] = 0x7455, --(瑕) + [0x404C] = 0x7455, --(瑕) [0x404D] = 0x743F, --(琿) - [0x404E] = 0x745F, --(瑟) + [0x404E] = 0x745F, --(瑟) [0x404F] = 0x7459, --(瑙) - [0x4050] = 0x7441, --(瑁) + [0x4050] = 0x7441, --(瑁) [0x4051] = 0x745C, --(瑜) - [0x4052] = 0x7469, --(瑩) + [0x4052] = 0x7469, --(瑩) [0x4053] = 0x7470, --(瑰) - [0x4054] = 0x7463, --(瑣) + [0x4054] = 0x7463, --(瑣) [0x4055] = 0x746A, --(瑪) - [0x4056] = 0x7476, --(瑶) + [0x4056] = 0x7476, --(瑶) [0x4057] = 0x747E, --(瑾) - [0x4058] = 0x748B, --(璋) + [0x4058] = 0x748B, --(璋) [0x4059] = 0x749E, --(璞) - [0x405A] = 0x74A7, --(璧) + [0x405A] = 0x74A7, --(璧) [0x405B] = 0x74CA, --(瓊) - [0x405C] = 0x74CF, --(瓏) + [0x405C] = 0x74CF, --(瓏) [0x405D] = 0x74D4, --(瓔) - [0x405E] = 0x73F1, --(珱) + [0x405E] = 0x73F1, --(珱) [0x4101] = 0x74E0, --(瓠) - [0x4102] = 0x74E3, --(瓣) + [0x4102] = 0x74E3, --(瓣) [0x4103] = 0x74E7, --(瓧) - [0x4104] = 0x74E9, --(瓩) + [0x4104] = 0x74E9, --(瓩) [0x4105] = 0x74EE, --(瓮) - [0x4106] = 0x74F2, --(瓲) + [0x4106] = 0x74F2, --(瓲) [0x4107] = 0x74F0, --(瓰) - [0x4108] = 0x74F1, --(瓱) + [0x4108] = 0x74F1, --(瓱) [0x4109] = 0x74F8, --(瓸) - [0x410A] = 0x74F7, --(瓷) + [0x410A] = 0x74F7, --(瓷) [0x410B] = 0x7504, --(甄) - [0x410C] = 0x7503, --(甃) + [0x410C] = 0x7503, --(甃) [0x410D] = 0x7505, --(甅) - [0x410E] = 0x750C, --(甌) + [0x410E] = 0x750C, --(甌) [0x410F] = 0x750E, --(甎) - [0x4110] = 0x750D, --(甍) + [0x4110] = 0x750D, --(甍) [0x4111] = 0x7515, --(甕) - [0x4112] = 0x7513, --(甓) + [0x4112] = 0x7513, --(甓) [0x4113] = 0x751E, --(甞) - [0x4114] = 0x7526, --(甦) + [0x4114] = 0x7526, --(甦) [0x4115] = 0x752C, --(甬) - [0x4116] = 0x753C, --(甼) + [0x4116] = 0x753C, --(甼) [0x4117] = 0x7544, --(畄) - [0x4118] = 0x754D, --(畍) + [0x4118] = 0x754D, --(畍) [0x4119] = 0x754A, --(畊) - [0x411A] = 0x7549, --(畉) + [0x411A] = 0x7549, --(畉) [0x411B] = 0x755B, --(畛) - [0x411C] = 0x7546, --(畆) + [0x411C] = 0x7546, --(畆) [0x411D] = 0x755A, --(畚) - [0x411E] = 0x7569, --(畩) + [0x411E] = 0x7569, --(畩) [0x411F] = 0x7564, --(畤) - [0x4120] = 0x7567, --(畧) + [0x4120] = 0x7567, --(畧) [0x4121] = 0x756B, --(畫) - [0x4122] = 0x756D, --(畭) + [0x4122] = 0x756D, --(畭) [0x4123] = 0x7578, --(畸) - [0x4124] = 0x7576, --(當) + [0x4124] = 0x7576, --(當) [0x4125] = 0x7586, --(疆) - [0x4126] = 0x7587, --(疇) + [0x4126] = 0x7587, --(疇) [0x4127] = 0x7574, --(畴) - [0x4128] = 0x758A, --(疊) + [0x4128] = 0x758A, --(疊) [0x4129] = 0x7589, --(疉) - [0x412A] = 0x7582, --(疂) + [0x412A] = 0x7582, --(疂) [0x412B] = 0x7594, --(疔) - [0x412C] = 0x759A, --(疚) + [0x412C] = 0x759A, --(疚) [0x412D] = 0x759D, --(疝) - [0x412E] = 0x75A5, --(疥) + [0x412E] = 0x75A5, --(疥) [0x412F] = 0x75A3, --(疣) - [0x4130] = 0x75C2, --(痂) + [0x4130] = 0x75C2, --(痂) [0x4131] = 0x75B3, --(疳) - [0x4132] = 0x75C3, --(痃) + [0x4132] = 0x75C3, --(痃) [0x4133] = 0x75B5, --(疵) - [0x4134] = 0x75BD, --(疽) + [0x4134] = 0x75BD, --(疽) [0x4135] = 0x75B8, --(疸) - [0x4136] = 0x75BC, --(疼) + [0x4136] = 0x75BC, --(疼) [0x4137] = 0x75B1, --(疱) - [0x4138] = 0x75CD, --(痍) + [0x4138] = 0x75CD, --(痍) [0x4139] = 0x75CA, --(痊) - [0x413A] = 0x75D2, --(痒) + [0x413A] = 0x75D2, --(痒) [0x413B] = 0x75D9, --(痙) - [0x413C] = 0x75E3, --(痣) + [0x413C] = 0x75E3, --(痣) [0x413D] = 0x75DE, --(痞) - [0x413E] = 0x75FE, --(痾) + [0x413E] = 0x75FE, --(痾) [0x413F] = 0x75FF, --(痿) - [0x4140] = 0x75FC, --(痼) + [0x4140] = 0x75FC, --(痼) [0x4141] = 0x7601, --(瘁) - [0x4142] = 0x75F0, --(痰) + [0x4142] = 0x75F0, --(痰) [0x4143] = 0x75FA, --(痺) - [0x4144] = 0x75F2, --(痲) + [0x4144] = 0x75F2, --(痲) [0x4145] = 0x75F3, --(痳) - [0x4146] = 0x760B, --(瘋) + [0x4146] = 0x760B, --(瘋) [0x4147] = 0x760D, --(瘍) - [0x4148] = 0x7609, --(瘉) + [0x4148] = 0x7609, --(瘉) [0x4149] = 0x761F, --(瘟) - [0x414A] = 0x7627, --(瘧) + [0x414A] = 0x7627, --(瘧) [0x414B] = 0x7620, --(瘠) - [0x414C] = 0x7621, --(瘡) + [0x414C] = 0x7621, --(瘡) [0x414D] = 0x7622, --(瘢) - [0x414E] = 0x7624, --(瘤) + [0x414E] = 0x7624, --(瘤) [0x414F] = 0x7634, --(瘴) - [0x4150] = 0x7630, --(瘰) + [0x4150] = 0x7630, --(瘰) [0x4151] = 0x763B, --(瘻) - [0x4152] = 0x7647, --(癇) + [0x4152] = 0x7647, --(癇) [0x4153] = 0x7648, --(癈) - [0x4154] = 0x7646, --(癆) + [0x4154] = 0x7646, --(癆) [0x4155] = 0x765C, --(癜) - [0x4156] = 0x7658, --(癘) + [0x4156] = 0x7658, --(癘) [0x4157] = 0x7661, --(癡) - [0x4158] = 0x7662, --(癢) + [0x4158] = 0x7662, --(癢) [0x4159] = 0x7668, --(癨) - [0x415A] = 0x7669, --(癩) + [0x415A] = 0x7669, --(癩) [0x415B] = 0x766A, --(癪) - [0x415C] = 0x7667, --(癧) + [0x415C] = 0x7667, --(癧) [0x415D] = 0x766C, --(癬) - [0x415E] = 0x7670, --(癰) + [0x415E] = 0x7670, --(癰) [0x4201] = 0x7672, --(癲) - [0x4202] = 0x7676, --(癶) + [0x4202] = 0x7676, --(癶) [0x4203] = 0x7678, --(癸) - [0x4204] = 0x767C, --(發) + [0x4204] = 0x767C, --(發) [0x4205] = 0x7680, --(皀) - [0x4206] = 0x7683, --(皃) + [0x4206] = 0x7683, --(皃) [0x4207] = 0x7688, --(皈) - [0x4208] = 0x768B, --(皋) + [0x4208] = 0x768B, --(皋) [0x4209] = 0x768E, --(皎) - [0x420A] = 0x7696, --(皖) + [0x420A] = 0x7696, --(皖) [0x420B] = 0x7693, --(皓) - [0x420C] = 0x7699, --(皙) + [0x420C] = 0x7699, --(皙) [0x420D] = 0x769A, --(皚) - [0x420E] = 0x76B0, --(皰) + [0x420E] = 0x76B0, --(皰) [0x420F] = 0x76B4, --(皴) - [0x4210] = 0x76B8, --(皸) + [0x4210] = 0x76B8, --(皸) [0x4211] = 0x76B9, --(皹) - [0x4212] = 0x76BA, --(皺) + [0x4212] = 0x76BA, --(皺) [0x4213] = 0x76C2, --(盂) - [0x4214] = 0x76CD, --(盍) + [0x4214] = 0x76CD, --(盍) [0x4215] = 0x76D6, --(盖) - [0x4216] = 0x76D2, --(盒) + [0x4216] = 0x76D2, --(盒) [0x4217] = 0x76DE, --(盞) - [0x4218] = 0x76E1, --(盡) + [0x4218] = 0x76E1, --(盡) [0x4219] = 0x76E5, --(盥) - [0x421A] = 0x76E7, --(盧) + [0x421A] = 0x76E7, --(盧) [0x421B] = 0x76EA, --(盪) - [0x421C] = 0x862F, --(蘯) + [0x421C] = 0x862F, --(蘯) [0x421D] = 0x76FB, --(盻) - [0x421E] = 0x7708, --(眈) + [0x421E] = 0x7708, --(眈) [0x421F] = 0x7707, --(眇) - [0x4220] = 0x7704, --(眄) + [0x4220] = 0x7704, --(眄) [0x4221] = 0x7729, --(眩) - [0x4222] = 0x7724, --(眤) + [0x4222] = 0x7724, --(眤) [0x4223] = 0x771E, --(眞) - [0x4224] = 0x7725, --(眥) + [0x4224] = 0x7725, --(眥) [0x4225] = 0x7726, --(眦) - [0x4226] = 0x771B, --(眛) + [0x4226] = 0x771B, --(眛) [0x4227] = 0x7737, --(眷) - [0x4228] = 0x7738, --(眸) + [0x4228] = 0x7738, --(眸) [0x4229] = 0x7747, --(睇) - [0x422A] = 0x775A, --(睚) + [0x422A] = 0x775A, --(睚) [0x422B] = 0x7768, --(睨) - [0x422C] = 0x776B, --(睫) + [0x422C] = 0x776B, --(睫) [0x422D] = 0x775B, --(睛) - [0x422E] = 0x7765, --(睥) + [0x422E] = 0x7765, --(睥) [0x422F] = 0x777F, --(睿) - [0x4230] = 0x777E, --(睾) + [0x4230] = 0x777E, --(睾) [0x4231] = 0x7779, --(睹) - [0x4232] = 0x778E, --(瞎) + [0x4232] = 0x778E, --(瞎) [0x4233] = 0x778B, --(瞋) - [0x4234] = 0x7791, --(瞑) + [0x4234] = 0x7791, --(瞑) [0x4235] = 0x77A0, --(瞠) - [0x4236] = 0x779E, --(瞞) + [0x4236] = 0x779E, --(瞞) [0x4237] = 0x77B0, --(瞰) - [0x4238] = 0x77B6, --(瞶) + [0x4238] = 0x77B6, --(瞶) [0x4239] = 0x77B9, --(瞹) - [0x423A] = 0x77BF, --(瞿) + [0x423A] = 0x77BF, --(瞿) [0x423B] = 0x77BC, --(瞼) - [0x423C] = 0x77BD, --(瞽) + [0x423C] = 0x77BD, --(瞽) [0x423D] = 0x77BB, --(瞻) - [0x423E] = 0x77C7, --(矇) + [0x423E] = 0x77C7, --(矇) [0x423F] = 0x77CD, --(矍) - [0x4240] = 0x77D7, --(矗) + [0x4240] = 0x77D7, --(矗) [0x4241] = 0x77DA, --(矚) - [0x4242] = 0x77DC, --(矜) + [0x4242] = 0x77DC, --(矜) [0x4243] = 0x77E3, --(矣) - [0x4244] = 0x77EE, --(矮) + [0x4244] = 0x77EE, --(矮) [0x4245] = 0x77FC, --(矼) - [0x4246] = 0x780C, --(砌) + [0x4246] = 0x780C, --(砌) [0x4247] = 0x7812, --(砒) - [0x4248] = 0x7926, --(礦) + [0x4248] = 0x7926, --(礦) [0x4249] = 0x7820, --(砠) - [0x424A] = 0x792A, --(礪) + [0x424A] = 0x792A, --(礪) [0x424B] = 0x7845, --(硅) - [0x424C] = 0x788E, --(碎) + [0x424C] = 0x788E, --(碎) [0x424D] = 0x7874, --(硴) - [0x424E] = 0x7886, --(碆) + [0x424E] = 0x7886, --(碆) [0x424F] = 0x787C, --(硼) - [0x4250] = 0x789A, --(碚) + [0x4250] = 0x789A, --(碚) [0x4251] = 0x788C, --(碌) - [0x4252] = 0x78A3, --(碣) + [0x4252] = 0x78A3, --(碣) [0x4253] = 0x78B5, --(碵) - [0x4254] = 0x78AA, --(碪) + [0x4254] = 0x78AA, --(碪) [0x4255] = 0x78AF, --(碯) - [0x4256] = 0x78D1, --(磑) + [0x4256] = 0x78D1, --(磑) [0x4257] = 0x78C6, --(磆) - [0x4258] = 0x78CB, --(磋) + [0x4258] = 0x78CB, --(磋) [0x4259] = 0x78D4, --(磔) - [0x425A] = 0x78BE, --(碾) + [0x425A] = 0x78BE, --(碾) [0x425B] = 0x78BC, --(碼) - [0x425C] = 0x78C5, --(磅) + [0x425C] = 0x78C5, --(磅) [0x425D] = 0x78CA, --(磊) - [0x425E] = 0x78EC, --(磬) + [0x425E] = 0x78EC, --(磬) [0x4301] = 0x78E7, --(磧) - [0x4302] = 0x78DA, --(磚) + [0x4302] = 0x78DA, --(磚) [0x4303] = 0x78FD, --(磽) - [0x4304] = 0x78F4, --(磴) + [0x4304] = 0x78F4, --(磴) [0x4305] = 0x7907, --(礇) - [0x4306] = 0x7912, --(礒) + [0x4306] = 0x7912, --(礒) [0x4307] = 0x7911, --(礑) - [0x4308] = 0x7919, --(礙) + [0x4308] = 0x7919, --(礙) [0x4309] = 0x792C, --(礬) - [0x430A] = 0x792B, --(礫) + [0x430A] = 0x792B, --(礫) [0x430B] = 0x7940, --(祀) - [0x430C] = 0x7960, --(祠) + [0x430C] = 0x7960, --(祠) [0x430D] = 0x7957, --(祗) - [0x430E] = 0x795F, --(祟) + [0x430E] = 0x795F, --(祟) [0x430F] = 0x795A, --(祚) - [0x4310] = 0x7955, --(祕) + [0x4310] = 0x7955, --(祕) [0x4311] = 0x7953, --(祓) - [0x4312] = 0x797A, --(祺) + [0x4312] = 0x797A, --(祺) [0x4313] = 0x797F, --(祿) - [0x4314] = 0x798A, --(禊) + [0x4314] = 0x798A, --(禊) [0x4315] = 0x799D, --(禝) - [0x4316] = 0x79A7, --(禧) + [0x4316] = 0x79A7, --(禧) [0x4317] = 0x9F4B, --(齋) - [0x4318] = 0x79AA, --(禪) + [0x4318] = 0x79AA, --(禪) [0x4319] = 0x79AE, --(禮) - [0x431A] = 0x79B3, --(禳) + [0x431A] = 0x79B3, --(禳) [0x431B] = 0x79B9, --(禹) - [0x431C] = 0x79BA, --(禺) + [0x431C] = 0x79BA, --(禺) [0x431D] = 0x79C9, --(秉) - [0x431E] = 0x79D5, --(秕) + [0x431E] = 0x79D5, --(秕) [0x431F] = 0x79E7, --(秧) - [0x4320] = 0x79EC, --(秬) + [0x4320] = 0x79EC, --(秬) [0x4321] = 0x79E1, --(秡) - [0x4322] = 0x79E3, --(秣) + [0x4322] = 0x79E3, --(秣) [0x4323] = 0x7A08, --(稈) - [0x4324] = 0x7A0D, --(稍) + [0x4324] = 0x7A0D, --(稍) [0x4325] = 0x7A18, --(稘) - [0x4326] = 0x7A19, --(稙) + [0x4326] = 0x7A19, --(稙) [0x4327] = 0x7A20, --(稠) - [0x4328] = 0x7A1F, --(稟) + [0x4328] = 0x7A1F, --(稟) [0x4329] = 0x7980, --(禀) - [0x432A] = 0x7A31, --(稱) + [0x432A] = 0x7A31, --(稱) [0x432B] = 0x7A3B, --(稻) - [0x432C] = 0x7A3E, --(稾) + [0x432C] = 0x7A3E, --(稾) [0x432D] = 0x7A37, --(稷) - [0x432E] = 0x7A43, --(穃) + [0x432E] = 0x7A43, --(穃) [0x432F] = 0x7A57, --(穗) - [0x4330] = 0x7A49, --(穉) + [0x4330] = 0x7A49, --(穉) [0x4331] = 0x7A61, --(穡) - [0x4332] = 0x7A62, --(穢) + [0x4332] = 0x7A62, --(穢) [0x4333] = 0x7A69, --(穩) - [0x4334] = 0x9F9D, --(龝) + [0x4334] = 0x9F9D, --(龝) [0x4335] = 0x7A70, --(穰) - [0x4336] = 0x7A79, --(穹) + [0x4336] = 0x7A79, --(穹) [0x4337] = 0x7A7D, --(穽) - [0x4338] = 0x7A88, --(窈) + [0x4338] = 0x7A88, --(窈) [0x4339] = 0x7A97, --(窗) - [0x433A] = 0x7A95, --(窕) + [0x433A] = 0x7A95, --(窕) [0x433B] = 0x7A98, --(窘) - [0x433C] = 0x7A96, --(窖) + [0x433C] = 0x7A96, --(窖) [0x433D] = 0x7AA9, --(窩) - [0x433E] = 0x7AC8, --(竈) + [0x433E] = 0x7AC8, --(竈) [0x433F] = 0x7AB0, --(窰) - [0x4340] = 0x7AB6, --(窶) + [0x4340] = 0x7AB6, --(窶) [0x4341] = 0x7AC5, --(竅) - [0x4342] = 0x7AC4, --(竄) + [0x4342] = 0x7AC4, --(竄) [0x4343] = 0x7ABF, --(窿) - [0x4344] = 0x9083, --(邃) + [0x4344] = 0x9083, --(邃) [0x4345] = 0x7AC7, --(竇) - [0x4346] = 0x7ACA, --(竊) + [0x4346] = 0x7ACA, --(竊) [0x4347] = 0x7ACD, --(竍) - [0x4348] = 0x7ACF, --(竏) + [0x4348] = 0x7ACF, --(竏) [0x4349] = 0x7AD5, --(竕) - [0x434A] = 0x7AD3, --(竓) + [0x434A] = 0x7AD3, --(竓) [0x434B] = 0x7AD9, --(站) - [0x434C] = 0x7ADA, --(竚) + [0x434C] = 0x7ADA, --(竚) [0x434D] = 0x7ADD, --(竝) - [0x434E] = 0x7AE1, --(竡) + [0x434E] = 0x7AE1, --(竡) [0x434F] = 0x7AE2, --(竢) - [0x4350] = 0x7AE6, --(竦) + [0x4350] = 0x7AE6, --(竦) [0x4351] = 0x7AED, --(竭) - [0x4352] = 0x7AF0, --(竰) + [0x4352] = 0x7AF0, --(竰) [0x4353] = 0x7B02, --(笂) - [0x4354] = 0x7B0F, --(笏) + [0x4354] = 0x7B0F, --(笏) [0x4355] = 0x7B0A, --(笊) - [0x4356] = 0x7B06, --(笆) + [0x4356] = 0x7B06, --(笆) [0x4357] = 0x7B33, --(笳) - [0x4358] = 0x7B18, --(笘) + [0x4358] = 0x7B18, --(笘) [0x4359] = 0x7B19, --(笙) - [0x435A] = 0x7B1E, --(笞) + [0x435A] = 0x7B1E, --(笞) [0x435B] = 0x7B35, --(笵) - [0x435C] = 0x7B28, --(笨) + [0x435C] = 0x7B28, --(笨) [0x435D] = 0x7B36, --(笶) - [0x435E] = 0x7B50, --(筐) + [0x435E] = 0x7B50, --(筐) [0x4401] = 0x7B7A, --(筺) - [0x4402] = 0x7B04, --(笄) + [0x4402] = 0x7B04, --(笄) [0x4403] = 0x7B4D, --(筍) - [0x4404] = 0x7B0B, --(笋) + [0x4404] = 0x7B0B, --(笋) [0x4405] = 0x7B4C, --(筌) - [0x4406] = 0x7B45, --(筅) + [0x4406] = 0x7B45, --(筅) [0x4407] = 0x7B75, --(筵) - [0x4408] = 0x7B65, --(筥) + [0x4408] = 0x7B65, --(筥) [0x4409] = 0x7B74, --(筴) - [0x440A] = 0x7B67, --(筧) + [0x440A] = 0x7B67, --(筧) [0x440B] = 0x7B70, --(筰) - [0x440C] = 0x7B71, --(筱) + [0x440C] = 0x7B71, --(筱) [0x440D] = 0x7B6C, --(筬) - [0x440E] = 0x7B6E, --(筮) + [0x440E] = 0x7B6E, --(筮) [0x440F] = 0x7B9D, --(箝) - [0x4410] = 0x7B98, --(箘) + [0x4410] = 0x7B98, --(箘) [0x4411] = 0x7B9F, --(箟) - [0x4412] = 0x7B8D, --(箍) + [0x4412] = 0x7B8D, --(箍) [0x4413] = 0x7B9C, --(箜) - [0x4414] = 0x7B9A, --(箚) + [0x4414] = 0x7B9A, --(箚) [0x4415] = 0x7B8B, --(箋) - [0x4416] = 0x7B92, --(箒) + [0x4416] = 0x7B92, --(箒) [0x4417] = 0x7B8F, --(箏) - [0x4418] = 0x7B5D, --(筝) + [0x4418] = 0x7B5D, --(筝) [0x4419] = 0x7B99, --(箙) - [0x441A] = 0x7BCB, --(篋) + [0x441A] = 0x7BCB, --(篋) [0x441B] = 0x7BC1, --(篁) - [0x441C] = 0x7BCC, --(篌) + [0x441C] = 0x7BCC, --(篌) [0x441D] = 0x7BCF, --(篏) - [0x441E] = 0x7BB4, --(箴) + [0x441E] = 0x7BB4, --(箴) [0x441F] = 0x7BC6, --(篆) - [0x4420] = 0x7BDD, --(篝) + [0x4420] = 0x7BDD, --(篝) [0x4421] = 0x7BE9, --(篩) - [0x4422] = 0x7C11, --(簑) + [0x4422] = 0x7C11, --(簑) [0x4423] = 0x7C14, --(簔) - [0x4424] = 0x7BE6, --(篦) + [0x4424] = 0x7BE6, --(篦) [0x4425] = 0x7BE5, --(篥) - [0x4426] = 0x7C60, --(籠) + [0x4426] = 0x7C60, --(籠) [0x4427] = 0x7C00, --(簀) - [0x4428] = 0x7C07, --(簇) + [0x4428] = 0x7C07, --(簇) [0x4429] = 0x7C13, --(簓) - [0x442A] = 0x7BF3, --(篳) + [0x442A] = 0x7BF3, --(篳) [0x442B] = 0x7BF7, --(篷) - [0x442C] = 0x7C17, --(簗) + [0x442C] = 0x7C17, --(簗) [0x442D] = 0x7C0D, --(簍) - [0x442E] = 0x7BF6, --(篶) + [0x442E] = 0x7BF6, --(篶) [0x442F] = 0x7C23, --(簣) - [0x4430] = 0x7C27, --(簧) + [0x4430] = 0x7C27, --(簧) [0x4431] = 0x7C2A, --(簪) - [0x4432] = 0x7C1F, --(簟) + [0x4432] = 0x7C1F, --(簟) [0x4433] = 0x7C37, --(簷) - [0x4434] = 0x7C2B, --(簫) + [0x4434] = 0x7C2B, --(簫) [0x4435] = 0x7C3D, --(簽) - [0x4436] = 0x7C4C, --(籌) + [0x4436] = 0x7C4C, --(籌) [0x4437] = 0x7C43, --(籃) - [0x4438] = 0x7C54, --(籔) + [0x4438] = 0x7C54, --(籔) [0x4439] = 0x7C4F, --(籏) - [0x443A] = 0x7C40, --(籀) + [0x443A] = 0x7C40, --(籀) [0x443B] = 0x7C50, --(籐) - [0x443C] = 0x7C58, --(籘) + [0x443C] = 0x7C58, --(籘) [0x443D] = 0x7C5F, --(籟) - [0x443E] = 0x7C64, --(籤) + [0x443E] = 0x7C64, --(籤) [0x443F] = 0x7C56, --(籖) - [0x4440] = 0x7C65, --(籥) + [0x4440] = 0x7C65, --(籥) [0x4441] = 0x7C6C, --(籬) - [0x4442] = 0x7C75, --(籵) + [0x4442] = 0x7C75, --(籵) [0x4443] = 0x7C83, --(粃) - [0x4444] = 0x7C90, --(粐) + [0x4444] = 0x7C90, --(粐) [0x4445] = 0x7CA4, --(粤) - [0x4446] = 0x7CAD, --(粭) + [0x4446] = 0x7CAD, --(粭) [0x4447] = 0x7CA2, --(粢) - [0x4448] = 0x7CAB, --(粫) + [0x4448] = 0x7CAB, --(粫) [0x4449] = 0x7CA1, --(粡) - [0x444A] = 0x7CA8, --(粨) + [0x444A] = 0x7CA8, --(粨) [0x444B] = 0x7CB3, --(粳) - [0x444C] = 0x7CB2, --(粲) + [0x444C] = 0x7CB2, --(粲) [0x444D] = 0x7CB1, --(粱) - [0x444E] = 0x7CAE, --(粮) + [0x444E] = 0x7CAE, --(粮) [0x444F] = 0x7CB9, --(粹) - [0x4450] = 0x7CBD, --(粽) + [0x4450] = 0x7CBD, --(粽) [0x4451] = 0x7CC0, --(糀) - [0x4452] = 0x7CC5, --(糅) + [0x4452] = 0x7CC5, --(糅) [0x4453] = 0x7CC2, --(糂) - [0x4454] = 0x7CD8, --(糘) + [0x4454] = 0x7CD8, --(糘) [0x4455] = 0x7CD2, --(糒) - [0x4456] = 0x7CDC, --(糜) + [0x4456] = 0x7CDC, --(糜) [0x4457] = 0x7CE2, --(糢) - [0x4458] = 0x9B3B, --(鬻) + [0x4458] = 0x9B3B, --(鬻) [0x4459] = 0x7CEF, --(糯) - [0x445A] = 0x7CF2, --(糲) + [0x445A] = 0x7CF2, --(糲) [0x445B] = 0x7CF4, --(糴) - [0x445C] = 0x7CF6, --(糶) + [0x445C] = 0x7CF6, --(糶) [0x445D] = 0x7CFA, --(糺) - [0x445E] = 0x7D06, --(紆) + [0x445E] = 0x7D06, --(紆) [0x4501] = 0x7D02, --(紂) - [0x4502] = 0x7D1C, --(紜) + [0x4502] = 0x7D1C, --(紜) [0x4503] = 0x7D15, --(紕) - [0x4504] = 0x7D0A, --(紊) + [0x4504] = 0x7D0A, --(紊) [0x4505] = 0x7D45, --(絅) - [0x4506] = 0x7D4B, --(絋) + [0x4506] = 0x7D4B, --(絋) [0x4507] = 0x7D2E, --(紮) - [0x4508] = 0x7D32, --(紲) + [0x4508] = 0x7D32, --(紲) [0x4509] = 0x7D3F, --(紿) - [0x450A] = 0x7D35, --(紵) + [0x450A] = 0x7D35, --(紵) [0x450B] = 0x7D46, --(絆) - [0x450C] = 0x7D73, --(絳) + [0x450C] = 0x7D73, --(絳) [0x450D] = 0x7D56, --(絖) - [0x450E] = 0x7D4E, --(絎) + [0x450E] = 0x7D4E, --(絎) [0x450F] = 0x7D72, --(絲) - [0x4510] = 0x7D68, --(絨) + [0x4510] = 0x7D68, --(絨) [0x4511] = 0x7D6E, --(絮) - [0x4512] = 0x7D4F, --(絏) + [0x4512] = 0x7D4F, --(絏) [0x4513] = 0x7D63, --(絣) - [0x4514] = 0x7D93, --(經) + [0x4514] = 0x7D93, --(經) [0x4515] = 0x7D89, --(綉) - [0x4516] = 0x7D5B, --(絛) + [0x4516] = 0x7D5B, --(絛) [0x4517] = 0x7D8F, --(綏) - [0x4518] = 0x7D7D, --(絽) + [0x4518] = 0x7D7D, --(絽) [0x4519] = 0x7D9B, --(綛) - [0x451A] = 0x7DBA, --(綺) + [0x451A] = 0x7DBA, --(綺) [0x451B] = 0x7DAE, --(綮) - [0x451C] = 0x7DA3, --(綣) + [0x451C] = 0x7DA3, --(綣) [0x451D] = 0x7DB5, --(綵) - [0x451E] = 0x7DC7, --(緇) + [0x451E] = 0x7DC7, --(緇) [0x451F] = 0x7DBD, --(綽) - [0x4520] = 0x7DAB, --(綫) + [0x4520] = 0x7DAB, --(綫) [0x4521] = 0x7E3D, --(總) - [0x4522] = 0x7DA2, --(綢) + [0x4522] = 0x7DA2, --(綢) [0x4523] = 0x7DAF, --(綯) - [0x4524] = 0x7DDC, --(緜) + [0x4524] = 0x7DDC, --(緜) [0x4525] = 0x7DB8, --(綸) - [0x4526] = 0x7D9F, --(綟) + [0x4526] = 0x7D9F, --(綟) [0x4527] = 0x7DB0, --(綰) - [0x4528] = 0x7DD8, --(緘) + [0x4528] = 0x7DD8, --(緘) [0x4529] = 0x7DDD, --(緝) - [0x452A] = 0x7DE4, --(緤) + [0x452A] = 0x7DE4, --(緤) [0x452B] = 0x7DDE, --(緞) - [0x452C] = 0x7DFB, --(緻) + [0x452C] = 0x7DFB, --(緻) [0x452D] = 0x7DF2, --(緲) - [0x452E] = 0x7DE1, --(緡) + [0x452E] = 0x7DE1, --(緡) [0x452F] = 0x7E05, --(縅) - [0x4530] = 0x7E0A, --(縊) + [0x4530] = 0x7E0A, --(縊) [0x4531] = 0x7E23, --(縣) - [0x4532] = 0x7E21, --(縡) + [0x4532] = 0x7E21, --(縡) [0x4533] = 0x7E12, --(縒) - [0x4534] = 0x7E31, --(縱) + [0x4534] = 0x7E31, --(縱) [0x4535] = 0x7E1F, --(縟) - [0x4536] = 0x7E09, --(縉) + [0x4536] = 0x7E09, --(縉) [0x4537] = 0x7E0B, --(縋) - [0x4538] = 0x7E22, --(縢) + [0x4538] = 0x7E22, --(縢) [0x4539] = 0x7E46, --(繆) - [0x453A] = 0x7E66, --(繦) + [0x453A] = 0x7E66, --(繦) [0x453B] = 0x7E3B, --(縻) - [0x453C] = 0x7E35, --(縵) + [0x453C] = 0x7E35, --(縵) [0x453D] = 0x7E39, --(縹) - [0x453E] = 0x7E43, --(繃) + [0x453E] = 0x7E43, --(繃) [0x453F] = 0x7E37, --(縷) - [0x4540] = 0x7E32, --(縲) + [0x4540] = 0x7E32, --(縲) [0x4541] = 0x7E3A, --(縺) - [0x4542] = 0x7E67, --(繧) + [0x4542] = 0x7E67, --(繧) [0x4543] = 0x7E5D, --(繝) - [0x4544] = 0x7E56, --(繖) + [0x4544] = 0x7E56, --(繖) [0x4545] = 0x7E5E, --(繞) - [0x4546] = 0x7E59, --(繙) + [0x4546] = 0x7E59, --(繙) [0x4547] = 0x7E5A, --(繚) - [0x4548] = 0x7E79, --(繹) + [0x4548] = 0x7E79, --(繹) [0x4549] = 0x7E6A, --(繪) - [0x454A] = 0x7E69, --(繩) + [0x454A] = 0x7E69, --(繩) [0x454B] = 0x7E7C, --(繼) - [0x454C] = 0x7E7B, --(繻) + [0x454C] = 0x7E7B, --(繻) [0x454D] = 0x7E83, --(纃) - [0x454E] = 0x7DD5, --(緕) + [0x454E] = 0x7DD5, --(緕) [0x454F] = 0x7E7D, --(繽) - [0x4550] = 0x8FAE, --(辮) + [0x4550] = 0x8FAE, --(辮) [0x4551] = 0x7E7F, --(繿) - [0x4552] = 0x7E88, --(纈) + [0x4552] = 0x7E88, --(纈) [0x4553] = 0x7E89, --(纉) - [0x4554] = 0x7E8C, --(續) + [0x4554] = 0x7E8C, --(續) [0x4555] = 0x7E92, --(纒) - [0x4556] = 0x7E90, --(纐) + [0x4556] = 0x7E90, --(纐) [0x4557] = 0x7E93, --(纓) - [0x4558] = 0x7E94, --(纔) + [0x4558] = 0x7E94, --(纔) [0x4559] = 0x7E96, --(纖) - [0x455A] = 0x7E8E, --(纎) + [0x455A] = 0x7E8E, --(纎) [0x455B] = 0x7E9B, --(纛) - [0x455C] = 0x7E9C, --(纜) + [0x455C] = 0x7E9C, --(纜) [0x455D] = 0x7F38, --(缸) - [0x455E] = 0x7F3A, --(缺) + [0x455E] = 0x7F3A, --(缺) [0x4601] = 0x7F45, --(罅) - [0x4602] = 0x7F4C, --(罌) + [0x4602] = 0x7F4C, --(罌) [0x4603] = 0x7F4D, --(罍) - [0x4604] = 0x7F4E, --(罎) + [0x4604] = 0x7F4E, --(罎) [0x4605] = 0x7F50, --(罐) - [0x4606] = 0x7F51, --(网) + [0x4606] = 0x7F51, --(网) [0x4607] = 0x7F55, --(罕) - [0x4608] = 0x7F54, --(罔) + [0x4608] = 0x7F54, --(罔) [0x4609] = 0x7F58, --(罘) - [0x460A] = 0x7F5F, --(罟) + [0x460A] = 0x7F5F, --(罟) [0x460B] = 0x7F60, --(罠) - [0x460C] = 0x7F68, --(罨) + [0x460C] = 0x7F68, --(罨) [0x460D] = 0x7F69, --(罩) - [0x460E] = 0x7F67, --(罧) + [0x460E] = 0x7F67, --(罧) [0x460F] = 0x7F78, --(罸) - [0x4610] = 0x7F82, --(羂) + [0x4610] = 0x7F82, --(羂) [0x4611] = 0x7F86, --(羆) - [0x4612] = 0x7F83, --(羃) + [0x4612] = 0x7F83, --(羃) [0x4613] = 0x7F88, --(羈) - [0x4614] = 0x7F87, --(羇) + [0x4614] = 0x7F87, --(羇) [0x4615] = 0x7F8C, --(羌) - [0x4616] = 0x7F94, --(羔) + [0x4616] = 0x7F94, --(羔) [0x4617] = 0x7F9E, --(羞) - [0x4618] = 0x7F9D, --(羝) + [0x4618] = 0x7F9D, --(羝) [0x4619] = 0x7F9A, --(羚) - [0x461A] = 0x7FA3, --(羣) + [0x461A] = 0x7FA3, --(羣) [0x461B] = 0x7FAF, --(羯) - [0x461C] = 0x7FB2, --(羲) + [0x461C] = 0x7FB2, --(羲) [0x461D] = 0x7FB9, --(羹) - [0x461E] = 0x7FAE, --(羮) + [0x461E] = 0x7FAE, --(羮) [0x461F] = 0x7FB6, --(羶) - [0x4620] = 0x7FB8, --(羸) + [0x4620] = 0x7FB8, --(羸) [0x4621] = 0x8B71, --(譱) - [0x4622] = 0x7FC5, --(翅) + [0x4622] = 0x7FC5, --(翅) [0x4623] = 0x7FC6, --(翆) - [0x4624] = 0x7FCA, --(翊) + [0x4624] = 0x7FCA, --(翊) [0x4625] = 0x7FD5, --(翕) - [0x4626] = 0x7FD4, --(翔) + [0x4626] = 0x7FD4, --(翔) [0x4627] = 0x7FE1, --(翡) - [0x4628] = 0x7FE6, --(翦) + [0x4628] = 0x7FE6, --(翦) [0x4629] = 0x7FE9, --(翩) - [0x462A] = 0x7FF3, --(翳) + [0x462A] = 0x7FF3, --(翳) [0x462B] = 0x7FF9, --(翹) - [0x462C] = 0x98DC, --(飜) + [0x462C] = 0x98DC, --(飜) [0x462D] = 0x8006, --(耆) - [0x462E] = 0x8004, --(耄) + [0x462E] = 0x8004, --(耄) [0x462F] = 0x800B, --(耋) - [0x4630] = 0x8012, --(耒) + [0x4630] = 0x8012, --(耒) [0x4631] = 0x8018, --(耘) - [0x4632] = 0x8019, --(耙) + [0x4632] = 0x8019, --(耙) [0x4633] = 0x801C, --(耜) - [0x4634] = 0x8021, --(耡) + [0x4634] = 0x8021, --(耡) [0x4635] = 0x8028, --(耨) - [0x4636] = 0x803F, --(耿) + [0x4636] = 0x803F, --(耿) [0x4637] = 0x803B, --(耻) - [0x4638] = 0x804A, --(聊) + [0x4638] = 0x804A, --(聊) [0x4639] = 0x8046, --(聆) - [0x463A] = 0x8052, --(聒) + [0x463A] = 0x8052, --(聒) [0x463B] = 0x8058, --(聘) - [0x463C] = 0x805A, --(聚) + [0x463C] = 0x805A, --(聚) [0x463D] = 0x805F, --(聟) - [0x463E] = 0x8062, --(聢) + [0x463E] = 0x8062, --(聢) [0x463F] = 0x8068, --(聨) - [0x4640] = 0x8073, --(聳) + [0x4640] = 0x8073, --(聳) [0x4641] = 0x8072, --(聲) - [0x4642] = 0x8070, --(聰) + [0x4642] = 0x8070, --(聰) [0x4643] = 0x8076, --(聶) - [0x4644] = 0x8079, --(聹) + [0x4644] = 0x8079, --(聹) [0x4645] = 0x807D, --(聽) - [0x4646] = 0x807F, --(聿) + [0x4646] = 0x807F, --(聿) [0x4647] = 0x8084, --(肄) - [0x4648] = 0x8086, --(肆) + [0x4648] = 0x8086, --(肆) [0x4649] = 0x8085, --(肅) - [0x464A] = 0x809B, --(肛) + [0x464A] = 0x809B, --(肛) [0x464B] = 0x8093, --(肓) - [0x464C] = 0x809A, --(肚) + [0x464C] = 0x809A, --(肚) [0x464D] = 0x80AD, --(肭) - [0x464E] = 0x5190, --(冐) + [0x464E] = 0x5190, --(冐) [0x464F] = 0x80AC, --(肬) - [0x4650] = 0x80DB, --(胛) + [0x4650] = 0x80DB, --(胛) [0x4651] = 0x80E5, --(胥) - [0x4652] = 0x80D9, --(胙) + [0x4652] = 0x80D9, --(胙) [0x4653] = 0x80DD, --(胝) - [0x4654] = 0x80C4, --(胄) + [0x4654] = 0x80C4, --(胄) [0x4655] = 0x80DA, --(胚) - [0x4656] = 0x80D6, --(胖) + [0x4656] = 0x80D6, --(胖) [0x4657] = 0x8109, --(脉) - [0x4658] = 0x80EF, --(胯) + [0x4658] = 0x80EF, --(胯) [0x4659] = 0x80F1, --(胱) - [0x465A] = 0x811B, --(脛) + [0x465A] = 0x811B, --(脛) [0x465B] = 0x8129, --(脩) - [0x465C] = 0x8123, --(脣) + [0x465C] = 0x8123, --(脣) [0x465D] = 0x812F, --(脯) - [0x465E] = 0x814B, --(腋) + [0x465E] = 0x814B, --(腋) [0x4701] = 0x968B, --(隋) - [0x4702] = 0x8146, --(腆) + [0x4702] = 0x8146, --(腆) [0x4703] = 0x813E, --(脾) - [0x4704] = 0x8153, --(腓) + [0x4704] = 0x8153, --(腓) [0x4705] = 0x8151, --(腑) - [0x4706] = 0x80FC, --(胼) + [0x4706] = 0x80FC, --(胼) [0x4707] = 0x8171, --(腱) - [0x4708] = 0x816E, --(腮) + [0x4708] = 0x816E, --(腮) [0x4709] = 0x8165, --(腥) - [0x470A] = 0x8166, --(腦) + [0x470A] = 0x8166, --(腦) [0x470B] = 0x8174, --(腴) - [0x470C] = 0x8183, --(膃) + [0x470C] = 0x8183, --(膃) [0x470D] = 0x8188, --(膈) - [0x470E] = 0x818A, --(膊) + [0x470E] = 0x818A, --(膊) [0x470F] = 0x8180, --(膀) - [0x4710] = 0x8182, --(膂) + [0x4710] = 0x8182, --(膂) [0x4711] = 0x81A0, --(膠) - [0x4712] = 0x8195, --(膕) + [0x4712] = 0x8195, --(膕) [0x4713] = 0x81A4, --(膤) - [0x4714] = 0x81A3, --(膣) + [0x4714] = 0x81A3, --(膣) [0x4715] = 0x815F, --(腟) - [0x4716] = 0x8193, --(膓) + [0x4716] = 0x8193, --(膓) [0x4717] = 0x81A9, --(膩) - [0x4718] = 0x81B0, --(膰) + [0x4718] = 0x81B0, --(膰) [0x4719] = 0x81B5, --(膵) - [0x471A] = 0x81BE, --(膾) + [0x471A] = 0x81BE, --(膾) [0x471B] = 0x81B8, --(膸) - [0x471C] = 0x81BD, --(膽) + [0x471C] = 0x81BD, --(膽) [0x471D] = 0x81C0, --(臀) - [0x471E] = 0x81C2, --(臂) + [0x471E] = 0x81C2, --(臂) [0x471F] = 0x81BA, --(膺) - [0x4720] = 0x81C9, --(臉) + [0x4720] = 0x81C9, --(臉) [0x4721] = 0x81CD, --(臍) - [0x4722] = 0x81D1, --(臑) + [0x4722] = 0x81D1, --(臑) [0x4723] = 0x81D9, --(臙) - [0x4724] = 0x81D8, --(臘) + [0x4724] = 0x81D8, --(臘) [0x4725] = 0x81C8, --(臈) - [0x4726] = 0x81DA, --(臚) + [0x4726] = 0x81DA, --(臚) [0x4727] = 0x81DF, --(臟) - [0x4728] = 0x81E0, --(臠) + [0x4728] = 0x81E0, --(臠) [0x4729] = 0x81E7, --(臧) - [0x472A] = 0x81FA, --(臺) + [0x472A] = 0x81FA, --(臺) [0x472B] = 0x81FB, --(臻) - [0x472C] = 0x81FE, --(臾) + [0x472C] = 0x81FE, --(臾) [0x472D] = 0x8201, --(舁) - [0x472E] = 0x8202, --(舂) + [0x472E] = 0x8202, --(舂) [0x472F] = 0x8205, --(舅) - [0x4730] = 0x8207, --(與) + [0x4730] = 0x8207, --(與) [0x4731] = 0x820A, --(舊) - [0x4732] = 0x820D, --(舍) + [0x4732] = 0x820D, --(舍) [0x4733] = 0x8210, --(舐) - [0x4734] = 0x8216, --(舖) + [0x4734] = 0x8216, --(舖) [0x4735] = 0x8229, --(舩) - [0x4736] = 0x822B, --(舫) + [0x4736] = 0x822B, --(舫) [0x4737] = 0x8238, --(舸) - [0x4738] = 0x8233, --(舳) + [0x4738] = 0x8233, --(舳) [0x4739] = 0x8240, --(艀) - [0x473A] = 0x8259, --(艙) + [0x473A] = 0x8259, --(艙) [0x473B] = 0x8258, --(艘) - [0x473C] = 0x825D, --(艝) + [0x473C] = 0x825D, --(艝) [0x473D] = 0x825A, --(艚) - [0x473E] = 0x825F, --(艟) + [0x473E] = 0x825F, --(艟) [0x473F] = 0x8264, --(艤) - [0x4740] = 0x8262, --(艢) + [0x4740] = 0x8262, --(艢) [0x4741] = 0x8268, --(艨) - [0x4742] = 0x826A, --(艪) + [0x4742] = 0x826A, --(艪) [0x4743] = 0x826B, --(艫) - [0x4744] = 0x822E, --(舮) + [0x4744] = 0x822E, --(舮) [0x4745] = 0x8271, --(艱) - [0x4746] = 0x8277, --(艷) + [0x4746] = 0x8277, --(艷) [0x4747] = 0x8278, --(艸) - [0x4748] = 0x827E, --(艾) + [0x4748] = 0x827E, --(艾) [0x4749] = 0x828D, --(芍) - [0x474A] = 0x8292, --(芒) + [0x474A] = 0x8292, --(芒) [0x474B] = 0x82AB, --(芫) - [0x474C] = 0x829F, --(芟) + [0x474C] = 0x829F, --(芟) [0x474D] = 0x82BB, --(芻) - [0x474E] = 0x82AC, --(芬) + [0x474E] = 0x82AC, --(芬) [0x474F] = 0x82E1, --(苡) - [0x4750] = 0x82E3, --(苣) + [0x4750] = 0x82E3, --(苣) [0x4751] = 0x82DF, --(苟) - [0x4752] = 0x82D2, --(苒) + [0x4752] = 0x82D2, --(苒) [0x4753] = 0x82F4, --(苴) - [0x4754] = 0x82F3, --(苳) + [0x4754] = 0x82F3, --(苳) [0x4755] = 0x82FA, --(苺) - [0x4756] = 0x8393, --(莓) + [0x4756] = 0x8393, --(莓) [0x4757] = 0x8303, --(范) - [0x4758] = 0x82FB, --(苻) + [0x4758] = 0x82FB, --(苻) [0x4759] = 0x82F9, --(苹) - [0x475A] = 0x82DE, --(苞) + [0x475A] = 0x82DE, --(苞) [0x475B] = 0x8306, --(茆) - [0x475C] = 0x82DC, --(苜) + [0x475C] = 0x82DC, --(苜) [0x475D] = 0x8309, --(茉) - [0x475E] = 0x82D9, --(苙) + [0x475E] = 0x82D9, --(苙) [0x4801] = 0x8335, --(茵) - [0x4802] = 0x8334, --(茴) + [0x4802] = 0x8334, --(茴) [0x4803] = 0x8316, --(茖) - [0x4804] = 0x8332, --(茲) + [0x4804] = 0x8332, --(茲) [0x4805] = 0x8331, --(茱) - [0x4806] = 0x8340, --(荀) + [0x4806] = 0x8340, --(荀) [0x4807] = 0x8339, --(茹) - [0x4808] = 0x8350, --(荐) + [0x4808] = 0x8350, --(荐) [0x4809] = 0x8345, --(荅) - [0x480A] = 0x832F, --(茯) + [0x480A] = 0x832F, --(茯) [0x480B] = 0x832B, --(茫) - [0x480C] = 0x8317, --(茗) + [0x480C] = 0x8317, --(茗) [0x480D] = 0x8318, --(茘) - [0x480E] = 0x8385, --(莅) + [0x480E] = 0x8385, --(莅) [0x480F] = 0x839A, --(莚) - [0x4810] = 0x83AA, --(莪) + [0x4810] = 0x83AA, --(莪) [0x4811] = 0x839F, --(莟) - [0x4812] = 0x83A2, --(莢) + [0x4812] = 0x83A2, --(莢) [0x4813] = 0x8396, --(莖) - [0x4814] = 0x8323, --(茣) + [0x4814] = 0x8323, --(茣) [0x4815] = 0x838E, --(莎) - [0x4816] = 0x8387, --(莇) + [0x4816] = 0x8387, --(莇) [0x4817] = 0x838A, --(莊) - [0x4818] = 0x837C, --(荼) + [0x4818] = 0x837C, --(荼) [0x4819] = 0x83B5, --(莵) - [0x481A] = 0x8373, --(荳) + [0x481A] = 0x8373, --(荳) [0x481B] = 0x8375, --(荵) - [0x481C] = 0x83A0, --(莠) + [0x481C] = 0x83A0, --(莠) [0x481D] = 0x8389, --(莉) - [0x481E] = 0x83A8, --(莨) + [0x481E] = 0x83A8, --(莨) [0x481F] = 0x83F4, --(菴) - [0x4820] = 0x8413, --(萓) + [0x4820] = 0x8413, --(萓) [0x4821] = 0x83EB, --(菫) - [0x4822] = 0x83CE, --(菎) + [0x4822] = 0x83CE, --(菎) [0x4823] = 0x83FD, --(菽) - [0x4824] = 0x8403, --(萃) + [0x4824] = 0x8403, --(萃) [0x4825] = 0x83D8, --(菘) - [0x4826] = 0x840B, --(萋) + [0x4826] = 0x840B, --(萋) [0x4827] = 0x83C1, --(菁) - [0x4828] = 0x83F7, --(菷) + [0x4828] = 0x83F7, --(菷) [0x4829] = 0x8407, --(萇) - [0x482A] = 0x83E0, --(菠) + [0x482A] = 0x83E0, --(菠) [0x482B] = 0x83F2, --(菲) - [0x482C] = 0x840D, --(萍) + [0x482C] = 0x840D, --(萍) [0x482D] = 0x8422, --(萢) - [0x482E] = 0x8420, --(萠) + [0x482E] = 0x8420, --(萠) [0x482F] = 0x83BD, --(莽) - [0x4830] = 0x8438, --(萸) + [0x4830] = 0x8438, --(萸) [0x4831] = 0x8506, --(蔆) - [0x4832] = 0x83FB, --(菻) + [0x4832] = 0x83FB, --(菻) [0x4833] = 0x846D, --(葭) - [0x4834] = 0x842A, --(萪) + [0x4834] = 0x842A, --(萪) [0x4835] = 0x843C, --(萼) - [0x4836] = 0x855A, --(蕚) + [0x4836] = 0x855A, --(蕚) [0x4837] = 0x8484, --(蒄) - [0x4838] = 0x8477, --(葷) + [0x4838] = 0x8477, --(葷) [0x4839] = 0x846B, --(葫) - [0x483A] = 0x84AD, --(蒭) + [0x483A] = 0x84AD, --(蒭) [0x483B] = 0x846E, --(葮) - [0x483C] = 0x8482, --(蒂) + [0x483C] = 0x8482, --(蒂) [0x483D] = 0x8469, --(葩) - [0x483E] = 0x8446, --(葆) + [0x483E] = 0x8446, --(葆) [0x483F] = 0x842C, --(萬) - [0x4840] = 0x846F, --(葯) + [0x4840] = 0x846F, --(葯) [0x4841] = 0x8479, --(葹) - [0x4842] = 0x8435, --(萵) + [0x4842] = 0x8435, --(萵) [0x4843] = 0x84CA, --(蓊) - [0x4844] = 0x8462, --(葢) + [0x4844] = 0x8462, --(葢) [0x4845] = 0x84B9, --(蒹) - [0x4846] = 0x84BF, --(蒿) + [0x4846] = 0x84BF, --(蒿) [0x4847] = 0x849F, --(蒟) - [0x4848] = 0x84D9, --(蓙) + [0x4848] = 0x84D9, --(蓙) [0x4849] = 0x84CD, --(蓍) - [0x484A] = 0x84BB, --(蒻) + [0x484A] = 0x84BB, --(蒻) [0x484B] = 0x84DA, --(蓚) - [0x484C] = 0x84D0, --(蓐) + [0x484C] = 0x84D0, --(蓐) [0x484D] = 0x84C1, --(蓁) - [0x484E] = 0x84C6, --(蓆) + [0x484E] = 0x84C6, --(蓆) [0x484F] = 0x84D6, --(蓖) - [0x4850] = 0x84A1, --(蒡) + [0x4850] = 0x84A1, --(蒡) [0x4851] = 0x8521, --(蔡) - [0x4852] = 0x84FF, --(蓿) + [0x4852] = 0x84FF, --(蓿) [0x4853] = 0x84F4, --(蓴) - [0x4854] = 0x8517, --(蔗) + [0x4854] = 0x8517, --(蔗) [0x4855] = 0x8518, --(蔘) - [0x4856] = 0x852C, --(蔬) + [0x4856] = 0x852C, --(蔬) [0x4857] = 0x851F, --(蔟) - [0x4858] = 0x8515, --(蔕) + [0x4858] = 0x8515, --(蔕) [0x4859] = 0x8514, --(蔔) - [0x485A] = 0x84FC, --(蓼) + [0x485A] = 0x84FC, --(蓼) [0x485B] = 0x8540, --(蕀) - [0x485C] = 0x8563, --(蕣) + [0x485C] = 0x8563, --(蕣) [0x485D] = 0x8558, --(蕘) - [0x485E] = 0x8548, --(蕈) + [0x485E] = 0x8548, --(蕈) [0x4901] = 0x8541, --(蕁) - [0x4902] = 0x8602, --(蘂) + [0x4902] = 0x8602, --(蘂) [0x4903] = 0x854B, --(蕋) - [0x4904] = 0x8555, --(蕕) + [0x4904] = 0x8555, --(蕕) [0x4905] = 0x8580, --(薀) - [0x4906] = 0x85A4, --(薤) + [0x4906] = 0x85A4, --(薤) [0x4907] = 0x8588, --(薈) - [0x4908] = 0x8591, --(薑) + [0x4908] = 0x8591, --(薑) [0x4909] = 0x858A, --(薊) - [0x490A] = 0x85A8, --(薨) + [0x490A] = 0x85A8, --(薨) [0x490B] = 0x856D, --(蕭) - [0x490C] = 0x8594, --(薔) + [0x490C] = 0x8594, --(薔) [0x490D] = 0x859B, --(薛) - [0x490E] = 0x85EA, --(藪) + [0x490E] = 0x85EA, --(藪) [0x490F] = 0x8587, --(薇) - [0x4910] = 0x859C, --(薜) + [0x4910] = 0x859C, --(薜) [0x4911] = 0x8577, --(蕷) - [0x4912] = 0x857E, --(蕾) + [0x4912] = 0x857E, --(蕾) [0x4913] = 0x8590, --(薐) - [0x4914] = 0x85C9, --(藉) + [0x4914] = 0x85C9, --(藉) [0x4915] = 0x85BA, --(薺) - [0x4916] = 0x85CF, --(藏) + [0x4916] = 0x85CF, --(藏) [0x4917] = 0x85B9, --(薹) - [0x4918] = 0x85D0, --(藐) + [0x4918] = 0x85D0, --(藐) [0x4919] = 0x85D5, --(藕) - [0x491A] = 0x85DD, --(藝) + [0x491A] = 0x85DD, --(藝) [0x491B] = 0x85E5, --(藥) - [0x491C] = 0x85DC, --(藜) + [0x491C] = 0x85DC, --(藜) [0x491D] = 0x85F9, --(藹) - [0x491E] = 0x860A, --(蘊) + [0x491E] = 0x860A, --(蘊) [0x491F] = 0x8613, --(蘓) - [0x4920] = 0x860B, --(蘋) + [0x4920] = 0x860B, --(蘋) [0x4921] = 0x85FE, --(藾) - [0x4922] = 0x85FA, --(藺) + [0x4922] = 0x85FA, --(藺) [0x4923] = 0x8606, --(蘆) - [0x4924] = 0x8622, --(蘢) + [0x4924] = 0x8622, --(蘢) [0x4925] = 0x861A, --(蘚) - [0x4926] = 0x8630, --(蘰) + [0x4926] = 0x8630, --(蘰) [0x4927] = 0x863F, --(蘿) - [0x4928] = 0x864D, --(虍) + [0x4928] = 0x864D, --(虍) [0x4929] = 0x4E55, --(乕) - [0x492A] = 0x8654, --(虔) + [0x492A] = 0x8654, --(虔) [0x492B] = 0x865F, --(號) - [0x492C] = 0x8667, --(虧) + [0x492C] = 0x8667, --(虧) [0x492D] = 0x8671, --(虱) - [0x492E] = 0x8693, --(蚓) + [0x492E] = 0x8693, --(蚓) [0x492F] = 0x86A3, --(蚣) - [0x4930] = 0x86A9, --(蚩) + [0x4930] = 0x86A9, --(蚩) [0x4931] = 0x86AA, --(蚪) - [0x4932] = 0x868B, --(蚋) + [0x4932] = 0x868B, --(蚋) [0x4933] = 0x868C, --(蚌) - [0x4934] = 0x86B6, --(蚶) + [0x4934] = 0x86B6, --(蚶) [0x4935] = 0x86AF, --(蚯) - [0x4936] = 0x86C4, --(蛄) + [0x4936] = 0x86C4, --(蛄) [0x4937] = 0x86C6, --(蛆) - [0x4938] = 0x86B0, --(蚰) + [0x4938] = 0x86B0, --(蚰) [0x4939] = 0x86C9, --(蛉) - [0x493A] = 0x8823, --(蠣) + [0x493A] = 0x8823, --(蠣) [0x493B] = 0x86AB, --(蚫) - [0x493C] = 0x86D4, --(蛔) + [0x493C] = 0x86D4, --(蛔) [0x493D] = 0x86DE, --(蛞) - [0x493E] = 0x86E9, --(蛩) + [0x493E] = 0x86E9, --(蛩) [0x493F] = 0x86EC, --(蛬) - [0x4940] = 0x86DF, --(蛟) + [0x4940] = 0x86DF, --(蛟) [0x4941] = 0x86DB, --(蛛) - [0x4942] = 0x86EF, --(蛯) + [0x4942] = 0x86EF, --(蛯) [0x4943] = 0x8712, --(蜒) - [0x4944] = 0x8706, --(蜆) + [0x4944] = 0x8706, --(蜆) [0x4945] = 0x8708, --(蜈) - [0x4946] = 0x8700, --(蜀) + [0x4946] = 0x8700, --(蜀) [0x4947] = 0x8703, --(蜃) - [0x4948] = 0x86FB, --(蛻) + [0x4948] = 0x86FB, --(蛻) [0x4949] = 0x8711, --(蜑) - [0x494A] = 0x8709, --(蜉) + [0x494A] = 0x8709, --(蜉) [0x494B] = 0x870D, --(蜍) - [0x494C] = 0x86F9, --(蛹) + [0x494C] = 0x86F9, --(蛹) [0x494D] = 0x870A, --(蜊) - [0x494E] = 0x8734, --(蜴) + [0x494E] = 0x8734, --(蜴) [0x494F] = 0x873F, --(蜿) - [0x4950] = 0x8737, --(蜷) + [0x4950] = 0x8737, --(蜷) [0x4951] = 0x873B, --(蜻) - [0x4952] = 0x8725, --(蜥) + [0x4952] = 0x8725, --(蜥) [0x4953] = 0x8729, --(蜩) - [0x4954] = 0x871A, --(蜚) + [0x4954] = 0x871A, --(蜚) [0x4955] = 0x8760, --(蝠) - [0x4956] = 0x875F, --(蝟) + [0x4956] = 0x875F, --(蝟) [0x4957] = 0x8778, --(蝸) - [0x4958] = 0x874C, --(蝌) + [0x4958] = 0x874C, --(蝌) [0x4959] = 0x874E, --(蝎) - [0x495A] = 0x8774, --(蝴) + [0x495A] = 0x8774, --(蝴) [0x495B] = 0x8757, --(蝗) - [0x495C] = 0x8768, --(蝨) + [0x495C] = 0x8768, --(蝨) [0x495D] = 0x876E, --(蝮) - [0x495E] = 0x8759, --(蝙) + [0x495E] = 0x8759, --(蝙) [0x4A01] = 0x8753, --(蝓) - [0x4A02] = 0x8763, --(蝣) + [0x4A02] = 0x8763, --(蝣) [0x4A03] = 0x876A, --(蝪) - [0x4A04] = 0x8805, --(蠅) + [0x4A04] = 0x8805, --(蠅) [0x4A05] = 0x87A2, --(螢) - [0x4A06] = 0x879F, --(螟) + [0x4A06] = 0x879F, --(螟) [0x4A07] = 0x8782, --(螂) - [0x4A08] = 0x87AF, --(螯) + [0x4A08] = 0x87AF, --(螯) [0x4A09] = 0x87CB, --(蟋) - [0x4A0A] = 0x87BD, --(螽) + [0x4A0A] = 0x87BD, --(螽) [0x4A0B] = 0x87C0, --(蟀) - [0x4A0C] = 0x87D0, --(蟐) + [0x4A0C] = 0x87D0, --(蟐) [0x4A0D] = 0x96D6, --(雖) - [0x4A0E] = 0x87AB, --(螫) + [0x4A0E] = 0x87AB, --(螫) [0x4A0F] = 0x87C4, --(蟄) - [0x4A10] = 0x87B3, --(螳) + [0x4A10] = 0x87B3, --(螳) [0x4A11] = 0x87C7, --(蟇) - [0x4A12] = 0x87C6, --(蟆) + [0x4A12] = 0x87C6, --(蟆) [0x4A13] = 0x87BB, --(螻) - [0x4A14] = 0x87EF, --(蟯) + [0x4A14] = 0x87EF, --(蟯) [0x4A15] = 0x87F2, --(蟲) - [0x4A16] = 0x87E0, --(蟠) + [0x4A16] = 0x87E0, --(蟠) [0x4A17] = 0x880F, --(蠏) - [0x4A18] = 0x880D, --(蠍) + [0x4A18] = 0x880D, --(蠍) [0x4A19] = 0x87FE, --(蟾) - [0x4A1A] = 0x87F6, --(蟶) + [0x4A1A] = 0x87F6, --(蟶) [0x4A1B] = 0x87F7, --(蟷) - [0x4A1C] = 0x880E, --(蠎) + [0x4A1C] = 0x880E, --(蠎) [0x4A1D] = 0x87D2, --(蟒) - [0x4A1E] = 0x8811, --(蠑) + [0x4A1E] = 0x8811, --(蠑) [0x4A1F] = 0x8816, --(蠖) - [0x4A20] = 0x8815, --(蠕) + [0x4A20] = 0x8815, --(蠕) [0x4A21] = 0x8822, --(蠢) - [0x4A22] = 0x8821, --(蠡) + [0x4A22] = 0x8821, --(蠡) [0x4A23] = 0x8831, --(蠱) - [0x4A24] = 0x8836, --(蠶) + [0x4A24] = 0x8836, --(蠶) [0x4A25] = 0x8839, --(蠹) - [0x4A26] = 0x8827, --(蠧) + [0x4A26] = 0x8827, --(蠧) [0x4A27] = 0x883B, --(蠻) - [0x4A28] = 0x8844, --(衄) + [0x4A28] = 0x8844, --(衄) [0x4A29] = 0x8842, --(衂) - [0x4A2A] = 0x8852, --(衒) + [0x4A2A] = 0x8852, --(衒) [0x4A2B] = 0x8859, --(衙) - [0x4A2C] = 0x885E, --(衞) + [0x4A2C] = 0x885E, --(衞) [0x4A2D] = 0x8862, --(衢) - [0x4A2E] = 0x886B, --(衫) + [0x4A2E] = 0x886B, --(衫) [0x4A2F] = 0x8881, --(袁) - [0x4A30] = 0x887E, --(衾) + [0x4A30] = 0x887E, --(衾) [0x4A31] = 0x889E, --(袞) - [0x4A32] = 0x8875, --(衵) + [0x4A32] = 0x8875, --(衵) [0x4A33] = 0x887D, --(衽) - [0x4A34] = 0x88B5, --(袵) + [0x4A34] = 0x88B5, --(袵) [0x4A35] = 0x8872, --(衲) - [0x4A36] = 0x8882, --(袂) + [0x4A36] = 0x8882, --(袂) [0x4A37] = 0x8897, --(袗) - [0x4A38] = 0x8892, --(袒) + [0x4A38] = 0x8892, --(袒) [0x4A39] = 0x88AE, --(袮) - [0x4A3A] = 0x8899, --(袙) + [0x4A3A] = 0x8899, --(袙) [0x4A3B] = 0x88A2, --(袢) - [0x4A3C] = 0x888D, --(袍) + [0x4A3C] = 0x888D, --(袍) [0x4A3D] = 0x88A4, --(袤) - [0x4A3E] = 0x88B0, --(袰) + [0x4A3E] = 0x88B0, --(袰) [0x4A3F] = 0x88BF, --(袿) - [0x4A40] = 0x88B1, --(袱) + [0x4A40] = 0x88B1, --(袱) [0x4A41] = 0x88C3, --(裃) - [0x4A42] = 0x88C4, --(裄) + [0x4A42] = 0x88C4, --(裄) [0x4A43] = 0x88D4, --(裔) - [0x4A44] = 0x88D8, --(裘) + [0x4A44] = 0x88D8, --(裘) [0x4A45] = 0x88D9, --(裙) - [0x4A46] = 0x88DD, --(裝) + [0x4A46] = 0x88DD, --(裝) [0x4A47] = 0x88F9, --(裹) - [0x4A48] = 0x8902, --(褂) + [0x4A48] = 0x8902, --(褂) [0x4A49] = 0x88FC, --(裼) - [0x4A4A] = 0x88F4, --(裴) + [0x4A4A] = 0x88F4, --(裴) [0x4A4B] = 0x88E8, --(裨) - [0x4A4C] = 0x88F2, --(裲) + [0x4A4C] = 0x88F2, --(裲) [0x4A4D] = 0x8904, --(褄) - [0x4A4E] = 0x890C, --(褌) + [0x4A4E] = 0x890C, --(褌) [0x4A4F] = 0x890A, --(褊) - [0x4A50] = 0x8913, --(褓) + [0x4A50] = 0x8913, --(褓) [0x4A51] = 0x8943, --(襃) - [0x4A52] = 0x891E, --(褞) + [0x4A52] = 0x891E, --(褞) [0x4A53] = 0x8925, --(褥) - [0x4A54] = 0x892A, --(褪) + [0x4A54] = 0x892A, --(褪) [0x4A55] = 0x892B, --(褫) - [0x4A56] = 0x8941, --(襁) + [0x4A56] = 0x8941, --(襁) [0x4A57] = 0x8944, --(襄) - [0x4A58] = 0x893B, --(褻) + [0x4A58] = 0x893B, --(褻) [0x4A59] = 0x8936, --(褶) - [0x4A5A] = 0x8938, --(褸) + [0x4A5A] = 0x8938, --(褸) [0x4A5B] = 0x894C, --(襌) - [0x4A5C] = 0x891D, --(褝) + [0x4A5C] = 0x891D, --(褝) [0x4A5D] = 0x8960, --(襠) - [0x4A5E] = 0x895E, --(襞) + [0x4A5E] = 0x895E, --(襞) [0x4B01] = 0x8966, --(襦) - [0x4B02] = 0x8964, --(襤) + [0x4B02] = 0x8964, --(襤) [0x4B03] = 0x896D, --(襭) - [0x4B04] = 0x896A, --(襪) + [0x4B04] = 0x896A, --(襪) [0x4B05] = 0x896F, --(襯) - [0x4B06] = 0x8974, --(襴) + [0x4B06] = 0x8974, --(襴) [0x4B07] = 0x8977, --(襷) - [0x4B08] = 0x897E, --(襾) + [0x4B08] = 0x897E, --(襾) [0x4B09] = 0x8983, --(覃) - [0x4B0A] = 0x8988, --(覈) + [0x4B0A] = 0x8988, --(覈) [0x4B0B] = 0x898A, --(覊) - [0x4B0C] = 0x8993, --(覓) + [0x4B0C] = 0x8993, --(覓) [0x4B0D] = 0x8998, --(覘) - [0x4B0E] = 0x89A1, --(覡) + [0x4B0E] = 0x89A1, --(覡) [0x4B0F] = 0x89A9, --(覩) - [0x4B10] = 0x89A6, --(覦) + [0x4B10] = 0x89A6, --(覦) [0x4B11] = 0x89AC, --(覬) - [0x4B12] = 0x89AF, --(覯) + [0x4B12] = 0x89AF, --(覯) [0x4B13] = 0x89B2, --(覲) - [0x4B14] = 0x89BA, --(覺) + [0x4B14] = 0x89BA, --(覺) [0x4B15] = 0x89BD, --(覽) - [0x4B16] = 0x89BF, --(覿) + [0x4B16] = 0x89BF, --(覿) [0x4B17] = 0x89C0, --(觀) - [0x4B18] = 0x89DA, --(觚) + [0x4B18] = 0x89DA, --(觚) [0x4B19] = 0x89DC, --(觜) - [0x4B1A] = 0x89DD, --(觝) + [0x4B1A] = 0x89DD, --(觝) [0x4B1B] = 0x89E7, --(觧) - [0x4B1C] = 0x89F4, --(觴) + [0x4B1C] = 0x89F4, --(觴) [0x4B1D] = 0x89F8, --(觸) - [0x4B1E] = 0x8A03, --(訃) + [0x4B1E] = 0x8A03, --(訃) [0x4B1F] = 0x8A16, --(訖) - [0x4B20] = 0x8A10, --(訐) + [0x4B20] = 0x8A10, --(訐) [0x4B21] = 0x8A0C, --(訌) - [0x4B22] = 0x8A1B, --(訛) + [0x4B22] = 0x8A1B, --(訛) [0x4B23] = 0x8A1D, --(訝) - [0x4B24] = 0x8A25, --(訥) + [0x4B24] = 0x8A25, --(訥) [0x4B25] = 0x8A36, --(訶) - [0x4B26] = 0x8A41, --(詁) + [0x4B26] = 0x8A41, --(詁) [0x4B27] = 0x8A5B, --(詛) - [0x4B28] = 0x8A52, --(詒) + [0x4B28] = 0x8A52, --(詒) [0x4B29] = 0x8A46, --(詆) - [0x4B2A] = 0x8A48, --(詈) + [0x4B2A] = 0x8A48, --(詈) [0x4B2B] = 0x8A7C, --(詼) - [0x4B2C] = 0x8A6D, --(詭) + [0x4B2C] = 0x8A6D, --(詭) [0x4B2D] = 0x8A6C, --(詬) - [0x4B2E] = 0x8A62, --(詢) + [0x4B2E] = 0x8A62, --(詢) [0x4B2F] = 0x8A85, --(誅) - [0x4B30] = 0x8A82, --(誂) + [0x4B30] = 0x8A82, --(誂) [0x4B31] = 0x8A84, --(誄) - [0x4B32] = 0x8AA8, --(誨) + [0x4B32] = 0x8AA8, --(誨) [0x4B33] = 0x8AA1, --(誡) - [0x4B34] = 0x8A91, --(誑) + [0x4B34] = 0x8A91, --(誑) [0x4B35] = 0x8AA5, --(誥) - [0x4B36] = 0x8AA6, --(誦) + [0x4B36] = 0x8AA6, --(誦) [0x4B37] = 0x8A9A, --(誚) - [0x4B38] = 0x8AA3, --(誣) + [0x4B38] = 0x8AA3, --(誣) [0x4B39] = 0x8AC4, --(諄) - [0x4B3A] = 0x8ACD, --(諍) + [0x4B3A] = 0x8ACD, --(諍) [0x4B3B] = 0x8AC2, --(諂) - [0x4B3C] = 0x8ADA, --(諚) + [0x4B3C] = 0x8ADA, --(諚) [0x4B3D] = 0x8AEB, --(諫) - [0x4B3E] = 0x8AF3, --(諳) + [0x4B3E] = 0x8AF3, --(諳) [0x4B3F] = 0x8AE7, --(諧) - [0x4B40] = 0x8AE4, --(諤) + [0x4B40] = 0x8AE4, --(諤) [0x4B41] = 0x8AF1, --(諱) - [0x4B42] = 0x8B14, --(謔) + [0x4B42] = 0x8B14, --(謔) [0x4B43] = 0x8AE0, --(諠) - [0x4B44] = 0x8AE2, --(諢) + [0x4B44] = 0x8AE2, --(諢) [0x4B45] = 0x8AF7, --(諷) - [0x4B46] = 0x8ADE, --(諞) + [0x4B46] = 0x8ADE, --(諞) [0x4B47] = 0x8ADB, --(諛) - [0x4B48] = 0x8B0C, --(謌) + [0x4B48] = 0x8B0C, --(謌) [0x4B49] = 0x8B07, --(謇) - [0x4B4A] = 0x8B1A, --(謚) + [0x4B4A] = 0x8B1A, --(謚) [0x4B4B] = 0x8AE1, --(諡) - [0x4B4C] = 0x8B16, --(謖) + [0x4B4C] = 0x8B16, --(謖) [0x4B4D] = 0x8B10, --(謐) - [0x4B4E] = 0x8B17, --(謗) + [0x4B4E] = 0x8B17, --(謗) [0x4B4F] = 0x8B20, --(謠) - [0x4B50] = 0x8B33, --(謳) + [0x4B50] = 0x8B33, --(謳) [0x4B51] = 0x97AB, --(鞫) - [0x4B52] = 0x8B26, --(謦) + [0x4B52] = 0x8B26, --(謦) [0x4B53] = 0x8B2B, --(謫) - [0x4B54] = 0x8B3E, --(謾) + [0x4B54] = 0x8B3E, --(謾) [0x4B55] = 0x8B28, --(謨) - [0x4B56] = 0x8B41, --(譁) + [0x4B56] = 0x8B41, --(譁) [0x4B57] = 0x8B4C, --(譌) - [0x4B58] = 0x8B4F, --(譏) + [0x4B58] = 0x8B4F, --(譏) [0x4B59] = 0x8B4E, --(譎) - [0x4B5A] = 0x8B49, --(證) + [0x4B5A] = 0x8B49, --(證) [0x4B5B] = 0x8B56, --(譖) - [0x4B5C] = 0x8B5B, --(譛) + [0x4B5C] = 0x8B5B, --(譛) [0x4B5D] = 0x8B5A, --(譚) - [0x4B5E] = 0x8B6B, --(譫) + [0x4B5E] = 0x8B6B, --(譫) [0x4C01] = 0x8B5F, --(譟) - [0x4C02] = 0x8B6C, --(譬) + [0x4C02] = 0x8B6C, --(譬) [0x4C03] = 0x8B6F, --(譯) - [0x4C04] = 0x8B74, --(譴) + [0x4C04] = 0x8B74, --(譴) [0x4C05] = 0x8B7D, --(譽) - [0x4C06] = 0x8B80, --(讀) + [0x4C06] = 0x8B80, --(讀) [0x4C07] = 0x8B8C, --(讌) - [0x4C08] = 0x8B8E, --(讎) + [0x4C08] = 0x8B8E, --(讎) [0x4C09] = 0x8B92, --(讒) - [0x4C0A] = 0x8B93, --(讓) + [0x4C0A] = 0x8B93, --(讓) [0x4C0B] = 0x8B96, --(讖) - [0x4C0C] = 0x8B99, --(讙) + [0x4C0C] = 0x8B99, --(讙) [0x4C0D] = 0x8B9A, --(讚) - [0x4C0E] = 0x8C3A, --(谺) + [0x4C0E] = 0x8C3A, --(谺) [0x4C0F] = 0x8C41, --(豁) - [0x4C10] = 0x8C3F, --(谿) + [0x4C10] = 0x8C3F, --(谿) [0x4C11] = 0x8C48, --(豈) - [0x4C12] = 0x8C4C, --(豌) + [0x4C12] = 0x8C4C, --(豌) [0x4C13] = 0x8C4E, --(豎) - [0x4C14] = 0x8C50, --(豐) + [0x4C14] = 0x8C50, --(豐) [0x4C15] = 0x8C55, --(豕) - [0x4C16] = 0x8C62, --(豢) + [0x4C16] = 0x8C62, --(豢) [0x4C17] = 0x8C6C, --(豬) - [0x4C18] = 0x8C78, --(豸) + [0x4C18] = 0x8C78, --(豸) [0x4C19] = 0x8C7A, --(豺) - [0x4C1A] = 0x8C82, --(貂) + [0x4C1A] = 0x8C82, --(貂) [0x4C1B] = 0x8C89, --(貉) - [0x4C1C] = 0x8C85, --(貅) + [0x4C1C] = 0x8C85, --(貅) [0x4C1D] = 0x8C8A, --(貊) - [0x4C1E] = 0x8C8D, --(貍) + [0x4C1E] = 0x8C8D, --(貍) [0x4C1F] = 0x8C8E, --(貎) - [0x4C20] = 0x8C94, --(貔) + [0x4C20] = 0x8C94, --(貔) [0x4C21] = 0x8C7C, --(豼) - [0x4C22] = 0x8C98, --(貘) + [0x4C22] = 0x8C98, --(貘) [0x4C23] = 0x621D, --(戝) - [0x4C24] = 0x8CAD, --(貭) + [0x4C24] = 0x8CAD, --(貭) [0x4C25] = 0x8CAA, --(貪) - [0x4C26] = 0x8CBD, --(貽) + [0x4C26] = 0x8CBD, --(貽) [0x4C27] = 0x8CB2, --(貲) - [0x4C28] = 0x8CB3, --(貳) + [0x4C28] = 0x8CB3, --(貳) [0x4C29] = 0x8CAE, --(貮) - [0x4C2A] = 0x8CB6, --(貶) + [0x4C2A] = 0x8CB6, --(貶) [0x4C2B] = 0x8CC8, --(賈) - [0x4C2C] = 0x8CC1, --(賁) + [0x4C2C] = 0x8CC1, --(賁) [0x4C2D] = 0x8CE4, --(賤) - [0x4C2E] = 0x8CE3, --(賣) + [0x4C2E] = 0x8CE3, --(賣) [0x4C2F] = 0x8CDA, --(賚) - [0x4C30] = 0x8CFD, --(賽) + [0x4C30] = 0x8CFD, --(賽) [0x4C31] = 0x8CFA, --(賺) - [0x4C32] = 0x8CFB, --(賻) + [0x4C32] = 0x8CFB, --(賻) [0x4C33] = 0x8D04, --(贄) - [0x4C34] = 0x8D05, --(贅) + [0x4C34] = 0x8D05, --(贅) [0x4C35] = 0x8D0A, --(贊) - [0x4C36] = 0x8D07, --(贇) + [0x4C36] = 0x8D07, --(贇) [0x4C37] = 0x8D0F, --(贏) - [0x4C38] = 0x8D0D, --(贍) + [0x4C38] = 0x8D0D, --(贍) [0x4C39] = 0x8D10, --(贐) - [0x4C3A] = 0x9F4E, --(齎) + [0x4C3A] = 0x9F4E, --(齎) [0x4C3B] = 0x8D13, --(贓) - [0x4C3C] = 0x8CCD, --(賍) + [0x4C3C] = 0x8CCD, --(賍) [0x4C3D] = 0x8D14, --(贔) - [0x4C3E] = 0x8D16, --(贖) + [0x4C3E] = 0x8D16, --(贖) [0x4C3F] = 0x8D67, --(赧) - [0x4C40] = 0x8D6D, --(赭) + [0x4C40] = 0x8D6D, --(赭) [0x4C41] = 0x8D71, --(赱) - [0x4C42] = 0x8D73, --(赳) + [0x4C42] = 0x8D73, --(赳) [0x4C43] = 0x8D81, --(趁) - [0x4C44] = 0x8D99, --(趙) + [0x4C44] = 0x8D99, --(趙) [0x4C45] = 0x8DC2, --(跂) - [0x4C46] = 0x8DBE, --(趾) + [0x4C46] = 0x8DBE, --(趾) [0x4C47] = 0x8DBA, --(趺) - [0x4C48] = 0x8DCF, --(跏) + [0x4C48] = 0x8DCF, --(跏) [0x4C49] = 0x8DDA, --(跚) - [0x4C4A] = 0x8DD6, --(跖) + [0x4C4A] = 0x8DD6, --(跖) [0x4C4B] = 0x8DCC, --(跌) - [0x4C4C] = 0x8DDB, --(跛) + [0x4C4C] = 0x8DDB, --(跛) [0x4C4D] = 0x8DCB, --(跋) - [0x4C4E] = 0x8DEA, --(跪) + [0x4C4E] = 0x8DEA, --(跪) [0x4C4F] = 0x8DEB, --(跫) - [0x4C50] = 0x8DDF, --(跟) + [0x4C50] = 0x8DDF, --(跟) [0x4C51] = 0x8DE3, --(跣) - [0x4C52] = 0x8DFC, --(跼) + [0x4C52] = 0x8DFC, --(跼) [0x4C53] = 0x8E08, --(踈) - [0x4C54] = 0x8E09, --(踉) + [0x4C54] = 0x8E09, --(踉) [0x4C55] = 0x8DFF, --(跿) - [0x4C56] = 0x8E1D, --(踝) + [0x4C56] = 0x8E1D, --(踝) [0x4C57] = 0x8E1E, --(踞) - [0x4C58] = 0x8E10, --(踐) + [0x4C58] = 0x8E10, --(踐) [0x4C59] = 0x8E1F, --(踟) - [0x4C5A] = 0x8E42, --(蹂) + [0x4C5A] = 0x8E42, --(蹂) [0x4C5B] = 0x8E35, --(踵) - [0x4C5C] = 0x8E30, --(踰) + [0x4C5C] = 0x8E30, --(踰) [0x4C5D] = 0x8E34, --(踴) - [0x4C5E] = 0x8E4A, --(蹊) + [0x4C5E] = 0x8E4A, --(蹊) [0x4D01] = 0x8E47, --(蹇) - [0x4D02] = 0x8E49, --(蹉) + [0x4D02] = 0x8E49, --(蹉) [0x4D03] = 0x8E4C, --(蹌) - [0x4D04] = 0x8E50, --(蹐) + [0x4D04] = 0x8E50, --(蹐) [0x4D05] = 0x8E48, --(蹈) - [0x4D06] = 0x8E59, --(蹙) + [0x4D06] = 0x8E59, --(蹙) [0x4D07] = 0x8E64, --(蹤) - [0x4D08] = 0x8E60, --(蹠) + [0x4D08] = 0x8E60, --(蹠) [0x4D09] = 0x8E2A, --(踪) - [0x4D0A] = 0x8E63, --(蹣) + [0x4D0A] = 0x8E63, --(蹣) [0x4D0B] = 0x8E55, --(蹕) - [0x4D0C] = 0x8E76, --(蹶) + [0x4D0C] = 0x8E76, --(蹶) [0x4D0D] = 0x8E72, --(蹲) - [0x4D0E] = 0x8E7C, --(蹼) + [0x4D0E] = 0x8E7C, --(蹼) [0x4D0F] = 0x8E81, --(躁) - [0x4D10] = 0x8E87, --(躇) + [0x4D10] = 0x8E87, --(躇) [0x4D11] = 0x8E85, --(躅) - [0x4D12] = 0x8E84, --(躄) + [0x4D12] = 0x8E84, --(躄) [0x4D13] = 0x8E8B, --(躋) - [0x4D14] = 0x8E8A, --(躊) + [0x4D14] = 0x8E8A, --(躊) [0x4D15] = 0x8E93, --(躓) - [0x4D16] = 0x8E91, --(躑) + [0x4D16] = 0x8E91, --(躑) [0x4D17] = 0x8E94, --(躔) - [0x4D18] = 0x8E99, --(躙) + [0x4D18] = 0x8E99, --(躙) [0x4D19] = 0x8EAA, --(躪) - [0x4D1A] = 0x8EA1, --(躡) + [0x4D1A] = 0x8EA1, --(躡) [0x4D1B] = 0x8EAC, --(躬) - [0x4D1C] = 0x8EB0, --(躰) + [0x4D1C] = 0x8EB0, --(躰) [0x4D1D] = 0x8EC6, --(軆) - [0x4D1E] = 0x8EB1, --(躱) + [0x4D1E] = 0x8EB1, --(躱) [0x4D1F] = 0x8EBE, --(躾) - [0x4D20] = 0x8EC5, --(軅) + [0x4D20] = 0x8EC5, --(軅) [0x4D21] = 0x8EC8, --(軈) - [0x4D22] = 0x8ECB, --(軋) + [0x4D22] = 0x8ECB, --(軋) [0x4D23] = 0x8EDB, --(軛) - [0x4D24] = 0x8EE3, --(軣) + [0x4D24] = 0x8EE3, --(軣) [0x4D25] = 0x8EFC, --(軼) - [0x4D26] = 0x8EFB, --(軻) + [0x4D26] = 0x8EFB, --(軻) [0x4D27] = 0x8EEB, --(軫) - [0x4D28] = 0x8EFE, --(軾) + [0x4D28] = 0x8EFE, --(軾) [0x4D29] = 0x8F0A, --(輊) - [0x4D2A] = 0x8F05, --(輅) + [0x4D2A] = 0x8F05, --(輅) [0x4D2B] = 0x8F15, --(輕) - [0x4D2C] = 0x8F12, --(輒) + [0x4D2C] = 0x8F12, --(輒) [0x4D2D] = 0x8F19, --(輙) - [0x4D2E] = 0x8F13, --(輓) + [0x4D2E] = 0x8F13, --(輓) [0x4D2F] = 0x8F1C, --(輜) - [0x4D30] = 0x8F1F, --(輟) + [0x4D30] = 0x8F1F, --(輟) [0x4D31] = 0x8F1B, --(輛) - [0x4D32] = 0x8F0C, --(輌) + [0x4D32] = 0x8F0C, --(輌) [0x4D33] = 0x8F26, --(輦) - [0x4D34] = 0x8F33, --(輳) + [0x4D34] = 0x8F33, --(輳) [0x4D35] = 0x8F3B, --(輻) - [0x4D36] = 0x8F39, --(輹) + [0x4D36] = 0x8F39, --(輹) [0x4D37] = 0x8F45, --(轅) - [0x4D38] = 0x8F42, --(轂) + [0x4D38] = 0x8F42, --(轂) [0x4D39] = 0x8F3E, --(輾) - [0x4D3A] = 0x8F4C, --(轌) + [0x4D3A] = 0x8F4C, --(轌) [0x4D3B] = 0x8F49, --(轉) - [0x4D3C] = 0x8F46, --(轆) + [0x4D3C] = 0x8F46, --(轆) [0x4D3D] = 0x8F4E, --(轎) - [0x4D3E] = 0x8F57, --(轗) + [0x4D3E] = 0x8F57, --(轗) [0x4D3F] = 0x8F5C, --(轜) - [0x4D40] = 0x8F62, --(轢) + [0x4D40] = 0x8F62, --(轢) [0x4D41] = 0x8F63, --(轣) - [0x4D42] = 0x8F64, --(轤) + [0x4D42] = 0x8F64, --(轤) [0x4D43] = 0x8F9C, --(辜) - [0x4D44] = 0x8F9F, --(辟) + [0x4D44] = 0x8F9F, --(辟) [0x4D45] = 0x8FA3, --(辣) - [0x4D46] = 0x8FAD, --(辭) + [0x4D46] = 0x8FAD, --(辭) [0x4D47] = 0x8FAF, --(辯) - [0x4D48] = 0x8FB7, --(辷) + [0x4D48] = 0x8FB7, --(辷) [0x4D49] = 0x8FDA, --(迚) - [0x4D4A] = 0x8FE5, --(迥) + [0x4D4A] = 0x8FE5, --(迥) [0x4D4B] = 0x8FE2, --(迢) - [0x4D4C] = 0x8FEA, --(迪) + [0x4D4C] = 0x8FEA, --(迪) [0x4D4D] = 0x8FEF, --(迯) - [0x4D4E] = 0x9087, --(邇) + [0x4D4E] = 0x9087, --(邇) [0x4D4F] = 0x8FF4, --(迴) - [0x4D50] = 0x9005, --(逅) + [0x4D50] = 0x9005, --(逅) [0x4D51] = 0x8FF9, --(迹) - [0x4D52] = 0x8FFA, --(迺) + [0x4D52] = 0x8FFA, --(迺) [0x4D53] = 0x9011, --(逑) - [0x4D54] = 0x9015, --(逕) + [0x4D54] = 0x9015, --(逕) [0x4D55] = 0x9021, --(逡) - [0x4D56] = 0x900D, --(逍) + [0x4D56] = 0x900D, --(逍) [0x4D57] = 0x901E, --(逞) - [0x4D58] = 0x9016, --(逖) + [0x4D58] = 0x9016, --(逖) [0x4D59] = 0x900B, --(逋) - [0x4D5A] = 0x9027, --(逧) + [0x4D5A] = 0x9027, --(逧) [0x4D5B] = 0x9036, --(逶) - [0x4D5C] = 0x9035, --(逵) + [0x4D5C] = 0x9035, --(逵) [0x4D5D] = 0x9039, --(逹) - [0x4D5E] = 0x8FF8, --(迸) + [0x4D5E] = 0x8FF8, --(迸) [0x4E01] = 0x904F, --(遏) - [0x4E02] = 0x9050, --(遐) + [0x4E02] = 0x9050, --(遐) [0x4E03] = 0x9051, --(遑) - [0x4E04] = 0x9052, --(遒) + [0x4E04] = 0x9052, --(遒) [0x4E05] = 0x900E, --(逎) - [0x4E06] = 0x9049, --(遉) + [0x4E06] = 0x9049, --(遉) [0x4E07] = 0x903E, --(逾) - [0x4E08] = 0x9056, --(遖) + [0x4E08] = 0x9056, --(遖) [0x4E09] = 0x9058, --(遘) - [0x4E0A] = 0x905E, --(遞) + [0x4E0A] = 0x905E, --(遞) [0x4E0B] = 0x9068, --(遨) - [0x4E0C] = 0x906F, --(遯) + [0x4E0C] = 0x906F, --(遯) [0x4E0D] = 0x9076, --(遶) - [0x4E0E] = 0x96A8, --(隨) + [0x4E0E] = 0x96A8, --(隨) [0x4E0F] = 0x9072, --(遲) - [0x4E10] = 0x9082, --(邂) + [0x4E10] = 0x9082, --(邂) [0x4E11] = 0x907D, --(遽) - [0x4E12] = 0x9081, --(邁) + [0x4E12] = 0x9081, --(邁) [0x4E13] = 0x9080, --(邀) - [0x4E14] = 0x908A, --(邊) + [0x4E14] = 0x908A, --(邊) [0x4E15] = 0x9089, --(邉) - [0x4E16] = 0x908F, --(邏) + [0x4E16] = 0x908F, --(邏) [0x4E17] = 0x90A8, --(邨) - [0x4E18] = 0x90AF, --(邯) + [0x4E18] = 0x90AF, --(邯) [0x4E19] = 0x90B1, --(邱) - [0x4E1A] = 0x90B5, --(邵) + [0x4E1A] = 0x90B5, --(邵) [0x4E1B] = 0x90E2, --(郢) - [0x4E1C] = 0x90E4, --(郤) + [0x4E1C] = 0x90E4, --(郤) [0x4E1D] = 0x6248, --(扈) - [0x4E1E] = 0x90DB, --(郛) + [0x4E1E] = 0x90DB, --(郛) [0x4E1F] = 0x9102, --(鄂) - [0x4E20] = 0x9112, --(鄒) + [0x4E20] = 0x9112, --(鄒) [0x4E21] = 0x9119, --(鄙) - [0x4E22] = 0x9132, --(鄲) + [0x4E22] = 0x9132, --(鄲) [0x4E23] = 0x9130, --(鄰) - [0x4E24] = 0x914A, --(酊) + [0x4E24] = 0x914A, --(酊) [0x4E25] = 0x9156, --(酖) - [0x4E26] = 0x9158, --(酘) + [0x4E26] = 0x9158, --(酘) [0x4E27] = 0x9163, --(酣) - [0x4E28] = 0x9165, --(酥) + [0x4E28] = 0x9165, --(酥) [0x4E29] = 0x9169, --(酩) - [0x4E2A] = 0x9173, --(酳) + [0x4E2A] = 0x9173, --(酳) [0x4E2B] = 0x9172, --(酲) - [0x4E2C] = 0x918B, --(醋) + [0x4E2C] = 0x918B, --(醋) [0x4E2D] = 0x9189, --(醉) - [0x4E2E] = 0x9182, --(醂) + [0x4E2E] = 0x9182, --(醂) [0x4E2F] = 0x91A2, --(醢) - [0x4E30] = 0x91AB, --(醫) + [0x4E30] = 0x91AB, --(醫) [0x4E31] = 0x91AF, --(醯) - [0x4E32] = 0x91AA, --(醪) + [0x4E32] = 0x91AA, --(醪) [0x4E33] = 0x91B5, --(醵) - [0x4E34] = 0x91B4, --(醴) + [0x4E34] = 0x91B4, --(醴) [0x4E35] = 0x91BA, --(醺) - [0x4E36] = 0x91C0, --(釀) + [0x4E36] = 0x91C0, --(釀) [0x4E37] = 0x91C1, --(釁) - [0x4E38] = 0x91C9, --(釉) + [0x4E38] = 0x91C9, --(釉) [0x4E39] = 0x91CB, --(釋) - [0x4E3A] = 0x91D0, --(釐) + [0x4E3A] = 0x91D0, --(釐) [0x4E3B] = 0x91D6, --(釖) - [0x4E3C] = 0x91DF, --(釟) + [0x4E3C] = 0x91DF, --(釟) [0x4E3D] = 0x91E1, --(釡) - [0x4E3E] = 0x91DB, --(釛) + [0x4E3E] = 0x91DB, --(釛) [0x4E3F] = 0x91FC, --(釼) - [0x4E40] = 0x91F5, --(釵) + [0x4E40] = 0x91F5, --(釵) [0x4E41] = 0x91F6, --(釶) - [0x4E42] = 0x921E, --(鈞) + [0x4E42] = 0x921E, --(鈞) [0x4E43] = 0x91FF, --(釿) - [0x4E44] = 0x9214, --(鈔) + [0x4E44] = 0x9214, --(鈔) [0x4E45] = 0x922C, --(鈬) - [0x4E46] = 0x9215, --(鈕) + [0x4E46] = 0x9215, --(鈕) [0x4E47] = 0x9211, --(鈑) - [0x4E48] = 0x925E, --(鉞) + [0x4E48] = 0x925E, --(鉞) [0x4E49] = 0x9257, --(鉗) - [0x4E4A] = 0x9245, --(鉅) + [0x4E4A] = 0x9245, --(鉅) [0x4E4B] = 0x9249, --(鉉) - [0x4E4C] = 0x9264, --(鉤) + [0x4E4C] = 0x9264, --(鉤) [0x4E4D] = 0x9248, --(鉈) - [0x4E4E] = 0x9295, --(銕) + [0x4E4E] = 0x9295, --(銕) [0x4E4F] = 0x923F, --(鈿) - [0x4E50] = 0x924B, --(鉋) + [0x4E50] = 0x924B, --(鉋) [0x4E51] = 0x9250, --(鉐) - [0x4E52] = 0x929C, --(銜) + [0x4E52] = 0x929C, --(銜) [0x4E53] = 0x9296, --(銖) - [0x4E54] = 0x9293, --(銓) + [0x4E54] = 0x9293, --(銓) [0x4E55] = 0x929B, --(銛) - [0x4E56] = 0x925A, --(鉚) + [0x4E56] = 0x925A, --(鉚) [0x4E57] = 0x92CF, --(鋏) - [0x4E58] = 0x92B9, --(銹) + [0x4E58] = 0x92B9, --(銹) [0x4E59] = 0x92B7, --(銷) - [0x4E5A] = 0x92E9, --(鋩) + [0x4E5A] = 0x92E9, --(鋩) [0x4E5B] = 0x930F, --(錏) - [0x4E5C] = 0x92FA, --(鋺) + [0x4E5C] = 0x92FA, --(鋺) [0x4E5D] = 0x9344, --(鍄) - [0x4E5E] = 0x932E, --(錮) + [0x4E5E] = 0x932E, --(錮) [0x4F01] = 0x9319, --(錙) - [0x4F02] = 0x9322, --(錢) + [0x4F02] = 0x9322, --(錢) [0x4F03] = 0x931A, --(錚) - [0x4F04] = 0x9323, --(錣) + [0x4F04] = 0x9323, --(錣) [0x4F05] = 0x933A, --(錺) - [0x4F06] = 0x9335, --(錵) + [0x4F06] = 0x9335, --(錵) [0x4F07] = 0x933B, --(錻) - [0x4F08] = 0x935C, --(鍜) + [0x4F08] = 0x935C, --(鍜) [0x4F09] = 0x9360, --(鍠) - [0x4F0A] = 0x937C, --(鍼) + [0x4F0A] = 0x937C, --(鍼) [0x4F0B] = 0x936E, --(鍮) - [0x4F0C] = 0x9356, --(鍖) + [0x4F0C] = 0x9356, --(鍖) [0x4F0D] = 0x93B0, --(鎰) - [0x4F0E] = 0x93AC, --(鎬) + [0x4F0E] = 0x93AC, --(鎬) [0x4F0F] = 0x93AD, --(鎭) - [0x4F10] = 0x9394, --(鎔) + [0x4F10] = 0x9394, --(鎔) [0x4F11] = 0x93B9, --(鎹) - [0x4F12] = 0x93D6, --(鏖) + [0x4F12] = 0x93D6, --(鏖) [0x4F13] = 0x93D7, --(鏗) - [0x4F14] = 0x93E8, --(鏨) + [0x4F14] = 0x93E8, --(鏨) [0x4F15] = 0x93E5, --(鏥) - [0x4F16] = 0x93D8, --(鏘) + [0x4F16] = 0x93D8, --(鏘) [0x4F17] = 0x93C3, --(鏃) - [0x4F18] = 0x93DD, --(鏝) + [0x4F18] = 0x93DD, --(鏝) [0x4F19] = 0x93D0, --(鏐) - [0x4F1A] = 0x93C8, --(鏈) + [0x4F1A] = 0x93C8, --(鏈) [0x4F1B] = 0x93E4, --(鏤) - [0x4F1C] = 0x941A, --(鐚) + [0x4F1C] = 0x941A, --(鐚) [0x4F1D] = 0x9414, --(鐔) - [0x4F1E] = 0x9413, --(鐓) + [0x4F1E] = 0x9413, --(鐓) [0x4F1F] = 0x9403, --(鐃) - [0x4F20] = 0x9407, --(鐇) + [0x4F20] = 0x9407, --(鐇) [0x4F21] = 0x9410, --(鐐) - [0x4F22] = 0x9436, --(鐶) + [0x4F22] = 0x9436, --(鐶) [0x4F23] = 0x942B, --(鐫) - [0x4F24] = 0x9435, --(鐵) + [0x4F24] = 0x9435, --(鐵) [0x4F25] = 0x9421, --(鐡) - [0x4F26] = 0x943A, --(鐺) + [0x4F26] = 0x943A, --(鐺) [0x4F27] = 0x9441, --(鑁) - [0x4F28] = 0x9452, --(鑒) + [0x4F28] = 0x9452, --(鑒) [0x4F29] = 0x9444, --(鑄) - [0x4F2A] = 0x945B, --(鑛) + [0x4F2A] = 0x945B, --(鑛) [0x4F2B] = 0x9460, --(鑠) - [0x4F2C] = 0x9462, --(鑢) + [0x4F2C] = 0x9462, --(鑢) [0x4F2D] = 0x945E, --(鑞) - [0x4F2E] = 0x946A, --(鑪) + [0x4F2E] = 0x946A, --(鑪) [0x4F2F] = 0x9229, --(鈩) - [0x4F30] = 0x9470, --(鑰) + [0x4F30] = 0x9470, --(鑰) [0x4F31] = 0x9475, --(鑵) - [0x4F32] = 0x9477, --(鑷) + [0x4F32] = 0x9477, --(鑷) [0x4F33] = 0x947D, --(鑽) - [0x4F34] = 0x945A, --(鑚) + [0x4F34] = 0x945A, --(鑚) [0x4F35] = 0x947C, --(鑼) - [0x4F36] = 0x947E, --(鑾) + [0x4F36] = 0x947E, --(鑾) [0x4F37] = 0x9481, --(钁) - [0x4F38] = 0x947F, --(鑿) + [0x4F38] = 0x947F, --(鑿) [0x4F39] = 0x9582, --(閂) - [0x4F3A] = 0x9587, --(閇) + [0x4F3A] = 0x9587, --(閇) [0x4F3B] = 0x958A, --(閊) - [0x4F3C] = 0x9594, --(閔) + [0x4F3C] = 0x9594, --(閔) [0x4F3D] = 0x9596, --(閖) - [0x4F3E] = 0x9598, --(閘) + [0x4F3E] = 0x9598, --(閘) [0x4F3F] = 0x9599, --(閙) - [0x4F40] = 0x95A0, --(閠) + [0x4F40] = 0x95A0, --(閠) [0x4F41] = 0x95A8, --(閨) - [0x4F42] = 0x95A7, --(閧) + [0x4F42] = 0x95A7, --(閧) [0x4F43] = 0x95AD, --(閭) - [0x4F44] = 0x95BC, --(閼) + [0x4F44] = 0x95BC, --(閼) [0x4F45] = 0x95BB, --(閻) - [0x4F46] = 0x95B9, --(閹) + [0x4F46] = 0x95B9, --(閹) [0x4F47] = 0x95BE, --(閾) - [0x4F48] = 0x95CA, --(闊) + [0x4F48] = 0x95CA, --(闊) [0x4F49] = 0x6FF6, --(濶) - [0x4F4A] = 0x95C3, --(闃) + [0x4F4A] = 0x95C3, --(闃) [0x4F4B] = 0x95CD, --(闍) - [0x4F4C] = 0x95CC, --(闌) + [0x4F4C] = 0x95CC, --(闌) [0x4F4D] = 0x95D5, --(闕) - [0x4F4E] = 0x95D4, --(闔) + [0x4F4E] = 0x95D4, --(闔) [0x4F4F] = 0x95D6, --(闖) - [0x4F50] = 0x95DC, --(關) + [0x4F50] = 0x95DC, --(關) [0x4F51] = 0x95E1, --(闡) - [0x4F52] = 0x95E5, --(闥) + [0x4F52] = 0x95E5, --(闥) [0x4F53] = 0x95E2, --(闢) - [0x4F54] = 0x9621, --(阡) + [0x4F54] = 0x9621, --(阡) [0x4F55] = 0x9628, --(阨) - [0x4F56] = 0x962E, --(阮) + [0x4F56] = 0x962E, --(阮) [0x4F57] = 0x962F, --(阯) - [0x4F58] = 0x9642, --(陂) + [0x4F58] = 0x9642, --(陂) [0x4F59] = 0x964C, --(陌) - [0x4F5A] = 0x964F, --(陏) + [0x4F5A] = 0x964F, --(陏) [0x4F5B] = 0x964B, --(陋) - [0x4F5C] = 0x9677, --(陷) + [0x4F5C] = 0x9677, --(陷) [0x4F5D] = 0x965C, --(陜) - [0x4F5E] = 0x965E, --(陞) + [0x4F5E] = 0x965E, --(陞) [0x5001] = 0x965D, --(陝) - [0x5002] = 0x965F, --(陟) + [0x5002] = 0x965F, --(陟) [0x5003] = 0x9666, --(陦) - [0x5004] = 0x9672, --(陲) + [0x5004] = 0x9672, --(陲) [0x5005] = 0x966C, --(陬) - [0x5006] = 0x968D, --(隍) + [0x5006] = 0x968D, --(隍) [0x5007] = 0x9698, --(隘) - [0x5008] = 0x9695, --(隕) + [0x5008] = 0x9695, --(隕) [0x5009] = 0x9697, --(隗) - [0x500A] = 0x96AA, --(險) + [0x500A] = 0x96AA, --(險) [0x500B] = 0x96A7, --(隧) - [0x500C] = 0x96B1, --(隱) + [0x500C] = 0x96B1, --(隱) [0x500D] = 0x96B2, --(隲) - [0x500E] = 0x96B0, --(隰) + [0x500E] = 0x96B0, --(隰) [0x500F] = 0x96B4, --(隴) - [0x5010] = 0x96B6, --(隶) + [0x5010] = 0x96B6, --(隶) [0x5011] = 0x96B8, --(隸) - [0x5012] = 0x96B9, --(隹) + [0x5012] = 0x96B9, --(隹) [0x5013] = 0x96CE, --(雎) - [0x5014] = 0x96CB, --(雋) + [0x5014] = 0x96CB, --(雋) [0x5015] = 0x96C9, --(雉) - [0x5016] = 0x96CD, --(雍) + [0x5016] = 0x96CD, --(雍) [0x5017] = 0x894D, --(襍) - [0x5018] = 0x96DC, --(雜) + [0x5018] = 0x96DC, --(雜) [0x5019] = 0x970D, --(霍) - [0x501A] = 0x96D5, --(雕) + [0x501A] = 0x96D5, --(雕) [0x501B] = 0x96F9, --(雹) - [0x501C] = 0x9704, --(霄) + [0x501C] = 0x9704, --(霄) [0x501D] = 0x9706, --(霆) - [0x501E] = 0x9708, --(霈) + [0x501E] = 0x9708, --(霈) [0x501F] = 0x9713, --(霓) - [0x5020] = 0x970E, --(霎) + [0x5020] = 0x970E, --(霎) [0x5021] = 0x9711, --(霑) - [0x5022] = 0x970F, --(霏) + [0x5022] = 0x970F, --(霏) [0x5023] = 0x9716, --(霖) - [0x5024] = 0x9719, --(霙) + [0x5024] = 0x9719, --(霙) [0x5025] = 0x9724, --(霤) - [0x5026] = 0x972A, --(霪) + [0x5026] = 0x972A, --(霪) [0x5027] = 0x9730, --(霰) - [0x5028] = 0x9739, --(霹) + [0x5028] = 0x9739, --(霹) [0x5029] = 0x973D, --(霽) - [0x502A] = 0x973E, --(霾) + [0x502A] = 0x973E, --(霾) [0x502B] = 0x9744, --(靄) - [0x502C] = 0x9746, --(靆) + [0x502C] = 0x9746, --(靆) [0x502D] = 0x9748, --(靈) - [0x502E] = 0x9742, --(靂) + [0x502E] = 0x9742, --(靂) [0x502F] = 0x9749, --(靉) - [0x5030] = 0x975C, --(靜) + [0x5030] = 0x975C, --(靜) [0x5031] = 0x9760, --(靠) - [0x5032] = 0x9764, --(靤) + [0x5032] = 0x9764, --(靤) [0x5033] = 0x9766, --(靦) - [0x5034] = 0x9768, --(靨) + [0x5034] = 0x9768, --(靨) [0x5035] = 0x52D2, --(勒) - [0x5036] = 0x976B, --(靫) + [0x5036] = 0x976B, --(靫) [0x5037] = 0x9771, --(靱) - [0x5038] = 0x9779, --(靹) + [0x5038] = 0x9779, --(靹) [0x5039] = 0x9785, --(鞅) - [0x503A] = 0x977C, --(靼) + [0x503A] = 0x977C, --(靼) [0x503B] = 0x9781, --(鞁) - [0x503C] = 0x977A, --(靺) + [0x503C] = 0x977A, --(靺) [0x503D] = 0x9786, --(鞆) - [0x503E] = 0x978B, --(鞋) + [0x503E] = 0x978B, --(鞋) [0x503F] = 0x978F, --(鞏) - [0x5040] = 0x9790, --(鞐) + [0x5040] = 0x9790, --(鞐) [0x5041] = 0x979C, --(鞜) - [0x5042] = 0x97A8, --(鞨) + [0x5042] = 0x97A8, --(鞨) [0x5043] = 0x97A6, --(鞦) - [0x5044] = 0x97A3, --(鞣) + [0x5044] = 0x97A3, --(鞣) [0x5045] = 0x97B3, --(鞳) - [0x5046] = 0x97B4, --(鞴) + [0x5046] = 0x97B4, --(鞴) [0x5047] = 0x97C3, --(韃) - [0x5048] = 0x97C6, --(韆) + [0x5048] = 0x97C6, --(韆) [0x5049] = 0x97C8, --(韈) - [0x504A] = 0x97CB, --(韋) + [0x504A] = 0x97CB, --(韋) [0x504B] = 0x97DC, --(韜) - [0x504C] = 0x97ED, --(韭) + [0x504C] = 0x97ED, --(韭) [0x504D] = 0x9F4F, --(齏) - [0x504E] = 0x97F2, --(韲) + [0x504E] = 0x97F2, --(韲) [0x504F] = 0x7ADF, --(竟) - [0x5050] = 0x97F6, --(韶) + [0x5050] = 0x97F6, --(韶) [0x5051] = 0x97F5, --(韵) - [0x5052] = 0x980F, --(頏) + [0x5052] = 0x980F, --(頏) [0x5053] = 0x980C, --(頌) - [0x5054] = 0x9838, --(頸) + [0x5054] = 0x9838, --(頸) [0x5055] = 0x9824, --(頤) - [0x5056] = 0x9821, --(頡) + [0x5056] = 0x9821, --(頡) [0x5057] = 0x9837, --(頷) - [0x5058] = 0x983D, --(頽) + [0x5058] = 0x983D, --(頽) [0x5059] = 0x9846, --(顆) - [0x505A] = 0x984F, --(顏) + [0x505A] = 0x984F, --(顏) [0x505B] = 0x984B, --(顋) - [0x505C] = 0x986B, --(顫) + [0x505C] = 0x986B, --(顫) [0x505D] = 0x986F, --(顯) - [0x505E] = 0x9870, --(顰) + [0x505E] = 0x9870, --(顰) [0x5101] = 0x9871, --(顱) - [0x5102] = 0x9874, --(顴) + [0x5102] = 0x9874, --(顴) [0x5103] = 0x9873, --(顳) - [0x5104] = 0x98AA, --(颪) + [0x5104] = 0x98AA, --(颪) [0x5105] = 0x98AF, --(颯) - [0x5106] = 0x98B1, --(颱) + [0x5106] = 0x98B1, --(颱) [0x5107] = 0x98B6, --(颶) - [0x5108] = 0x98C4, --(飄) + [0x5108] = 0x98C4, --(飄) [0x5109] = 0x98C3, --(飃) - [0x510A] = 0x98C6, --(飆) + [0x510A] = 0x98C6, --(飆) [0x510B] = 0x98E9, --(飩) - [0x510C] = 0x98EB, --(飫) + [0x510C] = 0x98EB, --(飫) [0x510D] = 0x9903, --(餃) - [0x510E] = 0x9909, --(餉) + [0x510E] = 0x9909, --(餉) [0x510F] = 0x9912, --(餒) - [0x5110] = 0x9914, --(餔) + [0x5110] = 0x9914, --(餔) [0x5111] = 0x9918, --(餘) - [0x5112] = 0x9921, --(餡) + [0x5112] = 0x9921, --(餡) [0x5113] = 0x991D, --(餝) - [0x5114] = 0x991E, --(餞) + [0x5114] = 0x991E, --(餞) [0x5115] = 0x9924, --(餤) - [0x5116] = 0x9920, --(餠) + [0x5116] = 0x9920, --(餠) [0x5117] = 0x992C, --(餬) - [0x5118] = 0x992E, --(餮) + [0x5118] = 0x992E, --(餮) [0x5119] = 0x993D, --(餽) - [0x511A] = 0x993E, --(餾) + [0x511A] = 0x993E, --(餾) [0x511B] = 0x9942, --(饂) - [0x511C] = 0x9949, --(饉) + [0x511C] = 0x9949, --(饉) [0x511D] = 0x9945, --(饅) - [0x511E] = 0x9950, --(饐) + [0x511E] = 0x9950, --(饐) [0x511F] = 0x994B, --(饋) - [0x5120] = 0x9951, --(饑) + [0x5120] = 0x9951, --(饑) [0x5121] = 0x9952, --(饒) - [0x5122] = 0x994C, --(饌) + [0x5122] = 0x994C, --(饌) [0x5123] = 0x9955, --(饕) - [0x5124] = 0x9997, --(馗) + [0x5124] = 0x9997, --(馗) [0x5125] = 0x9998, --(馘) - [0x5126] = 0x99A5, --(馥) + [0x5126] = 0x99A5, --(馥) [0x5127] = 0x99AD, --(馭) - [0x5128] = 0x99AE, --(馮) + [0x5128] = 0x99AE, --(馮) [0x5129] = 0x99BC, --(馼) - [0x512A] = 0x99DF, --(駟) + [0x512A] = 0x99DF, --(駟) [0x512B] = 0x99DB, --(駛) - [0x512C] = 0x99DD, --(駝) + [0x512C] = 0x99DD, --(駝) [0x512D] = 0x99D8, --(駘) - [0x512E] = 0x99D1, --(駑) + [0x512E] = 0x99D1, --(駑) [0x512F] = 0x99ED, --(駭) - [0x5130] = 0x99EE, --(駮) + [0x5130] = 0x99EE, --(駮) [0x5131] = 0x99F1, --(駱) - [0x5132] = 0x99F2, --(駲) + [0x5132] = 0x99F2, --(駲) [0x5133] = 0x99FB, --(駻) - [0x5134] = 0x99F8, --(駸) + [0x5134] = 0x99F8, --(駸) [0x5135] = 0x9A01, --(騁) - [0x5136] = 0x9A0F, --(騏) + [0x5136] = 0x9A0F, --(騏) [0x5137] = 0x9A05, --(騅) - [0x5138] = 0x99E2, --(駢) + [0x5138] = 0x99E2, --(駢) [0x5139] = 0x9A19, --(騙) - [0x513A] = 0x9A2B, --(騫) + [0x513A] = 0x9A2B, --(騫) [0x513B] = 0x9A37, --(騷) - [0x513C] = 0x9A45, --(驅) + [0x513C] = 0x9A45, --(驅) [0x513D] = 0x9A42, --(驂) - [0x513E] = 0x9A40, --(驀) + [0x513E] = 0x9A40, --(驀) [0x513F] = 0x9A43, --(驃) - [0x5140] = 0x9A3E, --(騾) + [0x5140] = 0x9A3E, --(騾) [0x5141] = 0x9A55, --(驕) - [0x5142] = 0x9A4D, --(驍) + [0x5142] = 0x9A4D, --(驍) [0x5143] = 0x9A5B, --(驛) - [0x5144] = 0x9A57, --(驗) + [0x5144] = 0x9A57, --(驗) [0x5145] = 0x9A5F, --(驟) - [0x5146] = 0x9A62, --(驢) + [0x5146] = 0x9A62, --(驢) [0x5147] = 0x9A65, --(驥) - [0x5148] = 0x9A64, --(驤) + [0x5148] = 0x9A64, --(驤) [0x5149] = 0x9A69, --(驩) - [0x514A] = 0x9A6B, --(驫) + [0x514A] = 0x9A6B, --(驫) [0x514B] = 0x9A6A, --(驪) - [0x514C] = 0x9AAD, --(骭) + [0x514C] = 0x9AAD, --(骭) [0x514D] = 0x9AB0, --(骰) - [0x514E] = 0x9ABC, --(骼) + [0x514E] = 0x9ABC, --(骼) [0x514F] = 0x9AC0, --(髀) - [0x5150] = 0x9ACF, --(髏) + [0x5150] = 0x9ACF, --(髏) [0x5151] = 0x9AD1, --(髑) - [0x5152] = 0x9AD3, --(髓) + [0x5152] = 0x9AD3, --(髓) [0x5153] = 0x9AD4, --(體) - [0x5154] = 0x9ADE, --(髞) + [0x5154] = 0x9ADE, --(髞) [0x5155] = 0x9ADF, --(髟) - [0x5156] = 0x9AE2, --(髢) + [0x5156] = 0x9AE2, --(髢) [0x5157] = 0x9AE3, --(髣) - [0x5158] = 0x9AE6, --(髦) + [0x5158] = 0x9AE6, --(髦) [0x5159] = 0x9AEF, --(髯) - [0x515A] = 0x9AEB, --(髫) + [0x515A] = 0x9AEB, --(髫) [0x515B] = 0x9AEE, --(髮) - [0x515C] = 0x9AF4, --(髴) + [0x515C] = 0x9AF4, --(髴) [0x515D] = 0x9AF1, --(髱) - [0x515E] = 0x9AF7, --(髷) + [0x515E] = 0x9AF7, --(髷) [0x5201] = 0x9AFB, --(髻) - [0x5202] = 0x9B06, --(鬆) + [0x5202] = 0x9B06, --(鬆) [0x5203] = 0x9B18, --(鬘) - [0x5204] = 0x9B1A, --(鬚) + [0x5204] = 0x9B1A, --(鬚) [0x5205] = 0x9B1F, --(鬟) - [0x5206] = 0x9B22, --(鬢) + [0x5206] = 0x9B22, --(鬢) [0x5207] = 0x9B23, --(鬣) - [0x5208] = 0x9B25, --(鬥) + [0x5208] = 0x9B25, --(鬥) [0x5209] = 0x9B27, --(鬧) - [0x520A] = 0x9B28, --(鬨) + [0x520A] = 0x9B28, --(鬨) [0x520B] = 0x9B29, --(鬩) - [0x520C] = 0x9B2A, --(鬪) + [0x520C] = 0x9B2A, --(鬪) [0x520D] = 0x9B2E, --(鬮) - [0x520E] = 0x9B2F, --(鬯) + [0x520E] = 0x9B2F, --(鬯) [0x520F] = 0x9B32, --(鬲) - [0x5210] = 0x9B44, --(魄) + [0x5210] = 0x9B44, --(魄) [0x5211] = 0x9B43, --(魃) - [0x5212] = 0x9B4F, --(魏) + [0x5212] = 0x9B4F, --(魏) [0x5213] = 0x9B4D, --(魍) - [0x5214] = 0x9B4E, --(魎) + [0x5214] = 0x9B4E, --(魎) [0x5215] = 0x9B51, --(魑) - [0x5216] = 0x9B58, --(魘) + [0x5216] = 0x9B58, --(魘) [0x5217] = 0x9B74, --(魴) - [0x5218] = 0x9B93, --(鮓) + [0x5218] = 0x9B93, --(鮓) [0x5219] = 0x9B83, --(鮃) - [0x521A] = 0x9B91, --(鮑) + [0x521A] = 0x9B91, --(鮑) [0x521B] = 0x9B96, --(鮖) - [0x521C] = 0x9B97, --(鮗) + [0x521C] = 0x9B97, --(鮗) [0x521D] = 0x9B9F, --(鮟) - [0x521E] = 0x9BA0, --(鮠) + [0x521E] = 0x9BA0, --(鮠) [0x521F] = 0x9BA8, --(鮨) - [0x5220] = 0x9BB4, --(鮴) + [0x5220] = 0x9BB4, --(鮴) [0x5221] = 0x9BC0, --(鯀) - [0x5222] = 0x9BCA, --(鯊) + [0x5222] = 0x9BCA, --(鯊) [0x5223] = 0x9BB9, --(鮹) - [0x5224] = 0x9BC6, --(鯆) + [0x5224] = 0x9BC6, --(鯆) [0x5225] = 0x9BCF, --(鯏) - [0x5226] = 0x9BD1, --(鯑) + [0x5226] = 0x9BD1, --(鯑) [0x5227] = 0x9BD2, --(鯒) - [0x5228] = 0x9BE3, --(鯣) + [0x5228] = 0x9BE3, --(鯣) [0x5229] = 0x9BE2, --(鯢) - [0x522A] = 0x9BE4, --(鯤) + [0x522A] = 0x9BE4, --(鯤) [0x522B] = 0x9BD4, --(鯔) - [0x522C] = 0x9BE1, --(鯡) + [0x522C] = 0x9BE1, --(鯡) [0x522D] = 0x9C3A, --(鰺) - [0x522E] = 0x9BF2, --(鯲) + [0x522E] = 0x9BF2, --(鯲) [0x522F] = 0x9BF1, --(鯱) - [0x5230] = 0x9BF0, --(鯰) + [0x5230] = 0x9BF0, --(鯰) [0x5231] = 0x9C15, --(鰕) - [0x5232] = 0x9C14, --(鰔) + [0x5232] = 0x9C14, --(鰔) [0x5233] = 0x9C09, --(鰉) - [0x5234] = 0x9C13, --(鰓) + [0x5234] = 0x9C13, --(鰓) [0x5235] = 0x9C0C, --(鰌) - [0x5236] = 0x9C06, --(鰆) + [0x5236] = 0x9C06, --(鰆) [0x5237] = 0x9C08, --(鰈) - [0x5238] = 0x9C12, --(鰒) + [0x5238] = 0x9C12, --(鰒) [0x5239] = 0x9C0A, --(鰊) - [0x523A] = 0x9C04, --(鰄) + [0x523A] = 0x9C04, --(鰄) [0x523B] = 0x9C2E, --(鰮) - [0x523C] = 0x9C1B, --(鰛) + [0x523C] = 0x9C1B, --(鰛) [0x523D] = 0x9C25, --(鰥) - [0x523E] = 0x9C24, --(鰤) + [0x523E] = 0x9C24, --(鰤) [0x523F] = 0x9C21, --(鰡) - [0x5240] = 0x9C30, --(鰰) + [0x5240] = 0x9C30, --(鰰) [0x5241] = 0x9C47, --(鱇) - [0x5242] = 0x9C32, --(鰲) + [0x5242] = 0x9C32, --(鰲) [0x5243] = 0x9C46, --(鱆) - [0x5244] = 0x9C3E, --(鰾) + [0x5244] = 0x9C3E, --(鰾) [0x5245] = 0x9C5A, --(鱚) - [0x5246] = 0x9C60, --(鱠) + [0x5246] = 0x9C60, --(鱠) [0x5247] = 0x9C67, --(鱧) - [0x5248] = 0x9C76, --(鱶) + [0x5248] = 0x9C76, --(鱶) [0x5249] = 0x9C78, --(鱸) - [0x524A] = 0x9CE7, --(鳧) + [0x524A] = 0x9CE7, --(鳧) [0x524B] = 0x9CEC, --(鳬) - [0x524C] = 0x9CF0, --(鳰) + [0x524C] = 0x9CF0, --(鳰) [0x524D] = 0x9D09, --(鴉) - [0x524E] = 0x9D08, --(鴈) + [0x524E] = 0x9D08, --(鴈) [0x524F] = 0x9CEB, --(鳫) - [0x5250] = 0x9D03, --(鴃) + [0x5250] = 0x9D03, --(鴃) [0x5251] = 0x9D06, --(鴆) - [0x5252] = 0x9D2A, --(鴪) + [0x5252] = 0x9D2A, --(鴪) [0x5253] = 0x9D26, --(鴦) - [0x5254] = 0x9DAF, --(鶯) + [0x5254] = 0x9DAF, --(鶯) [0x5255] = 0x9D23, --(鴣) - [0x5256] = 0x9D1F, --(鴟) + [0x5256] = 0x9D1F, --(鴟) [0x5257] = 0x9D44, --(鵄) - [0x5258] = 0x9D15, --(鴕) + [0x5258] = 0x9D15, --(鴕) [0x5259] = 0x9D12, --(鴒) - [0x525A] = 0x9D41, --(鵁) + [0x525A] = 0x9D41, --(鵁) [0x525B] = 0x9D3F, --(鴿) - [0x525C] = 0x9D3E, --(鴾) + [0x525C] = 0x9D3E, --(鴾) [0x525D] = 0x9D46, --(鵆) - [0x525E] = 0x9D48, --(鵈) + [0x525E] = 0x9D48, --(鵈) [0x5301] = 0x9D5D, --(鵝) - [0x5302] = 0x9D5E, --(鵞) + [0x5302] = 0x9D5E, --(鵞) [0x5303] = 0x9D64, --(鵤) - [0x5304] = 0x9D51, --(鵑) + [0x5304] = 0x9D51, --(鵑) [0x5305] = 0x9D50, --(鵐) - [0x5306] = 0x9D59, --(鵙) + [0x5306] = 0x9D59, --(鵙) [0x5307] = 0x9D72, --(鵲) - [0x5308] = 0x9D89, --(鶉) + [0x5308] = 0x9D89, --(鶉) [0x5309] = 0x9D87, --(鶇) - [0x530A] = 0x9DAB, --(鶫) + [0x530A] = 0x9DAB, --(鶫) [0x530B] = 0x9D6F, --(鵯) - [0x530C] = 0x9D7A, --(鵺) + [0x530C] = 0x9D7A, --(鵺) [0x530D] = 0x9D9A, --(鶚) - [0x530E] = 0x9DA4, --(鶤) + [0x530E] = 0x9DA4, --(鶤) [0x530F] = 0x9DA9, --(鶩) - [0x5310] = 0x9DB2, --(鶲) + [0x5310] = 0x9DB2, --(鶲) [0x5311] = 0x9DC4, --(鷄) - [0x5312] = 0x9DC1, --(鷁) + [0x5312] = 0x9DC1, --(鷁) [0x5313] = 0x9DBB, --(鶻) - [0x5314] = 0x9DB8, --(鶸) + [0x5314] = 0x9DB8, --(鶸) [0x5315] = 0x9DBA, --(鶺) - [0x5316] = 0x9DC6, --(鷆) + [0x5316] = 0x9DC6, --(鷆) [0x5317] = 0x9DCF, --(鷏) - [0x5318] = 0x9DC2, --(鷂) + [0x5318] = 0x9DC2, --(鷂) [0x5319] = 0x9DD9, --(鷙) - [0x531A] = 0x9DD3, --(鷓) + [0x531A] = 0x9DD3, --(鷓) [0x531B] = 0x9DF8, --(鷸) - [0x531C] = 0x9DE6, --(鷦) + [0x531C] = 0x9DE6, --(鷦) [0x531D] = 0x9DED, --(鷭) - [0x531E] = 0x9DEF, --(鷯) + [0x531E] = 0x9DEF, --(鷯) [0x531F] = 0x9DFD, --(鷽) - [0x5320] = 0x9E1A, --(鸚) + [0x5320] = 0x9E1A, --(鸚) [0x5321] = 0x9E1B, --(鸛) - [0x5322] = 0x9E1E, --(鸞) + [0x5322] = 0x9E1E, --(鸞) [0x5323] = 0x9E75, --(鹵) - [0x5324] = 0x9E79, --(鹹) + [0x5324] = 0x9E79, --(鹹) [0x5325] = 0x9E7D, --(鹽) - [0x5326] = 0x9E81, --(麁) + [0x5326] = 0x9E81, --(麁) [0x5327] = 0x9E88, --(麈) - [0x5328] = 0x9E8B, --(麋) + [0x5328] = 0x9E8B, --(麋) [0x5329] = 0x9E8C, --(麌) - [0x532A] = 0x9E92, --(麒) + [0x532A] = 0x9E92, --(麒) [0x532B] = 0x9E95, --(麕) - [0x532C] = 0x9E91, --(麑) + [0x532C] = 0x9E91, --(麑) [0x532D] = 0x9E9D, --(麝) - [0x532E] = 0x9EA5, --(麥) + [0x532E] = 0x9EA5, --(麥) [0x532F] = 0x9EA9, --(麩) - [0x5330] = 0x9EB8, --(麸) + [0x5330] = 0x9EB8, --(麸) [0x5331] = 0x9EAA, --(麪) - [0x5332] = 0x9EAD, --(麭) + [0x5332] = 0x9EAD, --(麭) [0x5333] = 0x9761, --(靡) - [0x5334] = 0x9ECC, --(黌) + [0x5334] = 0x9ECC, --(黌) [0x5335] = 0x9ECE, --(黎) - [0x5336] = 0x9ECF, --(黏) + [0x5336] = 0x9ECF, --(黏) [0x5337] = 0x9ED0, --(黐) - [0x5338] = 0x9ED4, --(黔) + [0x5338] = 0x9ED4, --(黔) [0x5339] = 0x9EDC, --(黜) - [0x533A] = 0x9EDE, --(點) + [0x533A] = 0x9EDE, --(點) [0x533B] = 0x9EDD, --(黝) - [0x533C] = 0x9EE0, --(黠) + [0x533C] = 0x9EE0, --(黠) [0x533D] = 0x9EE5, --(黥) - [0x533E] = 0x9EE8, --(黨) + [0x533E] = 0x9EE8, --(黨) [0x533F] = 0x9EEF, --(黯) - [0x5340] = 0x9EF4, --(黴) + [0x5340] = 0x9EF4, --(黴) [0x5341] = 0x9EF6, --(黶) - [0x5342] = 0x9EF7, --(黷) + [0x5342] = 0x9EF7, --(黷) [0x5343] = 0x9EF9, --(黹) - [0x5344] = 0x9EFB, --(黻) + [0x5344] = 0x9EFB, --(黻) [0x5345] = 0x9EFC, --(黼) - [0x5346] = 0x9EFD, --(黽) + [0x5346] = 0x9EFD, --(黽) [0x5347] = 0x9F07, --(鼇) - [0x5348] = 0x9F08, --(鼈) + [0x5348] = 0x9F08, --(鼈) [0x5349] = 0x76B7, --(皷) - [0x534A] = 0x9F15, --(鼕) + [0x534A] = 0x9F15, --(鼕) [0x534B] = 0x9F21, --(鼡) - [0x534C] = 0x9F2C, --(鼬) + [0x534C] = 0x9F2C, --(鼬) [0x534D] = 0x9F3E, --(鼾) - [0x534E] = 0x9F4A, --(齊) + [0x534E] = 0x9F4A, --(齊) [0x534F] = 0x9F52, --(齒) - [0x5350] = 0x9F54, --(齔) + [0x5350] = 0x9F54, --(齔) [0x5351] = 0x9F63, --(齣) - [0x5352] = 0x9F5F, --(齟) + [0x5352] = 0x9F5F, --(齟) [0x5353] = 0x9F60, --(齠) - [0x5354] = 0x9F61, --(齡) + [0x5354] = 0x9F61, --(齡) [0x5355] = 0x9F66, --(齦) - [0x5356] = 0x9F67, --(齧) + [0x5356] = 0x9F67, --(齧) [0x5357] = 0x9F6C, --(齬) - [0x5358] = 0x9F6A, --(齪) + [0x5358] = 0x9F6A, --(齪) [0x5359] = 0x9F77, --(齷) - [0x535A] = 0x9F72, --(齲) + [0x535A] = 0x9F72, --(齲) [0x535B] = 0x9F76, --(齶) - [0x535C] = 0x9F95, --(龕) + [0x535C] = 0x9F95, --(龕) [0x535D] = 0x9F9C, --(龜) - [0x535E] = 0x9FA0, --(龠) + [0x535E] = 0x9FA0, --(龠) [0x5401] = 0x582F, --(堯) - [0x5402] = 0x69C7, --(槇) + [0x5402] = 0x69C7, --(槇) [0x5403] = 0x9059, --(遙) - [0x5404] = 0x7464, --(瑤) + [0x5404] = 0x7464, --(瑤) [0x5405] = 0x51DC, --(凜) - [0x5406] = 0x7199, --(熙) + [0x5406] = 0x7199, --(熙) }} diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua index 8b61f55b379..7204c11c820 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.lua @@ -14,6 +14,9 @@ return { ["stretch_order"]=0, ["width"]=157649, }, + [256]=51, + [512]=52, + [768]=53, [1024]=12295, [1025]=19968, [1026]=20108, diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty index fe0e69bf318..9fc3f307441 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-latex.sty @@ -8,14 +8,19 @@ \edef\ltj@latex@AtEnd{% \endlinechar=\the\endlinechar \relax} -\endlinechar=-1 % +\endlinechar\m@ne% \def\luatexjalatexLoaded{\endinput} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ltj-latex}[2013/05/14 LaTeX support of LuaTeX-ja] +\ProvidesPackage{ltj-latex}[2015/02/22 LaTeX support of LuaTeX-ja] + +% cleanup at end of the document +%\let\ltj@@orig@end=\@@end +%\protected\def\@@end{% +% \directlua{luatexja.ext_cleanup()}\ltj@@orig@end} % Globally add to the head of a macro (cf. LaTeX2e's \g@addto@macro) -\long\def\ltj@g@addto@macro#1#2{ +\long\def\ltj@g@addto@macro#1#2{% \begingroup \def\ltj@tmpa{#2} \toks@\expandafter\expandafter\expandafter{\expandafter\ltj@tmpa#1} @@ -43,10 +48,10 @@ luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {} } -\ltjsetparameter{kanjiskip=0pt plus 0.4pt minus 0.4pt, +\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .4pt, xkanjiskip=.25\zw plus 1pt minus 1pt, autospacing, autoxspacing, jacharrange={-1}, - yalbaselineshift=0pt, yjabaselineshift=0pt, + yalbaselineshift=\z@, yjabaselineshift=\z@, jcharwidowpenalty=500, differentjfm=paverage } @@ -57,6 +62,12 @@ \ltj@pkgpatch{unicode-math} \ltj@pkgpatch{xunicode} \ltj@pkgpatch{fontspec} +\ltj@pkgpatch{stfloats} +\ltj@pkgpatch{footmisc} +\ltj@pkgpatch{tascmac} +\ltj@AtBeginDocument{\@ifpackageloaded{ascmac}{\input{lltjp-tascmac.sty}}{}}% ascmac + +\RequirePackage{lltjp-geometry} %%------------------ all done diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua index 4aefe63bb46..15813fc6440 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-math.lua @@ -3,6 +3,7 @@ -- luatexja.load_module('base'); local ltjb = luatexja.base +luatexja.load_module('direction'); local ltjd = luatexja.direction luatexja.load_module('charrange'); local ltjc = luatexja.charrange luatexja.load_module('jfont'); local ltjf = luatexja.jfont luatexja.load_module('stack'); local ltjs = luatexja.stack @@ -13,6 +14,8 @@ local Dnode = node.direct or node local setfield = (Dnode ~= node) and Dnode.setfield or function(n, i, c) n[i] = c end local getfield = (Dnode ~= node) and Dnode.getfield or function(n, i) return n[i] end local getid = (Dnode ~= node) and Dnode.getid or function(n) return n.id end +local getsubtype = (Dnode ~= node) and Dnode.getsubtype or function(n) return n.subtype end +local getlist = (Dnode ~= node) and Dnode.getlist or function(n) return n.head end -- getlist cannot be used for sub_box nodes. Use instead λp. getfield(p, 'head') local getchar = (Dnode ~= node) and Dnode.getchar or function(n) return n.char end @@ -23,12 +26,14 @@ local to_direct = (Dnode ~= node) and Dnode.todirect or nullfunc local node_traverse = Dnode.traverse local node_new = Dnode.new local node_next = (Dnode ~= node) and Dnode.getnext or node.next +local node_remove = Dnode.remove local node_free = Dnode.free local has_attr = Dnode.has_attribute local set_attr = Dnode.set_attribute local tex_getcount = tex.getcount local attr_jchar_class = luatexbase.attributes['ltj@charclass'] +local attr_dir = luatexbase.attributes['ltj@dir'] local attr_icflag = luatexbase.attributes['ltj@icflag'] local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] local attr_jfam = luatexbase.attributes['jfam'] @@ -46,14 +51,35 @@ local id_style = node.id('style') local id_frac = node.id('fraction') local id_simple = node.id('noad') local id_sub_mlist = node.id('sub_mlist') +local id_whatsit = node.id('whatsit') +local sid_user = node.subtype('user_defined') +local DIR = luatexja.userid_table.DIR +local dir_node_auto = luatexja.dir_table.dir_node_auto local PROCESSED = luatexja.icflag_table.PROCESSED local ltjf_font_metric_table = ltjf.font_metric_table local ltjf_find_char_class = ltjf.find_char_class +local ltjd_get_dir_count = ltjd.get_dir_count +local ltjd_make_dir_whatsit = ltjd.make_dir_whatsit -- table of mathematical characters local is_math_letters = {} +local list_dir + +local function conv_vcenter(sb) + local h = getfield(sb, 'head');local hd = getlist(h) + if getid(hd)==id_whatsit and + getsubtype(hd)==sid_user and getfield(hd, 'user_id')==DIR then + local d = node_next(hd) + if getid(d)==id_vlist and has_attr(d, attr_dir)>=dir_node_auto then + node_free(hd); setfield(h, 'head', nil); node_free(h) + setfield(sb, 'head', d); h = d + end + end + set_attr(h, attr_icflag, PROCESSED) + return sb +end local conv_jchar_to_hbox_A @@ -62,7 +88,11 @@ local function conv_jchar_to_hbox(head, sty) for p in node_traverse(head) do local pid = getid(p) if pid == id_simple or pid == id_accent then - setfield(p, 'nucleus', conv_jchar_to_hbox_A(getfield(p, 'nucleus'), sty)) + if getsubtype(p)==12 then + conv_vcenter(getfield(p, 'nucleus')) + else + setfield(p, 'nucleus', conv_jchar_to_hbox_A(getfield(p, 'nucleus'), sty)) + end setfield(p, 'sub', conv_jchar_to_hbox_A(getfield(p, 'sub'), sty+1)) setfield(p, 'sup', conv_jchar_to_hbox_A(getfield(p, 'sup'), sty+1)) elseif pid == id_choice then @@ -90,9 +120,9 @@ local function conv_jchar_to_hbox(head, sty) else sty = 2 end end - end + end return head -end +end local MJT = luatexja.stack_table_index.MJT local MJS = luatexja.stack_table_index.MJS @@ -100,7 +130,7 @@ local MJSS = luatexja.stack_table_index.MJSS local capsule_glyph_math = ltjw.capsule_glyph_math local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct -conv_jchar_to_hbox_A = +conv_jchar_to_hbox_A = function (p, sty) if not p then return nil else @@ -118,7 +148,7 @@ function (p, sty) local q = node_new(id_sub_box) local r = node_new(id_glyph); setfield(r, 'next', nil) setfield(r, 'char', pc); setfield(r, 'font', f); setfield(r, 'subtype', 256) - local k = has_attr(r,attr_ykblshift) or 0 + local k = has_attr(r,attr_ykblshift) or 0 set_attr(r, attr_ykblshift, 0) -- ltj-setwidth 内で実際の位置補正はおこなうので,補正量を退避 local met = ltjf_font_metric_table[f] @@ -129,17 +159,27 @@ function (p, sty) end elseif pid == id_sub_box and getfield(p, 'head') then -- \hbox で直に与えられた内容は上下位置を補正する必要はない - set_attr(getfield(p, 'head'), attr_icflag, PROCESSED) + local h = getfield(p, 'head') + h = ltjd_make_dir_whatsit(h, h, list_dir, 'math') + setfield(p, 'head', h) + set_attr(h, attr_icflag, PROCESSED) end end return p end -luatexbase.add_to_callback('mlist_to_hlist', +local node_remove = Dnode.remove +luatexbase.add_to_callback('mlist_to_hlist', function (n, display_type, penalties) - local head = to_node(conv_jchar_to_hbox(to_direct(n), 0)) - head = node.mlist_to_hlist(head, display_type, penalties) - return head + n = to_direct(n); list_dir = ltjd_get_dir_count() + if getid(n)==id_whatsit and getsubtype(n)==sid_user and + getfield(n, 'user_id') == DIR then + local old_n = n; n = node_remove(n, n) + node_free(old_n) + end + return node.mlist_to_hlist( + to_node(conv_jchar_to_hbox(n, 0)), + display_type, penalties) end,'ltj.mlist_to_hlist', 1) luatexja.math = { is_math_letters = is_math_letters } diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua index f84faa436e9..94f4c613342 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-otf.lua @@ -8,6 +8,8 @@ luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('jfont'); local ltjf = luatexja.jfont luatexja.load_module('rmlgbm'); local ltjr = luatexja.rmlgbm luatexja.load_module('charrange'); local ltjc = luatexja.charrange +luatexja.load_module('direction'); local ltjd = luatexja.direction +luatexja.load_module('stack'); local ltjs = luatexja.stack local id_glyph = node.id('glyph') local id_whatsit = node.id('whatsit') @@ -28,29 +30,36 @@ local to_node = (Dnode ~= node) and Dnode.tonode or nullfunc local to_direct = (Dnode ~= node) and Dnode.todirect or nullfunc local node_new = Dnode.new -local node_remove = luatexja.Dnode_remove -- Dnode.remove +local node_remove = Dnode.remove local node_next = (Dnode ~= node) and Dnode.getnext or node.next local node_free = Dnode.free local has_attr = Dnode.has_attribute local set_attr = Dnode.set_attribute local unset_attr = Dnode.unset_attribute -local node_insert_after = Dnode.insert_after +local node_insert_after = Dnode.insert_after local node_write = Dnode.write local node_traverse_id = Dnode.traverse_id -local identifiers = fonts.hashes.identifiers local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] +local attr_curtfnt = luatexbase.attributes['ltj@curtfnt'] local attr_yablshift = luatexbase.attributes['ltj@yablshift'] local attr_ykblshift = luatexbase.attributes['ltj@ykblshift'] +local attr_tablshift = luatexbase.attributes['ltj@tablshift'] +local attr_tkblshift = luatexbase.attributes['ltj@tkblshift'] +local lang_ja = luatexja.lang_ja +local identifiers = fonts.hashes.identifiers local ltjf_font_metric_table = ltjf.font_metric_table +local ltjf_font_extra_info = ltjf.font_extra_info local ltjf_find_char_class = ltjf.find_char_class local ltjr_cidfont_data = ltjr.cidfont_data local ltjc_is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char +local ltjd_get_dir_count = ltjd.get_dir_count +local dir_tate = luatexja.dir_table.dir_tate luatexja.userid_table.OTF = luatexbase.newuserwhatsitid('char_by_cid', 'luatexja') -luatexja.userid_table.VSR = luatexbase.newuserwhatsitid('replace_vs', 'luatexja') +luatexja.userid_table.VSR = luatexbase.newuserwhatsitid('replace_vs', 'luatexja') local OTF, VSR = luatexja.userid_table.OTF, luatexja.userid_table.VSR local function get_ucs_from_rmlgbm(c) @@ -65,7 +74,7 @@ local function get_ucs_from_rmlgbm(c) local i = string.len(w) if i==4 then -- UCS2 return tonumber(w,16) - elseif i==8 then + elseif i==8 then i,w = tonumber(string.sub(w,1,4),16), tonumber(string.sub(w,-4),16) if (w>=0xD800) and (w<=0xDB7F) and (i>=0xDC00) and (i<=0xDFFF) then -- Surrogate pair return (w-0xD800)*0x400 + (i-0xDC00) @@ -80,43 +89,49 @@ end -- This whatsit node will be extracted to a glyph_node local function append_jglyph(char) local p = node_new(id_whatsit,sid_user) - local v = tex.attribute[attr_curjfnt] setfield(p, 'user_id', OTF) setfield(p, 'type', 100) setfield(p, 'value', char) - set_attr(p, attr_yablshift, tex.attribute[attr_ykblshift]) node_write(p) end -local function cid(key) - if key==0 then return append_jglyph(char) end - local curjfnt = identifiers[tex.attribute[attr_curjfnt]] - if not curjfnt.cidinfo or - curjfnt.cidinfo.ordering ~= "Japan1" and - curjfnt.cidinfo.ordering ~= "GB1" and - curjfnt.cidinfo.ordering ~= "CNS1" and - curjfnt.cidinfo.ordering ~= "Korea1" then --- ltjb.package_warning('luatexja-otf', --- 'Current Japanese font (or other CJK font) "' --- ..curjfnt.psname..'" is not a CID-Keyed font (Adobe-Japan1 etc.)') - return append_jglyph(get_ucs_from_rmlgbm(key)) - end - local char = curjfnt.resources.unicodes[curjfnt.cidinfo.ordering..'.'..tostring(key)] - if not char then - ltjb.package_warning('luatexja-otf', - 'Current Japanese font (or other CJK font) "' - ..curjfnt.psname..'" does not have the specified CID character (' - ..tostring(key)..')', - 'Use a font including the specified CID character.') - char = 0 +local cid +do + local tex_get_attr = tex.getattribute + cid = function (key) + if key==0 then return append_jglyph(char) end + local curjfnt = identifiers[tex_get_attr((ltjd_get_dir_count()==dir_tate) + and attr_curtfnt or attr_curjfnt)] + if not curjfnt.cidinfo or + curjfnt.cidinfo.ordering ~= "Japan1" and + curjfnt.cidinfo.ordering ~= "GB1" and + curjfnt.cidinfo.ordering ~= "CNS1" and + curjfnt.cidinfo.ordering ~= "Korea1" then + -- ltjb.package_warning('luatexja-otf', + -- 'Current Japanese font (or other CJK font) "' + -- ..curjfnt.psname..'" is not a CID-Keyed font (Adobe-Japan1 etc.)') + return append_jglyph(get_ucs_from_rmlgbm(key)) + end + local char = curjfnt.resources.unicodes[curjfnt.cidinfo.ordering..'.'..tostring(key)] + if not char then + ltjb.package_warning('luatexja-otf', + 'Current Japanese font (or other CJK font) "' + ..curjfnt.psname..'" does not have the specified CID character (' + ..tostring(key)..')', + 'Use a font including the specified CID character.') + char = 0 + end + return append_jglyph(char) end - return append_jglyph(char) end local function extract(head) head = to_direct(head) local p = head - local v + local is_dir_tate = ltjs.list_dir == dir_tate + local attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift + local attr_kblshift = is_dir_tate and attr_tkblshift or attr_ykblshift + local attr_curfnt = is_dir_tate and attr_curtfnt or attr_curjfnt while p do if getid(p)==id_whatsit then if getsubtype(p)==sid_user then @@ -125,14 +140,12 @@ local function extract(head) local g = node_new(id_glyph) setfield(g, 'subtype', 0) setfield(g, 'char', getfield(p, 'value')) - v = has_attr(p, attr_curjfnt); setfield(g, 'font',v) - set_attr(g, attr_curjfnt, puid==OTF and v or -1) - -- VSR yields ALchar - v = has_attr(p, attr_yablshift) - if v then - set_attr(g, attr_yablshift, v) + local v = has_attr(p, attr_curfnt); setfield(g, 'font',v) + if puid==OTF then + setfield(g, 'lang', lang_ja) + set_attr(g, attr_kblshift, has_attr(p, attr_kblshift)) else - unset_attr(g, attr_yablshift) + set_attr(g, attr_ablshift, has_attr(p, attr_ablshift)) end head = node_insert_after(head, p, g) head = node_remove(head, p) @@ -165,20 +178,20 @@ luatexbase.add_to_callback('pre_linebreak_filter', extract, local function cid_to_char(fmtable, fn) local fi = identifiers[fn] if fi.cidinfo and fi.cidinfo.ordering == "Japan1" then - fmtable.cid_char_type = {} for i, v in pairs(fmtable.chars) do local j = string.match(i, "^AJ1%-([0-9]*)") if j then j = tonumber(fi.resources.unicodes['Japan1.'..tostring(j)]) if j then - fmtable.cid_char_type[j] = v + fmtable.cid_char_type = fmtable.cid_char_type or {} + fmtable.cid_char_type[j] = v end end end end return fmtable end -luatexbase.add_to_callback("luatexja.define_jfont", +luatexbase.add_to_callback("luatexja.define_jfont", cid_to_char, "ltj.otf.define_jfont", 1) -- 既に読み込まれているフォントに対しても,同じことをやらないといけない for fn, v in pairs(ltjf_font_metric_table) do @@ -193,111 +206,29 @@ local function cid_set_char_class(arg, fmtable, char) else return 0 end end -luatexbase.add_to_callback("luatexja.find_char_class", +luatexbase.add_to_callback("luatexja.find_char_class", cid_set_char_class, "ltj.otf.find_char_class", 1) -------------------- IVS -local font_ivs_table = {} -- key: fontnumber local enable_ivs do local is_ivs_enabled = false - local ivs -- temp table - local sort = table.sort - local uniq_flag - local function add_ivs_table(tg, unitable, glyphmax) - for i = 0, glyphmax-1 do - if tg[i] then - local gv = tg[i] - if gv.altuni then - for _,at in pairs(gv.altuni) do - local bu, vsel = at.unicode, at.variant - if vsel then - if vsel>=0xE0100 then vsel = vsel - 0xE0100 end - if not ivs[bu] then ivs[bu] = {} end - uniq_flag = true - for i,_ in pairs(ivs[bu]) do - if i==vs then uniq_flag = false; break end - end - if uniq_flag then - ivs[bu][vsel] = unitable[gv.name] - end - end - end - end - end - end - end - local function make_ivs_table(id, fname) - ivs = {} - local fl = fontloader.open(fname) - local unicodes = id.resources.unicodes - if fl.glyphs then - add_ivs_table(fl.glyphs, id.resources.unicodes, fl.glyphmax) - end - if fl.subfonts then - for _,v in pairs(fl.subfonts) do - add_ivs_table(v.glyphs, id.resources.unicodes, v.glyphmax) - end - end - fontloader.close(fl) - return ivs - end - --- loading and saving - local font_ivs_basename = {} -- key: basename - local cache_ver = 4 - local checksum = file.checksum - - local function prepare_ivs_data(n, id) - -- test if already loaded - if type(id)=='number' then -- sometimes id is an integer - font_ivs_table[n] = font_ivs_table[id]; return - elseif not id then return - end - local fname = id.filename - local bname = file.basename(fname) - if not fname then - font_ivs_table[n] = {}; return - elseif font_ivs_basename[bname] then - font_ivs_table[n] = font_ivs_basename[bname]; return - end - - -- if the cache is present, read it - local newsum = checksum(fname) -- MD5 checksum of the fontfile - local v = "ivs_" .. string.lower(file.nameonly(fname)) - local dat = ltjb.load_cache(v, - function (t) return (t.version~=cache_ver) or (t.chksum~=newsum) end - ) - -- if the cache is not found or outdated, save the cache - if dat then - font_ivs_basename[bname] = dat[1] or {} - else - dat = make_ivs_table(id, fname) - font_ivs_basename[bname] = dat or {} - ltjb.save_cache( v, - { - chksum = checksum(fname), - version = cache_ver, - dat, - }) - end - font_ivs_table[n] = font_ivs_basename[bname] - end - -- 組版時 local function ivs_jglyph(char, bp, pf, uid) local p = node_new(id_whatsit,sid_user) setfield(p, 'user_id', uid) setfield(p, 'type', 100) setfield(p, 'value', char) - set_attr(p, attr_curjfnt, pf) - set_attr(p, attr_yablshift, has_attr(bp, attr_ykblshift) or 0) return p end local function do_ivs_repr(head) head = to_direct(head) local p, r = head + local is_dir_tate = ltjs.list_dir == dir_tate + local attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift + local attr_kblshift = is_dir_tate and attr_tkblshift or attr_ykblshift + local attr_curfnt = is_dir_tate and attr_curtfnt or attr_curjfnt while p do local pid = getid(p) if pid==id_glyph then @@ -305,22 +236,27 @@ do local q = node_next(p) -- the next node of p if q and getid(q)==id_glyph then local qc = getchar(q) - if (qc>=0xFE00 and qc<=0xFE0F) or (qc>=0xE0100 and qc<0xE01F0) then + if (qc>=0xFE00 and qc<=0xFE0F) or (qc>=0xE0100 and qc<0xE01F0) then -- q is a variation selector if qc>=0xE0100 then qc = qc - 0xE0100 end - local pt = font_ivs_table[pf] + local pt = ltjf_font_extra_info[pf] pt = pt and pt[getchar(p)]; pt = pt and pt[qc] head, r = node_remove(head,q) node_free(q) if pt then + local is_jachar = (getfield(p, 'lang')==lang_ja) local np = ivs_jglyph(pt, p, pf, - (has_attr(p,attr_curjfnt) or 0)==pf and OTF or VSR) - head = node_insert_after(head, p, np) + is_jachar and OTF or VSR) + if is_jachar then + set_attr(np, attr_curfnt, pf) + set_attr(np, attr_kblshift, has_attr(p, attr_kblshift)) + end + head = node_insert_after(head, p, np) head = node_remove(head,p) node_free(p) end p = r - else + else p = q end else @@ -333,32 +269,19 @@ do return to_node(head) end - -- font define - local function font_callback(name, size, id, fallback) - local d = fallback(name, size, id) - prepare_ivs_data(id, d) - return d - end - enable_ivs = function () if is_ivs_enabled then ltjb.package_warning('luatexja-otf', 'luatexja.otf.enable_ivs() was already called, so this call is ignored', '') else - luatexbase.add_to_callback('hpack_filter', - do_ivs_repr,'do_ivs', 1) - luatexbase.add_to_callback('pre_linebreak_filter', - do_ivs_repr, 'do_ivs', 1) - local ivs_callback = function (name, size, id) - return font_callback( - name, size, id, - function (name, size, id) return luatexja.font_callback(name, size, id) end - ) - end - luatexbase.add_to_callback('define_font',ivs_callback,"luatexja.ivs_font_callback", 1) - for i=1,font.nextid()-1 do - if identifiers[i] then prepare_ivs_data(i, identifiers[i]) end - end + luatexbase.add_to_callback('hpack_filter', + do_ivs_repr,'do_ivs', + luatexbase.priority_in_callback('hpack_filter', + 'ltj.hpack_filter_pre')+1) + luatexbase.add_to_callback('pre_linebreak_filter', + do_ivs_repr, 'do_ivs', + luatexbase.priority_in_callback('pre_linebreak_filter', + 'ltj.pre_linebreak_filter_pre')+1) is_ivs_enabled = true end end @@ -367,7 +290,6 @@ end luatexja.otf = { append_jglyph = append_jglyph, enable_ivs = enable_ivs, -- 隠し機能: IVS - font_ivs_table = font_ivs_table, cid = cid, } diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty b/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty index 933d056bb59..3d2095cc21d 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-plain.sty @@ -14,7 +14,7 @@ \ifltj@in@latex %<*LaTeX> \NeedsTeXFormat{LaTeX2e} \PackageWarning{ltj-plain}{Don't load this package directly; load luatexja.sty instead.} - \ProvidesPackage{ltj-plain}[2014/09/19] + \ProvidesPackage{ltj-plain}[2015/02/22] \fi %</LaTeX> %%------------------ @@ -28,12 +28,12 @@ \newread\ltj@@cfgread \openin\ltj@@cfgread{luatexja.cfg}% \ifeof\ltj@@cfgread - \message{Cannot find file `luatexja.cfg'.}% + \@PackageInfoNoLine{ltj-plain}{Cannot find file `luatexja.cfg'}% \else \closein\ltj@@cfgread \input luatexja.cfg \fi -\let\ltj@@cfgread\relax\advance\count16by-1\relax +\let\ltj@@cfgread\relax\advance\count16\m@ne\relax \jfont\tenmin=\ltj@stdmcfont:jfm=ujis at 9.62216pt \jfont\sevenmin=\ltj@stdmcfont:jfm=ujis at 6.73551pt @@ -42,41 +42,56 @@ \jfont\sevengt=\ltj@stdgtfont:jfm=ujis at 6.73551pt \jfont\fivegt=\ltj@stdgtfont:jfm=ujis at 4.81108pt -\let\mc=\tenmin -\let\gt=\tengt -\mc +\tfont\tentmin=\ltj@stdmcfont:jfm=ujisv at 9.62216pt +\tfont\seventmin=\ltj@stdmcfont:jfm=ujisv at 6.73551pt +\tfont\fivetmin=\ltj@stdmcfont:jfm=ujisv at 4.81108pt +\tfont\tentgt=\ltj@stdgtfont:jfm=ujisv at 9.62216pt +\tfont\seventgt=\ltj@stdgtfont:jfm=ujisv at 6.73551pt +\tfont\fivetgt=\ltj@stdgtfont:jfm=ujisv at 4.81108pt + +\def\mc{\tenmin\tentmin} +\def\gt{\tengt\tentgt} +\mc\tentmin \directlua{ local s = kpse.find_file('ltj-kinsoku.lua', 'tex') luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {} } -\ltjsetparameter{kanjiskip=0pt plus 0.4pt minus 0.4pt, +\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .4pt, xkanjiskip=.25\zw plus 1pt minus 1pt, - autospacing, autoxspacing, jacharrange={-1}, - yalbaselineshift=0pt, yjabaselineshift=0pt, - jcharwidowpenalty=500, differentjfm=paverage + autospacing, autoxspacing, jacharrange={-1}, + yalbaselineshift=\z@, yjabaselineshift=\z@, + jcharwidowpenalty=500, differentjfm=paverage, + jatextfont={0, \tenmin}, jascriptfont={0, \sevenmin}, + jascriptscriptfont={0, \fivemin}, } +\setbox\z@=\hbox{M} +\jfam\z@ +\ltjsetparameter{talbaselineshift=.5\ht0, tjabaselineshift=\z@} -\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} -\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} +\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} +\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} \ltjdefcharrange{3}{% "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF} \ltjdefcharrange{4}{% - "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, - "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, + "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, + "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese -\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} +\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} \ltjdefcharrange{6}{% - "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, + "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, "4E00-"9FFF, "F900-"FAFF, "FE10-"FE6F, "20000-"2FFFF,"E0100-"E01EF} \ltjdefcharrange{7}{ - "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, + "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, "AC00-"D7FF} \ltjdefcharrange{8}{"B4, "A8, "B1, "D7, "F7, "B0, "A7, "B6} \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}} \directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end} +\let\ltj@@orig@end=\@@end +\protected\def\@@end{% + \directlua{luatexja.ext_cleanup()}\ltj@@orig@end} %%------------------ all done \ltj@plain@AtEnd diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua index 5cdb1404ffd..c21de3ffdc5 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-pretreat.lua @@ -2,9 +2,11 @@ -- luatexja/ltj-pretreat.lua -- +luatexja.load_module('base'); local ltjb = luatexja.base luatexja.load_module('charrange'); local ltjc = luatexja.charrange luatexja.load_module('stack'); local ltjs = luatexja.stack luatexja.load_module('jfont'); local ltjf = luatexja.jfont +luatexja.load_module('direction'); local ltjd = luatexja.direction local Dnode = node.direct or node @@ -24,7 +26,7 @@ local floor = math.floor local has_attr = Dnode.has_attribute local set_attr = Dnode.set_attribute local node_traverse = Dnode.traverse -local node_remove =luatexja.Dnode_remove -- Dnode.remove +local node_remove = Dnode.remove local node_next = (Dnode ~= node) and Dnode.getnext or node.next local node_free = Dnode.free local node_end_of_math = Dnode.end_of_math @@ -35,80 +37,126 @@ local id_math = node.id('math') local id_whatsit = node.id('whatsit') local sid_user = node.subtype('user_defined') +local attr_dir = luatexbase.attributes['ltj@dir'] local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] +local attr_curtfnt = luatexbase.attributes['ltj@curtfnt'] local attr_icflag = luatexbase.attributes['ltj@icflag'] local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct +local ltjs_orig_char_table = ltjs.orig_char_table local ltjf_replace_altfont = ltjf.replace_altfont local attr_orig_char = luatexbase.attributes['ltj@origchar'] -local STCK = luatexja.userid_table.STCK -local lang_ja = token.create('ltj@japanese')[2] +local STCK = luatexja.userid_table.STCK +local DIR = luatexja.userid_table.DIR +local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG + +local dir_tate = luatexja.dir_table.dir_tate +local lang_ja = luatexja.lang_ja ------------------------------------------------------------------------ -- MAIN PROCESS STEP 1: replace fonts ------------------------------------------------------------------------ -local wt +local wt, wtd = {}, {} do + local ltjd_get_dir_count = ltjd.get_dir_count + local start_time_measure, stop_time_measure + = ltjb.start_time_measure, ltjb.stop_time_measure local head - - local suppress_hyphenate_ja_aux = {} - suppress_hyphenate_ja_aux[id_glyph] = function(p) - if (has_attr(p, attr_icflag) or 0)<=0 and is_ucs_in_japanese_char(p) then - local pc = getchar(p) - local pf = ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc) - setfield(p, 'font', pf); set_attr(p, attr_curjfnt, pf) - setfield(p, 'lang', lang_ja) - -- setfield(p, 'subtype', floor(getsubtype(p)*0.5)*2) - set_attr(p, attr_orig_char, pc) + local suppress_hyphenate_ja_aux = { + [id_math] = function(p) return node_next(node_end_of_math(node_next(p))) end, + [id_whatsit] = function(p) + if getsubtype(p)==sid_user then + local uid = getfield(p, 'user_id') + if uid==STCK then + wt[#wt+1] = p; node_remove(head, p) + elseif uid==DIR then + if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then + ltjs.list_dir = has_attr(p, attr_dir) + else -- こっちのケースは通常使用では起こらない + wtd[#wtd+1] = p; node_remove(head, p) + end + end + end + return node_next(p) + end, + } + setmetatable(suppress_hyphenate_ja_aux, + { + __index = function() return node_next end, + }) + local function suppress_hyphenate_ja (h) + start_time_measure('ltj_hyphenate') + head = to_direct(h) + for i = 1,#wt do wt[i]=nil end + for i = 1,#wtd do wtd[i]=nil end + for i,_ in pairs(ltjs_orig_char_table) do + ltjs_orig_char_table[i] = nil end - return p - end - suppress_hyphenate_ja_aux[id_math] = function(p) return node_end_of_math(node_next(p)) end - suppress_hyphenate_ja_aux[id_whatsit] = function(p) - if getsubtype(p)==sid_user and getfield(p, 'user_id')==STCK then - wt[#wt+1] = p; head = node_remove(head, p) + ltjs.list_dir=ltjd_get_dir_count() + do + local p = head + while p do + local pid = getid(p) + while pid==id_glyph do + local pc = getchar(p) + if (has_attr(p, attr_icflag) or 0)<=0 and is_ucs_in_japanese_char(p, pc) then + setfield(p, 'font', + ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc)) + setfield(p, 'lang', lang_ja) + ltjs_orig_char_table[p] = pc + end + p = node_next(p); pid = getid(p) + end + p = (suppress_hyphenate_ja_aux[pid])(p) + end end - return p + stop_time_measure('ltj_hyphenate'); start_time_measure('tex_hyphenate') + lang.hyphenate(h, nil) + stop_time_measure('tex_hyphenate') + return h end - local function suppress_hyphenate_ja (h) - local p = to_direct(h) - wt, head = {}, p - while p do - local pfunc = suppress_hyphenate_ja_aux[getid(p)] - p = node_next(pfunc and pfunc(p) or p) - end - head = to_node(head) - lang.hyphenate(head) - return head - end - - luatexbase.add_to_callback('hyphenate', + luatexbase.add_to_callback('hyphenate', function (head,tail) return suppress_hyphenate_ja(head) end,'ltj.hyphenate') end -- mode: true iff this function is called from hpack_filter +local ltjs_report_stack_level = ltjs.report_stack_level local function set_box_stack_level(head, mode) local box_set, cl = 0, tex.currentgrouplevel + 1 for _,p in pairs(wt) do if mode and getfield(p, 'value')==cl then box_set = 1 end; node_free(p) end - ltjs.report_stack_level(tex_getcount('ltj@@stack') + box_set) + ltjs_report_stack_level(tex_getcount('ltj@@stack') + box_set) + for _,p in pairs(wtd) do + node_free(p) + end + if ltjs.list_dir == dir_tate then + for p in Dnode.traverse_id(id_glyph,to_direct(head)) do + if (has_attr(p, attr_icflag) or 0)<=0 and getfield(p, 'lang')==lang_ja then + local pfn = has_attr(p, attr_curtfnt) or getfont(p) + local pc = ltjs_orig_char_table[p] + setfield(p, 'font', ltjf_replace_altfont(pfn, pc)) + end + end + end + --luatexja.ext_show_node_list(head, 'S> ', print) return head end -- CALLBACKS -luatexbase.add_to_callback('hpack_filter', +luatexbase.add_to_callback('hpack_filter', function (head) return set_box_stack_level(head, true) end,'ltj.hpack_filter_pre',1) -luatexbase.add_to_callback('pre_linebreak_filter', +luatexbase.add_to_callback('pre_linebreak_filter', function (head) return set_box_stack_level(head, false) end,'ltj.pre_linebreak_filter_pre',1) luatexja.pretreat = { set_box_stack_level = set_box_stack_level, + orig_char_table = orig_char_table, } diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua index 23b7e962dd6..2430ef3f7c1 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-rmlgbm.lua @@ -5,13 +5,14 @@ luatexja.load_module('base'); local ltjb = luatexja.base local cidfont_data = {} local cache_chars = {} -local cache_ver = '2' +local cache_ver = 5 +local identifiers = fonts.hashes.identifiers local cid_reg, cid_order, cid_supp, cid_name local cid_replace = { ["Adobe-Japan1"] = {"UniJIS2004-UTF32", 23057, 6, function (i) - if (231<=i and i<=632) or (8718<=i and i<=8719) + if (231<=i and i<=632) or (8718<=i and i<=8719) or (12063<=i and i<=12087) then return 327680 -- 655360/2 elseif 9758<=i and i<=9778 then @@ -21,15 +22,15 @@ local cid_replace = { end end}, -- 基本的には JIS X 0213:2004 に沿ったマッピング - ["Adobe-Korea1"] = {"UniKS-UTF32", 18351, 2, + ["Adobe-Korea1"] = {"UniKS-UTF32", 18351, 2, function (i) - if 8094<=i and i<=8100 then + if 8094<=i and i<=8100 then return 327680 -- 655360/2 end end}, - ["Adobe-GB1"] = {"UniGB-UTF32", 30283, 5, + ["Adobe-GB1"] = {"UniGB-UTF32", 30283, 5, function (i) - if (814<=i and i<=939) or (i==7716) + if (814<=i and i<=939) or (i==7716) or (22355<=i and i<=22357) then return 327680 -- 655360/2 end @@ -52,12 +53,12 @@ do local cid, ucs, ucsa line = fh:read("*l") while line do - if string.find(line, "end...?char") then + if string.find(line, "end...?char") then line = fh:read("*l"); return else -- WMA l is in the form "<%x+>%s%d+" ucs, cid = string.match(line, "<(%x+)>%s+<?(%x+)>?") - cid = cid_dec(cid); ucs = tonumber(ucs, 16); - if not tt[ucs] then + cid = cid_dec(cid); ucs = tonumber(ucs, 16); + if not tt[ucs] then tt[ucs] = mke(cid); cidm[cid]=ucs end end @@ -69,14 +70,14 @@ do local bucs, eucs, cid line = fh:read("*l") while line do - if string.find(line, "end...?range") then + if string.find(line, "end...?range") then line = fh:read("*l"); return else -- WMA l is in the form "<%x+>%s+<%x+>" bucs, eucs, cid = string.match(line, "<(%x+)>%s+<(%x+)>%s+<?(%x+)>?") - cid = cid_dec(cid); + cid = cid_dec(cid); bucs = tonumber(bucs, 16); eucs = tonumber(eucs, 16) for ucs = bucs, eucs do - if not tt[ucs] then + if not tt[ucs] then tt[ucs] = mke(cid); cidm[cid]=ucs end cid = inc(cid) @@ -98,12 +99,12 @@ do line = fh:read("*l") end end - fh:close(); + fh:close(); end - + local function increment(a) return a+1 end - local function entry(a) - return {index = a} + local function entry(a) + return {index = a} end make_cid_font = function () local kx = cid_replace[cid_name] @@ -111,52 +112,62 @@ do local k = { cidinfo = { ordering=cid_order, registry=cid_reg, supplement=kx[3] }, encodingbytes = 2, extend=1000, format = 'opentype', - direction = 0, characters = {}, parameters = {}, embedding = "no", cache = "yes", - ascender = 0, descender = 0, factor = 0, hfactor = 0, vfactor = 0, + direction = 0, characters = {}, parameters = { + ascender = 655360*0.88, + descender = 655360*0.12, + }, + embedding = "no", cache = "yes", factor = 0, hfactor = 0, vfactor = 0, tounicode = 1, } cidfont_data[cid_name] = k -- CID => Unicode 符号空間 - -- TODO: vertical fonts? - tt, cidm = {}, {} + local tth, cidmo = {}, {} + tt, cidm = tth, cidmo for i = 0,kx[2] do cidm[i] = -1 end open_cmap_file(kx[1] .. "-H", increment, tonumber, entry) - k.characters = tt + k.characters = tth -- Unicode にマップされなかった文字の処理 -- これらは TrueType フォントを使って表示するときはおかしくなる local ttu, pricode = {}, 0xF0000 - for i,v in ipairs(cidm) do - if v==-1 then - tt[pricode], cidm[i], pricode + for i,v in ipairs(cidmo) do + if v==-1 then + tth[pricode], cidmo[i], pricode = { index = i }, pricode, pricode+1; end - ttu[cid_order .. '.' .. i] = cidm[i] + ttu[cid_order .. '.' .. i] = cidmo[i] end + -- shared k.shared = { - otfdata = { - cidinfo= k.cidinfo, verbose = false, - shared = { featuredata = {}, }, - luatex = { features = {}, - defaultwidth=1000, - sequences = { }, }, + otfdata = { + cidinfo= k.cidinfo, verbose = false, + shared = { featuredata = {}, }, }, - dynamics = {}, features = {}, processes = {}, - } + dynamics = {}, features = {}, processes = {}, + --rawdata = { descriptions = {} }, + } k.resources = { unicodes = ttu, } k.descriptions = {} cache_chars[cid_name] = { [655360] = k.characters } + -- 縦書用字形 + tt, cidm = {}, {} + local ttv = {}; k.shared.ltj_vert_table = ttv + for i = 0,kx[2] do cidm[i] = -1 end + open_cmap_file(kx[1] .. "-V", increment, tonumber, entry) + for i,v in pairs(tt) do + ttv[i] = cidmo[v.index] + end + -- tounicode エントリ - local cidp = {nil, nil}; local cidmo = cidm - tt, ttu, cidm = {}, {}, {} + local cidp = {nil, nil}; tt, ttu, cidm = {}, {}, {} open_cmap_file(cid_name .. "-UCS2", - function(a) + function(a) a[2] = a[2] +1 ; return a - end, - function(a) + end, + function(a) cidp[1] = string.upper(string.sub(a,1,string.len(a)-4)) cidp[2] = tonumber(string.sub(a,-4),16) return cidp @@ -181,12 +192,32 @@ do end end --- +-- +local cidf_vert_processor +do + local traverse_id = node.traverse_id + local id_glyph = node.id('glyph') + cidf_vert_processor = { + function (head, fnum) + local fontdata = identifiers[fnum] + if fontdata.is_ltj_vert then + local vt = fontdata.shared.ltj_vert_table + for n in traverse_id(id_glyph, head) do + if n.font==fnum then + n.char = vt[n.char] or n.char + end + end + return head, false + end + end + } +end + local function cid_cache_outdated(t) return t.version~=cache_ver end local function read_cid_font() local dat = ltjb.load_cache("ltj-cid-auto-" .. string.lower(cid_name), cid_cache_outdated ) - if dat then + if dat then cidfont_data[cid_name] = dat[1] cache_chars[cid_name] = { [655360] = cidfont_data[cid_name].characters } else @@ -194,6 +225,7 @@ local function read_cid_font() make_cid_font() end if cidfont_data[cid_name] then + cidfont_data[cid_name].shared.processes = cidf_vert_processor for i,v in pairs(cidfont_data[cid_name].characters) do if not v.width then v.width = 655360 end v.height, v.depth = 576716.8, 78643.2 -- optimized for jfm-ujis.lua @@ -212,6 +244,7 @@ local function mk_rml(name, size, id) local fontdata = {} local cachedata = {} local s = cidfont_data[cid_name] + luatexja.rmlgbm.vert_addfunc(id) for k, v in pairs(s) do fontdata[k] = v cachedata[k] = v @@ -233,14 +266,14 @@ local function mk_rml(name, size, id) local scale = size / 655360 do - local def_height = 0.88 * size + local def_height = 0.88 * size -- character's default height (optimized for jfm-ujis.lua) local def_depth = 0.12 * size -- and depth. if not cache_chars[cid_name][size] then cache_chars[cid_name][size] = {} for k, v in pairs(cache_chars[cid_name][655360]) do - cache_chars[cid_name][size][k] = { - index = v.index, width = v.width * scale, + cache_chars[cid_name][size][k] = { + index = v.index, width = v.width * scale, height = def_height, depth = def_depth, tounicode = v.tounicode, } end @@ -256,19 +289,9 @@ local function mk_rml(name, size, id) parameters[k] = v * scale end fontdata.parameters = parameters - fontdata.ascender = fontdata.ascender * scale - fontdata.descender = fontdata.descender * scale - fontdata.factor = fontdata.factor * scale - fontdata.hfactor = fontdata.hfactor * scale - fontdata.vfactor = fontdata.vfactor * scale fontdata.size = size fontdata.resources = s.resources cachedata.parameters = parameters - cachedata.ascender = fontdata.ascender - cachedata.descender = fontdata.descender - cachedata.factor = fontdata.factor - cachedata.hfactor = fontdata.hfactor - cachedata.vfactor = fontdata.vfactor cachedata.size = size cachedata.resources = s.resources end @@ -276,53 +299,56 @@ local function mk_rml(name, size, id) -- no embedding local var = '' local s = string.match(specification.detail, 'slant=([+-]*%d*%.?%d)') - if s and e~=0 then + if s and e~=0 then s = s * 1000 var, fontdata.slant = var .. 's' .. tostring(s), s end local e = string.match(specification.detail, 'extend=([+-]*%d*%.?%d)') - if e and e~=1 then + if e and e~=1 then e = e * 1000 var, fontdata.extend = var .. 'x' .. tostring(e), e end + if string.match(specification.detail, '(%+?vert)') then + cachedata.is_ltj_vert = true + end fontdata.name = specification.name .. size .. var; cachedata.name = fontdata.name fontdata.fullname = specification.name .. var; cachedata.fullname = fontdata.fullname fontdata.psname = specification.name; cachedata.psname = fontdata.psname - fonts.hashes.identifiers[id] = cachedata + identifiers[id] = cachedata return fontdata end local function font_callback(name, size, id, fallback) - local p = utf.find(name, ":") or utf.len(name)+1 - if utf.sub(name, 1, p-1) == 'psft' then + local p = name:find(":") or name:len()+1 + if name:sub(1, p-1) == 'psft' then local s = "Adobe-Japan1-6" - local basename = utf.sub(name,p+1) - local p = utf.find(basename, ":") - local q = utf.find(basename, "/[BI][BI]?") + local basename = name:sub(p+1) + local p = basename:find(":") + local q = basename:find("/[BI][BI]?") if q and p and q<=p then - basename = utf.gsub(basename, '/[BI][BI]?', '', 1) - p = utf.find(basename, ":") + basename = basename:gsub('/[BI][BI]?', '', 1) + p = basename:find(":") end - if p then - local xname = utf.sub(basename, p+1) + if p then + local xname = basename:sub(p+1) p = 1 while p do - local q = utf.find(xname, ";", p+1) or utf.len(xname)+1 - if utf.sub(xname, p, p+3)=='cid=' and q>p+4 then - s = utf.sub(xname, p+4, q-1) + local q = xname:find(";", p+1) or xname:len()+1 + if xname:sub(p, p+3)=='cid=' and q>p+4 then + s = xname:sub(p+4, q-1) end - if utf.len(xname)+1==q then p = nil else p = q + 1 end + if xname:len()+1==q then p = nil else p = q + 1 end end end cid_reg, cid_order = string.match(s, "^(.-)%-(.-)%-(%d-)$") - if not cid_reg then + if not cid_reg then cid_reg, cid_order = string.match(s, "^(.-)%-(.-)$") end cid_name = cid_reg .. '-' .. cid_order - if not cidfont_data[cid_name] then + if not cidfont_data[cid_name] then read_cid_font() - if not cidfont_data[cid_name] then + if not cidfont_data[cid_name] then ltjb.package_error('luatexja', "bad cid key `" .. s .. "'", "I couldn't find any non-embedded font information for the CID\n" .. @@ -332,16 +358,20 @@ local function font_callback(name, size, id, fallback) end end return mk_rml(basename, size, id) - else - return fallback(name, size, id) + else + local tfmdata=fallback(name, size, id) + if type (tfmdata) == "table" and tfmdata.shared then + luatexbase.call_callback("luaotfload.patch_font", tfmdata, name) + end + return tfmdata end end -cid_reg, cid_order, cid_name, cid_supp = 'Adobe', 'Japan1', 'Adobe-Japan1' -read_cid_font() - - luatexja.rmlgbm = { cidfont_data = cidfont_data, font_callback = font_callback, + vert_addfunc = function () end, -- dummy, set in ltj-direction.lua } + +cid_reg, cid_order, cid_name, cid_supp = 'Adobe', 'Japan1', 'Adobe-Japan1' +read_cid_font() diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua index 145f332af60..57686fead2f 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-ruby.lua @@ -3,8 +3,8 @@ -- luatexbase.provides_module({ name = 'luatexja.ruby', - date = '2014/04/02', - description = 'Ruby', + date = '2015/01/14', + description = 'Ruby annotation', }) module('luatexja.ruby', package.seeall) local err, warn, info, log = luatexbase.errwarinf(_NAME) @@ -26,7 +26,7 @@ local getchar = (Dnode ~= node) and Dnode.getchar or function(n) return n.char e local getsubtype = (Dnode ~= node) and Dnode.getsubtype or function(n) return n.subtype end local node_new = Dnode.new -local node_remove = luatexja.Dnode_remove -- Dnode.remove +local node_remove = Dnode.remove local node_next = (Dnode ~= node) and Dnode.getnext or node.next local node_copy, node_free, node_tail = Dnode.copy, Dnode.free, Dnode.tail local has_attr, set_attr = Dnode.has_attribute, Dnode.set_attribute @@ -91,18 +91,18 @@ local function gauss(coef) local deg = #coef for i = 1, deg do if coef[i][i]==0 then - for j = i+1, deg do + for j = i+1, deg do if coef[j][i]~=0 then coef[i], coef[j] = coef[j], coef[i]; break end end end - for j = 1,deg do + for j = 1,deg do local d = coef[i][i]; if j~=i then local e = coef[j][i] for k = 1, deg+1 do coef[j][k] = coef[j][k] - e*coef[i][k]/d end - else + else for k = 1, deg+1 do coef[i][k] = coef[i][k]/d end end end @@ -154,7 +154,7 @@ local function concat(f, b) setfield(f, 'head', nil); node_free(f) setfield(b, 'head', nil); node_free(b) return Dnode.hpack(luatexja.jfmglue.main(h,false)) - else + else return f end elseif b then @@ -195,7 +195,7 @@ do enlarge = function (box, new_width, pre, middle, post, prenw, postnw) -- pre, middle, post: 伸縮比率 -- prenw, postnw: 前後の自然長 (sp) - local h = getlist(box); + local h = getlist(box); local hh, hd = getfield(box, 'height'), getfield(box, 'depth') local hx = h while hx do @@ -323,17 +323,17 @@ local function enlarge_parent(r, p, ppre, pmid, ppost, mapre, mapost, intmode) local sumprot = rwidth - getfield(p, 'width') -- >0 local pre_intrusion, post_intrusion if intmode == 0 then -- とりあえず組んでから決める - p = enlarge(p, rwidth, ppre, pmid, ppost, 0, 0) + p = enlarge(p, rwidth, ppre, pmid, ppost, 0, 0) pre_intrusion = min(mapre, round(ppre*getfield(p, 'glue_set')*65536)) post_intrusion = min(mapost, round(ppost*getfield(p, 'glue_set')*65536)) elseif intmode == 1 then - pre_intrusion = min(mapre, sumprot); + pre_intrusion = min(mapre, sumprot); post_intrusion = min(mapost, max(sumprot-pre_intrusion, 0)) p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) elseif intmode == 2 then - post_intrusion = min(mapost, sumprot); + post_intrusion = min(mapost, sumprot); pre_intrusion = min(mapre, max(sumprot-post_intrusion, 0)) - p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) + p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) else -- intmode == 3 local n = min(mapre, mapost)*2 if n < sumprot then @@ -341,7 +341,7 @@ local function enlarge_parent(r, p, ppre, pmid, ppost, mapre, mapost, intmode) else pre_intrusion = floor(sumprot/2); post_intrusion = sumprot - pre_intrusion end - p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) + p = enlarge(p, rwidth, ppre, pmid, ppost, pre_intrusion, post_intrusion) pre_intrusion = min(mapre, pre_intrusion + round(ppre*getfield(p, 'glue_set')*65536)) post_intrusion = min(mapost, post_intrusion + round(ppost*getfield(p, 'glue_set')*65536)) end @@ -357,7 +357,7 @@ end -- ルビボックスの生成(単一グループ) -- returned value: <new box>, <ruby width>, <post_intrusion> local max_margin -local function new_ruby_box(r, p, ppre, pmid, ppost, +local function new_ruby_box(r, p, ppre, pmid, ppost, mapre, mapost, imode, rgap) local post_intrusion = 0 local intmode = imode%4 @@ -369,7 +369,7 @@ local function new_ruby_box(r, p, ppre, pmid, ppost, if getfield(r, 'width') > getfield(p, 'width') then -- change the width of p r, p, post_intrusion = enlarge_parent(r, p, ppre, pmid, ppost, mapre, mapost, intmode) elseif getfield(r, 'width') < getfield(p, 'width') then -- change the width of r - r = enlarge(r, getfield(p, 'width'), rpre, rmid, rpost, 0, 0) + r = enlarge(r, getfield(p, 'width'), rpre, rmid, rpost, 0, 0) post_intrusion = 0 local need_repack = false -- margin が大きくなりすぎた時の処理 @@ -437,7 +437,7 @@ local function pre_low_cal_box(w, cmp) for j = 1, 2*i do coef[i][j] = 1 end for j = 2*i+1, 2*cmp+1 do coef[i][j] = 0 end kf[i], coef[i][2*cmp+2] - = new_ruby_box(node_copy(nta), node_copy(ntb), + = new_ruby_box(node_copy(nta), node_copy(ntb), rtb[6], rtb[5], rtb[4], max_allow_pre, 0, intmode, rgap) end node_free(nta); node_free(ntb) @@ -450,7 +450,7 @@ local function pre_low_cal_box(w, cmp) for j = 2*i, 2*cmp+1 do coef[cmp+i][j] = 1 end nta = concat(node_copy(rb[i]), nta); ntb = concat(node_copy(pb[i]), ntb) kf[cmp+i], coef[cmp+i][2*cmp+2] - = new_ruby_box(node_copy(nta), node_copy(ntb), + = new_ruby_box(node_copy(nta), node_copy(ntb), rtb[9], rtb[8], rtb[7], 0, max_allow_post, intmode, rgap) end @@ -459,7 +459,7 @@ local function pre_low_cal_box(w, cmp) coef[2*cmp+1] = {} for j = 1, 2*cmp+1 do coef[2*cmp+1][j] = 1 end kf[2*cmp+1], coef[2*cmp+1][2*cmp+2], post_intrusion_backup - = new_ruby_box(nta, ntb, rtb[3], rtb[2], rtb[1], + = new_ruby_box(nta, ntb, rtb[3], rtb[2], rtb[1], max_allow_pre, max_allow_post, intmode, rgap) -- w.value の node list 更新. @@ -500,7 +500,7 @@ local function pre_low_app_node(head, w, cmp, coef, ht, dp) nt = w for i = 1, cmp do -- rule - local nta = node_new(id_rule); + local nta = node_new(id_rule); setfield(nta, 'width', coef[i*2][2*cmp+2]) setfield(nta, 'height', ht); setfield(nta, 'depth', dp) setfield(nta, 'subtype', 0) @@ -552,7 +552,7 @@ local function pre_high(ahead) local coef = pre_low_cal_box(n, getfield(nv, 'value')) local s = node_tail(nv) --ルビ文字 head, n = pre_low_app_node( - head, n, getfield(nv, 'value'), coef, + head, n, getfield(nv, 'value'), coef, getfield(s, 'height'), getfield(s, 'depth') ) else @@ -560,7 +560,7 @@ local function pre_high(ahead) end end return to_node(head) -end +end luatexbase.add_to_callback('pre_linebreak_filter', pre_high, 'ltj.ruby.pre', 100) luatexbase.add_to_callback('hpack_filter', pre_high, 'ltj.ruby.pre', 100) @@ -585,7 +585,7 @@ do local hn = has_attr(rs[1], attr_ruby) local fn = has_attr(rs[#rs], attr_ruby) local wv = getfield(rw, 'value') - if hn==1 then + if hn==1 then if fn==2*cmp+2 then local hn = node_tail(wv) node_remove(wv, hn) @@ -594,7 +594,7 @@ do write_aux(wv, has_attr(hn, attr_ruby))-- 行中形 else local deg, hn = (fn-1)/2, wv - for i = 1, deg do hn = node_next(hn) end; + for i = 1, deg do hn = node_next(hn) end; node_remove(wv, hn) setfield(hn, 'next', nil) insert_after(ch, rs[1], hn) @@ -602,9 +602,9 @@ do write_aux(wv, has_attr(hn, attr_ruby)) end else - local deg, hn = max((hn-1)/2,2), wv + local deg, hn = max((hn-1)/2,2), wv for i = 1, cmp+deg-1 do hn = node_next(hn) end - -- -1 is needed except the case hn = 3, + -- -1 is needed except the case hn = 3, -- because a ending-line form is removed already from the list node_remove(wv, hn); setfield(hn, 'next', nil) insert_after(ch, rs[1], hn) @@ -613,7 +613,7 @@ do write_aux(wv, has_attr(hn, attr_ruby)) end end - for i = 1,#rs do + for i = 1,#rs do local ri = rs[i] ch = node_remove(ch, ri); node_free(ri); end @@ -624,7 +624,7 @@ do end local function post_high_break(head) - local rs = {} -- rs: sequence of ruby_nodes, + local rs = {} -- rs: sequence of ruby_nodes, local rw = nil -- rw: main whatsit local cmp = -2 -- dummy for h in Dnode.traverse_id(id_hlist, to_direct(head)) do @@ -632,50 +632,50 @@ local function post_high_break(head) local ha = getlist(h) while ha do local hai = getid(ha) - local i = ((hai == id_glue and getsubtype(ha)==0) + local i = ((hai == id_glue and getsubtype(ha)==0) or (hai == id_rule and getsubtype(ha)==0) - or (hai == id_whatsit and getsubtype(ha)==sid_user + or (hai == id_whatsit and getsubtype(ha)==sid_user and getfield(ha, 'user_id', RUBY_POST))) and has_attr(ha, attr_ruby) or 0 - if i==0 then + if i==0 then ha = node_next(ha) elseif i==1 then setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h))) for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement rs[1], rw = ha, nil; ha = node_next(ha) - elseif i==2 then + elseif i==2 then rw = ha cmp = getfield(getfield(rw, 'value'), 'value') local hb, hc = node_remove(getlist(h), rw) setfield(h, 'head', hb); ha = hc - else -- i>=3 + else -- i>=3 rs[#rs+1] = ha; ha = node_next(ha) end end setfield(h, 'head', post_lown(rs, rw, cmp, getlist(h))) end return head -end +end local function post_high_hbox(ahead) local ha = to_direct(ahead); local head = ha - local rs = {}; -- rs: sequence of ruby_nodes, + local rs = {}; -- rs: sequence of ruby_nodes, local rw = nil; -- rw: main whatsit local cmp while ha do local hai = getid(ha) - local i = ((hai == id_glue and getsubtype(ha)==0) + local i = ((hai == id_glue and getsubtype(ha)==0) or (hai == id_rule and getsubtype(ha)==0) - or (hai == id_whatsit and getsubtype(ha)==sid_user + or (hai == id_whatsit and getsubtype(ha)==sid_user and getfield(ha, 'user_id', RUBY_POST))) and has_attr(ha, attr_ruby) or 0 if i==0 then ha = node_next(ha) - elseif i==1 then + elseif i==1 then head = post_lown(rs, rw, cmp, head) for i = 2, #rs do rs[i] = nil end -- rs[1] is set by the next statement rs[1], rw = ha, nil; ha = node_next(ha) - elseif i==2 then + elseif i==2 then rw = ha cmp = getfield(getfield(rw, 'value'), 'value') head, ha = node_remove(head, rw) @@ -695,8 +695,8 @@ luatexbase.add_to_callback('hpack_filter', post_high_hbox, 'ltj.ruby.post_hbox', ---------------------------------------------------------------- do local RIPRE = luatexja.stack_table_index.RIPRE - local function whatsit_callback(Np, lp, Nq, bsl) - if Np.nuc then return Np + local function whatsit_callback(Np, lp, Nq, bsl) + if Np.nuc then return Np elseif getfield(lp, 'user_id') == RUBY_PRE then Np.first, Np.nuc, Np.last = lp, lp, lp local lpv = getfield(lp, 'value') diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua index 7fd68043adf..1d4da319e7d 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-setwidth.lua @@ -3,7 +3,9 @@ -- luatexja.load_module('base'); local ltjb = luatexja.base +luatexja.load_module('stack'); local ltjs = luatexja.stack luatexja.load_module('jfont'); local ltjf = luatexja.jfont +luatexja.load_module('direction'); local ltjd = luatexja.direction local Dnode = node.direct or node local setfield = (Dnode ~= node) and Dnode.setfield or function(n, i, c) n[i] = c end @@ -14,9 +16,11 @@ local getlist = (Dnode ~= node) and Dnode.getlist or function(n) return n.head e local getchar = (Dnode ~= node) and Dnode.getchar or function(n) return n.char end local getsubtype = (Dnode ~= node) and Dnode.getsubtype or function(n) return n.subtype end +local node_traverse_id = Dnode.traverse_id local node_traverse = Dnode.traverse local node_new = Dnode.new -local node_remove = luatexja.Dnode_remove -- Dnode.remove +local node_copy = Dnode.copy +local node_remove = Dnode.remove local node_tail = Dnode.tail local node_next = (Dnode ~= node) and Dnode.getnext or node.next local has_attr = Dnode.has_attribute @@ -31,22 +35,25 @@ local id_hlist = node.id('hlist') local id_vlist = node.id('vlist') local id_rule = node.id('rule') local id_math = node.id('math') +local id_whatsit = node.id('whatsit') +local sid_save = node.subtype('pdf_save') +local sid_restore = node.subtype('pdf_restore') +local sid_matrix = node.subtype('pdf_setmatrix') +local dir_tate = luatexja.dir_table.dir_tate -local attr_jchar_class = luatexbase.attributes['ltj@charclass'] -local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] -local attr_yablshift = luatexbase.attributes['ltj@yablshift'] local attr_ykblshift = luatexbase.attributes['ltj@ykblshift'] +local attr_tkblshift = luatexbase.attributes['ltj@tkblshift'] local attr_icflag = luatexbase.attributes['ltj@icflag'] local ltjf_font_metric_table = ltjf.font_metric_table +local ltjf_font_extra_info = ltjf.font_extra_info local PACKED = luatexja.icflag_table.PACKED local PROCESSED = luatexja.icflag_table.PROCESSED -local IC_PROCESSED = luatexja.icflag_table.IC_PROCESSED -local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG local get_pr_begin_flag do + local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG local floor = math.floor get_pr_begin_flag = function (p) local i = has_attr(p, attr_icflag) or 0 @@ -54,54 +61,130 @@ do end end -local head, dir local ltjw = {} --export luatexja.setwidth = ltjw -luatexbase.create_callback("luatexja.set_width", "data", - function (fstable, fmtable, jchar_class) - return fstable +luatexbase.create_callback("luatexja.set_width", "data", + function (fstable, fmtable, jchar_class) + return fstable end) local call_callback = luatexbase.call_callback local fshift = { down = 0, left = 0} --- mode: true iff p will be always encapsuled by a hbox -local function capsule_glyph(p, met, class) +local min, max = math.min, math.max + +-- 和文文字の位置補正(横) +local function capsule_glyph_yoko(p, met, class, head, dir) local char_data = met.char_type[class] - if not char_data then return node_next(p) end + if not char_data then return node_next(p), head, p end + -- f*: whd specified in JFM local fwidth, pwidth = char_data.width, getfield(p, 'width') fwidth = (fwidth ~= 'prop') and fwidth or pwidth fshift.down = char_data.down; fshift.left = char_data.left fshift = call_callback("luatexja.set_width", fshift, met, class) local fheight, fdepth = char_data.height, char_data.depth - if (pwidth ~= fwidth or getfield(p, 'height') ~= fheight or getfield(p, 'depth') ~= fdepth) then - local y_shift - = - getfield(p, 'yoffset') + (has_attr(p,attr_ykblshift) or 0) - local q - head, q = node_remove(head, p) - setfield(p, 'yoffset', -fshift.down); setfield(p, 'next', nil) - setfield(p, 'xoffset', getfield(p, 'xoffset') + char_data.align*(fwidth-pwidth) - fshift.left) - local box = node_new(id_hlist) - setfield(box, 'width', fwidth) - setfield(box, 'height', fheight) - setfield(box, 'depth', fdepth) - setfield(box, 'head', p) - setfield(box, 'shift', y_shift) - setfield(box, 'dir', dir) - set_attr(box, attr_icflag, PACKED + get_pr_begin_flag(p)) - head = q and node_insert_before(head, q, box) - or node_insert_after(head, node_tail(head), box) - return q - else - set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p)) - setfield(p, 'xoffset', getfield(p, 'xoffset') - fshift.left) - setfield(p, 'yoffset', getfield(p, 'yoffset') - - (has_attr(p, attr_ykblshift) or 0) - fshift.down) - return node_next(p) + local kbl = has_attr(p, attr_ykblshift) or 0 + -- + if pwidth==fwidth then + -- 補正後glyph node は ht: p.height - kbl - down, dp: p.depth + min(0, kbl+down) を持つ + -- 設定されるべき寸法: ht: fheight - kbl, dp: fdepth + kbl + local ht_diff = fheight + fshift.down - getfield(p, 'height') + local dp_diff = fdepth + kbl - getfield(p, 'depth') - min(kbl + fshift.down, 0) + if ht_diff == 0 and dp_diff ==0 then -- offset only + set_attr(p, attr_icflag, PROCESSED) + setfield(p, 'xoffset', getfield(p, 'xoffset') - fshift.left) + setfield(p, 'yoffset', getfield(p, 'yoffset') - kbl - fshift.down) + return node_next(p), head, p + elseif ht_diff >= 0 and dp_diff >=0 then -- rule + local box = node_new(id_rule) + setfield(p, 'yoffset', getfield(p, 'yoffset') - kbl - fshift.down) + setfield(box, 'width', 0) + setfield(box, 'height', fheight - kbl) + setfield(box, 'depth', fdepth + kbl) + setfield(box, 'dir', dir) + set_attr(box, attr_icflag, PACKED) + set_attr(p, attr_icflag, PACKED) + head = p and node_insert_before(head, p, box) + or node_insert_after(head, node_tail(head), box) + return node_next(p), head, p, box + end end + + local q + head, q = node_remove(head, p) + setfield(p, 'yoffset', getfield(p, 'yoffset') -fshift.down); + setfield(p, 'next', nil) + setfield(p, 'xoffset', getfield(p, 'xoffset') + + char_data.align*(fwidth-pwidth) - fshift.left) + local box = node_new(id_hlist) + setfield(box, 'width', fwidth) + setfield(box, 'height', fheight) + setfield(box, 'depth', fdepth) + setfield(box, 'head', p) + setfield(box, 'shift', kbl) + setfield(box, 'dir', dir) + set_attr(box, attr_icflag, PACKED) + head = q and node_insert_before(head, q, box) + or node_insert_after(head, node_tail(head), box) + return q, head, box end -luatexja.setwidth.capsule_glyph = capsule_glyph + +luatexja.setwidth.capsule_glyph_yoko = capsule_glyph_yoko + +-- 和文文字の位置補正(縦) +local function capsule_glyph_tate(p, met, class, head, dir) + local char_data = met.char_type[class] + if not char_data then return node_next(p), head end + local ascent, descent = met.ascent, met.descent + local fwidth, pwidth = char_data.width + do + local pf = getfont(p) + local pc = getchar(p) + setfield(p, 'char', pc) + pwidth = ltjf_font_extra_info[pf] and ltjf_font_extra_info[pf][pc] + and ltjf_font_extra_info[pf][pc].vwidth + and ltjf_font_extra_info[pf][pc].vwidth * met.size or (ascent+descent) + pwidth = pwidth + (met.v_advance[pc] or 0) + ascent = met.v_origin[pc] and ascent - met.v_origin[pc] or ascent + end + fwidth = (fwidth ~= 'prop') and fwidth or pwidth + fshift.down = char_data.down; fshift.left = char_data.left + fshift = call_callback("luatexja.set_width", fshift, met, class) + local fheight, fdepth = char_data.height, char_data.depth + + local y_shift + = getfield(p, 'xoffset') + (has_attr(p,attr_tkblshift) or 0) + local q + head, q = node_remove(head, p) + local box = node_new(id_hlist) + setfield(box, 'width', fwidth) + setfield(box, 'height', fheight) + setfield(box, 'depth', fdepth) + setfield(box, 'shift', y_shift) + setfield(box, 'dir', dir) + + setfield(p, 'xoffset', - fshift.down) + setfield(p, 'yoffset', getfield(p, 'yoffset') -(ascent + + char_data.align*(fwidth-pwidth) - fshift.left) ) + local ws = node_new(id_whatsit, sid_save) + local wm = node_new(id_whatsit, sid_matrix) + setfield(wm, 'data', '0 1 -1 0') + local pwnh = -round(0.5*getfield(p, 'width')) + local k2 = node_new(id_kern); setfield(k2, 'kern', pwnh) + local k3 = node_new(id_kern); setfield(k3, 'kern', -getfield(p, 'width')-pwnh) + local wr = node_new(id_whatsit, sid_restore) + setfield(box, 'head', ws) + setfield(ws, 'next', wm); setfield(wm, 'next', k2); + setfield(k2, 'next', p); setfield(p, 'next', k3); + setfield(k3, 'next', wr); + + set_attr(box, attr_icflag, PACKED) + head = q and node_insert_before(head, q, box) + or node_insert_after(head, node_tail(head), box) + return q, head, box +end +luatexja.setwidth.capsule_glyph_tate = capsule_glyph_tate local function capsule_glyph_math(p, met, class) local char_data = met.char_type[class] @@ -115,58 +198,75 @@ local function capsule_glyph_math(p, met, class) = - getfield(p, 'yoffset') + (has_attr(p,attr_ykblshift) or 0), char_data.align setfield(p, 'yoffset', -fshift.down) setfield(p, 'xoffset', getfield(p, 'xoffset') + char_data.align*(fwidth-pwidth) - fshift.left) - local box = node_new(id_hlist); + local box = node_new(id_hlist); setfield(box, 'width', fwidth) setfield(box, 'height', fheight) setfield(box, 'depth', fdepth) setfield(box, 'head', p) setfield(box, 'shift', y_shift) setfield(box, 'dir', tex.mathdir) - set_attr(box, attr_icflag, PACKED + get_pr_begin_flag(p)) + set_attr(box, attr_icflag, PACKED) return box end luatexja.setwidth.capsule_glyph_math = capsule_glyph_math -function luatexja.setwidth.set_ja_width(ahead, adir) - local p = ahead; head = p; dir = adir or 'TLT' - local m = false -- is in math mode? - while p do +-- 数式の位置補正 +function luatexja.setwidth.apply_ashift_math(head, last, attr_ablshift) + for p in node_traverse(head) do local pid = getid(p) - if (pid==id_glyph) - and ((has_attr(p, attr_icflag) or 0)%PROCESSED_BEGIN_FLAG)<=0 then - local pf = getfont(p) - if pf == has_attr(p, attr_curjfnt) then - p = capsule_glyph(p, ltjf_font_metric_table[pf], - has_attr(p, attr_jchar_class)) - else - set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p)) + if p==last then + return + elseif (has_attr(p, attr_icflag) or 0) ~= PROCESSED then + if pid==id_hlist or pid==id_vlist then + setfield(p, 'shift', getfield(p, 'shift') + (has_attr(p,attr_ablshift) or 0)) + elseif pid==id_rule then + local v = has_attr(p,attr_ablshift) or 0 + setfield(p, 'height', getfield(p, 'height')-v) + setfield(p, 'depth', getfield(p, 'depth')+v) + set_attr(p, attr_icflag, PROCESSED) + elseif pid==id_glyph then + -- 欧文文字; 和文文字は pid == id_hlist の場合で処理される + -- (see conv_jchar_to_hbox_A in ltj-math.lua) setfield(p, 'yoffset', - getfield(p, 'yoffset') - (has_attr(p,attr_yablshift) or 0)) - p = node_next(p) - end - elseif pid==id_math then - m = (getsubtype(p)==0); p = node_next(p) - else - if m then - -- 数式の位置補正 - if pid==id_hlist or pid==id_vlist then - if (has_attr(p, attr_icflag) or 0) ~= PROCESSED then - setfield(p, 'shift', getfield(p, 'shift') + (has_attr(p,attr_yablshift) or 0)) - end - elseif pid==id_rule then - if (has_attr(p, attr_icflag) or 0) ~= PROCESSED then - local v = has_attr(p,attr_yablshift) or 0 - setfield(p, 'height', getfield(p, 'height')-v) - setfield(p, 'depth', getfield(p, 'depth')+v) - set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p)) - end - end + getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0)) end - p = node_next(p) end end - -- adjust attr_icflag - tex.setattribute('global', attr_icflag, 0) - return head end +-- discretionary の位置補正 +do + local attr_yablshift = luatexbase.attributes['ltj@yablshift'] + local attr_tablshift = luatexbase.attributes['ltj@tablshift'] + local attr_ablshift + local disc, tex_dir + local function ashift_disc_inner(field) + local head = getfield(disc, field) + if not head then return end + local y_adjust, node_depth, adj_depth = 0, 0, 0 + for lp in node_traverse_id(id_glyph, head) do + y_adjust = has_attr(lp,attr_ablshift) or 0 + node_depth = max(getfield(lp, 'depth') + min(y_adjust, 0), node_depth) + adj_depth = (y_adjust>0) and max(getfield(lp, 'depth') + y_adjust, adj_depth) or adj_depth + setfield(lp, 'yoffset', getfield(lp, 'yoffset') - y_adjust) + end + if adj_depth>node_depth then + local r = node_new(id_rule) + setfield(r, 'width', 0); setfield(r, 'height', 0) + setfield(r, 'depth', adj_depth); setfield(r, 'dir', tex_dir) + set_attr(r, attr_icflag, PROCESSED) + if field=='post' then + node_insert_after(head, head, r) + else + setfield(disc, field, (node_insert_before(head, head, r))) + end + end + end + function luatexja.setwidth.apply_ashift_disc(d, is_dir_tate, dir) + attr_ablshift = is_dir_tate and attr_tablshift or attr_yablshift + disc, tex_dir = d, dir + ashift_disc_inner('pre') + ashift_disc_inner('post') + ashift_disc_inner('replace') + end +end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua index 81fd8519cd8..ef7a36926ee 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-stack.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.stack', - date = '2014/09/24', + date = '2014/05/08', description = 'LuaTeX-ja stack system', }) module('luatexja.stack', package.seeall) @@ -11,13 +11,18 @@ local err, warn, info, log = luatexbase.errwarinf(_NAME) luatexja.load_module('base'); local ltjb = luatexja.base +-------------------------------------------------------------------------------- +-- stack table (obeys TeX's grouping) +-------------------------------------------------------------------------------- local node_new = node.new local id_whatsit = node.id('whatsit') local sid_user = node.subtype('user_defined') local STCK = luatexja.userid_table.STCK -hmode = 0 -- dummy +local fastcopy = table.fastcopy +local setcount = tex.setcount +hmode = 0 -- dummy -charprop_stack_table={}; +charprop_stack_table={}; local charprop_stack_table = charprop_stack_table charprop_stack_table[0]={} @@ -30,12 +35,12 @@ function get_stack_level() local gd = tex.globaldefs if gd~=0 then tex.globaldefs = 0 end -- 'tex.globaldefs = 0' is local even if \globaldefs > 0. - tex.setcount('ltj@@group@level', j) + setcount('ltj@@group@level', j) for k,v in pairs(charprop_stack_table) do -- clear the stack above i if k>=i then charprop_stack_table[k]=nil end end - charprop_stack_table[i] = table.fastcopy(charprop_stack_table[i-1]) - tex.setcount('ltj@@stack', i) + charprop_stack_table[i] = fastcopy(charprop_stack_table[i-1]) + setcount('ltj@@stack', i) if gd~=0 then tex.globaldefs = gd end if tex.nest[tex.nest.ptr].mode == -hmode then -- rest. hmode のみ local g = node_new(id_whatsit, sid_user) @@ -49,7 +54,7 @@ function set_stack_table(m, p) local i = get_stack_level() charprop_stack_table[i][m] = p if luatexja.isglobal=='global' then - for j,v in pairs(charprop_stack_table) do + for j,v in pairs(charprop_stack_table) do charprop_stack_table[j][m] = p end end @@ -71,7 +76,7 @@ end -- EXT function set_stack_font(m,c,p) - if type(c)~='number' or c<0 or c>255 then + if type(c)~='number' or c<0 or c>255 then ltjb.package_error('luatexja', "invalid family number (".. tostring(c) .. ")", "The family number should in the range 0 .. 255.\n" .. @@ -81,12 +86,12 @@ function set_stack_font(m,c,p) set_stack_table(m+c, p) end --- EXT: store \ltj@tempskipa +-- EXT: sp: glue_spec function set_stack_skip(m,sp) local i = get_stack_level() if not sp then return end - if not charprop_stack_table[i][m] then - charprop_stack_table[i][m] = {} + if not charprop_stack_table[i][m] then + charprop_stack_table[i][m] = {} end charprop_stack_table[i][m].width = sp.width charprop_stack_table[i][m].stretch = sp.stretch @@ -94,7 +99,7 @@ function set_stack_skip(m,sp) charprop_stack_table[i][m].stretch_order = sp.stretch_order charprop_stack_table[i][m].shrink_order = sp.shrink_order if luatexja.isglobal=='global' then - for j,v in pairs(charprop_stack_table) do + for j,v in pairs(charprop_stack_table) do if not charprop_stack_table[j][m] then charprop_stack_table[j][m] = {} end charprop_stack_table[j][m].width = sp.width charprop_stack_table[j][m].stretch = sp.stretch @@ -106,17 +111,22 @@ function set_stack_skip(m,sp) end -- These three functions are used in ltj-jfmglue.lua. +-- list_dir and orig_char_table are used in other lua files. +orig_char_table = {} +list_dir = nil -- dummy +table_current_stack = nil -- dummy function report_stack_level(bsl) table_current_stack = charprop_stack_table[bsl] + return bsl end function fast_get_stack_skip(m) - return table_current_stack[m] + return table_current_stack[m] or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 } end -- For other situations, use the following instead: function get_stack_skip(m, idx) - return charprop_stack_table[idx][m] + return charprop_stack_table[idx][m] or { width = 0, stretch = 0, shrink = 0, stretch_order = 0, shrink_order = 0 } end function get_stack_table(mc, d, idx) diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua index 660fa256580..b071b226c55 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-unicode-ccfix.lua @@ -1,7 +1,7 @@ -- Do not edit this file! --- Created from LineBreak.txt by ltj-unicode-ccfix_make.pl on 2015年 2月 12日 木曜日 13:28:31 JST. +-- Created from LineBreak.txt by ltj-unicode-ccfix_make.pl on 2015年 2月 12日 木曜日 13:36:49 JST. -- In case of errors, fix the Perl script instead. -do +if tex.getcatcode(0x6F22)==12 then local tex_catcode = tex.setcatcode local function set_letter(b,e) for i=b,e do tex_catcode('global', i, 11) end diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls index a0d58f18229..2f3f4a67069 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjarticle.cls @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjarticle} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -115,10 +115,9 @@ \tombowtrue \tombowdatefalse \setlength{\@tombowwidth}{\z@}% \maketombowbox} -%% \DeclareOption{tate}{% -%% \AtBeginDocument{\tate\message{《縦組モード》}% -%% \adjustbaseline}% -%% } +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} \DeclareOption{oneside}{\@twosidefalse} \DeclareOption{twoside}{\@twosidetrue} \DeclareOption{onecolumn}{\@twocolumnfalse} @@ -145,9 +144,6 @@ \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} -\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} -\ProcessOptions\relax -\input{ltjsize1\@ptsize.clo} \directlua{luatexbase.add_to_callback('luatexja.load_jfm', function (ji, jn) ji.chars['parbdd'] = 0; return ji end, 'ltj.jclasses_load_jfm', 1)} @@ -157,6 +153,9 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} \ltjglobalsetparameter{differentjfm=both} \directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} +\ProcessOptions\relax +\input{ltjsize1\@ptsize.clo} \if@stysize \setlength\columnsep{2\Cwd} \else @@ -328,7 +327,7 @@ \newcommand{\maketitle}{\par \begingroup \renewcommand{\thefootnote}{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% \long\def\@makefntext##1{\parindent 1em\noindent \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% @@ -497,7 +496,7 @@ \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \list{\csname label\@enumctr\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -511,7 +510,7 @@ \fi}{\endlist} \newcommand{\labelitemi}{\textbullet} \newcommand{\labelitemii}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 {\textcircled{~}} \else {\normalfont\bfseries\textendash} @@ -525,7 +524,7 @@ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \expandafter \list{\csname \@itemitem\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -538,7 +537,7 @@ \fi}{\endlist} \newenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \iftdir + \ifnum\ltjgetparameter{direction}=3 \leftmargin\leftskip \advance\leftmargin3\Cwd \rightmargin\rightskip \labelsep=1\zw \itemsep\z@ @@ -592,11 +591,11 @@ \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip - \iftdir\sbox\@tempboxa{#1\hskip1\zw#2}% + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% \else\sbox\@tempboxa{#1: #2}% \fi \ifdim \wd\@tempboxa >\hsize - \iftdir #1\hskip1\zw#2\relax\par + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par \else #1: #2\relax\par\fi \else \global \@minipagefalse @@ -763,15 +762,15 @@ \def\和暦{\西暦false} \newcount\heisei \heisei\year \advance\heisei-1988\relax \def\today{{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \if西暦 - \kansuji\number\year 年 - \kansuji\number\month 月 - \kansuji\number\day 日 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 \else - 平成\ifnum\heisei=1 元年\else\kansuji\number\heisei 年\fi - \kansuji\number\month 月 - \kansuji\number\day 日 + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 \fi \else \if西暦 diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo index 34dcafa04b5..80833ea86a0 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk10.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk10.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{15}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo index e91e26e21da..729d0eac73e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk11.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk11.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{15.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo index 8ea4e74d645..ff4980227c1 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbk12.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjbk12.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{16.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls index 3253e73aa7c..753b02d3d42 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjbook.cls @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjbook} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -117,10 +117,9 @@ \tombowtrue \tombowdatefalse \setlength{\@tombowwidth}{\z@}% \maketombowbox} -%% \DeclareOption{tate}{% -%% \AtBeginDocument{\tate\message{《縦組モード》}% -%% \adjustbaseline}% -%% } +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} \DeclareOption{oneside}{\@twosidefalse} \DeclareOption{twoside}{\@twosidetrue} \DeclareOption{onecolumn}{\@twocolumnfalse} @@ -153,9 +152,6 @@ \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} -\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} -\ProcessOptions\relax -\input{ltjbk1\@ptsize.clo} \directlua{luatexbase.add_to_callback('luatexja.load_jfm', function (ji, jn) ji.chars['parbdd'] = 0; return ji end, 'ltj.jclasses_load_jfm', 1)} @@ -165,6 +161,9 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} \ltjglobalsetparameter{differentjfm=both} \directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} +\ProcessOptions\relax +\input{ltjbk1\@ptsize.clo} \if@stysize \setlength\columnsep{2\Cwd} \else @@ -354,7 +353,7 @@ \newcommand{\maketitle}{\par \begingroup \renewcommand{\thefootnote}{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% \long\def\@makefntext##1{\parindent 1em\noindent \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% @@ -572,7 +571,7 @@ \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \list{\csname label\@enumctr\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -586,7 +585,7 @@ \fi}{\endlist} \newcommand{\labelitemi}{\textbullet} \newcommand{\labelitemii}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 {\textcircled{~}} \else {\normalfont\bfseries\textendash} @@ -600,7 +599,7 @@ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \expandafter \list{\csname \@itemitem\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -613,7 +612,7 @@ \fi}{\endlist} \newenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \iftdir + \ifnum\ltjgetparameter{direction}=3 \leftmargin\leftskip \advance\leftmargin3\Cwd \rightmargin\rightskip \labelsep=1\zw \itemsep\z@ @@ -669,11 +668,11 @@ \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip - \iftdir\sbox\@tempboxa{#1\hskip1\zw#2}% + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% \else\sbox\@tempboxa{#1: #2}% \fi \ifdim \wd\@tempboxa >\hsize - \iftdir #1\hskip1\zw#2\relax\par + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par \else #1: #2\relax\par\fi \else \global \@minipagefalse @@ -852,15 +851,15 @@ \def\和暦{\西暦false} \newcount\heisei \heisei\year \advance\heisei-1988\relax \def\today{{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \if西暦 - \kansuji\number\year 年 - \kansuji\number\month 月 - \kansuji\number\day 日 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 \else - 平成\ifnum\heisei=1 元年\else\kansuji\number\heisei 年\fi - \kansuji\number\month 月 - \kansuji\number\day 日 + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 \fi \else \if西暦 diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjltxdoc.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjltxdoc.cls index c8d122bcbff..4ed46e11492 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjltxdoc.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjltxdoc.cls @@ -84,6 +84,9 @@ \hss\vrule width.1pt\egroup} \ltjsetparameter{alxspmode={"5C,3}} %% \ \ltjsetparameter{alxspmode={"22,3}} %% " +\def\mod@math@codes{\mathcode`\|="207C \mathcode`\&="2026 + \mathcode`\-="702D \mathcode`\+="702B + \mathcode`\:="703A \mathcode`\=="703D } \endinput %% %% End of file `ltjltxdoc.cls'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls index 6eebd7c12d4..f439b665ab0 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjreport.cls @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjreport} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja class] \RequirePackage{luatexja} \newcounter{@paper} @@ -116,10 +116,9 @@ \tombowtrue \tombowdatefalse \setlength{\@tombowwidth}{\z@}% \maketombowbox} -%% \DeclareOption{tate}{% -%% \AtBeginDocument{\tate\message{《縦組モード》}% -%% \adjustbaseline}% -%% } +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} \DeclareOption{oneside}{\@twosidefalse} \DeclareOption{twoside}{\@twosidetrue} \DeclareOption{onecolumn}{\@twocolumnfalse} @@ -151,9 +150,6 @@ \fi \DeclareOption{draft}{\setlength\overfullrule{5pt}} \DeclareOption{final}{\setlength\overfullrule{0pt}} -\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} -\ProcessOptions\relax -\input{ltjsize1\@ptsize.clo} \directlua{luatexbase.add_to_callback('luatexja.load_jfm', function (ji, jn) ji.chars['parbdd'] = 0; return ji end, 'ltj.jclasses_load_jfm', 1)} @@ -163,6 +159,9 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} \ltjglobalsetparameter{differentjfm=both} \directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} +\ProcessOptions\relax +\input{ltjsize1\@ptsize.clo} \if@stysize \setlength\columnsep{2\Cwd} \else @@ -342,7 +341,7 @@ \newcommand{\maketitle}{\par \begingroup \renewcommand{\thefootnote}{\fnsymbol{footnote}}% - \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% \long\def\@makefntext##1{\parindent 1em\noindent \hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}% @@ -569,7 +568,7 @@ \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \list{\csname label\@enumctr\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -583,7 +582,7 @@ \fi}{\endlist} \newcommand{\labelitemi}{\textbullet} \newcommand{\labelitemii}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 {\textcircled{~}} \else {\normalfont\bfseries\textendash} @@ -597,7 +596,7 @@ \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \expandafter \list{\csname \@itemitem\endcsname}{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip \else\topsep\z@\fi \parskip\z@ \itemsep\z@ \parsep\z@ @@ -610,7 +609,7 @@ \fi}{\endlist} \newenvironment{description} {\list{}{\labelwidth\z@ \itemindent-\leftmargin - \iftdir + \ifnum\ltjgetparameter{direction}=3 \leftmargin\leftskip \advance\leftmargin3\Cwd \rightmargin\rightskip \labelsep=1\zw \itemsep\z@ @@ -666,11 +665,11 @@ \setlength\belowcaptionskip{0\p@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip - \iftdir\sbox\@tempboxa{#1\hskip1\zw#2}% + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% \else\sbox\@tempboxa{#1: #2}% \fi \ifdim \wd\@tempboxa >\hsize - \iftdir #1\hskip1\zw#2\relax\par + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par \else #1: #2\relax\par\fi \else \global \@minipagefalse @@ -849,15 +848,15 @@ \def\和暦{\西暦false} \newcount\heisei \heisei\year \advance\heisei-1988\relax \def\today{{% - \iftdir + \ifnum\ltjgetparameter{direction}=3 \if西暦 - \kansuji\number\year 年 - \kansuji\number\month 月 - \kansuji\number\day 日 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 \else - 平成\ifnum\heisei=1 元年\else\kansuji\number\heisei 年\fi - \kansuji\number\month 月 - \kansuji\number\day 日 + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 \fi \else \if西暦 diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls index 0625a07619b..d24a48dabb9 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsarticle.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsarticle} - [2014/12/24 ] + [2015/01/07 ] \RequirePackage{luatexja} \newif\if@restonecol \newif\if@titlepage @@ -316,6 +316,8 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujisv}{} \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{} @@ -364,13 +366,13 @@ \fi \fi \ltj@setpar@global - \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw} + \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ \if@slide - \ltjsetxkanjiskip{0.1em} + \ltjsetxkanjiskip .1em \else - \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em} + \ltjsetxkanjiskip .25em plus .15em minus .06em \fi \fi} \emergencystretch 3\zw @@ -390,12 +392,15 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\ltj@@ifnarrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi +} +\renewcommand{\normalsize}{% + \ltj@@ifnarrowbaselines + {\@setfontsize\normalsize\@xpt\@xiipt}% + {\@setfontsize\normalsize\@xpt{\n@baseline}}% \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ @@ -409,11 +414,9 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{\wd0} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small\@ixpt{11}% - \else - \@setfontsize\small\@ixpt{13}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\small\@ixpt{11}}% + {\@setfontsize\small\@ixpt{13}}% \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip \abovedisplayskip @@ -423,11 +426,9 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize\@viiipt{9.5}% - \else - \@setfontsize\footnotesize\@viiipt{11}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\footnotesize\@viiipt{9.5}}% + {\@setfontsize\footnotesize\@viiipt{11}}% \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ \abovedisplayshortskip \z@ \@plus2\p@ \belowdisplayskip \abovedisplayskip @@ -1305,7 +1306,7 @@ \let\footnotemarks@ve=\footnotemark \def\footnotemark{\inhibitglue\footnotemarks@ve} \renewcommand\@makefnmark{\hbox{}\hbox{% - \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls index d455f09830e..861d97debf3 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsbook.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjsbook} - [2014/12/24 ] + [2015/01/07 ] \RequirePackage{luatexja} \newif\if@restonecol \newif\if@titlepage @@ -323,6 +323,8 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujisv}{} \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{} @@ -371,13 +373,13 @@ \fi \fi \ltj@setpar@global - \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw} + \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ \if@slide - \ltjsetxkanjiskip{0.1em} + \ltjsetxkanjiskip .1em \else - \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em} + \ltjsetxkanjiskip .25em plus .15em minus .06em \fi \fi} \emergencystretch 3\zw @@ -397,12 +399,15 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\ltj@@ifnarrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi +} +\renewcommand{\normalsize}{% + \ltj@@ifnarrowbaselines + {\@setfontsize\normalsize\@xpt\@xiipt}% + {\@setfontsize\normalsize\@xpt{\n@baseline}}% \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ @@ -416,11 +421,9 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{\wd0} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small\@ixpt{11}% - \else - \@setfontsize\small\@ixpt{13}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\small\@ixpt{11}}% + {\@setfontsize\small\@ixpt{13}}% \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip \abovedisplayskip @@ -430,11 +433,9 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize\@viiipt{9.5}% - \else - \@setfontsize\footnotesize\@viiipt{11}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\footnotesize\@viiipt{9.5}}% + {\@setfontsize\footnotesize\@viiipt{11}}% \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ \abovedisplayshortskip \z@ \@plus2\p@ \belowdisplayskip \abovedisplayskip @@ -1388,7 +1389,7 @@ \let\footnotemarks@ve=\footnotemark \def\footnotemark{\inhibitglue\footnotemarks@ve} \renewcommand\@makefnmark{\hbox{}\hbox{% - \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo index 1aead6f7eab..4928287507a 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize10.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize10.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xpt{15}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo index a31c7cd9191..5ad8b0b3f84 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize11.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize11.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xipt{15.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo index 16d1a5b6fe1..12deafaae8d 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjsize12.clo @@ -39,7 +39,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesFile{ltjsize12.clo} - [2013/06/06 v1.6-ltj-2 + [2015/01/01 v1.6-ltj-9 Standard LuaLaTeX-ja file (size option)] \renewcommand{\normalsize}{% \@setfontsize\normalsize\@xiipt{16.5}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls index e673e1b368e..5d5d3f6bf92 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjskiyou.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjskiyou} - [2014/12/24 ] + [2015/01/07 ] \RequirePackage{luatexja} \newif\if@restonecol \newif\if@titlepage @@ -318,6 +318,8 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.924872] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.924872] \ltj@stdgtfont:jfm=ujisv}{} \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{} @@ -366,13 +368,13 @@ \fi \fi \ltj@setpar@global - \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw} + \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ \if@slide - \ltjsetxkanjiskip{0.1em} + \ltjsetxkanjiskip .1em \else - \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em} + \ltjsetxkanjiskip .25em plus .15em minus .06em \fi \fi} \emergencystretch 3\zw @@ -392,12 +394,15 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\ltj@@ifnarrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi +} +\renewcommand{\normalsize}{% + \ltj@@ifnarrowbaselines + {\@setfontsize\normalsize\@xpt\@xiipt}% + {\@setfontsize\normalsize\@xpt{\n@baseline}}% \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ @@ -411,11 +416,9 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{\wd0} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small{8.8888}{11}% - \else - \@setfontsize\small{8.8888}{13.2418}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\small{8.8888}{11}}% + {\@setfontsize\small{8.8888}{13.2418}}% \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip \abovedisplayskip @@ -425,11 +428,9 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize{8.8888}{11}% - \else - \@setfontsize\footnotesize{8.8888}{13.2418}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\footnotesize{8.8888}{11}}% + {\@setfontsize\footnotesize{8.8888}{13.2418}}% \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ \abovedisplayshortskip \z@ \@plus2\p@ \belowdisplayskip \abovedisplayskip @@ -1292,7 +1293,7 @@ \let\footnotemarks@ve=\footnotemark \def\footnotemark{\inhibitglue\footnotemarks@ve} \renewcommand\@makefnmark{\hbox{}\hbox{% - \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls index 046dcdc89da..6bc3923f211 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjspf.cls @@ -38,7 +38,7 @@ %% Right brace \} Tilde \~} \NeedsTeXFormat{LaTeX2e} \ProvidesClass{ltjspf} - [2014/12/24 ] + [2015/01/07 ] \RequirePackage{luatexja} \newif\if@restonecol \newif\if@titlepage @@ -316,6 +316,8 @@ \DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujis}{} \fi \fi +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s * [0.903375] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s * [0.903375] \ltj@stdgtfont:jfm=ujisv}{} \DeclareFontShape{JY3}{mc}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<->ssub*gt/m/n}{} \DeclareFontShape{JY3}{mc}{m}{it}{<->ssub*mc/m/n}{} @@ -364,13 +366,13 @@ \fi \fi \ltj@setpar@global - \ltjsetkanjiskip{\z@ plus .1\zw minus .01\zw} + \ltjsetkanjiskip\z@ plus .1\zw minus .01\zw \@tempskipa=\ltjgetparameter{xkanjiskip} \ifdim\@tempskipa>\z@ \if@slide - \ltjsetxkanjiskip{0.1em} + \ltjsetxkanjiskip .1em \else - \ltjsetxkanjiskip{0.25em plus 0.15em minus 0.06em} + \ltjsetxkanjiskip .25em plus .15em minus .06em \fi \fi} \emergencystretch 3\zw @@ -390,12 +392,15 @@ \belowdisplayskip=\skip4 \belowdisplayshortskip=\skip6\relax} \def\widebaselines{\narrowbaselinesfalse\@currsize\selectfont} -\renewcommand{\normalsize}{% - \ifnarrowbaselines - \@setfontsize\normalsize\@xpt\@xiipt - \else - \@setfontsize\normalsize\@xpt{\n@baseline}% +\def\ltj@@ifnarrowbaselines{% + \ifnarrowbaselines\expandafter\@firstoftwo + \else \expandafter\@secondoftwo \fi +} +\renewcommand{\normalsize}{% + \ltj@@ifnarrowbaselines + {\@setfontsize\normalsize\@xpt\@xiipt}% + {\@setfontsize\normalsize\@xpt{\n@baseline}}% \abovedisplayskip 11\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip 9\p@ \@plus3\p@ \@minus4\p@ @@ -409,11 +414,9 @@ \setlength\Cvs{\baselineskip} \setlength\Chs{\wd0} \newcommand{\small}{% - \ifnarrowbaselines - \@setfontsize\small\@ixpt{11}% - \else - \@setfontsize\small\@ixpt{13}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\small\@ixpt{11}}% + {\@setfontsize\small\@ixpt{13}}% \abovedisplayskip 9\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayskip \abovedisplayskip @@ -423,11 +426,9 @@ \parsep \z@ \itemsep \parsep}} \newcommand{\footnotesize}{% - \ifnarrowbaselines - \@setfontsize\footnotesize\@viiipt{9.5}% - \else - \@setfontsize\footnotesize\@viiipt{11}% - \fi + \ltj@@ifnarrowbaselines + {\@setfontsize\footnotesize\@viiipt{9.5}}% + {\@setfontsize\footnotesize\@viiipt{11}}% \abovedisplayskip 6\p@ \@plus2\p@ \@minus3\p@ \abovedisplayshortskip \z@ \@plus2\p@ \belowdisplayskip \abovedisplayskip @@ -1188,7 +1189,7 @@ \let\footnotemarks@ve=\footnotemark \def\footnotemark{\inhibitglue\footnotemarks@ve} \renewcommand\@makefnmark{\hbox{}\hbox{% - \ifydir \@textsuperscript{\normalfont\@thefnmark}% + \unless\ifnum\ltjgetparameter{direction}=3 \@textsuperscript{\normalfont\@thefnmark}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}\hbox{}} \def\thefootnote{\ifnum\c@footnote>\z@\leavevmode\lower.5ex\hbox{*}\@arabic\c@footnote\fi} \renewcommand{\footnoterule}{% diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls new file mode 100644 index 00000000000..f8bab8b2cbe --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtarticle.cls @@ -0,0 +1,825 @@ +%% +%% This is file `ltjtarticle.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `article,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtarticle.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ltjtarticle} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja class] +\RequirePackage{luatexja} +\newcounter{@paper} +\newif\if@landscape \@landscapefalse +\newcommand{\@ptsize}{} +\newif\if@restonecol +\newif\if@titlepage +\@titlepagefalse +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +\newif\if@stysize \@stysizefalse +\newif\if@mathrmmc \@mathrmmcfalse +\DeclareOption{a4paper}{\setcounter{@paper}{1}% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{\setcounter{@paper}{2}% + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4paper}{\setcounter{@paper}{3}% + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{\setcounter{@paper}{4}% + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\if@compatibility + \renewcommand{\@ptsize}{0} +\else + \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\fi +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +\DeclareOption{landscape}{\@landscapetrue + \setlength\@tempdima{\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth{\@tempdima}} +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space:\space\number\year/\number\month/\number\day + (\number\hour:\number\minute)} + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} +\AtEndOfPackageFile{everyshi}{% + \def\@EveryShipout@Output{% + \setbox8\vbox{% + \yoko + \@EveryShipout@Hook + \@EveryShipout@AtNextHook + \global\setbox\luatexoutputbox=\box\luatexoutputbox + }% + \gdef\@EveryShipout@AtNextHook{}% + \@EveryShipout@Org@Shipout\box\luatexoutputbox + }} +\DeclareOption{oneside}{\@twosidefalse} +\DeclareOption{twoside}{\@twosidetrue} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{% + \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\directlua{luatexbase.add_to_callback('luatexja.load_jfm', + function (ji, jn) ji.chars['parbdd'] = 0; return ji end, + 'ltj.jclasses_load_jfm', 1)} +{\jfont\g=\ltj@stdmcfont:jfm=min } % loading jfm-min.lua +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] \ltj@stdmcfont:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} +\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} +\ProcessOptions\relax +\input{ltjtsize1\@ptsize.clo} +\RequirePackage{lltjext} +\if@stysize + \setlength\columnsep{3\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +\setlength{\@tempdima}{\paperwidth} +\setlength{\@tempdimb}{\paperheight} +\iftombow + \advance \@tempdima 2in + \advance \@tempdimb 2in +\fi +\setlength{\pdfpagewidth}{\@tempdima} +\setlength{\pdfpageheight}{\@tempdimb} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand{\baselinestretch}{} +\setlength\parskip{0\p@ \@plus \p@} +\setlength\parindent{1\Cwd} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{1} +\setcounter{totalnumber}{3} +\setcounter{dbltopnumber}{2} +\renewcommand{\topfraction}{.7} +\renewcommand{\bottomfraction}{.3} +\renewcommand{\textfraction}{.2} +\renewcommand{\floatpagefraction}{.5} +\renewcommand{\dbltopfraction}{.7} +\renewcommand{\dblfloatpagefraction}{.5} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@plain + \let\@oddhead\@empty + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\let\ps@jpl@in\ps@plain +\def\ps@headnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \def\@evenhead{\hfil\thepage}% + \def\@oddhead{\thepage\hfil}% + \let\@oddfoot\@empty\let\@evenfoot\@empty} +\def\ps@footnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@footnombre + \def\@evenfoot{\hfil\thepage}% + \def\@oddfoot{\thepage\hfil}% + \let\@oddhead\@empty\let\@evenhead\@empty} +\if@twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1\zw\fi + ##1}}% + } +\else % if not twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1\zw\fi + ##1}}% + } +\fi +\if@twoside + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@evenhead{\hfil\leftmark}% right page + \def\@evenfoot{\hfil\thepage}% right page + \def\@oddhead{\rightmark\hfil}% left page + \def\@oddfoot{\thepage\hfil}% left page + \let\@mkboth\markboth + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1\zw\fi + ##1}}% + } +\else % if one column + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@oddhead{\rightmark\hfil}% + \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1\zw\fi + ##1}}% + } +\fi +\def\ps@myheadings{\let\ps@jpl@in\ps@plain% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo + \let\sectionmark\@gobble + \let\subsectionmark\@gobble +} +\if@compatibility +\newenvironment{titlepage} + {% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\newpage\fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn\else\newpage\fi + } +\else +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +\def\p@thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}} +\if@titlepage + \newcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\thanks\p@thanks + \let\footnote\thanks + \vbox to\textheight\bgroup\tate\hsize\textwidth + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\Large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par + \vfil{\centering\@thanks}\vfil\null + \egroup + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% + \long\def\@makefntext##1{\parindent 1\zw\noindent + \hbox to 2\zw{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne \@maketitle + \else \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{jpl@in}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{% + \newpage\null + \vskip 2em% + \begin{center}% + \let\footnote\p@thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em} +\fi +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + {\bfseries\abstractname}% + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries\abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi}{\if@twocolumn\else\endquotation\fi} +\fi +\setcounter{secnumdepth}{3} +\newcounter{part} +\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand{\thepart}{\rensuji{\@Roman\c@part}} +\renewcommand{\thesection}{\rensuji{\@arabic\c@section}} +\renewcommand{\thesubsection}{\thesection・\rensuji{\@arabic\c@subsection}} +\renewcommand{\thesubsubsection}{% + \thesubsection・\rensuji{\@arabic\c@subsubsection}} +\renewcommand{\theparagraph}{% + \thesubsubsection・\rensuji{\@arabic\c@paragraph}} +\renewcommand{\thesubparagraph}{% + \theparagraph・\rensuji{\@arabic\c@subparagraph}} +\newcommand{\part}{\par\addvspace{4ex}% + \@afterindenttrue + \secdef\@part\@spart} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1\zw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\parindent\z@\raggedright + \interlinepenalty\@M\reset@font + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries\prepartname\thepart\postpartname + \par\nobreak + \fi + \huge\bfseries#2\par}% + \nobreak\vskip3ex\@afterheading} +\def\@spart#1{{% + \parindent\z@\raggedright + \interlinepenalty\@M\reset@font + \huge\bfseries#1\par}% + \nobreak\vskip3ex\@afterheading} +\newcommand{\section}{\@startsection{section}{1}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\Large\bfseries}} +\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\large\bfseries}} +\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\normalsize\bfseries}} +\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \renewcommand{\thesection}{\rensuji{\@Alph\c@section}}} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi{.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi{1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand{\theenumi}{\rensuji{\@arabic\c@enumi}} +\renewcommand{\theenumii}{\rensuji{(\@alph\c@enumii)}} +\renewcommand{\theenumiii}{\rensuji{\@roman\c@enumiii}} +\renewcommand{\theenumiv}{\rensuji{\@Alph\c@enumiv}} +\newcommand{\labelenumi}{\theenumi} +\newcommand{\labelenumii}{\theenumii} +\newcommand{\labelenumiii}{\theenumiii} +\newcommand{\labelenumiv}{\theenumiv} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +\renewenvironment{enumerate} + {\ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \list{\csname label\@enumctr\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@enumdepth=\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newcommand{\labelitemi}{\textbullet} +\newcommand{\labelitemii}{% + \ifnum\ltjgetparameter{direction}=3 + {\textcircled{~}} + \else + {\normalfont\bfseries\textendash} + \fi +} +\newcommand{\labelitemiii}{\textasteriskcentered} +\newcommand{\labelitemiv}{\textperiodcentered} +\renewenvironment{itemize} + {\ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list{\csname \@itemitem\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@itemdepth =\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \ifnum\ltjgetparameter{direction}=3 + \leftmargin\leftskip \advance\leftmargin3\Cwd + \rightmargin\rightskip + \labelsep=1\zw \itemsep\z@ + \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@ + \fi + \let\makelabel\descriptionlabel}}{\endlist} +\newcommand{\descriptionlabel}[1]{% + \hspace\labelsep\normalfont\bfseries #1} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em% + \listparindent\itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}% + \item\relax}{\endlist} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@}% + \item\relax}{\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax}{\endlist} +\newcounter{figure} +\renewcommand{\thefigure}{\rensuji{\@arabic\c@figure}} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\thefigure} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +\newcounter{table} +\renewcommand{\thetable}{\rensuji{\@arabic\c@table}} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\thetable} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par + \else #1: #2\relax\par\fi + \else + \global \@minipagefalse + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\renewcommand{\theequation}{\@arabic\c@equation} +\if@compatibility\else + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\fi +\if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} +}% +\fi +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +\setcounter{tocdepth}{3} +\newcommand{\@pnumwidth}{1.55em} +\newcommand{\@tocrmarg}{2.55em} +\newcommand{\@dotsep}{4.5} +\newdimen\toclineskip +\setlength\toclineskip{2\p@} +\newdimen\@lnumwidth +\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}} +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip\toclineskip \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}% + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% + \par}% + \fi} +\def\addcontentsline#1#2#3{% + \protected@write\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble +\@temptokena{\rensuji{\thepage}}}% + {\string\@writefile{#1}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% +} +\newcommand{\tableofcontents}{% + \section*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% +} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{\@secpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4\zw}% + #1\hfil\nobreak + \hbox to\@pnumwidth{\hss#2}}\par + \nobreak + \if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \fi + \endgroup + \fi} +\newcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{1.5em}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \endgroup + \fi} +\newcommand*{\l@subsection} {\@dottedtocline{2}{1\zw}{4\zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2\zw}{6\zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{3\zw}{8\zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4\zw}{9\zw}} +\newcommand{\listoffigures}{% + \section*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% +} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\zw}{4\zw}} +\newcommand{\listoftables}{% + \section*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% +} +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{1.5em} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +\newenvironment{thebibliography}[1] +{\section*{\refname\@mkboth{\refname}{\refname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\let\@openbib@code\@empty +\newenvironment{theindex} + {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi + \columnseprule\z@ \columnsep 35\p@ + \twocolumn[\section*{\indexname}]% + \@mkboth{\indexname}{\indexname}% + \thispagestyle{jpl@in}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand{\@idxitem}{\par\hangindent 40\p@} +\newcommand{\subitem}{\@idxitem \hspace*{20\p@}} +\newcommand{\subsubitem}{\@idxitem \hspace*{30\p@}} +\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\renewcommand{\footnoterule}{% + \kern-3\p@ + \hrule width .4\columnwidth + \kern 2.6\p@} +\newcommand\@makefntext[1]{\parindent 1\zw + \noindent\hbox to 2\zw{\hss\@makefnmark}#1} +\newif\if西暦 \西暦false +\def\西暦{\西暦true} +\def\和暦{\西暦false} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\def\today{{% + \ifnum\ltjgetparameter{direction}=3 + \if西暦 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 + \else + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 + \fi + \else + \if西暦 + \number\year~年 + \number\month~月 + \number\day~日 + \else + 平成\ifnum\heisei=1 元年\else\number\heisei~年\fi + \number\month~月 + \number\day~日 + \fi + \fi}} +\newcommand{\prepartname}{第} +\newcommand{\postpartname}{部} +\newcommand{\contentsname}{目 次} +\newcommand{\listfigurename}{図 目 次} +\newcommand{\listtablename}{表 目 次} +\newcommand{\refname}{参考文献} +\newcommand{\indexname}{索 引} +\newcommand{\figurename}{図} +\newcommand{\tablename}{表} +\newcommand{\appendixname}{付 録} +\newcommand{\abstractname}{概 要} +\pagestyle{plain} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +\normalmarginpar +\@mparswitchfalse +\endinput +%% +%% End of file `ltjtarticle.cls'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo new file mode 100644 index 00000000000..1ee1254ad28 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk10.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtbk10.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `10pt,bk,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtbk10.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtbk10.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xpt{17}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{27\Cwd} + \else + \setlength\textwidth{46\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{53\Cwd} + \else + \setlength\textwidth{85\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{34\Cwd} + \else + \setlength\textwidth{55\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{41\Cwd} + \else + \setlength\textwidth{67\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{67\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{67\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{26\Cvs} + \else + \setlength\textheight{16\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{48\Cvs} + \else + \setlength\textheight{33\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{34\Cvs} + \else + \setlength\textheight{21\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{41\Cvs} + \else + \setlength\textheight{26\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{26\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.75\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{6.65\p@} +\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtbk10.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo new file mode 100644 index 00000000000..5963a1d1178 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk11.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtbk11.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `11pt,bk,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtbk11.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtbk11.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xipt{17}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{25\Cwd} + \else + \setlength\textwidth{42\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{49\Cwd} + \else + \setlength\textwidth{76\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{31\Cwd} + \else + \setlength\textwidth{51\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{38\Cwd} + \else + \setlength\textwidth{61\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{61\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{61\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{26\Cvs} + \else + \setlength\textheight{16\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{48\Cvs} + \else + \setlength\textheight{33\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{34\Cvs} + \else + \setlength\textheight{21\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{41\Cvs} + \else + \setlength\textheight{26\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{25\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.75\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{7.7\p@} +\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtbk11.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo new file mode 100644 index 00000000000..c8fe221d249 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbk12.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtbk12.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `12pt,bk,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtbk12.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtbk12.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xiipt{18}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xivpt{21}} +\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} +\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}} +\let\Huge=\huge +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{23\Cwd} + \else + \setlength\textwidth{38\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{44\Cwd} + \else + \setlength\textwidth{69\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{28\Cwd} + \else + \setlength\textwidth{47\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{35\Cwd} + \else + \setlength\textwidth{57\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{57\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{57\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{25\Cvs} + \else + \setlength\textheight{15\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{45\Cvs} + \else + \setlength\textheight{31\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{32\Cvs} + \else + \setlength\textheight{20\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{38\Cvs} + \else + \setlength\textheight{22\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{24\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.75\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{8.4\p@} +\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{10\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{10\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtbk12.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls new file mode 100644 index 00000000000..3527d1196a9 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtbook.cls @@ -0,0 +1,915 @@ +%% +%% This is file `ltjtbook.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `book,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtbook.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ltjtbook} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja class] +\RequirePackage{luatexja} +\newcounter{@paper} +\newif\if@landscape \@landscapefalse +\newcommand{\@ptsize}{} +\newif\if@restonecol +\newif\if@titlepage +\@titlepagetrue +\newif\if@openright +\newif\if@mainmatter \@mainmattertrue +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +\newif\if@stysize \@stysizefalse +\newif\if@mathrmmc \@mathrmmcfalse +\DeclareOption{a4paper}{\setcounter{@paper}{1}% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{\setcounter{@paper}{2}% + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4paper}{\setcounter{@paper}{3}% + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{\setcounter{@paper}{4}% + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\if@compatibility + \renewcommand{\@ptsize}{0} +\else + \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\fi +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +\DeclareOption{landscape}{\@landscapetrue + \setlength\@tempdima{\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth{\@tempdima}} +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space:\space\number\year/\number\month/\number\day + (\number\hour:\number\minute)} + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} +\AtEndOfPackageFile{everyshi}{% + \def\@EveryShipout@Output{% + \setbox8\vbox{% + \yoko + \@EveryShipout@Hook + \@EveryShipout@AtNextHook + \global\setbox\luatexoutputbox=\box\luatexoutputbox + }% + \gdef\@EveryShipout@AtNextHook{}% + \@EveryShipout@Org@Shipout\box\luatexoutputbox + }} +\DeclareOption{oneside}{\@twosidefalse} +\DeclareOption{twoside}{\@twosidetrue} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\if@compatibility +\@openrighttrue +\else +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} +\fi +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{% + \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\directlua{luatexbase.add_to_callback('luatexja.load_jfm', + function (ji, jn) ji.chars['parbdd'] = 0; return ji end, + 'ltj.jclasses_load_jfm', 1)} +{\jfont\g=\ltj@stdmcfont:jfm=min } % loading jfm-min.lua +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] \ltj@stdmcfont:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} +\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} +\ProcessOptions\relax +\input{ltjtbk1\@ptsize.clo} +\RequirePackage{lltjext} +\if@stysize + \setlength\columnsep{3\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +\setlength{\@tempdima}{\paperwidth} +\setlength{\@tempdimb}{\paperheight} +\iftombow + \advance \@tempdima 2in + \advance \@tempdimb 2in +\fi +\setlength{\pdfpagewidth}{\@tempdima} +\setlength{\pdfpageheight}{\@tempdimb} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand{\baselinestretch}{} +\setlength\parskip{0\p@ \@plus \p@} +\setlength\parindent{1\Cwd} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{1} +\setcounter{totalnumber}{3} +\setcounter{dbltopnumber}{2} +\renewcommand{\topfraction}{.7} +\renewcommand{\bottomfraction}{.3} +\renewcommand{\textfraction}{.2} +\renewcommand{\floatpagefraction}{.5} +\renewcommand{\dbltopfraction}{.7} +\renewcommand{\dblfloatpagefraction}{.5} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@plain + \let\@oddhead\@empty + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\let\ps@jpl@in\ps@plain +\def\ps@headnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \def\@evenhead{\hfil\thepage}% + \def\@oddhead{\thepage\hfil}% + \let\@oddfoot\@empty\let\@evenfoot\@empty} +\def\ps@footnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@footnombre + \def\@evenfoot{\hfil\thepage}% + \def\@oddfoot{\thepage\hfil}% + \let\@oddhead\@empty\let\@evenhead\@empty} +\if@twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% + } +\else % if not twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +\def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + \fi + ##1}}% + } +\fi +\if@twoside + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@evenhead{\hfil\leftmark}% right page + \def\@evenfoot{\hfil\thepage}% right page + \def\@oddhead{\rightmark\hfil}% left page + \def\@oddfoot{\thepage\hfil}% left page + \let\@mkboth\markboth +\def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% + } +\else % if one column + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@oddhead{\rightmark\hfil}% + \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth + \def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + \fi + ##1}}% + } +\fi +\def\ps@myheadings{\let\ps@jpl@in\ps@plain% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble +} +\if@compatibility +\newenvironment{titlepage} + {% + \cleardoublepage + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\newpage\fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn\else\newpage\fi + } +\else +\newenvironment{titlepage} + {% + \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +\def\p@thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}} +\if@titlepage + \newcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\thanks\p@thanks + \let\footnote\thanks + \vbox to\textheight\bgroup\tate\hsize\textwidth + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\Large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par + \vfil{\centering\@thanks}\vfil\null + \egroup + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% + \long\def\@makefntext##1{\parindent 1\zw\noindent + \hbox to 2\zw{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne \@maketitle + \else \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{jpl@in}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{% + \newpage\null + \vskip 2em% + \begin{center}% + \let\footnote\p@thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em} +\fi +\newcommand*{\chaptermark}[1]{} +\setcounter{secnumdepth}{2} +\newcounter{part} +\newcounter{chapter} +\newcounter{section}[chapter] +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand{\thepart}{\rensuji{\@Roman\c@part}} +\renewcommand{\thechapter}{\rensuji{\@arabic\c@chapter}} +\renewcommand{\thesection}{\thechapter・\rensuji{\@arabic\c@section}} +\renewcommand{\thesubsection}{\thesection・\rensuji{\@arabic\c@subsection}} +\renewcommand{\thesubsubsection}{% + \thesubsection・\rensuji{\@arabic\c@subsubsection}} +\renewcommand{\theparagraph}{% + \thesubsubsection・\rensuji{\@arabic\c@paragraph}} +\renewcommand{\thesubparagraph}{% + \theparagraph・\rensuji{\@arabic\c@subparagraph}} +\newcommand{\@chapapp}{\prechaptername} +\newcommand{\@chappos}{\postchaptername} +\newcommand\frontmatter{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmatterfalse\pagenumbering{roman}} +\newcommand{\mainmatter}{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmattertrue\pagenumbering{arabic}} +\newcommand{\backmatter}{% + \if@openright \cleardoublepage \else \clearpage \fi + \@mainmatterfalse} +\newcommand{\part}{% + \if@openright \cleardoublepage \else \clearpage \fi + \thispagestyle{empty}% + \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi + \null\vfil + \secdef\@part\@spart} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty\@M\reset@font + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries\prepartname\thepart\postpartname + \par\vskip20\p@ + \fi + \Huge\bfseries#2\par}% + \@endpart} +\def\@spart#1{{% + \centering + \interlinepenalty\@M\reset@font + \Huge\bfseries#1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside\null\thispagestyle{empty}\newpage\fi + \if@tempswa\twocolumn\fi} +\newcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindenttrue + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% + \else\addcontentsline{toc}{chapter}{#1}\fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@makechapterhead{#2}\@afterheading} +\def\@makechapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \ifnum \c@secnumdepth >\m@ne + \setlength\@tempdima{\linewidth}% + \if@mainmatter + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1\zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak + \fi + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} +\def\@schapter#1{% + \@makeschapterhead{#1}\@afterheading +} +\def\@makeschapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \setlength\@tempdima{\linewidth}% + \vtop{\hsize\@tempdima#1}}\vskip3\Cvs} +\newcommand{\section}{\@startsection{section}{1}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\Large\bfseries}} +\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\large\bfseries}} +\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\normalsize\bfseries}} +\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\@chapapp}{\appendixname}% + \renewcommand{\@chappos}\space% + \renewcommand{\thechapter}{\rensuji{\@Alph\c@chapter}}} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi{.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi{1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand{\theenumi}{\rensuji{\@arabic\c@enumi}} +\renewcommand{\theenumii}{\rensuji{(\@alph\c@enumii)}} +\renewcommand{\theenumiii}{\rensuji{\@roman\c@enumiii}} +\renewcommand{\theenumiv}{\rensuji{\@Alph\c@enumiv}} +\newcommand{\labelenumi}{\theenumi} +\newcommand{\labelenumii}{\theenumii} +\newcommand{\labelenumiii}{\theenumiii} +\newcommand{\labelenumiv}{\theenumiv} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +\renewenvironment{enumerate} + {\ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \list{\csname label\@enumctr\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@enumdepth=\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newcommand{\labelitemi}{\textbullet} +\newcommand{\labelitemii}{% + \ifnum\ltjgetparameter{direction}=3 + {\textcircled{~}} + \else + {\normalfont\bfseries\textendash} + \fi +} +\newcommand{\labelitemiii}{\textasteriskcentered} +\newcommand{\labelitemiv}{\textperiodcentered} +\renewenvironment{itemize} + {\ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list{\csname \@itemitem\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@itemdepth =\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \ifnum\ltjgetparameter{direction}=3 + \leftmargin\leftskip \advance\leftmargin3\Cwd + \rightmargin\rightskip + \labelsep=1\zw \itemsep\z@ + \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@ + \fi + \let\makelabel\descriptionlabel}}{\endlist} +\newcommand{\descriptionlabel}[1]{% + \hspace\labelsep\normalfont\bfseries #1} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em% + \listparindent\itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}% + \item\relax}{\endlist} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@}% + \item\relax}{\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax}{\endlist} +\newcounter{figure}[chapter] +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure}} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\thefigure} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +\newcounter{table}[chapter] +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@table}} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\thetable} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par + \else #1: #2\relax\par\fi + \else + \global \@minipagefalse + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\@addtoreset{equation}{chapter} +\renewcommand{\theequation}{% + \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\if@compatibility\else + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\fi +\if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} +}% +\fi +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +\setcounter{tocdepth}{2} +\newcommand{\@pnumwidth}{1.55em} +\newcommand{\@tocrmarg}{2.55em} +\newcommand{\@dotsep}{4.5} +\newdimen\toclineskip +\setlength\toclineskip{2\p@} +\newdimen\@lnumwidth +\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}} +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip\toclineskip \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}% + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% + \par}% + \fi} +\def\addcontentsline#1#2#3{% + \protected@write\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble +\@temptokena{\rensuji{\thepage}}}% + {\string\@writefile{#1}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% +} +\newcommand{\tableofcontents}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4\zw}% + #1\hfil\nobreak + \hbox to\@pnumwidth{\hss#2}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{4\zw}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +\newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{4\zw}} +\newcommand*{\l@subsection} {\@dottedtocline{2}{2\zw}{6\zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3\zw}{8\zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{4\zw}{9\zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{5\zw}{10\zw}} +\newcommand{\listoffigures}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\zw}{4\zw}} +\newcommand{\listoftables}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi +} +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{1.5em} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +\newenvironment{thebibliography}[1] +{\chapter*{\bibname\@mkboth{\bibname}{\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\let\@openbib@code\@empty +\newenvironment{theindex} + {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi + \columnseprule\z@ \columnsep 35\p@ + \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\indexname}{\indexname}% + \thispagestyle{jpl@in}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand{\@idxitem}{\par\hangindent 40\p@} +\newcommand{\subitem}{\@idxitem \hspace*{20\p@}} +\newcommand{\subsubitem}{\@idxitem \hspace*{30\p@}} +\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\renewcommand{\footnoterule}{% + \kern-3\p@ + \hrule width .4\columnwidth + \kern 2.6\p@} +\@addtoreset{footnote}{chapter} +\newcommand\@makefntext[1]{\parindent 1\zw + \noindent\hbox to 2\zw{\hss\@makefnmark}#1} +\newif\if西暦 \西暦false +\def\西暦{\西暦true} +\def\和暦{\西暦false} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\def\today{{% + \ifnum\ltjgetparameter{direction}=3 + \if西暦 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 + \else + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 + \fi + \else + \if西暦 + \number\year~年 + \number\month~月 + \number\day~日 + \else + 平成\ifnum\heisei=1 元年\else\number\heisei~年\fi + \number\month~月 + \number\day~日 + \fi + \fi}} +\newcommand{\prepartname}{第} +\newcommand{\postpartname}{部} +\newcommand{\prechaptername}{第} +\newcommand{\postchaptername}{章} +\newcommand{\contentsname}{目 次} +\newcommand{\listfigurename}{図 目 次} +\newcommand{\listtablename}{表 目 次} +\newcommand{\bibname}{関連図書} +\newcommand{\indexname}{索 引} +\newcommand{\figurename}{図} +\newcommand{\tablename}{表} +\newcommand{\appendixname}{付 録} +\pagestyle{headings} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +\normalmarginpar +\@mparswitchfalse +\endinput +%% +%% End of file `ltjtbook.cls'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls new file mode 100644 index 00000000000..56727a81c76 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtreport.cls @@ -0,0 +1,913 @@ +%% +%% This is file `ltjtreport.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `report,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtreport.cls. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{ltjtreport} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja class] +\RequirePackage{luatexja} +\newcounter{@paper} +\newif\if@landscape \@landscapefalse +\newcommand{\@ptsize}{} +\newif\if@restonecol +\newif\if@titlepage +\@titlepagetrue +\newif\if@openright +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +\newif\if@stysize \@stysizefalse +\newif\if@mathrmmc \@mathrmmcfalse +\DeclareOption{a4paper}{\setcounter{@paper}{1}% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{\setcounter{@paper}{2}% + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4paper}{\setcounter{@paper}{3}% + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{\setcounter{@paper}{4}% + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +\if@compatibility + \renewcommand{\@ptsize}{0} +\else + \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\fi +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +\DeclareOption{landscape}{\@landscapetrue + \setlength\@tempdima{\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth{\@tempdima}} +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space:\space\number\year/\number\month/\number\day + (\number\hour:\number\minute)} + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +\DeclareOption{tate}{% + \tate\AtBeginDocument{\message{《縦組モード》}\adjustbaseline}% +} +\AtEndOfPackageFile{everyshi}{% + \def\@EveryShipout@Output{% + \setbox8\vbox{% + \yoko + \@EveryShipout@Hook + \@EveryShipout@AtNextHook + \global\setbox\luatexoutputbox=\box\luatexoutputbox + }% + \gdef\@EveryShipout@AtNextHook{}% + \@EveryShipout@Org@Shipout\box\luatexoutputbox + }} +\DeclareOption{oneside}{\@twosidefalse} +\DeclareOption{twoside}{\@twosidetrue} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +\if@compatibility +\else +\DeclareOption{openright}{\@openrighttrue} +\DeclareOption{openany}{\@openrightfalse} +\fi +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +\DeclareOption{openbib}{% + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% + \renewcommand\newblock{\par}}} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{% + \ClassWarningNoLine{\@currname}{The class option 'disablejfam' is obsolete}} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +\directlua{luatexbase.add_to_callback('luatexja.load_jfm', + function (ji, jn) ji.chars['parbdd'] = 0; return ji end, + 'ltj.jclasses_load_jfm', 1)} +{\jfont\g=\ltj@stdmcfont:jfm=min } % loading jfm-min.lua +\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.962216] \ltj@stdmcfont:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.962216] \ltj@stdgtfont:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} +\directlua{luatexbase.remove_from_callback('luatexja.load_jfm', 'ltj.jclasses_load_jfm')} +\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} +\ProcessOptions\relax +\input{ltjtsize1\@ptsize.clo} +\RequirePackage{lltjext} +\if@stysize + \setlength\columnsep{3\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +\setlength{\@tempdima}{\paperwidth} +\setlength{\@tempdimb}{\paperheight} +\iftombow + \advance \@tempdima 2in + \advance \@tempdimb 2in +\fi +\setlength{\pdfpagewidth}{\@tempdima} +\setlength{\pdfpageheight}{\@tempdimb} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +\renewcommand{\baselinestretch}{} +\setlength\parskip{0\p@ \@plus \p@} +\setlength\parindent{1\Cwd} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +\setcounter{topnumber}{2} +\setcounter{bottomnumber}{1} +\setcounter{totalnumber}{3} +\setcounter{dbltopnumber}{2} +\renewcommand{\topfraction}{.7} +\renewcommand{\bottomfraction}{.3} +\renewcommand{\textfraction}{.2} +\renewcommand{\floatpagefraction}{.5} +\renewcommand{\dbltopfraction}{.7} +\renewcommand{\dblfloatpagefraction}{.5} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@plain + \let\@oddhead\@empty + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +\let\ps@jpl@in\ps@plain +\def\ps@headnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre + \def\@evenhead{\hfil\thepage}% + \def\@oddhead{\thepage\hfil}% + \let\@oddfoot\@empty\let\@evenfoot\@empty} +\def\ps@footnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@footnombre + \def\@evenfoot{\hfil\thepage}% + \def\@oddfoot{\thepage\hfil}% + \let\@oddhead\@empty\let\@evenhead\@empty} +\if@twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% + } +\else % if not twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +\def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + ##1}}% + } +\fi +\if@twoside + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@evenhead{\hfil\leftmark}% right page + \def\@evenfoot{\hfil\thepage}% right page + \def\@oddhead{\rightmark\hfil}% left page + \def\@oddfoot{\thepage\hfil}% left page + \let\@mkboth\markboth +\def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1\zw\fi + ##1}}% + } +\else % if one column + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre + \def\@oddhead{\rightmark\hfil}% + \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth + \def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne + \@chapapp\thechapter\@chappos\hskip1\zw + \fi + ##1}}% + } +\fi +\def\ps@myheadings{\let\ps@jpl@in\ps@plain% + \let\@oddfoot\@empty\let\@evenfoot\@empty + \def\@evenhead{{\leftmark}\hfil\thepage}% + \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble +} +\if@compatibility +\newenvironment{titlepage} + {% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\newpage\fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn\else\newpage\fi + } +\else +\newenvironment{titlepage} + {% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \setcounter{page}\@ne + }% + {\if@restonecol\twocolumn \else \newpage \fi + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +\def\p@thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect{\noindent$\m@th^\thefootnote$~#1\protect\par}}} +\if@titlepage + \newcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax + \let\thanks\p@thanks + \let\footnote\thanks + \vbox to\textheight\bgroup\tate\hsize\textwidth + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\Large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par + \vfil{\centering\@thanks}\vfil\null + \egroup + \end{titlepage}% + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox{\unless\ifnum\ltjgetparameter{direction}=3 $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% + \long\def\@makefntext##1{\parindent 1\zw\noindent + \hbox to 2\zw{\hss\@makefnmark}##1}% + \if@twocolumn + \ifnum \col@number=\@ne \@maketitle + \else \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{jpl@in}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{% + \newpage\null + \vskip 2em% + \begin{center}% + \let\footnote\p@thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em} +\fi +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + {\bfseries\abstractname}% + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries\abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi}{\if@twocolumn\else\endquotation\fi} +\fi +\newcommand*{\chaptermark}[1]{} +\setcounter{secnumdepth}{2} +\newcounter{part} +\newcounter{chapter} +\newcounter{section}[chapter] +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +\renewcommand{\thepart}{\rensuji{\@Roman\c@part}} +\renewcommand{\thechapter}{\rensuji{\@arabic\c@chapter}} +\renewcommand{\thesection}{\thechapter・\rensuji{\@arabic\c@section}} +\renewcommand{\thesubsection}{\thesection・\rensuji{\@arabic\c@subsection}} +\renewcommand{\thesubsubsection}{% + \thesubsection・\rensuji{\@arabic\c@subsubsection}} +\renewcommand{\theparagraph}{% + \thesubsubsection・\rensuji{\@arabic\c@paragraph}} +\renewcommand{\thesubparagraph}{% + \theparagraph・\rensuji{\@arabic\c@subparagraph}} +\newcommand{\@chapapp}{\prechaptername} +\newcommand{\@chappos}{\postchaptername} +\newcommand{\part}{% + \if@openright \cleardoublepage \else \clearpage \fi + \thispagestyle{empty}% + \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi + \null\vfil + \secdef\@part\@spart} +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty\@M\reset@font + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries\prepartname\thepart\postpartname + \par\vskip20\p@ + \fi + \Huge\bfseries#2\par}% + \@endpart} +\def\@spart#1{{% + \centering + \interlinepenalty\@M\reset@font + \Huge\bfseries#1\par}% + \@endpart} +\def\@endpart{\vfil\newpage + \if@twoside\null\thispagestyle{empty}\newpage\fi + \if@tempswa\twocolumn\fi} +\newcommand{\chapter}{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindenttrue + \secdef\@chapter\@schapter} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@makechapterhead{#2}\@afterheading} +\def\@makechapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \ifnum \c@secnumdepth >\m@ne + \setlength\@tempdima{\linewidth}% + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1\zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} +\def\@schapter#1{% + \@makeschapterhead{#1}\@afterheading +} +\def\@makeschapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \reset@font\huge\bfseries + \leavevmode + \setlength\@tempdima{\linewidth}% + \vtop{\hsize\@tempdima#1}}\vskip3\Cvs} +\newcommand{\section}{\@startsection{section}{1}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\Large\bfseries}} +\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\large\bfseries}} +\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\reset@font\normalsize\bfseries}} +\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\reset@font\normalsize\bfseries}} +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\@chapapp}{\appendixname}% + \renewcommand{\@chappos}\space% + \renewcommand{\thechapter}{\rensuji{\@Alph\c@chapter}}} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi{.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi{1em} +\fi +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +\renewcommand{\theenumi}{\rensuji{\@arabic\c@enumi}} +\renewcommand{\theenumii}{\rensuji{(\@alph\c@enumii)}} +\renewcommand{\theenumiii}{\rensuji{\@roman\c@enumiii}} +\renewcommand{\theenumiv}{\rensuji{\@Alph\c@enumiv}} +\newcommand{\labelenumi}{\theenumi} +\newcommand{\labelenumii}{\theenumii} +\newcommand{\labelenumiii}{\theenumiii} +\newcommand{\labelenumiv}{\theenumiv} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +\renewenvironment{enumerate} + {\ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \list{\csname label\@enumctr\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@enumdepth=\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newcommand{\labelitemi}{\textbullet} +\newcommand{\labelitemii}{% + \ifnum\ltjgetparameter{direction}=3 + {\textcircled{~}} + \else + {\normalfont\bfseries\textendash} + \fi +} +\newcommand{\labelitemiii}{\textasteriskcentered} +\newcommand{\labelitemiv}{\textperiodcentered} +\renewenvironment{itemize} + {\ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list{\csname \@itemitem\endcsname}{% + \ifnum\ltjgetparameter{direction}=3 + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1\zw \labelsep.3\zw + \ifnum \@itemdepth =\@ne \leftmargin1\zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1\zw + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \ifnum\ltjgetparameter{direction}=3 + \leftmargin\leftskip \advance\leftmargin3\Cwd + \rightmargin\rightskip + \labelsep=1\zw \itemsep\z@ + \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@ + \fi + \let\makelabel\descriptionlabel}}{\endlist} +\newcommand{\descriptionlabel}[1]{% + \hspace\labelsep\normalfont\bfseries #1} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em% + \listparindent\itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}% + \item\relax}{\endlist} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@}% + \item\relax}{\endlist} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax}{\endlist} +\newcounter{figure}[chapter] +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure}} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +\def\fnum@figure{\figurename\thefigure} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +\newcounter{table}[chapter] +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@table}} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +\def\fnum@table{\tablename\thetable} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \ifnum\ltjgetparameter{direction}=3 \sbox\@tempboxa{#1\hskip1\zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \ifnum\ltjgetparameter{direction}=3 #1\hskip1\zw#2\relax\par + \else #1: #2\relax\par\fi + \else + \global \@minipagefalse + \hbox to\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +\setlength\arraycolsep{5\p@} +\setlength\tabcolsep{6\p@} +\setlength\arrayrulewidth{.4\p@} +\setlength\doublerulesep{2\p@} +\setlength\tabbingsep{\labelsep} +\skip\@mpfootins = \skip\footins +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +\@addtoreset{equation}{chapter} +\renewcommand{\theequation}{% + \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +\if@compatibility\else + \DeclareSymbolFont{mincho}{JY3}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY3}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} +\fi +\if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} +}% +\fi +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +\setcounter{tocdepth}{2} +\newcommand{\@pnumwidth}{1.55em} +\newcommand{\@tocrmarg}{2.55em} +\newcommand{\@dotsep}{4.5} +\newdimen\toclineskip +\setlength\toclineskip{2\p@} +\newdimen\@lnumwidth +\def\numberline#1{\hbox to\@lnumwidth{#1\hfil}} +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip\toclineskip \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}% + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% + \par}% + \fi} +\def\addcontentsline#1#2#3{% + \protected@write\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble +\@temptokena{\rensuji{\thepage}}}% + {\string\@writefile{#1}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}}}% +} +\newcommand{\tableofcontents}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\contentsname + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax + \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4\zw}% + #1\hfil\nobreak + \hbox to\@pnumwidth{\hss#2}}\par + \nobreak + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% + \endgroup + \fi} +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{4\zw}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hbox to\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +\newcommand*{\l@section}{\@dottedtocline{1}{1\zw}{4\zw}} +\newcommand*{\l@subsection} {\@dottedtocline{2}{2\zw}{6\zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3\zw}{8\zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{4\zw}{9\zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{5\zw}{10\zw}} +\newcommand{\listoffigures}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename + \@mkboth{\listfigurename}{\listfigurename}}% + \@starttoc{lof}% + \if@restonecol\twocolumn\fi +} +\newcommand*{\l@figure}{\@dottedtocline{1}{1\zw}{4\zw}} +\newcommand{\listoftables}{% + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename + \@mkboth{\listtablename}{\listtablename}}% + \@starttoc{lot}% + \if@restonecol\twocolumn\fi +} +\let\l@table\l@figure +\newdimen\bibindent +\setlength\bibindent{1.5em} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +\newenvironment{thebibliography}[1] +{\chapter*{\bibname\@mkboth{\bibname}{\bibname}}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +\let\@openbib@code\@empty +\newenvironment{theindex} + {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi + \columnseprule\z@ \columnsep 35\p@ + \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\indexname}{\indexname}% + \thispagestyle{jpl@in}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +\newcommand{\@idxitem}{\par\hangindent 40\p@} +\newcommand{\subitem}{\@idxitem \hspace*{20\p@}} +\newcommand{\subsubitem}{\@idxitem \hspace*{30\p@}} +\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +\renewcommand{\footnoterule}{% + \kern-3\p@ + \hrule width .4\columnwidth + \kern 2.6\p@} +\@addtoreset{footnote}{chapter} +\newcommand\@makefntext[1]{\parindent 1\zw + \noindent\hbox to 2\zw{\hss\@makefnmark}#1} +\newif\if西暦 \西暦false +\def\西暦{\西暦true} +\def\和暦{\西暦false} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +\def\today{{% + \ifnum\ltjgetparameter{direction}=3 + \if西暦 + \kansuji\year 年 + \kansuji\month 月 + \kansuji\day 日 + \else + 平成\ifnum\heisei=1 元年\else\kansuji\heisei 年\fi + \kansuji\month 月 + \kansuji\day 日 + \fi + \else + \if西暦 + \number\year~年 + \number\month~月 + \number\day~日 + \else + 平成\ifnum\heisei=1 元年\else\number\heisei~年\fi + \number\month~月 + \number\day~日 + \fi + \fi}} +\newcommand{\prepartname}{第} +\newcommand{\postpartname}{部} +\newcommand{\prechaptername}{第} +\newcommand{\postchaptername}{章} +\newcommand{\contentsname}{目 次} +\newcommand{\listfigurename}{図 目 次} +\newcommand{\listtablename}{表 目 次} +\newcommand{\bibname}{関連図書} +\newcommand{\indexname}{索 引} +\newcommand{\figurename}{図} +\newcommand{\tablename}{表} +\newcommand{\appendixname}{付 録} +\newcommand{\abstractname}{概 要} +\pagestyle{plain} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +\normalmarginpar +\@mparswitchfalse +\endinput +%% +%% End of file `ltjtreport.cls'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo new file mode 100644 index 00000000000..977f2ad9ecd --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize10.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtsize10.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `10pt,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtsize10.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtsize10.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xpt{17}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{27\Cwd} + \else + \setlength\textwidth{46\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{53\Cwd} + \else + \setlength\textwidth{85\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{34\Cwd} + \else + \setlength\textwidth{55\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{41\Cwd} + \else + \setlength\textwidth{67\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{67\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{67\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{26\Cvs} + \else + \setlength\textheight{16\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{48\Cvs} + \else + \setlength\textheight{33\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{34\Cvs} + \else + \setlength\textheight{21\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{41\Cvs} + \else + \setlength\textheight{26\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{26\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.78\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{6.65\p@} +\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtsize10.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo new file mode 100644 index 00000000000..30c30e26473 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize11.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtsize11.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `11pt,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtsize11.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtsize11.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xipt{17}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{25\Cwd} + \else + \setlength\textwidth{42\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{49\Cwd} + \else + \setlength\textwidth{76\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{31\Cwd} + \else + \setlength\textwidth{51\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{38\Cwd} + \else + \setlength\textwidth{61\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{61\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{61\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{26\Cvs} + \else + \setlength\textheight{16\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{48\Cvs} + \else + \setlength\textheight{33\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{34\Cvs} + \else + \setlength\textheight{21\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{41\Cvs} + \else + \setlength\textheight{26\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{25\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.78\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{7.7\p@} +\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2\p@ \@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtsize11.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo new file mode 100644 index 00000000000..f0e8ab4911f --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/ltjtsize12.clo @@ -0,0 +1,323 @@ +%% +%% This is file `ltjtsize12.clo', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ltjclasses.dtx (with options: `12pt,tate') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ltjtsize12.clo. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ltjclasses.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +%% File: ltjclasses.dtx +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesFile{ltjtsize12.clo} + [2015/01/01 v1.6-ltj-9 + Standard LuaLaTeX-ja file (size option)] +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xiipt{18}% + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\def\kanjiencodingdefault{JT3}% +\kanjiencoding{\kanjiencodingdefault}% +\normalsize +\setbox0\hbox{\char"3000}% 全角スペース +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\newcommand{\small}{% + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\footnotesize}{% + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xivpt{21}} +\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} +\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}} +\let\Huge=\huge +\setlength\headheight{12\p@} +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +\setlength\topskip{1\Cht} +\setlength\footskip{14mm} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textwidth{23\Cwd} + \else + \setlength\textwidth{38\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textwidth{44\Cwd} + \else + \setlength\textwidth{69\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textwidth{28\Cwd} + \else + \setlength\textwidth{47\Cwd} + \fi + \else % A4 ant other + \if@landscape + \setlength\textwidth{35\Cwd} + \else + \setlength\textwidth{57\Cwd} + \fi + \fi\fi\fi + \else + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else + \setlength\textwidth{57\Cwd} + \fi + \fi +\else + \if@stysize + \if@twocolumn + \setlength\textwidth{.8\paperheight} + \else + \setlength\textwidth{.7\paperheight} + \fi + \else + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} + \addtolength\@tempdima{-1.3in} + \setlength\@tempdimb{57\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape + \setlength\textheight{25\Cvs} + \else + \setlength\textheight{15\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape + \setlength\textheight{45\Cvs} + \else + \setlength\textheight{31\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape + \setlength\textheight{32\Cvs} + \else + \setlength\textheight{20\Cvs} + \fi + \else % A4 and other + \if@landscape + \setlength\textheight{38\Cvs} + \else + \setlength\textheight{22\Cvs} + \fi + \fi\fi\fi + \addtolength\textheight{\Cht} + \addtolength\textheight{\Cdp} + \else + \setlength\textheight{24\Cvs} + \fi +\else + \if@stysize + \setlength\textheight{.78\paperwidth} + \else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +\addtolength\textheight{\topskip} +\@settopoint\textheight +\if@compatibility + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} + \addtolength\topmargin{-\textwidth} + \addtolength\topmargin{-\footskip} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else + \addtolength\topmargin{-2.8in} + \fi + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +\if@twocolumn + \setlength\marginparsep{10\p@} +\else + \setlength\marginparsep{15\p@} +\fi +\setlength\marginparpush{7\p@} +\if@compatibility + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +\else + \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-\textheight} + \if@twoside + \setlength\oddsidemargin{.6\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} + \addtolength\evensidemargin{-\textheight} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} + \@settopoint\marginparwidth +\fi +\setlength\footnotesep{8.4\p@} +\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@} +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{10\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{10\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} +\def\@listi{\leftmargin\leftmargini + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +\let\@listI\@listi +\@listi +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep + \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +\endinput +%% +%% End of file `ltjtsize12.clo'. diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty index 6b2185e5598..687d395fb4a 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty @@ -65,23 +65,9 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-compat}[2013/12/22 Compatibility with pTeX] + \ProvidesPackage{luatexja-compat}[2015/02/22 Compatibility with pTeX] \fi %</LaTeX> -% ltj-compat-ptex.sty is not maintained for a long time. -% %% If the engine is pTeX, then load the module for it and exit. -% \edef\ltj@@tempa{\string\kansuji} -% \edef\ltj@@tempb{\meaning\kansuji} -% \ifx\ltj@@tempa\ltj@@tempb %<*pTeX> -% \let\ltj@@compat@pTeX=t -% \ifltj@in@latex %<*LaTeX> -% \RequirePackage{ltj-compat-ptex}[2012/04/21] -% \else %<*!LaTeX> -% \input ltj-compat-ptex.sty % -% \fi %</LaTeX> -% \ltj@compat@AtEnd -% \expandafter\endinput\fi\relax %</pTeX> - % Load core module if not yet. \ifx\luatexjacoreLoaded\@undefined \ifltj@in@latex %<*LaTeX> @@ -114,24 +100,13 @@ \def\ucs{\ltj@code@conv{ucs}} \def\ltj@code@conv#1{% - \directlua{luatexja._cc_next = luatexja.compat.from_#1 }% - \ltj@code@convA -} -\def\ltj@code@convA{% - \expandafter\expandafter\expandafter - \ltj@code@convB\ltj@grab@num -} -\def\ltj@code@convB#1{% - \directlua{luatexja._cc_next(\ltj@safe@num@or{nil}{#1}) }% + \directlua{luatexja.compat.from_#1(luatexja.token.scan_int())}% } \def\kansuji{% - \expandafter\expandafter\expandafter - \ltj@kansujiA\ltj@grab@num -} -\def\ltj@kansujiA#1{% - \directlua{luatexja.compat.to_kansuji(\ltj@safe@num{#1}) }% + \directlua{luatexja.compat.to_kansuji(luatexja.token.scan_int())}% } + \define@key[ltj]{japaram}{kansujichar}{% \expandafter\ltj@@set@stack#1:{KSJ}{0}{0x7FFFFFFF}} diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty index 75b011c7882..753a8405082 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja-core.sty @@ -65,24 +65,27 @@ \expandafter\let\csname ifltj@in@latex\expandafter\endcsname \csname iftrue\endcsname \NeedsTeXFormat{LaTeX2e} - \ProvidesPackage{luatexja-core}[2014/02/01 Core of LuaTeX-ja] + \ProvidesPackage{luatexja-core}[2015/02/22 Core of LuaTeX-ja] \fi %</LaTeX> %% Load prerequisite packages. \endlinechar=13 % +\newif\ifltj@everyhook@avail\ltj@everyhook@availfalse %! 外部パッケージは普通の \endlinechar で読まないと危険. \ifltj@in@latex %<*LaTeX> - \RequirePackage{luaotfload} [2013/05/10] % v2.2 - \RequirePackage{infwarerr} [2010/04/08] % v1.3 + \RequirePackage{luaotfload} [2013/12/31] % v2.3 \RequirePackage{ltxcmds} [2011/11/09] % v1.22 \RequirePackage{pdftexcmds} [2011/11/29] % v0.20 \RequirePackage{xkeyval} [2012/10/14] % v2.6b + \RequirePackage{atbegshi} + \IfFileExists{everyhook.sty}{\RequirePackage{everyhook}\ltj@everyhook@availtrue}{} \else %<*!LaTeX> \input luaotfload.sty - \input infwarerr.sty \input ltxcmds.sty \input pdftexcmds.sty \input xkeyval + \input atbegshi.sty + \AtBeginShipoutInit \fi %</LaTeX> \endlinechar=-1 % @@ -101,11 +104,6 @@ {Package loading is aborted now.\MessageBreak} \expandafter\endinput\fi\relax - \@PackageInfoNoLine{luatexja-core} - {using\space% - \directlua{if node.direct==node then tex.write('traditional node') - else tex.write('DIRECT') end} node access model} - %! なお、luatexbase-compat の説明に従うと、LuaTeX 拡張プリミティブは %! plain/LaTeX の両方で \luatex 付の名前(\directlua はそのまま) %! で使えると考えてよい。 @@ -135,28 +133,36 @@ %%%%%%%% Attributes for Japanese typesetting. \newluatexattribute\ltj@icflag % attribute for italic correction -\newluatexattribute\ltj@curjfnt % index for ``current Japanese font'' -\newluatexattribute\ltj@origchar % +\newluatexattribute\ltj@curjfnt % index for ``current horizontal Japanese font'' +\newluatexattribute\ltj@curtfnt % index for ``current vertical Japanese font'' +\newluatexattribute\ltj@origchar % \newluatexattribute\ltj@charclass % +\newluatexattribute\ltj@charcode % \newluatexattribute\ltj@autospc % attribute for autospacing \newluatexattribute\ltj@autoxspc % attribute for autoxspacing -\newluatexattribute\ltj@yablshift % attribute for \yabaselineshift -\newluatexattribute\ltj@ykblshift % attribute for \ykbaselineshift +\newluatexattribute\ltj@yablshift % attribute for yalbaselineshift +\newluatexattribute\ltj@ykblshift % attribute for yjabaselineshift +\newluatexattribute\ltj@tablshift % attribute for talbaselineshift +\newluatexattribute\ltj@tkblshift % attribute for tjabaselineshift \newluatexattribute\jfam % index for current jfam + +\newluatexattribute\ltj@dir \newlanguage\ltj@@japanese -\ltj@icflag=0 -\ltj@origchar=0 -\ltj@charclass=0 -\ltj@curjfnt=-1 +\ltj@dir\z@ +\ltj@icflag\z@ +\ltj@origchar\z@ +\ltj@charclass\z@ +\ltj@curjfnt\m@ne +\ltj@curtfnt\m@ne %%%%%%%% Attributes for character ranges \newcount\ltj@tempcnta -\ltj@tempcnta=0 +\ltj@tempcnta\z@ \loop\ifnum\ltj@tempcnta<7 \expandafter\newluatexattribute% \csname ltj@kcat\the\ltj@tempcnta\endcsname \csname ltj@kcat\the\ltj@tempcnta\endcsname=0 - \advance\ltj@tempcnta by1 + \advance\ltj@tempcnta\@ne \repeat @@ -166,7 +172,8 @@ \protected\def\ltj@@q@escapenum{\ltj@@q@escapenum@} \directlua{% - luatexja = {} + luatexja = {}; + luatexja.lang_ja = \the\ltj@@japanese; dofile(assert(kpse.find_file('luatexja.lua', 'tex'), "File `luatexja.lua' not found")) } @@ -195,11 +202,19 @@ \protected\def\/{\relax\directlua{luatexja.jfont.append_italic()}} %%%%%%%% \jfont\CS={...:...;jfm=metric;...}, \globaljfont -\protected\def\jfont{\afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false)}} +\protected\def\jfont{% + \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(false, 'yoko')}} \protected\def\globaljfont{% - \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true)}} + \afterassignment\ltj@@jfont\directlua{luatexja.jfont.jfontdefX(true, 'yoko')}} \def\ltj@@jfont{\directlua{luatexja.jfont.jfontdefY()}} +%%%%%%%% \tfont\CS={...:...;jfm=metric;...}, \globaltfont +\protected\def\tfont{% + \afterassignment\ltj@@tfont\directlua{luatexja.jfont.jfontdefX(false, 'tate')}} +\protected\def\globaltfont{% + \afterassignment\ltj@@tfont\directlua{luatexja.jfont.jfontdefX(true, 'tate')}} +\def\ltj@@tfont{\directlua{luatexja.jfont.jfontdefY()}} + %%%%%%%% \zw, \zh \protected\def\zw{\directlua{tex.setdimen('ltj@zw', luatexja.jfont.get_zw())}\ltj@zw} \protected\def\zh{\directlua{tex.setdimen('ltj@zh', luatexja.jfont.get_zh())}\ltj@zh} @@ -207,18 +222,10 @@ %%%%%%%% \inhibitglue \protected\def\ltj@reset@globaldefs{% \directlua{luatexja.global_temp = tex.globaldefs; tex.globaldefs = 0}} -\protected\def\ltj@restore@globaldefs{\directlua{tex.globaldefs = luatexja.global_temp}} +\protected\def\ltj@restore@globaldefs{\directlua{tex.globaldefs = luatexja.global_temp}\relax} \protected\def\inhibitglue{\ifhmode\ltj@@ihb\fi} \def\ltj@@ihb{\relax\directlua{luatexja.jfmglue.create_inhibitglue_node()}} -%%%%%%%% \yoko, \tate, \ifydir, \iftdir -%% At this moment, tategaki mode is not implemented; -%% there is only yokogaki mode now. -\let\yoko\relax -\let\tate\relax -\newif\ifydir\ydirtrue -\newif\iftdir\tdirfalse - %%%%%%%% \ltjdefcharrange<name>{100-200,3000-,5000,...} \protected\def\ltjdefcharrange#1#2{% {\ltj@tempcntc=#1 \expandafter\ltj@@dcrange#2,,}\ignorespaces} @@ -241,13 +248,19 @@ %%%%%%%% \ltjsetparameter \newcount\ltj@@stack \newcount\ltj@@group@level -\ltj@@group@level=0 \ltj@@stack=0 +\ltj@@group@level\z@\ltj@@stack\z@ -\setbox0\hbox{% +\setbox\z@\hbox{% \directlua{% This value depends on the version of LuaTeX. luatexja.stack.hmode = -tex.nest[tex.nest.ptr].mode }% } +\setbox\z@\vbox{% + \directlua{% This value depends on the version of LuaTeX. + luatexja.stack.vmode = -tex.nest[tex.nest.ptr].mode + }% +} +\setbox\z@\box\voidb@x % prebreakpenalty = {<char_code>, <penalty>} \define@key[ltj]{japaram}{kcatcode}{% @@ -261,6 +274,7 @@ \ltj@safe@num@or{nil}{#1},\ltj@safe@num@or{nil}{#2},#4,#5)}} % jatextfont = {<char_code>, <font_cs>} +% only horizontal font is supported \define@key[ltj]{japaram}{jatextfont}{% \expandafter\ltj@@set@stackfont#1:{MJT}} \define@key[ltj]{japaram}{jascriptfont}{% @@ -269,8 +283,8 @@ \expandafter\ltj@@set@stackfont#1:{MJSS}} \protected\def\ltj@@set@stackfont#1,#2:#3{% \ltj@reset@globaldefs - \ltj@tempcnta=\ltj@curjfnt\ltj@curjfnt=-1 #2% - \ifnum\ltj@curjfnt=-1 + \ltj@tempcnta=\ltj@curjfnt\ltj@curjfnt\m@ne#2% + \ifnum\ltj@curjfnt=\m@ne \@PackageError{luatexja-core}% {\string#2 is not a control sequence that represents \MessageBreak a Japanese font}{}% @@ -282,16 +296,20 @@ \ltj@restore@globaldefs } -% yalbaselineshift = <dimen> +% {y,t}{ja,al}baselineshift = <dimen> % yjabaselineshift = <dimen> \define@key[ltj]{japaram}{yalbaselineshift}{% \directlua{tex.setattribute(luatexja.isglobal, - luatexbase.attributes['ltj@yablshift'], - \ltj@safe@dimen@or\ltj@defdimen{#1})}} + luatexbase.attributes['ltj@yablshift'], luatexja.token.scan_dimen())}#1} \define@key[ltj]{japaram}{yjabaselineshift}{% \directlua{tex.setattribute(luatexja.isglobal, - luatexbase.attributes['ltj@ykblshift'], - \ltj@safe@dimen@or\ltj@defdimen{#1})}} + luatexbase.attributes['ltj@ykblshift'], luatexja.token.scan_dimen())}#1} +\define@key[ltj]{japaram}{talbaselineshift}{% + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@tablshift'], luatexja.token.scan_dimen())}#1} +\define@key[ltj]{japaram}{tjabaselineshift}{% + \directlua{tex.setattribute(luatexja.isglobal, + luatexbase.attributes['ltj@tkblshift'], luatexja.token.scan_dimen())}#1} % jaxspmode = {<char_code>, <mode>} % mode: inhibit, preonly, postonly, allow @@ -308,6 +326,7 @@ \ltj@safe@num@or{nil}{#1}, \ltj@safe@num@or{nil}{\ltj@temp},0,3)}} + % alxspmode = {<char_code>, <mode>} % mode: inhibit, preonly, postonly, allow % or 0 1 2 3 @@ -326,33 +345,32 @@ % autospacing = <bool> (default: true) \define@boolkey[ltj]{japaram}{autospacing}[true]{% \ifltj@japaram@autospacing - \directlua{luatexja.ext_print_global()}\ltj@autospc=1 + \directlua{luatexja.ext_print_global()}\ltj@autospc\@ne \else - \directlua{luatexja.ext_print_global()}\ltj@autospc=0 + \directlua{luatexja.ext_print_global()}\ltj@autospc\z@ \fi} % autoxspacing = <bool> (default: true) \define@boolkey[ltj]{japaram}{autoxspacing}[true]{% \ifltj@japaram@autoxspacing - \directlua{luatexja.ext_print_global()}\ltj@autoxspc=1 + \directlua{luatexja.ext_print_global()}\ltj@autoxspc\@ne \else - \directlua{luatexja.ext_print_global()}\ltj@autoxspc=0 + \directlua{luatexja.ext_print_global()}\ltj@autoxspc\z@ \fi} -% [x]]kanjiskip = <dimen> -\define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip{#1}} -\define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip{#1}} -\protected\def\ltjsetkanjiskip#1{% % SKIP - \directlua{% - local d = \ltj@safe@glue{#1} - luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d) -}\ignorespaces} -\protected\def\ltjsetxkanjiskip#1{% % SKIP - \directlua{% - local d = \ltj@safe@glue{#1} - luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d) -}\ignorespaces} - +% [x]]kanjiskip = <skip> + \define@key[ltj]{japaram}{kanjiskip}{\ltjsetkanjiskip #1} + \define@key[ltj]{japaram}{xkanjiskip}{\ltjsetxkanjiskip #1} + \protected\def\ltjsetkanjiskip{% % SKIP + \directlua{% + local d = luatexja.token.scan_glue() + luatexja.stack.set_stack_skip(luatexja.stack_table_index.KSK, d); node.free(d) + }} + \protected\def\ltjsetxkanjiskip{% % SKIP + \directlua{% + local d = luatexja.token.scan_glue() + luatexja.stack.set_stack_skip(luatexja.stack_table_index.XSK, d); node.free(d) + }} % jcharwidowpenalty = <count> \define@key[ltj]{japaram}{jcharwidowpenalty}{% %COUNT @@ -391,12 +409,16 @@ \else\directlua{luatexja.isglobal=''}\fi } \protected\def\ltjsetparameter#1{% + \directlua{luatexja.base.start_time_measure('set_par')}% \ltj@setpar@global\setkeys[ltj]{japaram}{#1}% + \directlua{luatexja.base.stop_time_measure('set_par')}% \ignorespaces} \protected\def\ltjglobalsetparameter#1{% \relax\ifnum\globaldefs<0\directlua{luatexja.isglobal=''}% \else\directlua{luatexja.isglobal='global'}\fi% + \directlua{luatexja.base.start_time_measure('set_par')}% \setkeys[ltj]{japaram}{#1}% + \directlua{luatexja.base.stop_time_measure('set_par')}% \ignorespaces} %%%%%%%% \ltjgetparameter @@ -410,7 +432,10 @@ \ltj@@decl@array@param{kcatcode} \ltj@@decl@array@param{jacharrange} \ltj@@decl@array@param{chartorange} +\ltj@@decl@array@param{boxdir} \def\ltjgetparameter#1{% + \directlua{luatexja.base.start_time_measure('get_par')}% + % stop call is moved in luatexja.lua \ifcsname ltj@@array@param/#1\endcsname \expandafter\ltx@firstoftwo \else @@ -429,13 +454,13 @@ %%%%%%%% \ltjalchar<number>, \ltjjachar<number> \let\ltj@@origchar=\char \protected\def\ltj@alljachar{\relax - \csname ltj@kcat0\endcsname=0 - \csname ltj@kcat1\endcsname=0 - \csname ltj@kcat2\endcsname=0 - \csname ltj@kcat3\endcsname=0 - \csname ltj@kcat4\endcsname=0 - \csname ltj@kcat5\endcsname=0 - \csname ltj@kcat6\endcsname=0 } + \csname ltj@kcat0\endcsname\z@ + \csname ltj@kcat1\endcsname\z@ + \csname ltj@kcat2\endcsname\z@ + \csname ltj@kcat3\endcsname\z@ + \csname ltj@kcat4\endcsname\z@ + \csname ltj@kcat5\endcsname\z@ + \csname ltj@kcat6\endcsname\z@} \protected\def\ltj@allalchar{\relax \csname ltj@kcat0\endcsname="7FFFFFFF %" \csname ltj@kcat1\endcsname="7FFFFFFF %" @@ -463,18 +488,18 @@ %%%%%%%% \ltjdeclarealtfont<base_font_cs><alt_font_cs>{100-200,3000-,5000,...} % <base_font_cs> の 第 3 引数の文字達は <alt_font_cs> で組む % いつも global -\def\ltj@@getjfontnumber#1{% result in \ltj@tempcntc +\def\ltj@@getjfontnumber#1{% result in \ltj@tempcntc \ltj@reset@globaldefs - \begingroup\ltj@curjfnt=-1\relax - #1\directlua{luatexja.__temp = \the\ltj@curjfnt}\endgroup + \begingroup\ltj@curjfnt\m@ne\ltj@curtfnt\m@ne\relax + #1\directlua{luatexja.__temp = -(\the\ltj@curjfnt)*(\the\ltj@curtfnt)}\endgroup \ltj@tempcntc=\directlua{tex.sprint(luatexja.__temp)}\relax - \ifnum\ltj@tempcntc=-1 + \ifnum\ltj@tempcntc=\m@ne \@PackageError{luatexja-core}% {\string#1 is not a control sequence that represents \MessageBreak - a Japanese font}{I'll use the current Japanese font instead.^^J}% + a Japanese font}{I'll use the current horizontal Japanese font instead.^^J}% \ltj@tempcntc=\ltj@curjfnt \fi\ltj@restore@globaldefs} - + \protected\def\ltjdeclarealtfont#1#2#3{% {\ltj@@getjfontnumber#1\@tempcnta=\ltj@tempcntc% \@tempcnta: 基底フォント \ltj@@getjfontnumber#2% @@ -503,6 +528,174 @@ {\ltj@@getjfontnumber#1% \directlua{luatexja.jfont.clear_alt_font(\the\ltj@tempcntc)}}\ignorespaces} + +%%%%%%%% \yoko, \tate,\dtou +\protected\def\tate{% + \directlua{luatexja.direction.set_list_direction(3, 'tate')}% +} +\protected\def\yoko{% + \directlua{luatexja.direction.set_list_direction(4, 'yoko')}% +} +\protected\def\dtou{% + \directlua{luatexja.direction.set_list_direction(1, 'dtou')}% +} +\protected\def\utod{% 「縦数式ディレクション」 + \directlua{luatexja.direction.set_list_direction(11, 'utod')}% +} +\define@key[ltj]{japaram}{direction}{%% always local + \directlua{luatexja.direction.set_list_direction(1, 'ltjsetparameter')}% +} + +\yoko + +%%%% insert +\let\orig@insert=\insert +\protected\def\insert{\begingroup\afterassignment\ltj@@insert@A\ltj@tempcnta} +\protected\def\ltj@@insert@A{\orig@insert\ltj@tempcnta\bgroup + \aftergroup\ltj@@insert@B\let\next} +\protected\def\ltj@@insert@B{\directlua{luatexja.direction.populate_insertion_dir_whatsit()}\endgroup} + +%%%% vadjust +\let\ltj@@orig@vadjust=\vadjust +\protected\def\vadjust{% + \ltj@@orig@vadjust\bgroup + \directlua{luatexja.direction.set_list_direction_hook('adj')}% + \aftergroup\ltj@@vadjust@check@dir\let\next} +\protected\def\ltj@@vadjust@check@dir{% + \directlua{luatexja.direction.check_adjust_direction()}% +} + +%%%% \hbox, \vbox, \vtop +\setbox\z@\hbox{% + $\directlua{% This value depends on the version of LuaTeX. + luatexja.stack.mmode = -tex.nest[tex.nest.ptr].mode + }$% +} +\setbox\z@\box\voidb@x +\ifltj@everyhook@avail% using everyhook package + \PushPreHook{hbox}{% + \directlua{luatexja.direction.set_list_direction_hook()}% + \aftergroup\ltj@@reset@badness + } + \PushPreHook{vbox}{% + \directlua{luatexja.direction.set_list_direction_hook()}% + \aftergroup\ltj@@reset@badness + } +\else + \let\ltj@@everyhbox=\everyhbox\let\ltj@@everyvbox=\everyvbox + \newtoks\ltj@@i@everyhbox\newtoks\ltj@@i@everyvbox + \let\everyhbox=\ltj@@i@everyhbox\let\everyvbox=\ltj@@i@everyvbox + \ltj@@everyhbox{% + \directlua{luatexja.direction.set_list_direction_hook()}% + \aftergroup\ltj@@reset@badness + \the\ltj@@i@everyhbox} + \ltj@@everyvbox{% + \directlua{luatexja.direction.set_list_direction_hook()}% + \aftergroup\ltj@@reset@badness + \the\ltj@@i@everyvbox} +\fi + +\protected\def\ltj@@reset@badness{% + \directlua{% + if luatexja.global_temp then + tex.hbadness= tex.hbadness or luatexja.hbadness_temp + tex.vbadness= tex.vbadness or luatexja.vbadness_temp + tex.globaldefs= luatexja.global_temp or tex.globaldefs + end + }% +} +\AtBeginShipout{\directlua{luatexja.direction.finalize()}} + +%%%% \raise, \lower, \moveleft, \moveright +\let\ltj@@orig@raise=\raise +\let\ltj@@orig@lower=\lower +\protected\def\raise{\ltj@reset@globaldefs\afterassignment\ltj@@raise\ltj@tempdima} +\protected\def\lower{\ltj@reset@globaldefs\afterassignment\ltj@@raise\ltj@tempdima-} +\protected\def\ltj@@raise{% + \ltj@restore@globaldefs + \edef\ltj@@raise@a{% + \noexpand\directlua{luatexja.direction.raise_box()}% + \ltj@@orig@raise\the\ltj@tempdima\noexpand\box\ltj@afbox + }\ltj@afterbox\ltj@@raise@a} +\let\ltj@@orig@moveleft=\moveleft +\let\ltj@@orig@moveright=\moveright +\protected\def\moveleft{\ltj@reset@globaldefs\afterassignment\ltj@@moveleft\ltj@tempdima} +\protected\def\moveright{\ltj@reset@globaldefs\afterassignment\ltj@@moveleft\ltj@tempdima-} +\protected\def\ltj@@moveleft{% + \ltj@restore@globaldefs + \edef\ltj@@moveleft@a{% + \noexpand\directlua{luatexja.direction.raise_box()}% + \ltj@@orig@moveleft\the\ltj@tempdima\noexpand\box\ltj@afbox + }\ltj@afterbox\ltj@@moveleft@a} + +%%%% \vcenter +\let\ltj@@orig@vcenter=\vcenter +\protected\def\vcenter{\ltj@afterbox\ltj@@vcenter\vbox} +\protected\def\ltj@@vcenter{% + \directlua{luatexja.direction.raise_box()}% + \ltj@@orig@vcenter{\box\ltj@afbox}% +} + +%%%% \unhbox and \unvbox +\long\def \@gobbletwo #1#2{} +\let\ltj@@orig@unhbox=\unhbox +\let\ltj@@orig@unvbox=\unvbox +\protected\def\unhbox{\ltj@reset@globaldefs\afterassignment\ltj@@unhbox\ltj@tempcnta} +\protected\def\unvbox{\ltj@reset@globaldefs\afterassignment\ltj@@unvbox\ltj@tempcnta} +\protected\def\ltj@@unhbox{% + \directlua{luatexja.direction.unbox_check_dir()}% + \ltj@@orig@unhbox\ltj@tempcnta} +\protected\def\ltj@@unvbox{% + \directlua{luatexja.direction.unbox_check_dir()}% + \ltj@@orig@unvbox\ltj@tempcnta} +\let\ltj@@orig@unhcopy=\unhcopy +\let\ltj@@orig@unvcopy=\unvcopy +\protected\def\unhcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unhcopy\ltj@tempcnta} +\protected\def\unvcopy{\ltj@reset@globaldefs\afterassignment\ltj@@unvcopy\ltj@tempcnta} +\protected\def\ltj@@unhcopy{% + \directlua{luatexja.direction.unbox_check_dir(true)}% + \ltj@@orig@unhcopy\ltj@tempcnta + \directlua{luatexja.direction.uncopy_restore_whatsit()}} +\protected\def\ltj@@unvcopy{% + \directlua{luatexja.direction.unbox_check_dir(true)}% + \ltj@@orig@unvcopy\ltj@tempcnta + \directlua{luatexja.direction.uncopy_restore_whatsit()}} + +%%%% lastbox +\let\ltj@@orig@lastbox=\lastbox +\protected\def\lastbox{% + \directlua{luatexja.direction.lastbox_hook()}\ltj@@orig@lastbox +} + +%%%%%%%% \ltjgetwd<box_num> etc. +\def\ltj@@getwd{% + \directlua{luatexja.direction.get_box_dim('width', luatexja.token.scan_int())}} +\def\ltj@@getht{% + \directlua{luatexja.direction.get_box_dim('height', luatexja.token.scan_int())}} +\def\ltj@@getdp{% + \directlua{luatexja.direction.get_box_dim('depth', luatexja.token.scan_int())}} +\let\ltjgetwd=\ltj@@getwd\let\ltjgetht=\ltj@@getht\let\ltjgetdp=\ltj@@getdp + +%%%%%%%% \ltjsetwd<box_num>=<dimen> etc. +\protected\def\ltjsetwd{\begingroup + \ltj@reset@globaldefs\afterassignment\ltj@@setwd@a\ltj@tempcnta} +\def\ltj@@setwd@a{\afterassignment\ltj@@setwd@b\ltj@tempdima} +\def\ltj@@setwd@b{% + \directlua{luatexja.direction.set_box_dim('width')}% + \ltj@restore@globaldefs\endgroup} +\protected\def\ltjsetht{\begingroup + \ltj@reset@globaldefs\afterassignment\ltj@@setht@a\ltj@tempcnta} +\def\ltj@@setht@a{\afterassignment\ltj@@setht@b\ltj@tempdima} +\def\ltj@@setht@b{% + \directlua{luatexja.direction.set_box_dim('height')}% + \ltj@restore@globaldefs\endgroup} +\protected\def\ltjsetdp{\begingroup + \ltj@reset@globaldefs\afterassignment\ltj@@setdp@a\ltj@tempcnta} +\def\ltj@@setdp@a{\afterassignment\ltj@@setdp@b\ltj@tempdima} +\def\ltj@@setdp@b{% + \directlua{luatexja.direction.set_box_dim('depth')}% + \ltj@restore@globaldefs\endgroup} + %%------------------ Load module for the format \ifltj@in@latex %<*LaTeX> @@ -514,12 +707,13 @@ \newluatexcatcodetable\ltj@temp@cctb \def\ltj@overwrite@catcodetable#1{% \setluatexcatcodetable\ltj@temp@cctb{\luatexcatcodetable#1}% - \setluatexcatcodetable#1{\luatexcatcodetable\ltj@temp@cctb\catcode"FFFFF=14}% + \setluatexcatcodetable#1{\luatexcatcodetable\ltj@temp@cctb\catcode"FFFFF=14}%" } \ltj@overwrite@catcodetable\CatcodeTableLaTeX \ltj@overwrite@catcodetable\CatcodeTableLaTeXAtLetter \ltj@overwrite@catcodetable\CatcodeTableExpl + %%------------------ all done \ltj@core@AtEnd \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua index 0e9f64ee310..2125969ec3e 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua @@ -13,12 +13,22 @@ function luatexja.load_lua(fn) local found = kpse.find_file(fn, 'tex') if not found then tex.error("LuaTeX-ja error: File `" .. fn .. "' not found") - else + else texio.write_nl('(' .. found .. ')') dofile(found) end end +-- check token library +if newtoken then + luatexja.token = newtoken +else + local luatex_version = status.list().luatex_version + if luatex_version >80 then + luatexja.token = token + end +end + --- 以下は全ファイルで共有される定数 local icflag_table = {} luatexja.icflag_table = icflag_table @@ -58,65 +68,45 @@ luatexja.userid_table = userid_table userid_table.IHB = luatexbase.newuserwhatsitid('inhibitglue', 'luatexja') -- \inhibitglue userid_table.STCK = luatexbase.newuserwhatsitid('stack_marker', 'luatexja') -- スタック管理 userid_table.BPAR = luatexbase.newuserwhatsitid('begin_par', 'luatexja') -- 「段落始め」 - ------------------------------------------------------------------------- --- FIX node.remove ------------------------------------------------------------------------- -do - local node_remove, node_next, node_prev = node.remove, node.next, node.prev - function luatexja.node_remove (head, current) - if head==current then - local q, r = node_next(current), node_prev(current) - if q then q.prev = r end - if r and node_next(r)==current then - r.next = q - end - return q, q - else - return node_remove(head, current) - end - end - local Dnode = node.direct or node - if Dnode~=node then - local Dnode_remove, setfield = Dnode.remove, Dnode.setfield - local Dnode_next, Dnode_prev = Dnode.getnext, Dnode.getprev - function luatexja.Dnode_remove (head, current) - if head==current then - local q, r = Dnode_next(current), Dnode_prev(current) - if q then setfield(q, 'prev', r) end - if r and Dnode_next(r) == current then - setfield(r, 'next', q) - end - return q, q - else - return Dnode_remove(head, current) - end - end - else - luatexja.Dnode_remove = luatexja.node_remove - end -end - +userid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向 + +local dir_table = {} +luatexja.dir_table = dir_table +dir_table.dir_dtou = 1 +dir_table.dir_tate = 3 +dir_table.dir_yoko = 4 +dir_table.dir_math_mod = 8 +dir_table.dir_node_auto = 128 -- 組方向を合わせるために自動で作られたもの +dir_table.dir_node_manual = 256 -- 寸法代入によって作られたもの +dir_table.dir_utod = dir_table.dir_tate + dir_table.dir_math_mod + -- 「縦数式ディレクション」 in pTeX --- 定義終わり local load_module = luatexja.load_module load_module('base'); local ltjb = luatexja.base load_module('rmlgbm'); local ltjr = luatexja.rmlgbm -- must be 1st + +if luatexja_debug then load_module('debug') end + load_module('charrange'); local ltjc = luatexja.charrange +load_module('stack'); local ltjs = luatexja.stack +load_module('direction'); local ltjd = luatexja.direction -- +1 hlist +1 attr_list load_module('jfont'); local ltjf = luatexja.jfont load_module('inputbuf'); local ltji = luatexja.inputbuf -load_module('stack'); local ltjs = luatexja.stack load_module('pretreat'); local ltjp = luatexja.pretreat -load_module('jfmglue'); local ltjj = luatexja.jfmglue load_module('setwidth'); local ltjw = luatexja.setwidth +load_module('jfmglue'); local ltjj = luatexja.jfmglue -- +1 glue +1 gs +1 attr_list load_module('math'); local ltjm = luatexja.math load_module('tangle'); local ltjb = luatexja.base + local attr_jchar_class = luatexbase.attributes['ltj@charclass'] +local attr_jchar_code = luatexbase.attributes['ltj@charcode'] local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] local attr_yablshift = luatexbase.attributes['ltj@yablshift'] local attr_icflag = luatexbase.attributes['ltj@icflag'] local attr_uniqid = luatexbase.attributes['ltj@uniqid'] +local attr_dir = luatexbase.attributes['ltj@dir'] local cat_lp = luatexbase.catcodetables['latex-package'] -- Three aux. functions, bollowed from tex.web @@ -127,14 +117,14 @@ local floor = math.floor local function print_scaled(s) local out='' local delta=10 - if s<0 then + if s<0 then out=out..'-'; s=-s end out=out..tostring(floor(s/unity)) .. '.' s=10*(s%unity)+5 repeat if delta>unity then s=s+32768-50000 end - out=out .. tostring(floor(s/unity)) + out=out .. tostring(floor(s/unity)) s=10*(s%unity) delta=delta*10 until s<=delta @@ -148,7 +138,7 @@ local function print_glue(d,order) while order>1 do out=out..'l'; order=order-1 end - else + else out=out..'pt' end return out @@ -167,22 +157,28 @@ end ------------------------------------------------------------------------ --- CODE FOR GETTING/SETTING PARAMETERS +-- CODE FOR GETTING/SETTING PARAMETERS ------------------------------------------------------------------------ -- EXT: print parameters that don't need arguments do luatexja.unary_pars = { - yalbaselineshift = function(t) + yalbaselineshift = function(t) return print_scaled(tex.getattribute('ltj@yablshift'))..'pt' end, - yjabaselineshift = function(t) + yjabaselineshift = function(t) return print_scaled(tex.getattribute('ltj@ykblshift'))..'pt' end, - kanjiskip = function(t) + talbaselineshift = function(t) + return print_scaled(tex.getattribute('ltj@tablshift'))..'pt' + end, + tjabaselineshift = function(t) + return print_scaled(tex.getattribute('ltj@tkblshift'))..'pt' + end, + kanjiskip = function(t) return print_spec(ltjs.get_stack_skip(stack_table_index.KSK, t)) end, - xkanjiskip = function(t) + xkanjiskip = function(t) return print_spec(ltjs.get_stack_skip(stack_table_index.XSK, t)) end, jcharwidowpenalty = function(t) @@ -205,7 +201,15 @@ do elseif f == math.two_add then r = 'both' end return r - end + end, + direction = function() + local v = ltjd.get_dir_count() + if math.abs(tex.nest[tex.nest.ptr].mode) == ltjs.mmode and v == dir_table.dir_tate then + v = dir_table.dir_utod + end + return v + end, + adjustdir = ltjd.get_adjust_dir_count, } local unary_pars = luatexja.unary_pars @@ -213,6 +217,7 @@ do if unary_pars[k] then tex.write(tostring(unary_pars[k](tex.getcount('ltj@@stack')))) end + ltjb.stop_time_measure('get_par') end end @@ -235,15 +240,15 @@ do return (c<0) and 1 or ltjc.get_range_setting(c) end, prebreakpenalty = function(c, t) - return ltjs.get_stack_table(stack_table_index.PRE + return ltjs.get_stack_table(stack_table_index.PRE + ltjb.in_unicode(c, true), 0, t) end, postbreakpenalty = function(c, t) - return ltjs.get_stack_table(stack_table_index.POST + return ltjs.get_stack_table(stack_table_index.POST + ltjb.in_unicode(c, true), 0, t) end, kcatcode = function(c, t) - return ltjs.get_stack_table(stack_table_index.KCAT + return ltjs.get_stack_table(stack_table_index.KCAT + ltjb.in_unicode(c, false), 0, t) end, chartorange = function(c, t) @@ -253,14 +258,25 @@ do return ltjs.get_stack_table(stack_table_index.XSP + ltjb.in_unicode(c, true), 3, t) end, + boxdir = function(c, t) + if type(c)~='number' or c<0 or c>65535 then + ltjb.package_error('luatexja', + 'Bad register code (' .. tostring(c) .. ')', + 'A register must be between 0 and 65535.\n'.. + 'I changed this one to zero.') + c=0 + end + return ltjd.get_register_dir(c) + end, } - local binary_pars = luatexja.binary_pars + local binary_pars = luatexja.binary_pars binary_pars.alxspmode = binary_pars.jaxspmode function luatexja.ext_get_parameter_binary(k,c) if binary_pars[k] then tex.write(tostring(binary_pars[k](c,tex.getcount('ltj@@stack')))) end + ltjb.stop_time_measure('get_par') end end @@ -269,65 +285,64 @@ function luatexja.ext_print_global() if luatexja.isglobal=='global' then tex.sprint(cat_lp, '\\global') end end + -- main process do + local start_time_measure, stop_time_measure + = ltjb.start_time_measure, ltjb.stop_time_measure local Dnode = node.direct or node local nullfunc = function (n) return n end local to_node = (Dnode ~= node) and Dnode.tonode or nullfunc local to_direct = (Dnode ~= node) and Dnode.todirect or nullfunc + local ensure_tex_attr = ltjb.ensure_tex_attr + -- mode = true iff main_process is called from pre_linebreak_filter - local function main_process(head, mode, dir) - tex.setattribute('global', attr_icflag, 0) - local p = to_direct(head) - p = ltjj.main(p,mode) - if p then p = ltjw.set_ja_width(p, dir) end - return to_node(p) + local function main_process(head, mode, dir, gc) + ensure_tex_attr(attr_icflag, 0) + if gc == 'fin_row' then return head + else + --luatexja.ext_show_node_list(head, 'T> ', print) + start_time_measure('jfmglue') + local p = ltjj.main(to_direct(head),mode, dir) + stop_time_measure('jfmglue') + return to_node(p) + end end local function adjust_icflag(h) -- kern from luaotfload will have icflag = 1 -- (same as italic correction) - tex.setattribute('global', attr_icflag, 1) + ensure_tex_attr(attr_icflag, 1) return h end -- callbacks - luatexbase.add_to_callback( - 'pre_linebreak_filter', + 'pre_linebreak_filter', function (head,groupcode) - return main_process(head, true, tex.textdir) + return main_process(head, true, tex.textdir, groupcode) end,'ltj.pre_linebreak_filter', luatexbase.priority_in_callback('pre_linebreak_filter', 'luaotfload.node_processor') + 1) luatexbase.add_to_callback( - 'hpack_filter', + 'hpack_filter', function (head,groupcode,size,packtype, dir) - return main_process(head, false, dir) + return main_process(head, false, dir, groupcode) end,'ltj.hpack_filter', luatexbase.priority_in_callback('hpack_filter', 'luaotfload.node_processor') + 1) - luatexbase.add_to_callback('pre_linebreak_filter', adjust_icflag, 'adjust_icflag', 1) - luatexbase.add_to_callback('hpack_filter', adjust_icflag, 'adjust_icflag', 1) + luatexbase.add_to_callback('pre_linebreak_filter', adjust_icflag, 'ltj.adjust_icflag', 1) + luatexbase.add_to_callback('hpack_filter', adjust_icflag, 'ltj.adjust_icflag', 1) end --- define_font -do - local otfl_fdr = fonts.definers.read - local ltjr_font_callback = ltjr.font_callback - function luatexja.font_callback(name, size, id) - return ltjf.font_callback( - name, size, id, - function (name, size, id) return ltjr_font_callback(name, size, id, otfl_fdr) end - ) - end - luatexbase.add_to_callback('define_font',luatexja.font_callback,"luatexja.font_callback", 1) +-- cleanup process +function luatexja.ext_cleanup() + ltjf.cleanup_size_cache() + ltjd.remove_end_whatsit() end - - -- debug do @@ -352,32 +367,40 @@ local function get_attr_icflag(p) return (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG end -local debug_depth +local prefix, inner_depth -local function debug_show_node_X(p,print_fn) - local k = debug_depth +local function debug_show_node_X(p,print_fn, limit) + local k = prefix local s local pt=node_type(p.id) - local base = debug_depth .. string.format('%X', get_attr_icflag(p)) + local base = prefix .. string.format('%X', get_attr_icflag(p)) .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' ' if pt == 'glyph' then - s = base .. ' ' .. utf.char(p.char) .. ' ' .. tostring(p.font) - .. ' (' .. print_scaled(p.height) .. '+' + s = base .. ' ' .. utf.char(p.char) .. ' ' + .. tostring(p.font) + .. ' (' .. print_scaled(p.height) .. '+' .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) print_fn(s) - elseif pt=='hlist' or pt=='vlist' then - s = base .. '(' .. print_scaled(p.height) .. '+' - .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) .. p.dir - if p.shift~=0 then + elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then + if pt=='ins' then + s = base .. '(' .. print_scaled(p.height) .. '+' + .. print_scaled(p.depth) .. ')' + .. ', dir=' .. tostring(node.has_attribute(p, attr_dir)) + else + s = base .. '(' .. print_scaled(p.height) .. '+' + .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) + .. ', dir=' .. tostring(node.has_attribute(p, attr_dir)) + end + if (p.shift or 0)~=0 then s = s .. ', shifted ' .. print_scaled(p.shift) end - if p.glue_sign >= 1 then + if p.glue_set and p.glue_sign ==2 or ( p.glue_sign==1 and p.glue_set>0) then s = s .. ' glue set ' if p.glue_sign == 2 then s = s .. '-' end s = s .. tostring(floor(p.glue_set*10000)/10000) - if p.glue_order == 0 then - s = s .. 'pt' - else + if p.glue_order == 0 then + s = s .. 'pt' + else s = s .. 'fi' for i = 2, p.glue_order do s = s .. 'l' end end @@ -385,14 +408,23 @@ local function debug_show_node_X(p,print_fn) if get_attr_icflag(p) == icflag_table.PACKED then s = s .. ' (packed)' end - print_fn(s); debug_depth=debug_depth.. '.' - for q in node.traverse(p.head) do - debug_show_node_X(q, print_fn) + print_fn(s); + local bid = inner_depth + prefix, inner_depth = prefix.. '.', inner_depth + 1 + if inner_depth < limit then + for q in node.traverse(p.head) do + debug_show_node_X(q, print_fn, limit) + end end - debug_depth=k + prefix=k + elseif pt=='rule' then + s = base .. '(' .. print_scaled(p.height) .. '+' + .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width) + .. ', dir=' .. tostring(node.has_attribute(p, attr_dir)) + print_fn(s) elseif pt == 'glue' then s = base .. ' ' .. print_spec(p.spec) - if get_attr_icflag(p)>icflag_table.KINSOKU + if get_attr_icflag(p)>icflag_table.KINSOKU and get_attr_icflag(p)<icflag_table.KANJI_SKIP then s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')' elseif get_attr_icflag(p)==icflag_table.KANJI_SKIP then @@ -413,7 +445,7 @@ local function debug_show_node_X(p,print_fn) s = s .. ' (italic correction)' -- elseif get_attr_icflag(p)==ITALIC then -- s = s .. ' (italic correction)' - elseif get_attr_icflag(p)>icflag_table.KINSOKU + elseif get_attr_icflag(p)>icflag_table.KINSOKU and get_attr_icflag(p)<icflag_table.KANJI_SKIP then s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')' end @@ -425,44 +457,60 @@ local function debug_show_node_X(p,print_fn) end print_fn(s) elseif pt == 'whatsit' then - s = base .. ' subtype: ' .. tostring(p.subtype) + s = base if p.subtype==sid_user then - if p.type ~= 110 then - s = s .. ' user_id: ' .. p.user_id .. ' ' .. p.value + local t = tostring(p.user_id) .. ' (' .. + luatexbase.get_user_whatsit_name(p.user_id) .. ') ' + if p.type ~= 110 then + s = s .. ' userid:' .. t .. p.value print_fn(s) else - s = s .. ' user_id: ' .. p.user_id .. ' (node list)' + s = s .. ' userid:' .. t .. '(node list)' + if p.user_id==userid_table.DIR then + s = s .. ' dir: ' .. tostring(node.has_attribute(p, attr_dir)) + end print_fn(s) - local q = p.value - debug_depth=debug_depth.. '.' - while q do - debug_show_node_X(q, print_fn); q = node_next(q) - end - debug_depth=k + local bid = inner_depth + prefix, inner_depth =prefix.. '.', inner_depth + 1 + if inner_depth < limit then + for q in node.traverse(p.value) do + debug_show_node_X(q, print_fn, limit) + end + end + prefix, inner_depth = k, bid end else - s = s .. node.subtype(p.subtype); print_fn(s) + s = s .. node.subtype(p.subtype) + if p.subtype==1 then + s = s .. ' stream=' .. p.stream + print_fn(s) + for i=1,#p.data do + print_fn(s .. ' [' .. i .. '] = ' .. tostring(token.command_name(p.data[i]))) + end + else + print_fn(s) + end end -------- math node -------- elseif pt=='noad' then s = base ; print_fn(s) if p.nucleus then - debug_depth = k .. 'N'; debug_show_node_X(p.nucleus, print_fn); + prefix = k .. 'N'; debug_show_node_X(p.nucleus, print_fn); end if p.sup then - debug_depth = k .. '^'; debug_show_node_X(p.sup, print_fn); + prefix = k .. '^'; debug_show_node_X(p.sup, print_fn); end if p.sub then - debug_depth = k .. '_'; debug_show_node_X(p.sub, print_fn); + prefix = k .. '_'; debug_show_node_X(p.sub, print_fn); end - debug_depth = k; + prefix = k; elseif pt=='math_char' then s = base .. ' fam: ' .. p.fam .. ' , char = ' .. utf.char(p.char) print_fn(s) elseif pt=='sub_box' or pt=='sub_mlist' then print_fn(base) if p.head then - debug_depth = k .. '.'; + prefix = k .. '.'; for q in node.traverse(p.head) do debug_show_node_X(q, print_fn) end @@ -472,22 +520,24 @@ local function debug_show_node_X(p,print_fn) end p=node_next(p) end -function luatexja.ext_show_node_list(head,depth,print_fn) - debug_depth = depth +function luatexja.ext_show_node_list(head,depth,print_fn, lim) + prefix = depth + inner_depth = 0 if head then while head do - debug_show_node_X(head, print_fn); head = node_next(head) + debug_show_node_X(head, print_fn, lim or 1/0); head = node_next(head) end else - print_fn(debug_depth .. ' (null list)') + print_fn(prefix .. ' (null list)') end end -function luatexja.ext_show_node(head,depth,print_fn) - debug_depth = depth +function luatexja.ext_show_node(head,depth,print_fn, lim) + prefix = depth + inner_depth = 0 if head then - debug_show_node_X(head, print_fn) + debug_show_node_X(head, print_fn, lim or 1/0) else - print_fn(debug_depth .. ' (null list)') + print_fn(prefix .. ' (null list)') end end diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty index a6ede22dcb8..29a839eb00b 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.sty @@ -48,6 +48,7 @@ \input luatexja-compat.sty % \fi %</LaTeX> +\directlua{luatexja.base.start_time_measure('RUN')} %% all done \ltj@AtEnd \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty index 2d8afbd512a..94254e77222 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty @@ -6,7 +6,18 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{lltjcore}[2013/05/14 Patch to LaTeX2e Kernel for LuaTeX-ja] -\makeatletter +\def\cleardoublepage{\clearpage\if@twoside + \ifodd\c@page + \ifnum\ltjgetparameter{direction}=3 + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \else + \ifnum\ltjgetparameter{direction}=4 + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \fi\fi} \newif\iftombow \tombowfalse \newif\iftombowdate \tombowdatetrue \newdimen\@tombowwidth @@ -89,7 +100,7 @@ \newdimen\@@topmargin \def\@outputpage{% \begingroup % the \endgroup is put in by \aftergroup - \iftdir + \ifnum\ltjgetparameter{direction}=4\else \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ \fi \let \protect \noexpand @@ -106,11 +117,11 @@ \fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot - \iftdir\let\@themargin\evensidemargin + \ifnum\ltjgetparameter{direction}=3 \let\@themargin\evensidemargin \else\let\@themargin\oddsidemargin\fi \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot - \iftdir\let\@themargin\oddsidemargin + \ifnum\ltjgetparameter{direction}=3 \let\@themargin\oddsidemargin \else\let\@themargin\evensidemargin\fi \fi\fi \@@topmargin\topmargin @@ -153,7 +164,35 @@ \stepcounter{page}% \let\firstmark\botmark } - +\renewcommand\@makefnmark{\hbox{% + \unless\ifnum\ltjgetparameter{direction}=3 + \@textsuperscript{\normalfont\@thefnmark}% + \else\hbox{\yoko \@textsuperscript{\normalfont\@thefnmark}}\fi}} +\long\def\@footnotetext#1{% + \ifcase\ltjgetparameter{direction}% + \or \let\@tempa\dtou + \or\or\let\@tempa\tate + \or \let\@tempa\yoko + \else \let\@tempa\utod + \fi + \insert\footins{\@tempa% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \unless\ifnum\ltjgetparameter{direction}=3 \@makefnmark + \else\hbox to\z@{\hskip-.25\zw\raise.9\zh\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} \def\@setref#1#2#3{% \ifx#1\relax \protect\G@refundefinedtrue @@ -169,10 +208,50 @@ \verb@eol@error \let\do\@makeother \dospecials \verbatim@font\@noligs \@ifstar\@sverb\@verb} -\def\@makefnmark{\hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}} \fi \gdef\@stopfield{\null\color@endgroup\egroup} \newcount\hour \newcount\minute +%%% AtBeginDvi +\def \AtBeginDvi #1{% + \global \setbox \@begindvibox + \vbox{\yoko\unvbox \@begindvibox #1}% +} + +%%% @makecol +\gdef \@makecol {% + \ifvoid\footins + \setbox\@outputbox \box\@cclv + \else + \setbox\@outputbox \vbox {% + \boxmaxdepth \@maxdepth + \unvbox \@cclv + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \fi + \let\@elt\relax + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% + \@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox + \ifnum\ltjgetparameter{direction}=4\else\hskip\z@\fi %%% LuaTeX-ja + \vskip -\dimen@ + \@textbottom + }% + \fi + \global \maxdepth \@maxdepth +} + \endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty index 4363948d8e4..7eaf0c41bed 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty @@ -1,19 +1,22 @@ % % lltjdefs.sty -% +% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjdefs}[2014/09/19 Default font settings of LuaTeX-ja] +\ProvidesPackage{lltjdefs}[2015/02/22 Default font settings of LuaTeX-ja] \def\ltj@stdmcfont{IPAExMincho} \def\ltj@stdgtfont{IPAExGothic} -\InputIfFileExists{luatexja.cfg}{}{} +\InputIfFileExists{luatexja.cfg}{}{% + \PackageInfo{lltjdefs}{Cannot find file `luatexja.cfg'\@gobble}% +} \DeclareKanjiEncodingDefaults{}{} \DeclareErrorKanjiFont{JY3}{mc}{m}{n}{10} \DeclareYokoKanjiEncoding{JY3}{}{} \DeclareKanjiSubstitution{JY3}{mc}{m}{n} -%JT3 +\DeclareTateKanjiEncoding{JT3}{}{} +\DeclareKanjiSubstitution{JT3}{mc}{m}{n} \newcommand\mcdefault{mc} \newcommand\gtdefault{gt} @@ -22,7 +25,6 @@ \newcommand\kanjifamilydefault{\mcdefault} \newcommand\kanjiseriesdefault{\mddefault} \newcommand\kanjishapedefault{\updefault} -\kanjiencoding{JY3} \DeclareKanjiFamily{JY3}{mc}{} \DeclareFontShape{JY3}{mc}{m}{n}{<-> s*[0.962216] \ltj@stdmcfont:jfm=ujis}{} @@ -31,6 +33,14 @@ \DeclareFontShape{JY3}{mc}{bx}{n}{<-> ssub*gt/m/n}{} \DeclareFontShape{JY3}{gt}{bx}{n}{<-> ssub*gt/m/n}{} +\DeclareKanjiFamily{JT3}{mc}{} +\DeclareFontShape{JT3}{mc}{m}{n}{<-> s*[0.962216] \ltj@stdmcfont:jfm=ujisv}{} +\DeclareKanjiFamily{JT3}{gt}{} +\DeclareFontShape{JT3}{gt}{m}{n}{<-> s*[0.962216] \ltj@stdgtfont:jfm=ujisv}{} +\DeclareFontShape{JT3}{mc}{bx}{n}{<-> ssub*gt/m/n}{} +\DeclareFontShape{JT3}{gt}{bx}{n}{<-> ssub*gt/m/n}{} +\KanjiEncodingPair{JY3}{JT3} + \kanjiencoding{JY3}\selectfont\adjustbaseline \DeclareTextFontCommand{\textmc}{\mcfamily} @@ -44,20 +54,20 @@ \DeclareSymbolFontAlphabet{\mathmc}{mincho} \DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n} -\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} -\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} +\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} +\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} \ltjdefcharrange{3}{% "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF} \ltjdefcharrange{4}{% - "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, - "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, + "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, + "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese -\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} +\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} \ltjdefcharrange{6}{% - "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, + "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, "4E00-"9FFF, "F900-"FAFF, "FE10-"FE6F, "20000-"2FFFF, "E0100-"E01EF} \ltjdefcharrange{7}{ - "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, + "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, "AC00-"D7FF} \ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7} \ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}} @@ -72,7 +82,7 @@ MIDDLE -\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} +\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF} % 2 "80-"FF num = 471/128 name = Latin-1 Supplement % 3 "100-"17F num = 484/128 name = Latin Extended-A % 4 "180-"24F num = 87/208 name = Latin Extended-B @@ -81,7 +91,7 @@ MIDDLE % 7 "300-"36F num = 98/112 name = Combining Diacritical Marks % 64 "1E00-"1EFF num = 16/256 name = Latin Extended Additional -\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} +\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF} % Greek and Coptic, Cyrillic, Greek Extended \ltjdefcharrange{3}{% @@ -108,12 +118,12 @@ MIDDLE NEGATIVE \ltjdefcharrange{4}{% - "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, - "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, + "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF, + "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F, "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} } % non-Japanese -\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} +\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF} % Surrogates, Tags % 208 "F0000-"FFFFF num = 0/65536 name = Supplementary Private Use Area-A % 209 "100000-"10FFFF num = 0/65536 name = Supplementary Private Use Area-B @@ -122,7 +132,7 @@ POSITIVE % Japanese \ltjdefcharrange{6}{% - "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, + "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, "4E00-"9FFF, "F900-"FAFF, "FE10-"FE6F, "20000-"2FFFF, "E0100-"E01EF} % 77 "2460-"24FF num = 150/160 name = Enclosed Alphanumerics % 98 "2E80-"2EFF num = 21 name = CJK Radicals Supplement @@ -143,7 +153,7 @@ POSITIVE % "E0000-"E01EF Variation Selectors Supplement \ltjdefcharrange{7}{ - "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, + "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F, "AC00-"D7FF} % 35 "1100-"11FF num = 1 name = Hangul Jamo % 99 "2F00-"2FDF num = 0/224 name = Kangxi Radicals diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty index 65d86aceced..e53384d88cf 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjfont}[2014/01/23 Patch to NFSS2 for LuaTeX-ja] +\ProvidesPackage{lltjfont}[2014/10/29 Patch to NFSS2 for LuaTeX-ja] \let\k@encoding\@empty \let\ck@encoding\@empty @@ -28,14 +28,17 @@ \ifdefined\cHT\else\newdimen\cHT\fi %\let\afont\font +\newbox\dstrutbox \newbox\tstrutbox \newbox\zstrutbox \def\strut{\relax - \ifydir + \ifnum\ltjgetparameter{direction}=1 % dtou + \ifmmode\copy\dstrutbox\else\unhcopy\dstrutbox\fi + \else\ifnum\ltjgetparameter{direction}=4 % yoko \ifmmode\copy\strutbox\else\unhcopy\strutbox\fi - \else + \else % tate and utod \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi - \fi + \fi\fi } \def\tstrut{\relax\hbox{\tate \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi}} @@ -201,13 +204,13 @@ \usekanji{#2}{#3}{#4}{#5}% \global\let#1\getjfont \else - %\directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{#2}')}\ifin@% - % \usekanji{#2}{#3}{#4}{#5}% - % \global\let#1\gettfont - %\else + \directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{#2}')}\ifin@% + \usekanji{#2}{#3}{#4}{#5}% + \global\let#1\gettfont + \else \useroman{#2}{#3}{#4}{#5}% \global\expandafter\let\expandafter#1\the\font - %\fi + \fi \fi \endgroup } @@ -268,18 +271,30 @@ \ltj@@EverySelectfont@Init } \def\ltj@selectfont@patch{% - \let\tmp@error@fontshape\error@fontshape + \directlua{luatexja.base.start_time_measure('selectfont')}% + \let\tmp@error@fontshape\error@fontshape \let\error@fontshape\error@kfontshape \directlua{luatexja.jfont.is_kyenc('\luatexluaescapestring{\k@encoding}')}\ifin@% \let\cy@encoding\k@encoding \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}% \else - %\directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{\k@encoding}')}\ifin@% - % \let\ct@encoding\k@encoding - % \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% - %\else + \directlua{luatexja.jfont.is_ktenc('\luatexluaescapestring{\k@encoding}')}\ifin@% + \let\ct@encoding\k@encoding + \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% + \else \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha - %\fi + \fi + \fi +% + \let\k@encoding\ct@encoding + \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% + \pickup@tfont + \font@name + \ltj@@does@alt@set{\curr@kfontshape}% + % alt fonts の定義 + \directlua{luatexja.jfont.output_alt_font_cmd('t', '\luatexluaescapestring{\curr@kfontshape}')}% + % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする + \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% \fi % \let\k@encoding\cy@encoding @@ -288,7 +303,7 @@ \font@name \ltj@@does@alt@set{\curr@kfontshape}% % alt fonts の定義 - \directlua{luatexja.jfont.output_alt_font_cmd('\luatexluaescapestring{\curr@kfontshape}')}% + \directlua{luatexja.jfont.output_alt_font_cmd('y', '\luatexluaescapestring{\curr@kfontshape}')}% % 定義した alt fonts のデータを \ltjdeclarealtfont に渡すのと同等の処理をする \directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}% \fi @@ -311,11 +326,11 @@ % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり \fi \fi + \directlua{luatexja.base.stop_time_measure('selectfont')}% } \EverySelectfont{\ltj@selectfont@patch} \def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}} -\KanjiEncodingPair{JY3}{JT3} \def\set@fontsize#1#2#3{% \@defaultunits\@tempdimb#2pt\relax\@nnil \edef\f@size{\strip@pt\@tempdimb}% @@ -328,38 +343,40 @@ \baselineskip\f@linespread\baselineskip \normalbaselineskip\baselineskip \adjustbaseline - \setbox\strutbox\hbox{%\yoko + \setbox\strutbox\hbox{\yoko \vrule\@width\z@ \@height.7\baselineskip \@depth.3\baselineskip}% - \setbox\tstrutbox\hbox{%\tate + \setbox\dstrutbox\hbox{\dtou + \vrule\@width\z@ + \@height.7\baselineskip \@depth.3\baselineskip}% + \setbox\tstrutbox\hbox{\tate \vrule\@width\z@ \@height.5\baselineskip \@depth.5\baselineskip}% - \setbox\zstrutbox\hbox{%\tate + \setbox\zstrutbox\hbox{\tate \vrule\@width\z@ \@height.7\baselineskip \@depth.3\baselineskip}% \let\size@update\relax}} \newbox\adjust@box +\newbox\adjust@box@aux \newdimen\adjust@dimen \def\adjustbaseline{% - \setbox\adjust@box\hbox{\ltj@ykblshift=0あ}% + \setbox\adjust@box\hbox{% + \ltj@ykblshift\z@\ltj@tkblshift\z@ 漢}% \cht\ht\adjust@box \cdp\dp\adjust@box \cwd\wd\adjust@box \cvs\normalbaselineskip \chs\cwd \cHT\cht \advance\cHT\cdp - % \iftdir - % \setbox0\hbox{\tate\ltjsetparameter{tjabaselineshift=\z@}あ}% - % \setbox\adjust@box\hbox{\tate\ltjsetparameter{talbaselineshift=\z@}M}% - % \adjust@dimen\ht\adjust@box - % \advance\adjust@dimen\dp\adjust@box - % \advance\adjust@dimen-\ht0 - % \divide\adjust@dimen\tw@ - % \advance\adjust@dimen0.5\dp0 - % \advance\adjust@dimen-\dp\adjust@box - % \ltjsetparameter{talbaselineshift=\adjust@dimen} - % \fi - } + \setbox\adjust@box@aux\hbox{\tate\ltj@tkblshift\z@ 漢}% + \setbox\adjust@box\hbox{\tate\ltj@tablshift\z@ M}% + \adjust@dimen\ht\adjust@box + \advance\adjust@dimen\dp\adjust@box + \advance\adjust@dimen-\ht\adjust@box@aux + \divide\adjust@dimen\tw@ + \advance\adjust@dimen0.5\dp\adjust@box@aux + \advance\adjust@dimen-\dp\adjust@box + \ltj@tablshift=\adjust@dimen} \DeclareRobustCommand\romanencoding[1]{% \expandafter\ifx\csname T@#1\endcsname\relax \@latex@error{Encoding scheme `#1' unknown}\@eha @@ -397,11 +414,11 @@ \directlua{luatexja.jfont.is_kyenc(\tmp@enc)}\ifin@% \let\cy@encoding\k@encoding \else - %\directlua{luatexja.jfont.is_ktenc(\tmp@enc)}\ifin@% - % \let\ct@encoding\k@encoding - %\else + \directlua{luatexja.jfont.is_ktenc(\tmp@enc)}\ifin@% + \let\ct@encoding\k@encoding + \else \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha - %\fi + \fi \fi } \let\kenc@update\relax @@ -426,6 +443,8 @@ \newif\if@notkfam \newif\if@notffam \newif\if@tempswz +\newif\if@ltj@use@fd +\@ltj@use@fdtrue \DeclareRobustCommand\romanfamily[1]{\edef\f@family{#1}} \DeclareRobustCommand\kanjifamily[1]{\edef\k@family{#1}} \DeclareRobustCommand\fontfamily[1]{% @@ -434,7 +453,8 @@ \edef\tmp@enc{'\luatexluaescapestring{\k@encoding}'}% \ifcsname \k@encoding+#1\endcsname % if \k@encoding+#1 is already defined \edef\k@family{#1}% - \else % search font definition file... + \else\if@ltj@use@fd + % search font definition file... \directlua{luatexja.jfont.is_kfam(\tmp@enc, \tmp@item)}% \ifin@\edef\k@family{#1}\else% \directlua{luatexja.jfont.is_Nkfam(\tmp@enc, \tmp@item)}% @@ -452,7 +472,9 @@ \fi \fi \fi - \fi + \else % do not use font definition file + \@notkfamtrue% + \fi\fi \edef\tmp@enc{'\luatexluaescapestring{\f@encoding}'}% \ifcsname \f@encoding+#1\endcsname \edef\f@family{#1}% @@ -531,7 +553,6 @@ \@onlypreamble\kanjiprocess@table \DeclareTextCommandDefault{\textunderscore}{% \leavevmode\kern.06em - %\iftdir\raise-\tbaselineshift\fi \vbox{\hrule\@width.3em}} %%%%%% LuaTeX-ja specific @@ -550,6 +571,13 @@ \let\extract@font\extract@afont \fi \let\getjfont\font@name} +\def\pickup@tfont{% + \expandafter \ifx \font@name \relax + \let\extract@font\extract@tfont + \define@newfont + \let\extract@font\extract@afont + \fi + \let\gettfont\font@name} % 異なる和文 enc/fam/ser/shape からは異なるフォント番号が振られるように % わざと「ゴミをつける」 @@ -561,7 +589,16 @@ \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}% \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}% \fi - \expandafter\globaljfont\font@name\external@font\relax + \expandafter\globaljfont\font@name\external@font\relax% ここで時間がかかる + \font@name%\global\zw=\zw\global\zh=\zh + \csname \f@encoding+\f@family\endcsname + \csname\curr@fontshape\endcsname} +\def\extract@tfont{% + \get@external@font + \ltj@@does@alt@set{\f@encoding/\f@family/\f@series/\f@shape}% + \edef\external@font{\expandafter\ltj@@patch@external@font\external@font}% + \fi + \expandafter\globaltfont\font@name\external@font\relax \font@name%\global\zw=\zw\global\zh=\zh \csname \f@encoding+\f@family\endcsname \csname\curr@fontshape\endcsname} @@ -650,9 +687,12 @@ \def\ClearAlternateKanjiFont#1#2#3#4{% \directlua{luatexja.jfont.clear_alt_font_latex('\luatexluaescapestring{#1/#2/#3/#4}')}} -\def\ltj@pickup@altfont@aux#1{% +\def\ltj@pickup@altfont@auxy#1{% \begingroup\edef\font@name{\csname #1/\f@size\endcsname}\pickup@jfont\endgroup% } +\def\ltj@pickup@altfont@auxt#1{% + \begingroup\edef\font@name{\csname #1/\f@size\endcsname}\pickup@tfont\endgroup% +} \def\ltj@pickup@altfont@copy#1#2{% \ltj@@getjfontnumber#1% \directlua{luatexja.jfont.pickup_alt_font_b(\the\ltj@tempcntc,'\luatexluaescapestring{#2}')}% diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty new file mode 100644 index 00000000000..d7125541a05 --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-footmisc.sty @@ -0,0 +1,58 @@ +% +% lltjp-footmiscs.sty +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-footmisc}[2014/11/23 Patch to footmisc for LuaTeX-ja] +\RequirePackage{footmisc} + +\let \if@tempswa \ifFN@bottom +\ifFN@para \@tempswatrue \fi +\if@tempswa + \ifFN@bottom + \toks@{\setbox\@outputbox \box\@cclv + \xdef\@freelist{\@freelist\@midlist}% + \global\let\@midlist\@empty + \@combinefloats + \ifvoid\footins + \else + \setbox\@outputbox \vbox\bgroup + \boxmaxdepth\@maxdepth + \unvbox\@outputbox + \vfill\relax + } + \the\FN@temptoken + \toks@\expandafter{\the\toks@\egroup\fi} + \else + \toks@{\ifvoid\footins + \setbox\@outputbox\box\@cclv + \else + \setbox\@outputbox \vbox\bgroup + \boxmaxdepth\@maxdepth + \unvbox\@cclv + } + \the\FN@temptoken + \toks@\expandafter{\the\toks@ + \egroup + \fi + \xdef\@freelist{\@freelist\@midlist}% + \global\let\@midlist\@empty + \@combinefloats + }% + \fi + \toks@\expandafter{\the\toks@ + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht{% + \@texttop \dimen@\dp\@outputbox + \unvbox\@outputbox + \ifnum\ltjgetparameter{direction}=3 \hskip\z@\fi %%% LuaTeX-ja + \vskip -\dimen@\@textbottom + }% + \fi + \global\maxdepth\@maxdepth + } + \edef\@makecol{\the\toks@} +\fi +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty new file mode 100644 index 00000000000..1ac1cc0bd4e --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty @@ -0,0 +1,486 @@ +% +% lltjp-geometry.sty +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-geometry}[2015/01/01 Patch to geometry for LuaTeX-ja with vertical writing mode] +\RequirePackage{ifluatex} + +\ifdefined\if@ltj@@geometry@tate\expandafter\endinput\fi +\newif\if@ltj@@geometry@tate +\@ltj@@geometry@tatefalse +\ifluatex\else % pTeX + \@ltj@@geometry@tatetrue +\def \AtBeginDvi #1{% + \global \setbox \@begindvibox + \vbox{\yoko\unvbox \@begindvibox #1}% +} +\fi + +\RequirePackage{filehook} +\newif\ifGm@ltj@layoutswitch +\let\orig@PackageWarningNoLine=\PackageWarningNoLine +% define ifGm@swap@papersize if it is undefined +\expandafter\newif\csname ifGm@swap@papersize\endcsname + +\AtBeginOfPackageFile{geometry}{% + \edef\Gm@ltj@topskip{\the\topskip} + \edef\Gm@ltj@headsep{\the\headsep} + \edef\Gm@ltj@footskip{\the\footskip} +\ifluatex + \ifnum\ltjgetparameter{direction}=3 \@ltj@@geometry@tatetrue\fi +\fi +\if@ltj@@geometry@tate + \let\PackageWarningNoLine\@gobbletwo% 警告抑止 +\fi +} +\AtEndOfPackageFile{geometry}{% +\let\PackageWarningNoLine=\orig@PackageWarningNoLine +\if@ltj@@geometry@tate + \let\PackageWarningNoLine=\orig@PackageWarningNoLine +%%% ここからパッチ開始 + +% TODO: +% * pTeX, LuaTeX ともに truedimen が正しく動作しない +% * pTeX resetpaper が正しく動作しない +% +% `h', `v' は「水平」「垂直」を意味するが: +% ユーザー側では「紙の物理的な水平方向」「物理的な垂直方向」を, +% しかしパッケージ内部処理では「字送り方向」「行送り方向」を表す. +% そのため,key-value interface 内で h, v の交換を行う必要がある. + +% twoside 指定時は,lmargin は小口側,rmargin はノド側の余白を指す. +% また,bindingoffset 偶数ページを右に,奇数ページを左にずらす. +\define@key{Gm}{hdivide}{\Gm@parse@divide{#1}{lmargin}{height}{rmargin}}% + +\define@key{Gm}{vscale}{\Gm@hbodytrue\edef\Gm@hscale{#1}}% +\define@key{Gm}{hscale}{\Gm@vbodytrue\edef\Gm@vscale{#1}}% +\define@key{Gm}{vdivide}{\Gm@parse@divide{#1}{tmargin}{width}{bmargin}}% +\define@key{Gm}{divide}{\Gm@parse@divide{#1}{tmargin}{width}{bmargin}% + \Gm@parse@divide{#1}{lmargin}{height}{rmargin}}% +\define@key{Gm}{vmargin}{\Gm@branch{#1}{tmargin}{bmargin}}% +\define@key{Gm}{hmargin}{\Gm@branch{#1}{lmargin}{rmargin}}% +\define@key{Gm}{margin}{\Gm@branch{#1}{tmargin}{lmargin}% + \Gm@branch{#1}{bmargin}{rmargin}}% +\define@key{Gm}{headsep}{\Gm@defbylen{ltj@headsep}{#1}}% +\define@key{Gm}{footskip}{\Gm@defbylen{ltj@footskip}{#1}}% +\let\KV@Gm@foot\KV@Gm@footskip +\define@key{Gm}{vmarginratio}{\edef\Gm@hmarginratio{#1}}% +\define@key{Gm}{hmarginratio}{\edef\Gm@vmarginratio{#1}}% +\define@key{Gm}{nohead}[true]{\Gm@doifelse{nohead}{#1}% + {\Gm@setlength\headheight\z@\Gm@defbylen{ltj@headsep}\z@}{}}% +\define@key{Gm}{nofoot}[true]{\Gm@doifelse{nofoot}{#1}% + {\Gm@defbylen{ltj@footskip}\z@}{}}% +\define@key{Gm}{noheadfoot}[true]{\Gm@doifelse{noheadfoot}{#1}% + {\Gm@setlength\headheight\z@\Gm@defbylen{ltj@headsep}\z@ + \Gm@defbylen{ltj@footskip}\z@}{}}% + +% \@mparswitch は傍注の出力位置を左右ページで変えるスイッチだが, +% geometry.sty はこれを左右ページのレイアウトを変えるか否かの判定にも使っている. +% 縦組クラスの場合は \@mparswitch は常に偽でないとおかしなことになるので +% \@mparswitch -> \Gm@ltj@layoutswitch と名称変更する. + +\let\Gm@ltj@layoutswitch\@mparswitch +\@mparswitchfalse +\define@key{Gm}{twoside}[true]{\Gm@doifelse{twoside}{#1}% + {\@twosidetrue\Gm@ltj@layoutswitchtrue}{\@twosidefalse\Gm@ltj@layoutswitchfalse}}% +\define@key{Gm}{asymmetric}[true]{\Gm@doifelse{asymmetric}{#1}% + {\@twosidetrue\Gm@ltj@layoutswitchfalse}{}}% + +% includemp 指定時は,\headsep (if reversemp || twocolumn) や, +% \footskip (if !reversemp || twocolumn) を傍注幅だけ増加させる. + +% h <-> v +\def\Gm@Dhratio{2:3}% = top:bottom default +\def\Gm@Dvratio{1:1}% = left:right default for oneside +\def\Gm@Dvratiotwo{3:2}% = inner:outer default for twoside. +\ifGm@swap@papersize + % geometry.sty ロード時に landscape オプションが指定されていた場合, + % それによって用紙サイズの縦横が入れ替わってしまっているので補正する. + \setlength\@tempdima{\paperwidth}% + \setlength\paperwidth{\paperheight}% + \setlength\paperheight{\@tempdima}% +\fi + +% save length +\def\Gm@save{% + \Gm@savelength{paperwidth}% + \Gm@savelength{paperheight}% + \Gm@savelength{textwidth}% + \Gm@savelength{textheight}% + \Gm@savelength{evensidemargin}% + \Gm@savelength{oddsidemargin}% + \Gm@savelength{topmargin}% + \Gm@savelength{headheight}% + %\Gm@savelength{headsep}% + \Gm@savelength{topskip}% + %\Gm@savelength{footskip}% + \Gm@savelength{baselineskip}% + \Gm@savelength{marginparwidth}% + \Gm@savelength{marginparsep}% + \Gm@savelength{columnsep}% + \Gm@savelength{hoffset}% + \Gm@savelength{voffset} + \Gm@savelength{Gm@layoutwidth}% + \Gm@savelength{Gm@layoutheight}% + \Gm@savelength{Gm@layouthoffset}% + \Gm@savelength{Gm@layoutvoffset}% + \Gm@saveboolean{@twocolumn}% + \Gm@saveboolean{@twoside}% + \Gm@saveboolean{Gm@ltj@layoutswitch}% + \Gm@saveboolean{@reversemargin}}% + +% frame +\ifluatex + \def\Gm@pageframe@cmd{\vb@xt@\z@} +\else + \def\Gm@pageframe@cmd{\vb@xt@\z@\bgroup\yoko\aftergroup\egroup} +\fi +\renewcommand*{\Gm@pageframes}{% + \Gm@pageframe@cmd{% + \ifGm@showcrop + \vb@xt@\z@{\vskip-1\Gm@truedimen in\vskip\Gm@layoutvoffset% + \hb@xt@\z@{\hskip-1\Gm@truedimen in\hskip\Gm@layouthoffset% + \vb@xt@\Gm@layoutheight{% + \let\protect\relax + \hb@xt@\Gm@layoutwidth{\Gm@cropmark(-1,1,-3,3)\hfil\Gm@cropmark(1,1,3,3)}% + \vfil + \hb@xt@\Gm@layoutwidth{\Gm@cropmark(-1,-1,-3,-3)\hfil\Gm@cropmark(1,-1,3,-3)}}% + \hss}% + \vss}% + \fi% + \ifGm@showframe + \if@twoside + \ifodd\count\z@ + \let\@themargin\oddsidemargin + \else + \let\@themargin\evensidemargin + \fi + \fi + \moveright\@themargin% + \vb@xt@\z@{% + \vskip\topmargin\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\headheight\vb@xt@\z@{\vss\Gm@hruled}% + \vskip\headsep\vb@xt@\z@{\vss\Gm@hrule}% + \if@reversemargin\vb@xt@\z@{% + \vss\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\marginparwidth\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\marginparsep + }\fi + \hb@xt@\textwidth{\llap{\Gm@vrule}\hfil\Gm@vrule}% + \vb@xt@\z@{\vss\Gm@hruled}% + \unless\if@reversemargin\vb@xt@\z@{% + \vskip\marginparsep\vb@xt@\z@{\vss\Gm@hrule}% + \vskip\marginparwidth\vb@xt@\z@{\vss\Gm@hruled}\vss% + }\fi% + \vskip\footskip\vb@xt@\z@{\vss\Gm@hruled}% + \vss}% + \fi% + }} +\def\Gm@detall#1#2#3#4{% + \@tempcnta\z@ + \if#1h + \let\Gm@mratio\Gm@hmarginratio + \edef\Gm@Dmratio{\Gm@Dhratio}% + \else + \let\Gm@mratio\Gm@vmarginratio + \edef\Gm@Dmratio{\if@twoside\Gm@Dvratiotwo\else\Gm@Dvratio\fi}% + \fi + \if#1h + \ifx\Gm@tmargin\@undefined\else\advance\@tempcnta4\relax\fi + \ifGm@hbody\advance\@tempcnta2\relax\fi + \ifx\Gm@bmargin\@undefined\else\advance\@tempcnta1\relax\fi + \Gm@cnth\@tempcnta + \else + \ifx\Gm@lmargin\@undefined\else\advance\@tempcnta4\relax\fi + \ifGm@vbody\advance\@tempcnta2\relax\fi + \ifx\Gm@rmargin\@undefined\else\advance\@tempcnta1\relax\fi + \Gm@cntv\@tempcnta + \fi + \ifcase\@tempcnta + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \Gm@detiiandiii{#2}{#3}{#4}% + \or + \ifx\Gm@mratio\@undefined + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \setlength\@tempdimc{\@nameuse{Gm@#4}}% + \Gm@detiiandiii{#2}{#3}{#4}% + \expandafter\let\csname Gm@#2\endcsname\@undefined + \Gm@defbylen{#4}{\@tempdimc}% + \else + \Gm@setbyratio[f]{#1}{#4}{#3}% + \fi + \Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiiandiii{#2}{#3}{#4}% + \or\Gm@detiv{#2}{#2}{#4}{#3}% + \or + \ifx\Gm@mratio\@undefined + \if#1h + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \fi + \setlength\@tempdimc{\@nameuse{Gm@#3}}% + \Gm@detiiandiii{#2}{#4}{#3}% + \expandafter\let\csname Gm@#2\endcsname\@undefined + \Gm@defbylen{#3}{\@tempdimc}% + \else + \Gm@setbyratio[b]{#1}{#3}{#4}% + \fi + \Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiv{#2}{#3}{#4}{#2}% + \or\Gm@detiv{#2}{#2}{#3}{#4}% + \or\Gm@warning{Over-specification in `#1'-direction.% + ^^J\@spaces `#2' (\@nameuse{Gm@#2}) is ignored}% + \Gm@detiv{#2}{#3}{#4}{#2}% + \else\fi}% +\def\Gm@clean{% + \ifnum\Gm@cnth<4\let\Gm@tmargin\@undefined\fi + \ifodd\Gm@cnth\else\let\Gm@bmargin\@undefined\fi + \ifnum\Gm@cntv<4\let\Gm@lmargin\@undefined\fi + \ifodd\Gm@cntv\else\let\Gm@rmargin\@undefined\fi + \ifGm@hbody\else + \let\Gm@hscale\@undefined + \let\Gm@width\@undefined + \let\Gm@textwidth\@undefined + \fi + \ifGm@vbody\else + \let\Gm@vscale\@undefined + \let\Gm@height\@undefined + \let\Gm@textheight\@undefined + \fi + }% +\def\Gm@adjustpaper{% + \ifdim\paperwidth>\p@\else + \PackageError{geometry}{% + \string\paperwidth\space(\the\paperwidth) too short}{% + Set a paper type (e.g., `a4paper').}% + \fi + \ifdim\paperheight>\p@\else + \PackageError{geometry}{% + \string\paperheight\space(\the\paperheight) too short}{% + Set a paper type (e.g., `a4paper').}% + \fi + \ifGm@swap@papersize + \setlength\@tempdima{\paperwidth}% + \setlength\paperwidth{\paperheight}% + \setlength\paperheight{\@tempdima}% + \fi + \ifGm@layout\else + \setlength\Gm@layoutwidth{\paperheight}% + \setlength\Gm@layoutheight{\paperwidth}% + \fi}% +\def\Gm@adjustbody{ + \ifGm@hbody + \ifx\Gm@width\@undefined + \ifx\Gm@hscale\@undefined + \Gm@defbylen{width}{\Gm@Dhscale\Gm@layoutwidth}% + \else + \Gm@defbylen{width}{\Gm@hscale\Gm@layoutwidth}% + \fi + \fi + \ifx\Gm@textwidth\@undefined\else + \setlength\@tempdima{\Gm@textwidth}% + \ifGm@includemp + \advance\@tempdima\Gm@wd@mp + \fi + \ifGm@includehead + \addtolength\@tempdima{\headheight}% + \addtolength\@tempdima{\headsep}% + \fi + \ifGm@includefoot + \addtolength\@tempdima{\footskip}% + \fi + \edef\Gm@width{\the\@tempdima}% + \fi + \fi + \ifGm@vbody + \ifx\Gm@height\@undefined + \ifx\Gm@vscale\@undefined + \Gm@defbylen{height}{\Gm@Dvscale\Gm@layoutheight}% + \else + \Gm@defbylen{height}{\Gm@vscale\Gm@layoutheight}% + \fi + \fi + \setlength\topskip\Gm@ltj@topskip + \ifx\Gm@lines\@undefined\else + \@tempdima=\f@size\p@ \@tempdima=.5\@tempdima + \ifluatex + \advance\@tempdima\ltjgetparameter{talbaselineshift}% + \else + \advance\@tempdima\tbaselineshift + \fi + \ifdim\maxdepth<\@tempdima + \PackageWarningNoLine{lltjp-geometry}% + {\noexpand\maxdepth was changed from \the\maxdepth\space + to \the\@tempdima} + \maxdepth\@tempdima + \fi + \setbox\z@=\hbox{\tate% next \ifdim must be executed in tate dir. + \ifdim\topskip<\ht\tstrutbox + \@tempdima\topskip + \global\topskip\ht\tstrutbox + \PackageWarningNoLine{lltjp-geometry}% + {\noexpand\topskip was changed from \the\@tempdima\space + to \the\topskip} + \fi}% + \setlength\@tempdima{\baselineskip}% + \multiply\@tempdima\Gm@lines + \addtolength\@tempdima{\topskip}% + \addtolength\@tempdima{-\baselineskip}% + \edef\Gm@textheight{\the\@tempdima}% + \fi + \ifx\Gm@textheight\@undefined\else + \edef\Gm@height{\Gm@textheight}% + \fi + \fi}% + +\def\Gm@adjustmp{% + \ifGm@includemp + \@tempdimb\marginparwidth + \advance\@tempdimb\marginparsep + \Gm@wd@mp\@tempdimb + \if@twocolumn + \Gm@wd@mp2\@tempdimb + \fi + \fi}% +\def\Gm@@process{% + \Gm@expandlengths + \Gm@adjustpaper + \addtolength\Gm@layoutheight{-\Gm@bindingoffset}% + \Gm@adjustmp + \Gm@adjustbody + \Gm@detall{h}{width}{tmargin}{bmargin}% + \Gm@detall{v}{height}{lmargin}{rmargin}% + \setlength\textwidth{\Gm@width}% + \setlength\textheight{\Gm@height}% + \setlength\headsep{\Gm@ltj@headsep}% + \setlength\footskip{\Gm@ltj@footskip}% + \setlength\topmargin{\Gm@tmargin}% + \setlength\oddsidemargin{\Gm@lmargin}% + \addtolength\oddsidemargin{-1\Gm@truedimen in}% + \ifGm@ltj@layoutswitch + \setlength\evensidemargin{\Gm@rmargin}% + \addtolength\evensidemargin{-1\Gm@truedimen in}% + \else + \evensidemargin\oddsidemargin + \fi + \advance\evensidemargin\Gm@bindingoffset + \addtolength\topmargin{-1\Gm@truedimen in}% + \ifGm@includehead + \addtolength\textwidth{-\headheight}% + \addtolength\textwidth{-\headsep}% + \else + \addtolength\topmargin{-\headheight}% + \addtolength\topmargin{-\headsep}% + \fi + \ifGm@includefoot + \addtolength\textwidth{-\footskip}% + \fi + \ifGm@includemp + \advance\textwidth-\Gm@wd@mp + \if@twocolumn + \advance\headsep.5\Gm@wd@mp + \advance\footskip.5\Gm@wd@mp + \else\if@reversemargin + \advance\headsep\Gm@wd@mp + \else + \advance\footskip\Gm@wd@mp + \fi\fi + \fi + \ifGm@heightrounded + \setlength\@tempdima{\textheight}% + \addtolength\@tempdima{-\topskip}% + \@tempcnta\@tempdima + \@tempcntb\baselineskip + \divide\@tempcnta\@tempcntb + \setlength\@tempdimb{\baselineskip}% + \multiply\@tempdimb\@tempcnta + \advance\@tempdima-\@tempdimb + \multiply\@tempdima\tw@ + \ifdim\@tempdima>\baselineskip + \addtolength\@tempdimb{\baselineskip}% + \fi + \addtolength\@tempdimb{\topskip}% + \textheight\@tempdimb + \fi + \advance\oddsidemargin\Gm@layoutvoffset% + \advance\evensidemargin\Gm@layoutvoffset% + \advance\topmargin\Gm@layouthoffset% + \addtolength\Gm@layoutheight{\Gm@bindingoffset}% +}% end of \Gm@@process +% log +\def\Gm@logcontent#1{% + *geometry* verbose mode - [ #1 ] result:^^J% + \ifGm@pass * pass: disregarded the geometry package!^^J% + \else + * driver: \if\Gm@driver<none>\else\Gm@driver\fi^^J% + * paper: \ifx\Gm@paper\@undefined<default>\else\Gm@paper\fi^^J% + * layout: \ifGm@layout<custom>\else<same size as paper>\fi^^J% + \ifGm@layout + * layout(width,height): (\the\Gm@layoutwidth,\the\Gm@layoutheight)^^J% + \fi + * layoutoffset:(h,v)=(\the\Gm@layouthoffset,\the\Gm@layoutvoffset)^^J% + \@ifundefined{Gm@lines}{}{* lines: \Gm@lines^^J}% + \@ifundefined{Gm@hmarginratio}{}{* hratio: \Gm@hmarginratio^^J}% + \@ifundefined{Gm@vmarginratio}{}{* vratio: \Gm@vmarginratio^^J}% + \ifdim\Gm@bindingoffset=\z@\else + * bindingoffset: \the\Gm@bindingoffset^^J\fi + * modes: % + \Gm@showbool{landscape}% + \Gm@showbool{includehead}% + \Gm@showbool{includefoot}% + \Gm@showbool{includemp}% + \if@twoside twoside\space\fi% + \ifGm@ltj@layoutswitch\else\if@twoside asymmetric\space\fi\fi% + \Gm@showbool{heightrounded}% + \ifx\Gm@truedimen\@empty\else truedimen\space\fi% + \Gm@showbool{showframe}% + \Gm@showbool{showcrop}% + ^^J% + * h-part:(L,W,R)=(\Gm@lmargin, \Gm@height, \Gm@rmargin)^^J% + * v-part:(T,H,B)=(\Gm@tmargin, \Gm@width, \Gm@bmargin)^^J% + \fi + \Gm@showdim{\paperwidth}% + \Gm@showdim{\paperheight}% + \Gm@showdim{\textwidth}% + \Gm@showdim{\textheight}% + \Gm@showdim{\oddsidemargin}% + \Gm@showdim{\evensidemargin}% + \Gm@showdim{\topmargin}% + \Gm@showdim{\headheight}% + \Gm@showdim{\headsep}% + \Gm@showdim{\topskip}% + \Gm@showdim{\footskip}% + \Gm@showdim{\marginparwidth}% + \Gm@showdim{\marginparsep}% + \Gm@showdim{\columnsep}% + * \string\skip\string\footins=\the\skip\footins^^J% + \Gm@showdim{\hoffset}% + \Gm@showdim{\voffset}% + \Gm@showdim{\mag}% + * \string\@twocolumn\if@twocolumn true\else false\fi^^J% + * \string\@twoside\if@twoside true\else false\fi^^J% + * \string\@mparswitch\if@mparswitch true\else false\fi^^J% + * \string\@reversemargin\if@reversemargin true\else false\fi^^J% + * (1in=72.27pt=25.4mm, 1cm=28.453pt)^^J}% + + +\Gm@initall +\Gm@processconfig +\ProcessOptionsKV[c]{Gm}% +\Gm@setdefaultpaper +\ProcessOptionsKV[p]{Gm}% +\Gm@process + +%%% 終了 +\fi} +\endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty index 3017f08563a..d14a48801ac 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-listings.sty @@ -329,4 +329,4 @@ \def\lstlistingname{ソースコード} \def\lstlistlistingname{ソースコード目次} % \end{修正事項} -\endinput +\endinput
\ No newline at end of file diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty new file mode 100644 index 00000000000..e90cef4955f --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty @@ -0,0 +1,49 @@ +% +% lltjp-stfloats.sty +% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-stfloats}[2014/11/23 Patch to stfloats for LuaTeX-ja] + +\RequirePackage{stfloats,luatexja} + +\let\ltj@fn@makecol=\fn@makecol + +\gdef\fn@makecol{% + \setbox\@outputbox \box\@cclv + \let\@elt\relax + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats + \ifvoid\footins + \else + \setbox\@outputbox \vbox {% + \boxmaxdepth \@maxdepth + \unvbox \@outputbox + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \fi + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% + \@texttop + \dimen@ \ltjgetdp\@outputbox + \unvbox \@outputbox + \ifnum\ltjgetparameter{direction}=3 \hskip\z@\fi %%% LuaTeX-ja + \vskip -\dimen@ + \@textbottom + }% + \fi + \global \maxdepth \@maxdepth + } + +\ifx\@makecol\ltj@fn@makecol + \global\let\@makecol\fn@makecol +\fi +\endinput diff --git a/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty new file mode 100644 index 00000000000..4498e824e1b --- /dev/null +++ b/Master/texmf-dist/tex/luatex/luatexja/patches/lltjp-tascmac.sty @@ -0,0 +1,109 @@ +% +% lltjp-tascmac.sty +% \tbaselineshift=\z@ ==> \ltj@tablshift=\z@ +% \dimen...=\tbaselineshift ==> \dimen...=\ltj@tablshift sp + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{lltjp-tascmac}[2014/12/17 Patch to (t)ascmac for LuaTeX-ja] + +\RequirePackage{tascmac,luatexja} + +%% use Type1 font for ascgrp +\ifdefined\pdfmapline + \pdfmapline{+ascgrp <ascgrp.pfb} +\fi + +%% boxnote environment +\def\boxnote{\par\vspace{\baselineskip} +\@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@ +\setbox\@nbox=\hbox{\@ascgrp\vrule width1.08pt depth35pt b\hss a\hss b} +\@whiledim \wd\@nbox<\hsize \do{ +\setbox\@nbox=\hbox{\@ascgrp\unhbox\@nbox \hss a\hss b}} +\setbox\@nbox=\hbox to\hsize{\@ascgrp\unhbox\@nbox \hss a\hss b% +\vrule width1.08pt depth35pt} +\@bw=\wd\@nbox\advance\@bw -40pt +\begin{lrbox}{\@nbody}\begin{minipage}{\@bw}% (KN:1998/02/27) + \ltj@tablshift\@savetbaselineshift}% + +%% screen environment +\def\screen{% +\@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@ +\@ifnextchar[{\@screen}{\@screen[0]}} +\def\@screen[#1]{\ifcase#1\def\@r{20}\def\@s{9.8pt}\def\@sx{10pt}\or +\def\@r{18}\def\@s{8.8pt}\def\@sx{9pt}\or +\def\@r{16}\def\@s{7.8pt}\def\@sx{8pt}\or +\def\@r{14}\def\@s{6.8pt}\def\@sx{7pt}\or +\def\@r{12}\def\@s{5.8pt}\def\@sx{6pt}\or +\def\@r{10}\def\@s{4.8pt}\def\@sx{5pt}\or +\def\@r{8}\def\@s{3.8pt}\def\@sx{4pt}\or +\def\@r{6}\def\@s{2.8pt}\def\@sx{3pt}\else +\def\@r{4}\def\@s{1.8pt}\def\@sx{2pt}\fi +\par\vspace{.3\baselineskip}\@scw\linewidth \advance\@scw -\@r pt +\setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% (KN:1998/02/27) + \ltj@tablshift\@savetbaselineshift}% + +%% itembox environment +\def\@itembox[#1]#2{% + \par\vspace{.3\baselineskip}% + \setbox\@iboxstr=\hbox{#2}% + \@savetbaselineshift\ltj@tablshift sp\ltj@tablshift\z@ + \@itemh\ht\@iboxstr\advance\@itemh\dp\@iboxstr + \vspace{.5\@itemh}\bgroup\@scw\linewidth + \advance\@scw-20pt\@iboxpos={#1}% + \setbox\scb@x=\hbox to\@scw\bgroup\begin{minipage}{\@scw}% + \ltj@tablshift\@savetbaselineshift + \vspace*{.5\@itemh}}% + +%% \keytop +\def\@keytop[#1]#2{% +{\setbox0=\hbox{\shortstack{#2}}\ltj@tablshift\z@% +\dimen0=\wd0\advance\dimen0 5pt\dimen1=\dp0\advance\dimen1 2.5pt% +\setbox\scscb@x=\hbox to\dimen0{% +\@scw\wd0\hfil\vtop{\offinterlineskip +\thinlines\setlength{\unitlength}{1pt}\hrule\kern2.3pt\@hobox{tl}{tr}5% +\kern-2.4pt\box0\@hobox{bl}{br}5\kern-.25pt\hrule}\hfil}\dimen0=\dp\scscb@x% +\setbox0=\vbox{\hbox{\hbox to0pt{\hss\vtop to\dimen0{\@vrf@{2.5pt}{.4pt}}}% +\box\scscb@x\hbox to.2pt{\hss\vtop to\dimen0{\@vrf@{2.5pt}{.4pt}}}}}% +\if #1c $\vcenter{\box0}$ \else \if #1t\else\if #1b\boxmaxdepth=0pt\else +\boxmaxdepth=\dimen1\fi\fi \mbox{}\vbox{\box0}\fi}} + +%% \mask +\def\mask#1#2{% +{\setbox\@bwsp=\hbox{#1}\ltj@tablshift\z@\setbox0=\hbox{\@ascgrp#2}% +\dimen0=\wd\@bwsp\dimen1=\ht\@bwsp\advance\dimen1\dp\@bwsp\dimen2=-\dimen1 +\setdim@{\dimen0}{\wd0}\setdim@{\dimen1}{\ht0}% +\setbox\@@bwsp=\hbox to\dimen0{\leaders +\vtop to\dimen1{\leaders\hbox{\@ascgrp#2}\vfil}\hfil}% +\advance\dimen2\dp\@@bwsp\divide\dimen2 2 +\advance\dimen2\dp\@bwsp\boxmaxdepth=\dimen2 +\setbox\@@bwsp=\vbox{\box\@@bwsp}% +\mbox{}\hbox to\wd\@@bwsp{\hbox to0pt{\box\@@bwsp\hss}\hss\unhbox\@bwsp\hss}}} + +%% \maskbox +\def\Maskbox#1#2#3#4#5#6{{\setbox2=\hbox{#6}\ltj@tablshift\z@ +\setbox0=\hbox{\@ascgrp#3}% +\dimen0=#1\@setdim{\dimen0}{\wd0}\dimen1=#2\@setdim{\dimen1}{\ht0}% +\ifx#4c\skip0=0pt plus1fil\skip1=\skip0\fi +\ifx#4r\skip0=0pt plus1fil\skip1=0pt\fi +\ifx#4l\skip1=0pt plus1fil\skip0=0pt\fi +\hbox{\hbox to0pt{\hbox to\dimen0{\leaders\vbox to\dimen1{\leaders +\hbox{\@ascgrp#3}\vfil}\hfil}\hss}% +\vrule width#5\vbox to\dimen1{\hrule height#5\vfil +\dimen3=#5\advance\dimen0-2\dimen3\advance\dimen0 .15pt +\hbox to\dimen0{\hskip\skip0\box2\hskip\skip1}% +\vfil\hrule height#5}\vrule width#5}}} + +%% \yen +% +% \changes{1996/03/13}{v1.1}{Append \cs{leavevmode} in +% \cs{yen}, \cs{return}, \cs{Return} command.} +% +\def\yen{\leavevmode\hbox{\yoko% +\setbox0=\hbox{Y}Y\kern-.97\wd0\vbox{\hrule height.1ex width.98\wd0 +\kern.33ex\hrule height.1ex width.98\wd0\kern.45ex}}} +% +%% return-key +\def\return{\leavevmode\hbox{\yoko\@ascgrp\char"20}} +\def\Return{\leavevmode\hbox{\yoko\@ascgrp @}} + +\endinput |