diff options
Diffstat (limited to 'macros/luatex/generic/luatexja/src/patches/lltjfont.sty')
-rw-r--r-- | macros/luatex/generic/luatexja/src/patches/lltjfont.sty | 254 |
1 files changed, 150 insertions, 104 deletions
diff --git a/macros/luatex/generic/luatexja/src/patches/lltjfont.sty b/macros/luatex/generic/luatexja/src/patches/lltjfont.sty index 3578a84396..564a1b6c15 100644 --- a/macros/luatex/generic/luatexja/src/patches/lltjfont.sty +++ b/macros/luatex/generic/luatexja/src/patches/lltjfont.sty @@ -3,7 +3,7 @@ % \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{lltjfont}[2020-05-17 Patch to NFSS2 for LuaTeX-ja] +\ProvidesPackage{lltjfont}[2020-09-30 Patch to NFSS2 for LuaTeX-ja] %% patching \DeclareTextComposite \def\ltj@chardef@text@cmd#1{% @@ -432,19 +432,32 @@ \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}} @@ -620,24 +633,28 @@ } \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 +\ifltj@ltfilehook@avail % 2020-10-01 + \ltj@@latex@plv=1000 +\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 + %%%%%% +\ifnum\ltj@@latex@plv>0 +%%%% LaTeX >= 2020-02-02 +\newif\if@shape@roman@kanji \def\merge@kanji@series#1{% \expandafter\expandafter\expandafter @@ -757,7 +774,7 @@ \DeclareRobustCommand\useroman[4]{% \romanencoding{#1}\edef\f@family{#2}\edef\f@series{#3}\edef\f@shape{#4}% \selectfont\ignorespaces} -%%%% LaTeX 2020-02-02 END +%%%% LaTeX >= 2020-02-02 END \else %%%% LaTeX 2019-10-01 \DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} @@ -794,13 +811,9 @@ \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{\fontfamily}{\kanjifamily}{}{} @@ -821,46 +834,35 @@ \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 @@ -887,46 +889,91 @@ \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} @@ -942,13 +989,12 @@ \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 |