diff options
Diffstat (limited to 'Master/texmf-dist/tex/platex/base/plcore.ltx')
-rw-r--r-- | Master/texmf-dist/tex/platex/base/plcore.ltx | 281 |
1 files changed, 267 insertions, 14 deletions
diff --git a/Master/texmf-dist/tex/platex/base/plcore.ltx b/Master/texmf-dist/tex/platex/base/plcore.ltx index 170c8e5cd16..e9ad50530b3 100644 --- a/Master/texmf-dist/tex/platex/base/plcore.ltx +++ b/Master/texmf-dist/tex/platex/base/plcore.ltx @@ -33,8 +33,8 @@ \fi \def\pfmtname{pLaTeX2e} \def\pfmtversion - {2019-10-01} -\def\ppatch@level{1} + {2020-02-02} +\def\ppatch@level{0} \edef\platexBANNER{\noexpand\platexNILa \the\everyjob % LaTeX banner and delayed codes \noexpand\platexNILb} @@ -676,18 +676,120 @@ \if@notkfam\if@notffam \edef\k@family{#1}\edef\f@family{#1}% \fi\fi} +\ifx\fontseriesforce\@undefined % old \DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} \DeclareRobustCommand\kanjiseries[1]{\edef\k@series{#1}} \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} +\else % 2020-02-02 +\DeclareRobustCommand\romanseries[1]{\merge@font@series{#1}} +\DeclareRobustCommand\kanjiseries[1]{\merge@kanji@series{#1}} +\DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} +\fi +\ifx\fontseriesforce\@undefined % old +\let\romanseriesforce\@undefined +\let\kanjiseriesforce\@undefined +\else % 2020-02-02 +\DeclareRobustCommand\romanseriesforce[1]{\edef\f@series{#1}} +\DeclareRobustCommand\kanjiseriesforce[1]{\edef\k@series{#1}} +\DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}} +\fi +\ifx\fontseriesforce\@undefined % old +\let\merge@kanji@series\@undefined +\let\merge@kanji@series@\@undefined +\let\set@target@series@kanji\@undefined +\else % 2020-02-02 +\def\merge@kanji@series#1{% + \expandafter\expandafter\expandafter + \merge@kanji@series@ + \csname series@\k@series @#1\endcsname + {#1}% + \@nil +} +\def\merge@kanji@series@#1#2#3\@nil{% + \def\@reserveda{#3}% + \ifx\@reserveda\@empty + \set@target@series@kanji{#2}% + \else + \begingroup\let\f@encoding\k@encoding\let\f@family\k@family + \maybe@load@fontshape\endgroup + \edef\@reserveda{\k@encoding /\k@family /#1/\k@shape}% + \ifcsname \@reserveda \endcsname + \set@target@series@kanji{#1}% + \else + \ifcsname \k@encoding /\k@family /#2/\k@shape \endcsname + \set@target@series@kanji{#2}% + {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% + \else + \set@target@series@kanji{#3}% + {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% + \fi + \fi + \fi +} +\def\set@target@series@kanji#1{% + \edef\k@series{#1}% + \edef\k@series{\expandafter\series@drop@one@m\k@series mm\series@drop@one@m}% +} +\fi +\ifx\fontshapeforce\@undefined % old \DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}} \DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}} \DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}} -\DeclareRobustCommand\usekanji[4]{% - \kanjiencoding{#1}\kanjifamily{#2}\kanjiseries{#3}\kanjishape{#4}% - \selectfont\ignorespaces} -\DeclareRobustCommand\useroman[4]{% - \romanencoding{#1}\romanfamily{#2}\romanseries{#3}\romanshape{#4}% - \selectfont\ignorespaces} +\else % 2020-02-02 +\DeclareRobustCommand\romanshape[1]{\merge@font@shape{#1}} +\DeclareRobustCommand\kanjishape[1]{\merge@kanji@shape{#1}} +\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}} +\fi +\ifx\fontshapeforce\@undefined % old +\let\romanshapeforce\@undefined +\let\kanjishapeforce\@undefined +\else % 2020-02-02 +\DeclareRobustCommand\romanshapeforce[1]{\edef\f@shape{#1}} +\DeclareRobustCommand\kanjishapeforce[1]{\edef\k@shape{#1}} +\DeclareRobustCommand\fontshapeforce[1]{\kanjishapeforce{#1}\romanshapeforce{#1}} +\fi +\ifx\fontseriesforce\@undefined % old +\let\merge@kanji@shape\@undefined +\let\merge@kanji@shape@\@undefined +\else % 2020-02-02 +\def\merge@kanji@shape#1{% + \expandafter\expandafter\expandafter + \merge@kanji@shape@ + \csname shape@\k@shape @#1\endcsname + {#1}% + \@nil +} +\def\merge@kanji@shape@#1#2#3\@nil{% + \def\@reserveda{#3}% + \ifx\@reserveda\@empty + \edef\k@shape{#2}% + \else + \maybe@load@fontshape + \edef\@reserveda{\k@encoding /\k@family /\k@series/#1}% + \ifcsname \@reserveda\endcsname + \edef\k@shape{#1}% + \else + \ifcsname \k@encoding /\k@family /\k@series/#2\endcsname + \edef\k@shape{#2}% + {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% + \else + \edef\k@shape{#3}% + {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% + \fi + \fi + \fi +} +\fi +\DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}% + \edef\k@family{#2}% + \edef\k@series{#3}% + \edef\k@shape{#4}\selectfont + \ignorespaces} +\DeclareRobustCommand\useroman[4]{\romanencoding{#1}% + \edef\f@family{#2}% + \edef\f@series{#3}% + \edef\f@shape{#4}\selectfont + \ignorespaces} \DeclareRobustCommand\usefont[4]{% \edef\tmp@item{{#1}}% \expandafter\expandafter\expandafter @@ -697,22 +799,168 @@ \fi} \DeclareRobustCommand\normalfont{% \kanjiencoding{\kanjiencodingdefault}% - \kanjifamily{\kanjifamilydefault}% - \kanjiseries{\kanjiseriesdefault}% - \kanjishape{\kanjishapedefault}% + \edef\k@family{\kanjifamilydefault}% + \edef\k@series{\kanjiseriesdefault}% + \edef\k@shape{\kanjishapedefault}% \romanencoding{\encodingdefault}% - \romanfamily{\familydefault}% - \romanseries{\seriesdefault}% - \romanshape{\shapedefault}% + \edef\f@family{\familydefault}% + \edef\f@series{\seriesdefault}% + \edef\f@shape{\shapedefault}% \selectfont\ignorespaces} \adjustbaseline \let\reset@font\normalfont +\ifx\bfseries@rm\@undefined % old +\let\bfseries@mc\@undefined +\let\bfseries@gt\@undefined +\let\mdseries@mc\@undefined +\let\mdseries@gt\@undefined +\else % 2020-02-02 +\edef\bfseries@mc{\bfdefault}% b +\edef\bfseries@gt{\bfdefault}% b +\edef\mdseries@mc{\mddefault}% m +\edef\mdseries@gt{\mddefault}% m +\fi +\ifx\expand@font@defaults\@undefined\else % 2020-02-02 +\g@addto@macro\expand@font@defaults{% + \edef\mcdef@ult{\mcdefault}% + \edef\gtdef@ult{\gtdefault}% + \edef\kanjidef@ult{\kanjifamilydefault}% +} +\fi +\ifx\bfseries@rm\@undefined\else % 2020-02-02 +\DeclareRobustCommand\bfseries{% + \not@math@alphabet\bfseries\mathbf + \expand@font@defaults + \romanseries{% changed \fontseries -> \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 \bfdefault + \fi\fi + }% + \selectfont +} +\DeclareRobustCommand\mdseries{% + \not@math@alphabet\mdseries\relax + \expand@font@defaults + \romanseries{% changed \fontseries -> \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 \mddefault + \fi\fi + }% + \selectfont +} +\fi +\ifx\prepare@family@series@update\@undefined % old +\let\prepare@family@series@update@kanji\@undefined +\let\@meta@family@list@kanji\@undefined +\else % 2020-02-02 +\def\prepare@family@series@update#1#2{% + \expand@font@defaults + \let\target@series@value\@empty + \def\target@meta@family@value{#1}% + \let\@elt\update@series@target@value + \@meta@family@list + \let\@elt\relax + \romanfamily#2% % changed \fontfamily -> \romanfamily + \ifx\target@series@value\@empty + \else + \maybe@load@fontshape + \let\f@series\target@series@value + \fi +} +\def\prepare@family@series@update@kanji#1#2{% + \expand@font@defaults + \let\target@series@value\@empty + \def\target@meta@family@value{#1}% + \let\@elt\update@series@target@value@kanji + \@meta@family@list@kanji + \let\@elt\relax + \kanjifamily#2% + \ifx\target@series@value\@empty + \else + \begingroup\let\f@encoding\k@encoding\let\f@family\k@family + \maybe@load@fontshape\endgroup + \let\k@series\target@series@value + \fi +} +\def\@meta@family@list@kanji{\@elt{mc}\@elt{gt}} +\def\update@series@target@value@kanji#1{% + \def\@reserveda{#1}% + \ifx\target@meta@family@value\@reserveda % rm -> rm do nothing + \else + \expandafter\ifx\csname#1def@ult\endcsname\k@family + \let\@elt\@gobble + \expandafter\let\expandafter\@reservedb + \csname mdseries@\target@meta@family@value\endcsname + \expandafter\let\expandafter\@reservedc + \csname bfseries@\target@meta@family@value\endcsname + \expandafter\ifx\csname mdseries@#1\endcsname\k@series + \let\target@series@value\@reservedb + \else\expandafter\ifx\csname bfseries@#1\endcsname\k@series + \let\target@series@value\@reservedc + \else\ifx\k@series\mddef@ult \let\target@series@value\@reservedb + \else\ifx\k@series\bfdef@ult \let\target@series@value\@reservedc + \fi\fi\fi\fi + \fi + \fi +} +\fi +\ifx\init@series@setup\@undefined\else % 2020-02-02 +\g@addto@macro\init@series@setup{% + \ifx\kanjidef@ult\mcdef@ult \mcfamily + \else\ifx\kanjidef@ult\gtdef@ult \gtfamily + \fi\fi +}% +\fi +\ifx\prepare@family@series@update@kanji\@undefined % 2020-02-02 \DeclareRobustCommand\mcfamily {\not@math@alphabet\mcfamily\mathmc \kanjifamily\mcdefault\selectfont} \DeclareRobustCommand\gtfamily {\not@math@alphabet\gtfamily\mathgt \kanjifamily\gtdefault\selectfont} +\else +\DeclareRobustCommand\mcfamily + {\not@math@alphabet\mcfamily\mathmc + \prepare@family@series@update@kanji{mc}\mcdefault\selectfont} +\DeclareRobustCommand\gtfamily + {\not@math@alphabet\gtfamily\mathgt + \prepare@family@series@update@kanji{gt}\gtdefault\selectfont} +\fi +\DeclareTextFontCommand{\textmc}{\mcfamily} +\DeclareTextFontCommand{\textgt}{\gtfamily} +\ifx\DeclareEmphSequence\@undefined % old +\DeclareRobustCommand\em + {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ + \eminnershape \else \gtfamily \itshape \fi}% +\else +\DeclareRobustCommand\em{% % 2020-02-02 + \@nomath\em + \ifx\emfontdeclare@clist\@empty + \ifdim \fontdimen\@ne\font >\z@ + \eminnershape \else \gtfamily \itshape \fi + \else + \edef\em@currfont{\csname\curr@fontshape/\f@size\endcsname}% + \expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update + \fi +} +\fi +\def\eminnershape{\mcfamily \upshape}% \let\romanprocess@table\process@table \def\kanjiprocess@table{% \kanjiencoding{\kanjiencodingdefault}% @@ -827,6 +1075,11 @@ \let\@text@composite@x\pltx@saved@text@composite@x } \nofixcompositeaccent +\ifx\protected\@undefined +\def\<{\inhibitglue} +\else +\protected\def\<{\ifvmode\leavevmode\fi\inhibitglue} +\fi %% File: plcore.dtx \def\NeedsTeXFormat#1{% \def\reserved@a{#1}% |