summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/platex/base/plcore.ltx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/platex/base/plcore.ltx')
-rw-r--r--Master/texmf-dist/tex/platex/base/plcore.ltx543
1 files changed, 442 insertions, 101 deletions
diff --git a/Master/texmf-dist/tex/platex/base/plcore.ltx b/Master/texmf-dist/tex/platex/base/plcore.ltx
index 13dc9165aa4..6c9eb8ef549 100644
--- a/Master/texmf-dist/tex/platex/base/plcore.ltx
+++ b/Master/texmf-dist/tex/platex/base/plcore.ltx
@@ -33,19 +33,12 @@
\fi
\def\pfmtname{pLaTeX2e}
\def\pfmtversion
- {2020-02-02}
-\def\ppatch@level{3}
+ {2020-04-12}
+\def\ppatch@level{0}
\edef\platexBANNER{\noexpand\platexNILa
\the\everyjob % LaTeX banner and delayed codes
\noexpand\platexNILb}
\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#1}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
- \global\everyjob\expandafter{\the\toks0}%
-\endgroup
-\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#2}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
\ifnum\ppatch@level=0
\toks2={\pfmtname\space<\pfmtversion>\space}%
\else\ifnum\ppatch@level>0
@@ -53,15 +46,9 @@
\else
\toks2={\pfmtname\space<\pfmtversion>-pre\ppatch@level\space}%
\fi\fi
- \edef\platexBANNER{\the\everyjob
- \noexpand\typeout{\the\toks2 (based on \the\toks0)}}
- \global\everyjob\expandafter{\platexBANNER}%
-\endgroup
-\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#3}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
- \edef\platexBANNER{\the\everyjob \the\toks0}
- \global\everyjob\expandafter{\platexBANNER}%
+ \edef\platexNILa#1\typeout#2#3\platexNILb{%
+ #1\noexpand\typeout{\the\toks2 (based on #2)}#3}
+ \global\everyjob\expandafter\expandafter\expandafter{\platexBANNER}%
\endgroup
\let\platexBANNER=\@undefined
\newif\if@plincludeinrelease
@@ -134,9 +121,15 @@
\newdimen\cHT
\let\afont\font
\def\inlist@#1#2{%
- \def\in@@##1<#1>##2##3\in@@{%
- \ifx\in@##2\in@false\else\in@true\fi}%
- \in@@#2<#1>\in@\in@@}
+ \edef\reserved@a{%
+ \unexpanded{\def\in@@##1<}%
+ \detokenize{#1}%
+ \unexpanded{>##2##3\in@@{\ifx\in@##2\in@false\else\in@true\fi}\in@@}%
+ \detokenize{#2}%
+ \unexpanded{<}%
+ \detokenize{#1}%
+ \unexpanded{>\in@\in@@}}%
+ \reserved@a}
\def\fam@elt{\noexpand\fam@elt}
\def\enc@elt{\noexpand\enc@elt}
\def\fenc@list{\enc@elt<OML>\enc@elt<T1>\enc@elt<OT1>\enc@elt<OMS>%
@@ -292,6 +285,15 @@
\let\default@KM\@empty
\@onlypreamble\DeclareKanjiEncodingDefaults
\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}}
+\def\ensure@KanjiEncodingPair#1{%
+ \edef\reserved@a{\csname #1@enc@\k@encoding\endcsname}%
+ \edef\reserved@b{\csname c#1@encoding\endcsname}%
+ \ifcat\relax\reserved@a
+ \@latex@error
+ {KANJI Encoding pair for `\k@encoding' undefined}%
+ {Use \string\KanjiEncodingPair, falling back to `\reserved@b'...}%
+ \expandafter\edef\reserved@a{\reserved@b}%
+ \fi}
\def\DeclareFontFamily#1#2#3{%
\@ifundefined{T@#1}%
{\@latex@error{Encoding scheme `#1' unknown}\@eha}%
@@ -347,9 +349,9 @@
\cdp@list
\xdef\cdp@list{\the\toks@}%
\endgroup
- \global\@namedef{D@#1}{\def\default@family{#2}%
- \def\default@series{#3}%
- \def\default@shape{#4}}%
+ \global\@namedef{D@#1}{\def\default@k@family{#2}% !!!
+ \def\default@k@series{#3}% !!!
+ \def\default@k@shape{#4}}% !!!
\fi}
\@onlypreamble\DeclareKanjiSubstitution
\def\DeclareErrorKanjiFont#1#2#3#4#5{%
@@ -362,6 +364,78 @@
\gdef\default@k@shape{#4}%
}
\@onlypreamble\DeclareErrorKanjiFont
+\def\wrong@al@fontshape{%
+ \csname D@\f@encoding\endcsname % install defaults if in math
+ \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+ \ifx\last@fontshape\reserved@a
+ \errmessage{Corrupted NFSS tables}%
+ \error@fontshape
+ \else
+ \let\f@shape\default@shape
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@series\default@series
+ \expandafter
+ \ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@family\default@family
+ \begingroup
+ \try@load@fontshape
+ \endgroup
+ \fi \fi
+ \fi
+ \@font@warning{Font shape `\expandafter\string\reserved@a'
+ \expandafter\@gobble\string\@undefined\MessageBreak
+ using `\curr@fontshape' instead\@wrong@font@char}%
+ \global\let\last@fontshape\reserved@a
+ \gdef\@defaultsubs{%
+ \@font@warning{Some font shapes were not available, defaults
+ substituted.\@gobbletwo}}%
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter\reserved@a
+ \csname\curr@fontshape\endcsname
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font}
+\def\wrong@ja@fontshape{%
+ \csname D@\f@encoding\endcsname % install defaults if in math
+ \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+ \ifx\last@fontshape\reserved@a
+ \errmessage{Corrupted NFSS tables}%
+ \error@fontshape
+ \else
+ \let\f@shape\default@k@shape % !!!
+ \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@series\default@k@series % !!!
+ \expandafter
+ \ifx\csname\curr@fontshape\endcsname\relax
+ \let\f@family\default@k@family % !!!
+ \begingroup
+ \try@load@fontshape
+ \endgroup
+ \fi \fi
+ \fi
+ \@font@warning{Font shape `\expandafter\string\reserved@a'
+ \expandafter\@gobble\string\@undefined\MessageBreak
+ using `\curr@fontshape' instead\@wrong@font@char}%
+ \global\let\last@fontshape\reserved@a
+ \gdef\@defaultsubs{%
+ \@font@warning{Some font shapes were not available, defaults
+ substituted.\@gobbletwo}}%
+ \global\expandafter\expandafter\expandafter\let
+ \expandafter\reserved@a
+ \csname\curr@fontshape\endcsname
+ \xdef\font@name{%
+ \csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font}
+\def\wrong@fontshape{%
+ \edef\tmp@item{{\f@encoding}}%
+ \expandafter\expandafter\expandafter
+ \inlist@\expandafter\tmp@item\expandafter{\kenc@list}%
+ \ifin@
+ \wrong@ja@fontshape
+ \else
+ \wrong@al@fontshape
+ \fi
+}
\def\DeclareFixedFont#1#2#3#4#5#6{%
\begingroup
\let\afont\font
@@ -389,6 +463,46 @@
\let\font\afont
\endgroup
}
+\def\pltx@do@subst@correction@al{%
+ \xdef\subst@correction{%
+ \font@name
+ \global\expandafter\font
+ \csname \curr@fontshape/\f@size\endcsname
+ \noexpand\fontname\font
+ \relax}%
+ \aftergroup\subst@correction
+}
+\def\pltx@do@subst@correction@yoko{%
+ \xdef\subst@correction{%
+ \font@name
+ \global\expandafter\jfont
+ \csname \curr@fontshape/\f@size\endcsname
+ \noexpand\fontname\jfont
+ \relax}%
+ \aftergroup\subst@correction
+}
+\def\pltx@do@subst@correction@tate{%
+ \xdef\subst@correction{%
+ \font@name
+ \global\expandafter\tfont
+ \csname \curr@fontshape/\f@size\endcsname
+ \noexpand\fontname\tfont
+ \relax}%
+ \aftergroup\subst@correction
+}
+\def\do@subst@correction{%
+ \edef\tmp@item{{\f@encoding}}%
+ \expandafter\expandafter\expandafter
+ \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}%
+ \ifin@\pltx@do@subst@correction@yoko
+ \else
+ \expandafter\expandafter\expandafter
+ \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}%
+ \ifin@\pltx@do@subst@correction@tate\else
+ \pltx@do@subst@correction@al
+ \fi
+ \fi
+}
\def\reDeclareMathAlphabet#1#2#3{%
\edef#1{\noexpand\protect\expandafter\noexpand\csname%
\expandafter\@gobble\string#1\space\space\endcsname}%
@@ -466,12 +580,14 @@
\inlist@\expandafter\tmp@item\expandafter{\kyenc@list}%
\ifin@
\let\cy@encoding\k@encoding
+ \ensure@KanjiEncodingPair{t}%
\edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}%
\else
\expandafter\expandafter\expandafter
\inlist@\expandafter\tmp@item\expandafter{\ktenc@list}%
\ifin@
\let\ct@encoding\k@encoding
+ \ensure@KanjiEncodingPair{y}%
\edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}%
\else
\@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
@@ -677,23 +793,38 @@
\edef\k@family{#1}\edef\f@family{#1}%
\fi\fi}
\ifx\fontseriesforce\@undefined % old
+ \def\pltx@latex@level{0}
\else % 2020-02-02
- \ifx\@forced@seriestrue\@undefined % patch level 0, 1, 2
- \@latex@error
- {Please update LaTeX2e!^^J\space\space
- At least LaTeX2e 2020-02-02 patch level 3 is required}
- {LaTeX2e 2020-02-02 patch level 2 has a bug.}
- \@@end
+ \ifx\@forced@seriestrue\@undefined
+ \ifnum\patch@level<1\relax % patch level 0
+ \def\pltx@latex@level{1}% use \@reserveda
+ \else % patch level 1, 2
+ \def\pltx@latex@level{2}
+ \fi
+ \else
+ \ifx\series@maybe@drop@one@m\@undefined % patch level 3, 4
+ \def\pltx@latex@level{3}
+ \else
+ \ifx\series@maybe@drop@one@m@x\@undefined % patch level 5
+ \def\pltx@latex@level{4}
+ % anticipating LaTeX2e 'develop' branch (after 23b7244)
+ % this temporary code will be removed in the future
+ %\let\series@maybe@drop@one@m@x\series@maybe@drop@one@m
+ %\def\series@maybe@drop@one@m#1{%
+ % \expandafter\series@maybe@drop@one@m@x\expandafter{#1}}
+ \else
+ \def\pltx@latex@level{5}
+ \fi
+ \fi
\fi
- % actually we'd like to check the below too,
- % but commented out for TL19 frozen since
- % platex-dev format generation fails
- %\ifx\series@maybe@drop@one@m\@undefined % patch level 0--4
- % \@latex@error
- % {Please update LaTeX2e!^^J\space\space
- % At least LaTeX2e 2020-02-02 patch level 5 is required}
- % {LaTeX2e 2020-02-02 patch level 2 and 4 has a bug.}
- %\fi
+\fi
+\edef\pltx@reset@catcode@trick{\catcode`\noexpand\~=\the\catcode`\~\relax}
+\def\pltx@temp@catcode@ix{\catcode`\~=9\relax}
+\def\pltx@temp@catcode@xiv{\catcode`\~=14\relax}
+\ifnum\pltx@latex@level<3\relax
+ \pltx@temp@catcode@xiv % hide if-tokens
+\else
+ \pltx@temp@catcode@ix % reveal if-tokens
\fi
\ifx\fontseriesforce\@undefined % old
\DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}}
@@ -745,26 +876,26 @@
\fi
\fi
}
-\ifx\series@maybe@drop@one@m\@undefined % patch level 0--4
-\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}%
-}
-\else % patch level 5
\def\set@target@series@kanji#1{%
\edef\k@series{#1}%
- \expandafter\series@maybe@drop@one@m\expandafter{\k@series}\k@series
+ \series@maybe@drop@one@m\k@series\k@series
}
\fi
-\fi
+\newif\if@shape@roman@kanji
\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\fontshape[1]{%
+ \set@safe@kanji@shape{#1}{}%
+ \edef\f@shape{#1}%
+}
\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}}
+\DeclareRobustCommand\fontshape[1]{%
+ \@shape@roman@kanjitrue
+ \kanjishape{#1}\romanshape{#1}%
+ \@shape@roman@kanjifalse}
\fi
\ifx\fontshapeforce\@undefined % old
\let\romanshapeforce\@undefined
@@ -772,7 +903,10 @@
\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}}
+\DeclareRobustCommand\fontshapeforce[1]{%
+ \set@safe@kanji@shape{#1}{}%
+ \edef\f@shape{#1}%
+}
\fi
\ifx\fontseriesforce\@undefined % old
\let\merge@kanji@shape\@undefined
@@ -788,7 +922,11 @@
\def\merge@kanji@shape@#1#2#3\@nil{%
\def\reserved@a{#3}%
\ifx\reserved@a\@empty
+ \if@shape@roman@kanji
+ \set@safe@kanji@shape{#2}{}%
+ \else
\edef\k@shape{#2}%
+ \fi
\else
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
\maybe@load@fontshape\endgroup
@@ -800,13 +938,31 @@
\edef\k@shape{#2}%
{\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
\else
+ \if@shape@roman@kanji
+ \set@safe@kanji@shape{#3}%
+ {{\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
}
\fi
+\def\set@safe@kanji@shape#1#2{%
+ \edef\reserved@b{\k@encoding /\k@family /\k@series/#1}%
+ \ifcsname \reserved@b\endcsname
+ \edef\k@shape{#1}%
+ #2%
+ \else
+ \@kanji@shape@nochange@info{\reserved@b}%
+ \fi
+}
+\def\@kanji@shape@nochange@info#1{%
+ \@font@info{Kanji font shape `#1' undefined\MessageBreak
+ No change}%
+}
\DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}%
\edef\k@family{#2}%
\edef\k@series{#3}%
@@ -824,6 +980,7 @@
\ifin@ \usekanji{#1}{#2}{#3}{#4}%
\else\useroman{#1}{#2}{#3}{#4}%
\fi}
+\ifx\@defaultfamilyhook\@undefined % old
\DeclareRobustCommand\normalfont{%
\kanjiencoding{\kanjiencodingdefault}%
\edef\k@family{\kanjifamilydefault}%
@@ -833,7 +990,15 @@
\edef\f@family{\familydefault}%
\edef\f@series{\seriesdefault}%
\edef\f@shape{\shapedefault}%
- \selectfont\ignorespaces}
+ \selectfont}
+\else % 2020-02-02 PL2
+\g@addto@macro\@defaultfamilyhook{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
+}
+\fi
\adjustbaseline
\let\reset@font\normalfont
\ifx\bfseries@rm\@undefined % old
@@ -854,49 +1019,70 @@
\edef\kanjidef@ult{\kanjifamilydefault}%
}
\fi
-\ifx\bfseries@rm\@undefined\else % 2020-02-02
-\DeclareRobustCommand\bfseries{%
- \not@math@alphabet\bfseries\mathbf
- \expand@font@defaults
- % changed \fontseries -> \romanseries
- \ifx\f@family\rmdef@ult \romanseries\bfseries@rm
- \else\ifx\f@family\sfdef@ult \romanseries\bfseries@sf
- \else\ifx\f@family\ttdef@ult \romanseries\bfseries@tt
- \else \romanseries\bfdefault
- \fi\fi\fi
+\ifx\bfseries@rm\@undefined % old
+\let\pltx@fontseries@saved\@undefined
+\let\pltx@patch@bfseries\@undefined
+\let\pltx@patch@mdseries\@undefined
+\else % 2020-02-02
+\let\pltx@fontseries@saved\fontseries
+\def\pltx@patch@bfseries\not@math@alphabet#1#2#3\selectfont{%
+ \long\expandafter\def\csname bfseries \endcsname{%
+ \not@math@alphabet#1#2% should be \bfseries\mathbf
+ % \fontseries of pLaTeX tries to change both Latin and Japanese;
+ % here we want only Latin, so use \romanseries
+ \let\fontseries\romanseries
+ #3% contains \fontseries and \@setbfseriesdefaultshook
+ \let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\bfseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\bfseries@gt
\else \kanjiseries\bfdefault
\fi\fi
- \selectfont
+ \selectfont
+ }%
}
-\DeclareRobustCommand\mdseries{%
- \not@math@alphabet\mdseries\relax
- \expand@font@defaults
- % changed \fontseries -> \romanseries
- \ifx\f@family\rmdef@ult \romanseries\mdseries@rm
- \else\ifx\f@family\sfdef@ult \romanseries\mdseries@sf
- \else\ifx\f@family\ttdef@ult \romanseries\mdseries@tt
- \else \romanseries\mddefault
- \fi\fi\fi
+\ifx\@setbfseriesdefaultshook\@undefined\else
+\g@addto@macro\@setbfseriesdefaultshook{%
+ \let\bfseries@mc\bfdef@ult
+ \let\bfseries@gt\bfdef@ult
+}
+\fi
+\expandafter\expandafter\expandafter
+ \pltx@patch@bfseries\csname bfseries \endcsname
+\def\pltx@patch@mdseries\not@math@alphabet#1#2#3\selectfont{%
+ \long\expandafter\def\csname mdseries \endcsname{%
+ \not@math@alphabet#1#2% should be \mdseries\relax
+ % \fontseries of pLaTeX tries to change both Latin and Japanese;
+ % here we want only Latin, so use \romanseries
+ \let\fontseries\romanseries
+ #3% contains \fontseries and \@setmdseriesdefaultshook
+ \let\fontseries\pltx@fontseries@saved % recover
% changed \fontseries -> \kanjiseries
\ifx\k@family\mcdef@ult \kanjiseries\mdseries@mc
\else\ifx\k@family\gtdef@ult \kanjiseries\mdseries@gt
\else \kanjiseries\mddefault
\fi\fi
\selectfont
+ }%
+}
+\ifx\@setmdseriesdefaultshook\@undefined\else
+\g@addto@macro\@setmdseriesdefaultshook{%
+ \let\mdseries@mc\mddef@ult
+ \let\mdseries@gt\mddef@ult
}
\fi
+\expandafter\expandafter\expandafter
+ \pltx@patch@mdseries\csname mdseries \endcsname
+\fi
\ifx\prepare@family@series@update\@undefined % old
\let\prepare@family@series@update@kanji\@undefined
\let\@meta@family@list@kanji\@undefined
\let\update@series@target@value@kanji\@undefined
\else % 2020-02-02
\def\prepare@family@series@update#1#2{%
- \if@forced@series
- \romanfamily#2% % changed \fontfamily -> \romanfamily
- \else
+~\if@forced@series
+~ \romanfamily#2% % changed \fontfamily -> \romanfamily
+~\else
\expand@font@defaults
\let\target@series@value\@empty
\def\target@meta@family@value{#1}%
@@ -911,15 +1097,15 @@
\ifx \f@series\target@series@value
\else
\maybe@load@fontshape
- \let\f@series\target@series@value
+ \series@maybe@drop@one@m\target@series@value\f@series
\fi
\fi
- \fi
+~\fi
}
\def\prepare@family@series@update@kanji#1#2{%
- \if@forced@series
- \kanjifamily#2%
- \else
+~\if@forced@series
+~ \kanjifamily#2%
+~\else
\expand@font@defaults
\let\target@series@value\@empty
\def\target@meta@family@value{#1}%
@@ -935,10 +1121,10 @@
\else
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
\maybe@load@fontshape\endgroup
- \let\k@series\target@series@value
+ \series@maybe@drop@one@m\target@series@value\k@series
\fi
\fi
- \fi
+~\fi
}
\def\@meta@family@list@kanji{\@elt{mc}\@elt{gt}}
\def\update@series@target@value@kanji#1{%
@@ -951,9 +1137,14 @@
\csname mdseries@\target@meta@family@value\endcsname
\expandafter\let\expandafter\reserved@c
\csname bfseries@\target@meta@family@value\endcsname
- \expandafter\ifx\csname mdseries@#1\endcsname\k@series
+ \expandafter\series@maybe@drop@one@m
+ \csname mdseries@#1\endcsname\reserved@d
+ \ifx\reserved@d\k@series
\let\target@series@value\reserved@b
- \else\expandafter\ifx\csname bfseries@#1\endcsname\k@series
+ \else
+ \expandafter\series@maybe@drop@one@m
+ \csname bfseries@#1\endcsname\reserved@d
+ \ifx\reserved@d\k@series
\let\target@series@value\reserved@c
\else\ifx\k@series\mddef@ult \let\target@series@value\reserved@b
\else\ifx\k@series\bfdef@ult \let\target@series@value\reserved@c
@@ -986,23 +1177,144 @@
\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
+%%
+\ifnum\pltx@latex@level>0\relax % 2020-02-02
+\ifnum\pltx@latex@level<3\relax % 2020-02-02 patch level 0--2 (no flags)
+\DeclareRobustCommand\romanseries[1]{\merge@font@series{#1}}
+\DeclareRobustCommand\kanjiseries[1]{\merge@kanji@series{#1}}
+\DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}}
+\DeclareRobustCommand\romanseriesforce[1]{\edef\f@series{#1}}
+\DeclareRobustCommand\kanjiseriesforce[1]{\edef\k@series{#1}}
+\DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}}
+\fi
+\ifnum\pltx@latex@level=1\relax % 2020-02-02 patch level 0 (\@reserveda)
+\def\merge@kanji@series@#1#2#3\@nil{%
+ \def\@reserveda{#3}%
+ \ifx\@reserveda\@empty
+ \set@target@series@kanji{#2}%
\else
- \edef\em@currfont{\csname\curr@fontshape/\f@size\endcsname}%
- \expandafter\do@emfont@update\emfontdeclare@clist\do@emfont@update
+ \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\merge@kanji@shape@#1#2#3\@nil{%
+ \def\@reserveda{#3}%
+ \ifx\@reserveda\@empty
+ \edef\k@shape{#2}%
+ \else
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+ \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
-\def\eminnershape{\mcfamily \upshape}%
+\ifnum\pltx@latex@level<4\relax % 2020-02-02 patch level 0--4 (drop m)
+\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}%
+}
+\else\ifnum\pltx@latex@level=4\relax % 2020-02-02 patch level 5 (old syntax)
+\def\set@target@series@kanji#1{%
+ \edef\k@series{#1}%
+ \expandafter\series@maybe@drop@one@m\expandafter{\k@series}\k@series
+}
+\fi\fi
+\ifnum\pltx@latex@level<5\relax % 2020-02-02 patch level 0--5
+\def\prepare@family@series@update#1#2{%
+~\if@forced@series
+~ \romanfamily#2% % changed \fontfamily -> \romanfamily
+~\else
+ \expand@font@defaults
+ \let\target@series@value\@empty
+ \def\target@meta@family@value{#1}%
+~ \expandafter\edef\csname ??def@ult\endcsname{\f@family}%
+ \let\@elt\update@series@target@value
+ \@meta@family@list
+~ \@elt{??}%
+ \let\@elt\relax
+ \romanfamily#2% % changed \fontfamily -> \romanfamily
+ \ifx\target@series@value\@empty
+ \else
+ \ifx \f@series\target@series@value
+ \else
+ \maybe@load@fontshape
+ \let\f@series\target@series@value
+ \fi
+ \fi
+~\fi
+}
+\def\prepare@family@series@update@kanji#1#2{%
+~\if@forced@series
+~ \kanjifamily#2%
+~\else
+ \expand@font@defaults
+ \let\target@series@value\@empty
+ \def\target@meta@family@value{#1}%
+~ \expandafter\edef\csname ??def@ult\endcsname{\k@family}%
+ \let\@elt\update@series@target@value@kanji
+ \@meta@family@list@kanji
+~ \@elt{??}%
+ \let\@elt\relax
+ \kanjifamily#2%
+ \ifx\target@series@value\@empty
+ \else
+ \ifx \k@series\target@series@value
+ \else
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+ \let\k@series\target@series@value
+ \fi
+ \fi
+~\fi
+}
+\def\@meta@family@list@kanji{\@elt{mc}\@elt{gt}}
+\def\update@series@target@value@kanji#1{%
+ \def\reserved@a{#1}%
+ \ifx\target@meta@family@value\reserved@a % rm -> rm do nothing
+ \else
+ \expandafter\ifx\csname#1def@ult\endcsname\k@family
+ \let\@elt\@gobble
+ \expandafter\let\expandafter\reserved@b
+ \csname mdseries@\target@meta@family@value\endcsname
+ \expandafter\let\expandafter\reserved@c
+ \csname bfseries@\target@meta@family@value\endcsname
+ \expandafter\ifx\csname mdseries@#1\endcsname\k@series
+ \let\target@series@value\reserved@b
+ \else\expandafter\ifx\csname bfseries@#1\endcsname\k@series
+ \let\target@series@value\reserved@c
+ \else\ifx\k@series\mddef@ult \let\target@series@value\reserved@b
+ \else\ifx\k@series\bfdef@ult \let\target@series@value\reserved@c
+ \fi\fi\fi\fi
+ \fi
+ \fi
+}
+\fi
+\fi
+%%
+\pltx@reset@catcode@trick
\let\romanprocess@table\process@table
\def\kanjiprocess@table{%
\kanjiencoding{\kanjiencodingdefault}%
@@ -1016,6 +1328,23 @@
}
\@onlypreamble\romanprocess@table
\@onlypreamble\kanjiprocess@table
+\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}%
\DeclareTextCommandDefault{\textunderscore}{%
\leavevmode\kern.06em
\raise-\iftdir\ifmdir\ybaselineshift
@@ -1499,6 +1828,11 @@
\language\l@nohyphenation
\@ifstar\@sverb\@verb}
\fi
+\def\do@noligs#1{%
+ \catcode`#1\active
+ \begingroup
+ \lccode`\~`#1\relax
+ \lowercase{\endgroup\def~{\leavevmode\vadjust{}\char`#1}}}
\gdef\@startline{%
\ifnum \@nxttabmar >\@hightab
\@badtab
@@ -1626,16 +1960,23 @@
\let\document@default@language\m@ne
\fi
%% File: plvers.dtx
-\AtBeginDocument{%
- \@ifpackageloaded{latexrelease}{%
- \@ifpackageloaded{platexrelease}{}{%
+\expandafter\def\expandafter\process@table\expandafter{%
+ \expandafter\p@warn@latexrelease\process@table}
+\begingroup
+\toks@\expandafter{\expandafter\p@warn@latexrelease\@begindocumenthook}
+\xdef\@begindocumenthook{\the\toks@}
+\endgroup
+\def\p@warn@latexrelease{%
+ \ifx\latexreleaseversion\@undefined\else
+ \ifx\platexreleaseversion\@undefined
\@latex@warning@no@line{%
Package latexrelease is loaded.\MessageBreak
Some patches in pLaTeX2e core may be overwritten.\MessageBreak
Consider using platexrelease.\MessageBreak
See platex.pdf for detail}%
- }%
- }{}%
+ \fi
+ \fi
+ \let\p@warn@latexrelease\relax
}
\endinput
%%