From dbf06c3ecc6528bd2410630d2a251940ec0c9b23 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 21 Apr 2015 23:46:31 +0000 Subject: luatexja (21apr15) git-svn-id: svn://tug.org/texlive/trunk@36992 c570f23f-e606-0410-a88d-b1316a301751 --- .../luatex/luatexja/addons/luatexja-ajmacros.sty | 36 +-- .../luatexja/addons/luatexja-fontspec-23.sty | 334 --------------------- .../luatexja/addons/luatexja-fontspec-24.sty | 216 +++++++------ .../luatex/luatexja/addons/luatexja-fontspec.sty | 33 +- .../tex/luatex/luatexja/addons/luatexja-preset.sty | 234 ++++++++++++--- 5 files changed, 355 insertions(+), 498 deletions(-) delete mode 100644 Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-23.sty (limited to 'Master/texmf-dist/tex/luatex/luatexja/addons') 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 = , }, -%% { Range = , Font = }, -%% ... -%% } -\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 -- cgit v1.2.3