%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjfont}[2021-01-24 Patch to NFSS2 for LuaTeX-ja]
+\ProvidesPackage{lltjfont}[2021-04-06 Patch to NFSS2 for LuaTeX-ja]
%%%%%%%% LaTeX2e version detection
\newcount\ltj@@latex@plv \ltj@@latex@plv=-1
\def\default@k@series{#3}%
\def\default@k@shape{#4}}%
\fi}
+\@onlypreamble\DeclareKanjiSubstitution
+
+\def\DeclareErrorKanjiFont#1#2#3#4#5{%
+ \xdef\error@kfontshape{%
+ \noexpand\expandafter\noexpand\split@name\noexpand\string
+ \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
+ \noexpand\@nil}%
+ \gdef\default@k@family{#2}%
+ \gdef\default@k@series{#3}%
+ \gdef\default@k@shape{#4}%
+ }
+\@onlypreamble\DeclareErrorKanjiFont
+
\let\wrong@ja@fontshape\wrong@fontshape
\let\wrong@al@fontshape\wrong@fontshape
\patchcmd\wrong@ja@fontshape{\default@shape}{\default@k@shape}{}{}
\wrong@al@fontshape
\fi
}
-\@onlypreamble\DeclareKanjiSubstitution
-\def\DeclareErrorKanjiFont#1#2#3#4#5{%
- \xdef\error@kfontshape{%
- \noexpand\expandafter\noexpand\split@name\noexpand\string
- \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname
- \noexpand\@nil}%
- \gdef\default@k@family{#2}%
- \gdef\default@k@series{#3}%
- \gdef\default@k@shape{#4}%
- }
-\@onlypreamble\DeclareErrorKanjiFont
\newif\ifltjselectfont@force@define
\def\DeclareFixedFont#1#2#3#4#5#6{%
\every@math@size{}%
\fontsize{#6}\z@
\ltj@@is@kyenc{#2}\ifin@%
- \ltjselectfont@force@definetrue
+ \ltjselectfont@force@definetrue
\usekanji{#2}{#3}{#4}{#5}%
\global\let#1\getjfont
- \ltjselectfont@force@definefalse
+ \ltjselectfont@force@definefalse
\else
\ltj@@is@ktenc{#2}\ifin@%
- \ltjselectfont@force@definetrue
+ \ltjselectfont@force@definetrue
\usekanji{#2}{#3}{#4}{#5}%
\global\let#1\gettfont
- \ltjselectfont@force@definefalse
+ \ltjselectfont@force@definefalse
\else
\useroman{#2}{#3}{#4}{#5}%
\global\expandafter\let\expandafter#1\the\font
\let\k@series@saved\k@series
\delayed@k@adjustment
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
- \maybe@load@fontshape\endgroup
+ \maybe@load@fontshape\endgroup
\ifcsname \k@encoding/\k@family/\k@series/\k@shape \endcsname
\else
\let\k@shape\k@shape@saved
\fi
}
\DeclareRobustCommand\fontencoding[1]{%
- \ltj@@is@kyenc{#1}\ifin@\kanjiencoding{#1}\else\romanencoding{#1}\fi}
+ \ltj@@is@kenc{#1}\ifin@\kanjiencoding{#1}\else\romanencoding{#1}\fi}
\def\@@kenc@update{%
\default@KT
\csname T@\k@encoding\endcsname
\set@target@series@kanji{#2}%
\else
\set@target@series@kanji{#1}%
-\fi
+ \fi
}
\let\delayed@merge@kanji@series\merge@kanji@series@without@substitution
\let\delayed@merge@kanji@shape\merge@kanji@shape@without@substitution
\fi
+\newif\if@forced@series@kanji
\ifnum\ltj@@latex@plv=300 % 2020-02-02 pl3, 4
\DeclareRobustCommand\romanseries[1]{\merge@font@series{#1}}
\DeclareRobustCommand\kanjiseries[1]{\merge@kanji@series{#1}}
- \DeclareRobustCommand\fontseries[1]{%
- \merge@font@series{#1}\merge@kanji@series{#1}}
\DeclareRobustCommand\romanseriesforce[1]{\edef\f@series{#1}}
\DeclareRobustCommand\kanjiseriesforce[1]{\edef\k@series{#1}}
- \DeclareRobustCommand\fontseriesforce[1]{%
- \edef\f@series{#1}\edef\k@series{#1}}
\else\ifnum\ltj@@latex@plv<1500% >=2020-02-02 pl5 and <=2020-10-01
\DeclareRobustCommand\romanseries[1]{\@forced@seriesfalse\merge@font@series{#1}}
- \DeclareRobustCommand\kanjiseries[1]{\@forced@seriesfalse\merge@kanji@series{#1}}
- \DeclareRobustCommand\fontseries[1]{%
- \@forced@seriesfalse\merge@font@series{#1}\merge@kanji@series{#1}}
- \DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue\merge@font@series{#1}}
- \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@seriestrue\merge@kanji@series{#1}}
- \DeclareRobustCommand\fontseriesforce[1]{%
- \@forced@seriestrue\merge@font@series{#1}\merge@kanji@series{#1}}
+ \DeclareRobustCommand\kanjiseries[1]{\@forced@series@kanjifalse\merge@kanji@series{#1}}
+ \DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue\edef\f@series{#1}}
+ \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@series@kanjitrue\edef\k@series{#1}}
\else% >=2021-05-01
\DeclareRobustCommand\romanseries[1]{\@forced@seriesfalse
\expandafter\def\expandafter\delayed@f@adjustment\expandafter
{\delayed@f@adjustment\delayed@merge@font@series{#1}}}
- \DeclareRobustCommand\kanjiseries[1]{\@forced@seriesfalse
+ \DeclareRobustCommand\kanjiseries[1]{\@forced@series@kanjifalse
\expandafter\def\expandafter\delayed@k@adjustment\expandafter
{\delayed@k@adjustment\delayed@merge@kanji@series{#1}}}
- \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}}
\DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue
\expandafter\def\expandafter\delayed@f@adjustment\expandafter
{\delayed@f@adjustment\edef\f@series{#1}}}
- \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@seriestrue
+ \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@series@kanjitrue
\expandafter\def\expandafter\delayed@k@adjustment\expandafter
{\delayed@k@adjustment\edef\k@series{#1}}}
- \DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}}%
\let\delayed@k@adjustment\@empty
\fi\fi
+\DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}}%
+\DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}}%
+
\ifnum\ltj@@latex@plv<1500% <=2020-10-01
\DeclareRobustCommand\romanshape[1]{\merge@font@shape{#1}}
\DeclareRobustCommand\kanjishape[1]{\merge@kanji@shape{#1}}
\DeclareRobustCommand\kanjishapeforce[1]{\edef\k@shape{#1}}
\DeclareRobustCommand\fontshapeforce[1]{\set@safe@kanji@shape{#1}{}\romanshapeforce{#1}}
\else% >=2021-05-01
- \DeclareRobustCommand\romanshape[1]
- {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ \DeclareRobustCommand\romanshape[1]{%
+ \expandafter\def\expandafter\delayed@f@adjustment\expandafter
{\delayed@f@adjustment\delayed@merge@font@shape{#1}}}
- \DeclareRobustCommand\kanjishape[1]
- {\expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ \DeclareRobustCommand\kanjishape[1]{%
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
{\delayed@k@adjustment\delayed@merge@kanji@shape{#1}}}
\DeclareRobustCommand\fontshape[1]{%
- \romanshape{#1}%
- \expandafter\def\expandafter\delayed@k@adjustment\expandafter
- {\delayed@k@adjustment\@shape@roman@kanjitrue
- \delayed@merge@kanji@shape{#1}\@shape@roman@kanjifalse}}
- \DeclareRobustCommand\romanshapeforce[1]
- {\expandafter\def\expandafter\delayed@f@adjustment\expandafter
- {\delayed@f@adjustment\edef\f@shape{#1}}}
- \DeclareRobustCommand\kanjishapeforce[1]
- {\expandafter\def\expandafter\delayed@k@adjustment\expandafter
- {\delayed@k@adjustment\edef\k@shape{#1}}}
+ \romanshape{#1}%
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ {\delayed@k@adjustment\@shape@roman@kanjitrue
+ \delayed@merge@kanji@shape{#1}\@shape@roman@kanjifalse}}
+ \DeclareRobustCommand\romanshapeforce[1]{%
+ \expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\edef\f@shape{#1}}}
+ \DeclareRobustCommand\kanjishapeforce[1]{%
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ {\delayed@k@adjustment\edef\k@shape{#1}}}
\DeclareRobustCommand\fontshapeforce[1]{%
\romanshapeforce{#1}%
\expandafter\def\expandafter\delayed@k@adjustment\expandafter
%%%% LaTeX >= 2020-02-02
\let\prepare@family@series@update@kanji=\prepare@family@series@update
\patchcmd\prepare@family@series@update{\fontfamily}{\romanfamily}{}{}
+\patchcmd\prepare@family@series@update@kanji{\if@forced@series}{\if@forced@series@kanji}{}{}
\patchcmd\prepare@family@series@update@kanji{\fontfamily}{\kanjifamily}{}{}
\patchcmd\prepare@family@series@update@kanji{\update@series@target@value}{\update@series@target@value@kanji}{}{}
\patchcmd\prepare@family@series@update@kanji{\f@family}{\k@family}{}{}