OSDN Git Service

Use \if@forced@series@kanji in \kanjiseries[force] and \prepare@family@series@update...
[luatex-ja/luatexja.git] / src / patches / lltjfont.sty
index 8e1d0ae..4ffc2e4 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \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}{}{}