X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fpatches%2Flltjp-fontspec.sty;h=40f8c1e94e06cf918229b6a7277267ae62429705;hb=9e0d77f11634a037f609ca44ed3cc8d6762ea32b;hp=d1e894e371631926e6a35e70c80b3d7c5edf4faf;hpb=bfe1cac7b04cae989b31bb0c45a4b6fffffe7a15;p=luatex-ja%2Fluatexja.git diff --git a/src/patches/lltjp-fontspec.sty b/src/patches/lltjp-fontspec.sty index d1e894e..40f8c1e 100644 --- a/src/patches/lltjp-fontspec.sty +++ b/src/patches/lltjp-fontspec.sty @@ -1,69 +1,155 @@ % -% lltjp-fontspec.sty +% lltjp-fontspec.sty 2018-08-24 % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjp-fontspec}[2016/03/31 Patch to fontspec for LuaTeX-ja] \RequirePackage{fontspec,luatexja} \ExplSyntaxOn -\cs_set:Nn \fontspec_visible_space: +% <= v2.6g uses \l__fontspec_nfss_enc_tl instead of \g__fontspec_nfss_enc_tl +\ifdefined \g__fontspec_nfss_enc_tl \else + \def \g__fontspec_nfss_enc_tl { \l__fontspec_nfss_enc_tl } +\fi + +%%%%%%%% fontspec v2.5c overwrites \rmfamily etc. in \setmainfont +\@ifpackagelater{fontspec}{2018/07/29}{ %% 2.6h or later +\cs_set:Nn \__fontspec_main_setmainfont:nn + { + \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2} + \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \rmfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \l__fontspec_rmfamily_family_tl } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\rmdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setmainfont_hook:nn {#1} {#2} + \normalfont + } +\cs_set:Nn \__fontspec_main_setsansfont:nn + { + \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2} + \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \sffamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \l__fontspec_sffamily_family_tl } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\sfdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setsansfont_hook:nn {#1} {#2} + \normalfont + } +\cs_set:Nn \__fontspec_main_setmonofont:nn + { + \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2} + \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl + \use:x + { + \exp_not:n { \DeclareRobustCommand \ttfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \l__fontspec_ttfamily_family_tl } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\ttdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \__fontspec_setmonofont_hook:nn {#1} {#2} + \normalfont + } +}{ %% <= 2.6g +\DeclareDocumentCommand \setmainfont { O{} m O{} } { - \font_glyph_if_exist:NnTF \font {"2423} - { \ltjalchar"2423\scan_stop: } - { \fontspec_visible_space_fallback: } + \fontspec_set_family:Nnn \g__fontspec_rmfamily_family {#1,#3} {#2} + \tl_set_eq:NN \rmdefault \g__fontspec_rmfamily_family + \use:x { \exp_not:n { \DeclareRobustCommand \rmfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \g__fontspec_rmfamily_family } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\rmdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \normalfont + \ignorespaces } -\def\verb +\DeclareDocumentCommand \setsansfont { O{} m O{} } { - \relax\ifmmode\hbox\else\leavevmode\fi % same as lltjcore - \bgroup - \verb@eol@error \let\do\@makeother \dospecials - \verbatim@font\@noligs - \@ifstar\__fontspecsverb\@verb + \fontspec_set_family:Nnn \g__fontspec_sffamily_family {#1,#3} {#2} + \tl_set_eq:NN \sfdefault \g__fontspec_sffamily_family + \use:x { \exp_not:n { \DeclareRobustCommand \sffamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \g__fontspec_sffamily_family } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\sfdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \normalfont + \ignorespaces + } +\DeclareDocumentCommand \setmonofont { O{} m O{} } + { + \fontspec_set_family:Nnn \g__fontspec_ttfamily_family {#1,#3} {#2} + \tl_set_eq:NN \ttdefault \g__fontspec_ttfamily_family + \use:x { \exp_not:n { \DeclareRobustCommand \ttfamily } + { + \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl } + \exp_not:N \fontfamily { \g__fontspec_ttfamily_family } + \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%% + \exp_not:N \selectfont + } + } + \str_if_eq_x:nnT {\familydefault} {\ttdefault} + { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl } + \normalfont + \ignorespaces } +} +\cs_set:Nn \fontspec_visible_space: + { + \__fontspec_primitive_font_glyph_if_exist:NnTF \font {"2423} + { \ltjalchar"2423\scan_stop: } + { \fontspec_visible_space_fallback: } + } -\cs_set_eq:NN \ltj_orig_fontspec_setup_maths: \fontspec_setup_maths: -\cs_set:Nn \fontspec_setup_maths: - { - \group_begin: - \cs_set:Npn \DeclareMathSymbol##1##2##3##4{% - \expandafter\in@\csname sym##3\expandafter\endcsname - \expandafter{\group@list}% - \ifin@ - \begingroup - \count\z@=##4\relax - \count\tw@\count\z@ - \divide\count\z@\sixt@@n - \count@\count\z@ - \multiply\count@\sixt@@n - \advance\count\tw@-\count@ - \if\relax\noexpand##1% is command? - \edef\reserved@a{\noexpand\in@{\string\mathchar}{\meaning##1}}% - \reserved@a - \ifin@ - \expandafter\set@mathsymbol - \csname sym##3\endcsname##1##2% - {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% - \@font@info{Redeclaring math symbol \string##1}% - \else - \expandafter\set@mathsymbol - \csname sym##3\endcsname##1##2% - {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% - \fi - \else - \expandafter\set@mathchar - \csname sym##3\endcsname##1##2 - {\hexnumber@{\count\z@}\hexnumber@{\count\tw@}}% - \fi - \endgroup - \else - \@latex@error{Symbol font `##3' is not defined}\@eha - \fi - } - \ltj_orig_fontspec_setup_maths: - \group_end: +\AtBeginDocument{ + \cs_if_exist:NF \verbvisiblespace { + % >= LaTeX2e <2018-12-01> does not need the following patch + \def\verb + { + \relax\ifmmode\hbox\else\leavevmode\fi % same as lltjcore + \bgroup + \verb@eol@error \let\do\@makeother \dospecials + \verbatim@font\@noligs + \@ifstar\__fontspecsverb\@verb + } } +} +\cs_set:Npn \emshape { \gtfamily \itshape } +\cs_set:Npn \eminnershape { \mcfamily \upshape } + \ExplSyntaxOff +\expandafter\patchcmd\csname TU\string\textasteriskcentered\endcsname{\char}{\ltjalchar}{}{} + \endinput +