OSDN Git Service

more NFSS
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 12 Jan 2020 05:49:03 +0000 (14:49 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 12 Jan 2020 05:49:03 +0000 (14:49 +0900)
src/patches/lltjdefs.sty
src/patches/lltjfont.sty
test/test31-nfss20200202.tex

index 6a5e9d0..55811e8 100644 (file)
   \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}{}{}
index 51f3c9a..2e18a8c 100644 (file)
 \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}%
index 495886c..edf64ce 100644 (file)
@@ -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.
   あいう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