From: Hironori Kitagawa Date: Sun, 12 Jan 2020 05:49:03 +0000 (+0900) Subject: more NFSS X-Git-Tag: 20200127.0~9^2~9 X-Git-Url: http://git.osdn.net/view?p=luatex-ja%2Fluatexja.git;a=commitdiff_plain;h=c83c535f14054469eba8fda43a6473febd489656 more NFSS --- diff --git a/src/patches/lltjdefs.sty b/src/patches/lltjdefs.sty index 6a5e9d0..55811e8 100644 --- a/src/patches/lltjdefs.sty +++ b/src/patches/lltjdefs.sty @@ -77,9 +77,19 @@ \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}% @@ -93,9 +103,21 @@ \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}{}{} diff --git a/src/patches/lltjfont.sty b/src/patches/lltjfont.sty index 51f3c9a..2e18a8c 100644 --- a/src/patches/lltjfont.sty +++ b/src/patches/lltjfont.sty @@ -654,6 +654,7 @@ \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} @@ -666,22 +667,87 @@ \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}% diff --git a/test/test31-nfss20200202.tex b/test/test31-nfss20200202.tex index 495886c..edf64ce 100644 --- a/test/test31-nfss20200202.tex +++ b/test/test31-nfss20200202.tex @@ -1,5 +1,17 @@ \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. @@ -7,13 +19,17 @@ あいう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