\DeclareMathAlphabet{\mathgt}{JY3}{gt}{m}{n}
\fi
+\ifdefined\fontseriesforce
+\def\bfseries@mc{bx}
+\def\bfseries@gt{bx}
+\def\bfseries@jtt{\bfseries@gt}
+\def\mdseries@mc{m}
+\def\mdseries@gt{m}
+\def\mdseries@jtt{\mdseries@jtt}
+\fi
+
\newif\if@ltj@match@family
\@ltj@match@familyfalse
\def\verbatim@font{\normalfont\ttfamily\kanjifamily\jttdefault\selectfont}
+
\def\@ltj@hook@family#1#2{ % #1: csname #2: contents
\ifcsname @#1hook\endcsname % LaTeX 2020-02-02
\csappto{@#1hook}{#2}%
\fi
\fi
}
-\@ltj@hook@family{rmfamily}{\if@ltj@match@family\kanjifamily\mcdefault\fi}
-\@ltj@hook@family{sffamily}{\if@ltj@match@family\kanjifamily\gtdefault\fi}
-\@ltj@hook@family{ttfamily}{\if@ltj@match@family\kanjifamily\jttdefault\fi}
+\@ltj@hook@family{rmfamily}{%
+ \if@ltj@match@family
+ \prepare@family@series@update@kanji{mc}\mcdefault
+ \fi
+}
+\@ltj@hook@family{sffamily}{%
+ \if@ltj@match@family
+ \prepare@family@series@update@kanji{gt}\gtdefault
+ \fi
+}
+\@ltj@hook@family{ttfamily}{%
+ \if@ltj@match@family
+ \prepare@family@series@update@kanji{jtt}\jttdefault
+ \fi
+}
%%% \eminnershape
\expandafter\patchcmd\csname em \endcsname{\itshape}{\gtfamily\itshape}{}{}
\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}}
\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}}
\fi
+%%%%
\DeclareRobustCommand\usekanji[4]{%
\kanjiencoding{#1}\kanjifamily{#2}\kanjiseries{#3}\kanjishape{#4}%
\selectfont\ignorespaces}
\else\useroman{#1}{#2}{#3}{#4}%
\fi}
\DeclareRobustCommand\normalfont{%
- \kanjiencoding{\kanjiencodingdefault}%
- \kanjifamily{\kanjifamilydefault}%
- \kanjiseries{\kanjiseriesdefault}%
- \kanjishape{\kanjishapedefault}%
- \romanencoding{\encodingdefault}%
- \romanfamily{\familydefault}%
- \romanseries{\seriesdefault}%
- \romanshape{\shapedefault}%
- \selectfont\ignorespaces}
+ \useroman\encodingdefault\familydefault\seriesdefault\shapedefault
+ \usekanji\kanjiencodingdefault\kanjifamilydefault\kanjiseriesdefault\kanjishapedefault
+ \ignorespaces}
\let\reset@font\normalfont
+
+\ifdefined\fontseriesforce
+%%%% 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}{}{}
+\patchcmd\prepare@family@series@update@kanji{\f@series}{\k@series}{}{}
+\patchcmd\prepare@family@series@update@kanji{\maybe@load@fontshape}
+ {\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup}{}{}
+\appto\@meta@family@list{\@elt{mc}\@elt{gt}\@elt{jtt}}
+\DeclareRobustCommand\bfseries{%
+ \not@math@alphabet\bfseries\mathbf
+ \expand@font@defaults
+ \romanseries{%
+ \ifx\f@family\rmdef@ult \bfseries@rm
+ \else\ifx\f@family\sfdef@ult \bfseries@sf
+ \else\ifx\f@family\ttdef@ult \bfseries@tt
+ \else \bfdefault
+ \fi\fi\fi
+ }%
+ \kanjiseries{%
+ \ifx\k@family\mcdef@ult \bfseries@mc
+ \else\ifx\k@family\gtdef@ult \bfseries@gt
+ \else\ifx\k@family\jttdef@ult\bfseries@jtt
+ \else \bfdefault
+ \fi\fi\fi
+ }%
+ \selectfont
+}
+\DeclareRobustCommand\mdseries{%
+ \not@math@alphabet\mdseries\relax
+ \expand@font@defaults
+ \romanseries{%
+ \ifx\f@family\rmdef@ult \mdseries@rm
+ \else\ifx\f@family\sfdef@ult \mdseries@sf
+ \else\ifx\f@family\ttdef@ult \mdseries@tt
+ \else \mddefault
+ \fi\fi\fi
+ }%
+ \kanjiseries{%
+ \ifx\k@family\mcdef@ult \mdseries@mc
+ \else\ifx\k@family\gtdef@ult \mdseries@gt
+ \else\ifx\k@family\jttdef@ult\mdseries@jtt
+ \else \mddefault
+ \fi\fi\fi
+ }%
+ \selectfont
+}
+\appto\expand@font@defaults{%
+ \edef\mcdef@ult{\mcdefault}%
+ \edef\gtdef@ult{\gtdefault}%
+ \edef\jttdef@ult{\jttdefault}%
+ \edef\kanjidef@ult{\kanjifamilydefault}%
+}
+\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
+}
+\else
+%%%% LaTeX 2019-10-01
+\def\prepare@family@series@update@kanji#1{\kanjifamily}
+\fi
+
\DeclareRobustCommand\mcfamily{%
\unless\ifltj@disablejfam\not@math@alphabet\mcfamily\mathmc\fi
- \kanjifamily\mcdefault\selectfont}
+ \prepare@family@series@update@kanji{mc}\mcdefault
+ \selectfont}
\DeclareRobustCommand\gtfamily{%
\unless\ifltj@disablejfam\not@math@alphabet\gtfamily\mathgt\fi
- \kanjifamily\gtdefault\selectfont}
+ \prepare@family@series@update@kanji{gt}\gtdefault
+ \selectfont}
+
+
+
\let\romanprocess@table\process@table
\def\kanjiprocess@table{%
\kanjiencoding{\kanjiencodingdefault}%
\documentclass{ltjarticle}
\makeatletter
+\def\mdseries@mc{el}
+\def\bfseries@mc{sb}
+\def\mdseries@gt{l}
+\def\bfseries@gt{k}
+\DeclareFontShape{JY3}{gt}{k}{n}{<-> KozGoPr6N-Heavy.otf:jfm=ujis}{}
+\DeclareFontShape{JT3}{gt}{k}{n}{<-> KozGoPr6N-Heavy.otf:jfm=ujisv}{}
+\DeclareFontShape{JY3}{gt}{l}{n}{<-> KozGoPr6N-ExtraLight.otf:jfm=ujis}{}
+\DeclareFontShape{JT3}{gt}{l}{n}{<-> KozGoPr6N-ExtraLight.otf:jfm=ujisv}{}
+\DeclareFontShape{JY3}{mc}{el}{n}{<-> KozMinPr6N-ExtraLight.otf:jfm=ujis}{}
+\DeclareFontShape{JT3}{mc}{el}{n}{<-> KozMinPr6N-ExtraLight.otf:jfm=ujisv}{}
+\DeclareFontShape{JY3}{mc}{sb}{n}{<-> KozMinPr6N-Bold.otf:jfm=ujis}{}
+\DeclareFontShape{JT3}{mc}{sb}{n}{<-> KozMinPr6N-Bold.otf:jfm=ujisv}{}
\def\TEST{%
\par
A: \f@encoding/\f@family/\f@series/\f@shape.
あいうABC
}
\begin{document}
+\TEST NORMAL
+\emph{\TEST} EMPH
+\textsf{\TEST} SF
+\textbf{\TEST} BF
+\textgt{\TEST} GT
+\textbf{\textgt{\TEST}} BF+GT
+\textbf{\textgt{\textmd{\TEST}}} BF+GT+MD
+
+\textsc{\textit{\TEST}} SC+IT
+
+{\fontseries{b}\selectfont \TEST} B
+{\fontseries{bx}\selectfont \TEST} BX
-\bfdefault
-\TEST
-\emph{\TEST}
-\textsf{\TEST}
-\textbf{\TEST}
-{\fontseries{b}\selectfont \TEST}
-{\fontseries{bx}\selectfont \TEST}
-\textsc{\textit{\TEST}}
\end{document}
\ No newline at end of file