summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luatexja/addons
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-04-21 23:46:31 +0000
committerKarl Berry <karl@freefriends.org>2015-04-21 23:46:31 +0000
commitdbf06c3ecc6528bd2410630d2a251940ec0c9b23 (patch)
treec875bdd9f4e6a021f50e1e36e2779c07b828347c /Master/texmf-dist/tex/luatex/luatexja/addons
parent142d903dcd96ad083d58f5518aa138a676eb68c0 (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/luatexja/addons')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-ajmacros.sty36
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-23.sty334
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec-24.sty216
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-fontspec.sty33
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/addons/luatexja-preset.sty234
5 files changed, 355 insertions, 498 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