%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjfont}[2020-05-17 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
+\ifltj@ltfilehook@avail
+ \IfHookExistsTF{selectfont}%
+ {\ltj@@latex@plv=1500}% 2021-05-01
+ {\ifnum\patch@level>2 \ltj@@latex@plv=1300\else \ltj@@latex@plv=1000\fi}% 2020-10-01
+\else\ifdefined\@rmfamilyhook % 2020-02-02
+ \ifx\@forced@seriestrue\@undefined % 2020-02-02 pl0--2
+ \@latex@error
+ {Please update LaTeX2e!^^J\space\space
+ At least LaTeX2e 2020-02-02 patch level 3 is required}%
+ {LaTeX2e 2020-02-02 patch level 2 (and 4) has a bug.}
+ \else
+ \ltj@@latex@plv=300
+ \unless\ifx\series@maybe@drop@one@m@x\@undefined % pl5 + develop
+ \ltj@@latex@plv=501
+ \else\unless\ifx\series@maybe@drop@one@m\@undefined % patch level 5
+ \ltj@@latex@plv=500
+ \fi\fi
+ \fi
+\fi\fi
+
%% patching \DeclareTextComposite
\def\ltj@chardef@text@cmd#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
\newif\if@knjcmd
\DeclareRobustCommand\userelfont{\@knjcmdtrue}
-
-\RequirePackage{everysel}
-\let\ltj@@EverySelectfont@Init=\@EverySelectfont@Init
-\expandafter\expandafter\expandafter\let
-\expandafter\expandafter\csname ltj@@orig@selectfont\endcsname\csname selectfont\space\endcsname
-\@EverySelectfont@Init
-%\let\ltj@@font@info\@font@info
-%\let\ltj@@font@warning\@font@warning
-\def\@EverySelectfont@Init{%
- \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont
- \ltj@@EverySelectfont@Init
-}
\def\ltj@selectfont@tate{%
\let\k@encoding\ct@encoding
\xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
\directlua{luatexja.jfont.pickup_alt_font_a('\f@size')}%
}%
\fi}
-\def\ltj@selectfont@patch{%
+\ifnum\ltj@@latex@plv<1500 % <=2020-10-01
+\protected\def\ltj@selectfont@patch{%
\ltj@@start@time@measure{selectfont}%
\let\tmp@error@fontshape\error@fontshape
\let\error@fontshape\error@kfontshape
\global\let\font@name=\ltj@afont@name
\ltj@@stop@time@measure{selectfont}%
}
+\RequirePackage{everysel}
+\let\ltj@@EverySelectfont@Init=\@EverySelectfont@Init
+\expandafter\expandafter\expandafter\let
+\expandafter\expandafter\csname ltj@@orig@selectfont\endcsname\csname selectfont\space\endcsname
+\@EverySelectfont@Init% for LaTeX2e <=2020-10-01
+\def\@EverySelectfont@Init{%
+ \expandafter\let\csname selectfont\space \endcsname \ltj@@orig@selectfont
+ \ltj@@EverySelectfont@Init
+}
\EverySelectfont{\ltj@selectfont@patch}
+\else % LaTeX2e >=2021-05-01
+\AddToHook{selectfont}[luatexja]{%
+ \ltj@@start@time@measure{selectfont}%
+ \ifx\delayed@k@adjustment\@empty
+ \else
+ \let\k@shape@saved\k@shape
+ \let\k@series@saved\k@series
+ \delayed@k@adjustment
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+ \ifcsname \k@encoding/\k@family/\k@series/\k@shape \endcsname
+ \else
+ \let\k@shape\k@shape@saved
+ \let\k@series\k@series@saved
+ \let\delayed@merge@kanji@shape\merge@kanji@shape
+ \let\delayed@merge@kanji@series\merge@kanji@series
+ \delayed@k@adjustment
+ \let\delayed@merge@kanji@shape\merge@kanji@shape@without@substitution
+ \let\delayed@merge@kanji@series\merge@kanji@series@without@substitution
+ \fi
+ \let\delayed@k@adjustment\@empty
+ \fi
+ \let\tmp@error@fontshape\error@fontshape
+ \let\error@fontshape\error@kfontshape
+ \ltj@@is@kyenc{\k@encoding}\ifin@%
+ \let\cy@encoding\k@encoding
+ \ensure@KanjiEncodingPair{t}%
+ \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}%
+ \else
+ \ltj@@is@ktenc{\k@encoding}\ifin@%
+ \let\ct@encoding\k@encoding
+ \ensure@KanjiEncodingPair{y}%
+ \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}%
+ \else
+ \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
+ \fi
+ \fi
+ \global\let\ltj@afont@name=\font@name
+ \ltj@selectfont@tate\ltj@selectfont@yoko
+%
+ \edef\tmp@item{{\k@encoding}}\expandafter\def\expandafter\k@encoding\tmp@item
+ \kenc@update
+ \global\let\font@name=\ltj@afont@name
+ \let\error@fontshape\tmp@error@fontshape
+ \if@knjcmd \@knjcmdfalse
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\selectfont
+ % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり
+ \fi
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\selectfont
+ % 警告: 再び \selectfont を呼んでいる.無限ループの可能性あり
+ \fi
+ \fi
+ \global\let\font@name=\ltj@afont@name
+ \ltj@@stop@time@measure{selectfont}%
+}
+\fi
\bgroup
\def\ltj@@dir@patch#1#2#3{%
\global\csletcs{ltj@@orig@#1}{#1}%
- \protected\expandafter\xdef\csname #1\endcsname{%
- \csname ltj@@orig@#1\endcsname
- \unexpanded{\ifnum#3<\z@\let\ltj@@protect\protect\set@typeset@protect}%
- \unexpanded{\global\let\ltj@afont@name=\font@name}%
- \expandonce{\csname ltj@selectfont@#2\endcsname}%
- \unexpanded{\global\let\font@name=\ltj@afont@name}%
- \unexpanded{\let\protect\ltj@@protect\fi}%
- }%
- }
+ \protected\expandafter\xdef\csname #1\endcsname{%
+ \csname ltj@@orig@#1\endcsname
+ \unexpanded{\ifnum#3<\z@\let\ltj@@protect\protect\set@typeset@protect}%
+ \unexpanded{\global\let\ltj@afont@name=\font@name}%
+ \expandonce{\csname ltj@selectfont@#2\endcsname}%
+ \unexpanded{\global\let\font@name=\ltj@afont@name}%
+ \unexpanded{\let\protect\ltj@@protect\fi}%
+ }%
+ }
\ltj@@dir@patch{yoko}{yoko}{\ltj@curjfnt}
\ltj@@dir@patch{tate}{tate}{\ltj@curtfnt}
\ltj@@dir@patch{utod}{yoko}{\ltj@curjfnt}
\ltj@@dir@patch{dtou}{yoko}{\ltj@curjfnt}
+ \global\let\ltj@@box@dirhook@orig=\ltj@@box@dirhook
+ \gdef\ltj@@box@dirhook{%
+ \ltj@@box@dirhook@orig
+ \ifnum\ltjgetparameter{direction}=11
+ \ifnum\ltj@curjfnt<\z@
+ \let\ltj@@protect\protect\set@typeset@protect
+ \global\let\ltj@afont@name=\font@name
+ \ltj@selectfont@yoko
+ \global\let\font@name=\ltj@afont@name
+ \let\protect\ltj@@protect
+ \fi
+ \fi
+ }
\egroup
\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}}
\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
\fi\fi
}
-\newcount\ltj@@latex@plv \ltj@@latex@plv=-1
-\ifdefined\@rmfamilyhook
-%%%% LaTeX 2020-02-02
-\newif\if@shape@roman@kanji
-%%%%%% 2020-02-02 patchlevel detection
-\ifx\@forced@seriestrue\@undefined % 2020-02-02 pl0--2
- \@latex@error
- {Please update LaTeX2e!^^J\space\space
- At least LaTeX2e 2020-02-02 patch level 3 is required}
- {LaTeX2e 2020-02-02 patch level 2 (and 4) has a bug.}
-\else
- \ltj@@latex@plv=300
- \unless\ifx\series@maybe@drop@one@m@x\@undefined % pl5 + develop
- \ltj@@latex@plv=501
- \else\unless\ifx\series@maybe@drop@one@m\@undefined % patch level 5
- \ltj@@latex@plv=500
- \fi\fi
-\fi
%%%%%%
+\ifnum\ltj@@latex@plv>0
+%%%% LaTeX >= 2020-02-02
+\newif\if@shape@roman@kanji
\def\merge@kanji@series#1{%
\expandafter\expandafter\expandafter
{#1}%
\@nil
}
+\def\merge@kanji@shape#1{%
+ \expandafter\expandafter\expandafter
+ \merge@kanji@shape@
+ \csname shape@\k@shape @#1\endcsname
+ {#1}%
+ \@nil
+}
\ifnum\ltj@@latex@plv>500 % !!! pl5 + develop
\def\set@target@series@kanji#1{%
}
\fi\fi
+\ifnum\ltj@@latex@plv<1500% <=2020-10-01
\def\merge@kanji@series@#1#2#3\@nil{%
\def\reserved@a{#3}%
\ifx\reserved@a\@empty
\fi
\fi
}
-\def\merge@kanji@shape#1{%
+\def\merge@kanji@shape@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \if@shape@roman@kanji
+ \set@safe@kanji@shape{#2}{}%
+ \else
+ \edef\k@shape{#2}%
+ \fi
+ \else
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+ \edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
+ \ifcsname \reserved@a\endcsname
+ \edef\k@shape{#1}%
+ \else
+ \ifcsname \k@encoding /\k@family /\k@series/#2\endcsname
+ \edef\k@shape{#2}%
+ {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+ \else
+ \if@shape@roman@kanji
+ \set@safe@kanji@shape{#3}%
+ {{\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}}%
+ \else
+ \edef\k@shape{#3}%
+ {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\else % >=2021-05-01
+\def\merge@kanji@series@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \set@target@series@kanji{#2}%
+ \else
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+ \edef\reserved@a{\k@encoding /\k@family /#1/\k@shape}%
+ \ifcsname \reserved@a \endcsname
+ \set@target@series@kanji{#1}%
+ \else
+ \ifcsname \k@encoding /\k@family /#2/\k@shape \endcsname
+ \set@target@series@kanji{#2}%
+ {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+ \else
+ \set@target@series@kanji{#3}%
+ {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+ \fi
+ \fi
+ \fi
+}
+\def\merge@kanji@series@without@substitution#1{%
\expandafter\expandafter\expandafter
- \merge@kanji@shape@
- \csname shape@\k@shape @#1\endcsname
+ \merge@kanji@series@without@substitution@
+ \csname series@\k@series @#1\endcsname
{#1}%
\@nil
}
+\def\merge@kanji@series@without@substitution@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \set@target@series@kanji{#2}%
+ \else
+ \set@target@series@kanji{#1}%
+ \fi
+}
+\let\delayed@merge@kanji@series\merge@kanji@series@without@substitution
+
\def\merge@kanji@shape@#1#2#3\@nil{%
\def\reserved@a{#3}%
\ifx\reserved@a\@empty
\edef\k@shape{#2}%
\fi
\else
- \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
- \maybe@load@fontshape\endgroup
\edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
\ifcsname \reserved@a\endcsname
\edef\k@shape{#1}%
\fi
\fi
}
-\ifnum\ltj@@latex@plv=300 % !!! pl3, 4
+\def\merge@kanji@shape@without@substitution#1{%
+ \expandafter\expandafter\expandafter
+ \merge@kanji@shape@without@substitution@
+ \csname shape@\k@shape @#1\endcsname
+ {#1}%
+ \@nil
+}
+\def\merge@kanji@shape@without@substitution@#1#2#3\@nil{%
+ \def\reserved@a{#3}%
+ \ifx\reserved@a\@empty
+ \edef\k@shape{#2}%
+ \else
+ \edef\k@shape{#1}%
+ \fi
+}
+\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 % !!! pl 5
+\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@series@kanjifalse
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ {\delayed@k@adjustment\delayed@merge@kanji@series{#1}}}
+ \DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue
+ \expandafter\def\expandafter\delayed@f@adjustment\expandafter
+ {\delayed@f@adjustment\edef\f@series{#1}}}
+ \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@series@kanjitrue
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ {\delayed@k@adjustment\edef\k@series{#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\fontshape[1]{%
+ \@shape@roman@kanjitrue
+ \merge@font@shape{#1}\merge@kanji@shape{#1}%
+ \@shape@roman@kanjifalse
+ }
+ \DeclareRobustCommand\romanshapeforce[1]{\edef\f@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
+ {\delayed@f@adjustment\delayed@merge@font@shape{#1}}}
+ \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}}}
+ \DeclareRobustCommand\fontshapeforce[1]{%
+ \romanshapeforce{#1}%
+ \expandafter\def\expandafter\delayed@k@adjustment\expandafter
+ {\delayed@k@adjustment\set@safe@kanji@shape{#1}{}}}
\fi
-\DeclareRobustCommand\romanshape[1]{\merge@font@shape{#1}}
-\DeclareRobustCommand\kanjishape[1]{\merge@kanji@shape{#1}}
-\DeclareRobustCommand\fontshape[1]{%
- \@shape@roman@kanjitrue
- \merge@font@shape{#1}\merge@kanji@shape{#1}%
- \@shape@roman@kanjifalse
-}
-\DeclareRobustCommand\romanshapeforce[1]{\edef\f@shape{#1}}
-\DeclareRobustCommand\kanjishapeforce[1]{\edef\k@shape{#1}}
-\DeclareRobustCommand\fontshapeforce[1]{\set@safe@kanji@shape{#1}{}\romanshapeforce{#1}}
+\ifnum\ltj@@latex@plv>1000
+%%%% LaTeX >= 2020-10-01 PL3
+\DeclareRobustCommand\usekanji[4]{%
+ \kanjiencoding{#1}\edef\k@family{#2}%
+ \set@target@series@kanji{#3}\edef\k@shape{#4}%
+ \selectfont\ignorespaces}
+\DeclareRobustCommand\useroman[4]{%
+ \romanencoding{#1}\edef\f@family{#2}%
+ \set@target@series{#3}\edef\f@shape{#4}%
+ \selectfont\ignorespaces}
+\else
+%%%% 2020-10-01 <= LaTeX < 2020-10-01 PL3
\DeclareRobustCommand\usekanji[4]{%
\kanjiencoding{#1}\edef\k@family{#2}\edef\k@series{#3}\edef\k@shape{#4}%
\selectfont\ignorespaces}
\DeclareRobustCommand\useroman[4]{%
\romanencoding{#1}\edef\f@family{#2}\edef\f@series{#3}\edef\f@shape{#4}%
\selectfont\ignorespaces}
-%%%% LaTeX 2020-02-02 END
+\fi
+%%%% LaTeX >= 2020-02-02 END
\else
%%%% LaTeX 2019-10-01
\DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}}
\ltj@@is@kenc{#1}\ifin@\usekanji{#1}{#2}{#3}{#4}%
\else\useroman{#1}{#2}{#3}{#4}%
\fi}
-\DeclareRobustCommand\normalfont{%
- \useroman\encodingdefault\familydefault\seriesdefault\shapedefault
- \usekanji\kanjiencodingdefault\kanjifamilydefault\kanjiseriesdefault\kanjishapedefault}
-\let\reset@font\normalfont
-\ifdefined\@rmfamilyhook
-%%%% LaTeX 2020-02-02
+\ifnum 0\ifltj@ltfilehook@avail1\fi\ifdefined\@rmfamilyhook1\fi>0
+%%%% 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}{}{}
\patchcmd\update@series@target@value@kanji{\f@series}{\k@series}{}{}
\def\@meta@family@list@kanji{\@elt{mc}\@elt{gt}\@elt{jtt}}
-\ifdefined\@setbfseriesdefaultshook % after 2020-04-07
- \g@addto@macro\@setbfseriesdefaultshook{%
- \let\bfseries@mc\bfdef@ult
- \let\bfseries@gt\bfdef@ult
- \let\bfseries@jtt\bfdef@ult
- }
-\else % 2020-02-02
- \expandafter\patchcmd\csname bfseries \endcsname{%
- \let\bfseries@rm\bfdef@ult
- \let\bfseries@sf\bfdef@ult
- \let\bfseries@tt\bfdef@ult
- }{%
- \let\bfseries@rm\bfdef@ult
- \let\bfseries@sf\bfdef@ult
- \let\bfseries@tt\bfdef@ult
- \let\bfseries@mc\bfdef@ult
- \let\bfseries@gt\bfdef@ult
- \let\bfseries@jtt\bfdef@ult
- }{}{}
-\fi
-\ifdefined\@setmdseriesdefaultshook % after 2020-04-07
- \g@addto@macro\@setmdseriesdefaultshook{%
- \let\mdseries@mc\mddef@ult
- \let\mdseries@gt\mddef@ult
- \let\mdseries@jtt\mddef@ult
- }
-\else % 2020-02-02
- \expandafter\patchcmd\csname mdseries \endcsname{%
- \let\mdseries@rm\mddef@ult
- \let\mdseries@sf\mddef@ult
- \let\mdseries@tt\mddef@ult
- }{%
- \let\mdseries@rm\mddef@ult
- \let\mdseries@sf\mddef@ult
- \let\mdseries@tt\mddef@ult
- \let\mdseries@mc\mddef@ult
- \let\mdseries@gt\mddef@ult
- \let\mdseries@jtt\mddef@ult
- }{}{}
-\fi
+\def\@ltj@hook@series@default#1#2#3{%
+ \ifltj@ltfilehook@avail % 2020-10-01
+ \AddToHook{#1/defaults}{#2}%
+ \else\ifcsname @set#1defaultshook\endcsname %after 2020-04-07
+ \expandafter\g@addto@macro\csname @set#1defaultshook\endcsname{#2}%
+ \else % 2020-02-02
+ \expandafter\patchcmd\csname #1 \endcsname{#3}{#3#2}{}{}%
+ \fi\fi
+}
+\@ltj@hook@series@default{bfseries}{%
+ \let\bfseries@mc\bfdef@ult
+ \let\bfseries@gt\bfdef@ult
+ \let\bfseries@jtt\bfdef@ult
+}{%
+ \let\bfseries@rm\bfdef@ult
+ \let\bfseries@sf\bfdef@ult
+ \let\bfseries@tt\bfdef@ult
+}
+\@ltj@hook@series@default{mdseries}{%
+ \let\mdseries@mc\mddef@ult
+ \let\mdseries@gt\mddef@ult
+ \let\mdseries@jtt\mddef@ult
+}{%
+ \let\mdseries@rm\mddef@ult
+ \let\mdseries@sf\mddef@ult
+ \let\mdseries@tt\mddef@ult
+}
+\let\@ltj@hook@series@default\@undefined
+
\expandafter\patchcmd\csname bfseries \endcsname{%
\ifx\f@family\rmdef@ult \fontseries\bfseries@rm
\else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
\else \romanseries\mddefault
\fi\fi\fi
}{}{}
-\expandafter\patchcmd\csname bfseries \endcsname{\selectfont}%
-{%
+
+\def\@ltj@hook@series#1#2{%
+ \ifltj@ltfilehook@avail % 2020-10-01
+ \AddToHook{#1}{#2}%
+ \else % 2020-02-02
+ \expandafter\patchcmd\csname #1 \endcsname{\selectfont}{#2\selectfont}{}{}%
+ \fi
+}
+\@ltj@hook@series{bfseries}{%
\ifx\k@family\mcdef@ult \kanjiseries\bfseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\bfseries@gt
\else\ifx\k@family\jttdef@ult\kanjiseries\bfseries@jtt
\else \kanjiseries\bfdefault
\fi\fi\fi
- \selectfont
-}{}{}
-\expandafter\patchcmd\csname mdseries \endcsname{\selectfont}%
-{%
+}
+\@ltj@hook@series{mdseries}{%
\ifx\k@family\mcdef@ult \kanjiseries\mdseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\mdseries@gt
\else\ifx\k@family\jttdef@ult\kanjiseries\mdseries@jtt
\else \kanjiseries\mddefault
\fi\fi\fi
- \selectfont
-}{}{}
-\ifdefined\@expandfontdefaultshook % 2020-04-07
- \g@addto@macro\@expandfontdefaultshook{%
- \edef\mcdef@ult{\mcdefault}%
- \edef\gtdef@ult{\gtdefault}%
- \edef\jttdef@ult{\jttdefault}%
- \edef\kanjidef@ult{\kanjifamilydefault}%
+}
+\let\@ltj@hook@series\@undefined
+
+\def\@ltj@hook@efd#1#2{%
+ \ifltj@ltfilehook@avail % 2020-10-01
+ \AddToHook{expand@font@defaults}{#1}%
+ \else\ifdefined\@expandfontdefaultshook %after 2020-04-07
+ \g@addto@macro\@expandfontdefaultshook{#1#2}%
+ \else % 2020-02-02
+ \appto\expand@font@defaults{#1#2}%
+ \fi\fi
+}
+\@ltj@hook@efd{%
+ \edef\mcdef@ult{\mcdefault}%
+ \edef\gtdef@ult{\gtdefault}%
+ \edef\jttdef@ult{\jttdefault}%
+}{\edef\kanjidef@ult{\kanjifamilydefault}}
+\let\@ltj@hook@efd\@undefined
+
+\ifltj@ltfilehook@avail % 2020-10-01
+ \appto\init@series@setup{%
+ \ifx\kanjiseriesdefault\kanjiseriesdefault@kernel
+ \mdseries
+ \let\kanjiseriesdefault\k@series
+ \fi
}
-\else % 2020-02-02
- \appto\expand@font@defaults{%
- \edef\mcdef@ult{\mcdefault}%
- \edef\gtdef@ult{\gtdefault}%
- \edef\jttdef@ult{\jttdefault}%
- \edef\kanjidef@ult{\kanjifamilydefault}%
+\else
+ \appto\init@series@setup{%
+ \ifx\kanjidef@ult\mcdef@ult \mcfamily
+ \else\ifx\kanjidef@ult\gtdef@ult \gtfamily
+ \else\ifx\kanjidef@ult\jttdef@ult \jttfamily
+ \fi\fi\fi
}
\fi
-\appto\init@series@setup{%
- \ifx\kanjidef@ult\mcdef@ult \mcfamily
- \else\ifx\kanjidef@ult\gtdef@ult \gtfamily
- \else\ifx\kanjidef@ult\jttdef@ult \jttfamily
- \fi\fi\fi
+
+\def\@ltj@hook@dfh#1{%
+ \ifltj@ltfilehook@avail % 2020-10-01
+ \AddToHook{normalfont}{#1}%
+ \else\ifdefined\@defaultfamilyhook
+ \g@addto@macro\@defaultfamilyhook{#1}%
+ \else % 2020-02-02
+ \expandafter\patchcmd\csname normalfont \endcsname{\selectfont}{#1\selectfont}{}{}%
+ \let\reset@font\normalfont
+ \fi\fi
+}
+\@ltj@hook@dfh{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
}
+\let\@ltj@hook@dfh\@undefined
+%%%% LaTeX >= 2020-02-02 END
+\else
+%%%% LaTeX 2019-10-01
+\DeclareRobustCommand\normalfont{%
+ \useroman\encodingdefault\familydefault\seriesdefault\shapedefault
+ \usekanji\kanjiencodingdefault\kanjifamilydefault\kanjiseriesdefault\kanjishapedefault}
+\let\reset@font\normalfont
+%%%% LaTeX 2019-10-01 END
\fi
+
+
+
\ifdefined\prepare@family@series@update@kanji\else
%%%% LaTeX 2019-10-01
\def\prepare@family@series@update@kanji#1{\kanjifamily}
\selectfont}
-
\let\romanprocess@table\process@table
\def\kanjiprocess@table{%
- \kanjiencoding{\kanjiencodingdefault}%
- \kanjifamily{\kanjifamilydefault}%
- \kanjiseries{\kanjiseriesdefault}%
- \kanjishape{\kanjishapedefault}%
+ \kanjiencoding\kanjiencodingdefault%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
}
\def\process@table{%
\romanprocess@table