summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-04-12 21:29:19 +0000
committerKarl Berry <karl@freefriends.org>2020-04-12 21:29:19 +0000
commit656c2588b2ce9d477986f176d75589bbec400918 (patch)
treee482ac945b769cf33c28e2178b98b24e39be76c2 /Master/texmf-dist
parentbc586b17cad1faa7785d5765df0889659f314eb0 (diff)
platex (12apr20)
git-svn-id: svn://tug.org/texlive/trunk@54697 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/platex/base/README.md4
-rw-r--r--Master/texmf-dist/doc/platex/base/exppl2e.pdfbin184087 -> 143281 bytes
-rw-r--r--Master/texmf-dist/doc/platex/base/platex-en.pdfbin158659 -> 146951 bytes
-rw-r--r--Master/texmf-dist/doc/platex/base/platex.pdfbin298165 -> 250767 bytes
-rw-r--r--Master/texmf-dist/doc/platex/base/platexrelease.pdfbin125169 -> 107343 bytes
-rw-r--r--Master/texmf-dist/doc/platex/base/pldoc.pdfbin874153 -> 836874 bytes
-rw-r--r--Master/texmf-dist/source/platex/base/Makefile3
-rw-r--r--Master/texmf-dist/source/platex/base/platex.dtx21
-rw-r--r--Master/texmf-dist/source/platex/base/platexrelease.dtx31
-rw-r--r--Master/texmf-dist/source/platex/base/plcore.dtx39
-rw-r--r--Master/texmf-dist/source/platex/base/plfonts.dtx1347
-rw-r--r--Master/texmf-dist/source/platex/base/plnewsc14.tex209
-rw-r--r--Master/texmf-dist/source/platex/base/plvers.dtx180
-rw-r--r--Master/texmf-dist/tex/platex/base/exppl2e.sty100
-rw-r--r--Master/texmf-dist/tex/platex/base/platexrelease.sty871
-rw-r--r--Master/texmf-dist/tex/platex/base/plcore.ltx543
-rw-r--r--Master/texmf-dist/tex/platex/base/ptrace.sty65
17 files changed, 2884 insertions, 529 deletions
diff --git a/Master/texmf-dist/doc/platex/base/README.md b/Master/texmf-dist/doc/platex/base/README.md
index 399aa67ca45..8b3ea2ba2a2 100644
--- a/Master/texmf-dist/doc/platex/base/README.md
+++ b/Master/texmf-dist/doc/platex/base/README.md
@@ -15,7 +15,7 @@ If you have issues, please let us know from the above page.
The original ASCII edition can be obtained from:
-- https://ctan.org/pkg/ptex-texmf
+- https://asciidwango.github.io/ptex/base/sources.html#platex
## Changes from the original ASCII edition
@@ -64,6 +64,6 @@ the 3-clause BSD license (see [LICENSE](./LICENSE)).
## Release Date
-2020-02-29+1
+2020-04-12
Japanese TeX Development Community
diff --git a/Master/texmf-dist/doc/platex/base/exppl2e.pdf b/Master/texmf-dist/doc/platex/base/exppl2e.pdf
index d680a92a452..c5bf43b7425 100644
--- a/Master/texmf-dist/doc/platex/base/exppl2e.pdf
+++ b/Master/texmf-dist/doc/platex/base/exppl2e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/base/platex-en.pdf b/Master/texmf-dist/doc/platex/base/platex-en.pdf
index 56ae371546c..4506439d354 100644
--- a/Master/texmf-dist/doc/platex/base/platex-en.pdf
+++ b/Master/texmf-dist/doc/platex/base/platex-en.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/base/platex.pdf b/Master/texmf-dist/doc/platex/base/platex.pdf
index 4ffb0b5b7b9..04b14d242d0 100644
--- a/Master/texmf-dist/doc/platex/base/platex.pdf
+++ b/Master/texmf-dist/doc/platex/base/platex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/base/platexrelease.pdf b/Master/texmf-dist/doc/platex/base/platexrelease.pdf
index 2dc9289fe01..a0f59656508 100644
--- a/Master/texmf-dist/doc/platex/base/platexrelease.pdf
+++ b/Master/texmf-dist/doc/platex/base/platexrelease.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/platex/base/pldoc.pdf b/Master/texmf-dist/doc/platex/base/pldoc.pdf
index b005e622392..c4041d1bfbd 100644
--- a/Master/texmf-dist/doc/platex/base/pldoc.pdf
+++ b/Master/texmf-dist/doc/platex/base/pldoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/platex/base/Makefile b/Master/texmf-dist/source/platex/base/Makefile
index ac45cee9c13..fdabfd5d4f2 100644
--- a/Master/texmf-dist/source/platex/base/Makefile
+++ b/Master/texmf-dist/source/platex/base/Makefile
@@ -5,7 +5,8 @@ DOCTARGET = platex platexrelease pldoc exppl2e \
PDFTARGET = $(addsuffix .pdf,$(DOCTARGET))
DVITARGET = $(addsuffix .dvi,$(DOCTARGET))
KANJI = -kanji=jis
-FONTMAP = -f ipaex.map -f ptex-ipaex.map
+#FONTMAP = -f ipaex.map -f ptex-ipaex.map
+FONTMAP = -f haranoaji.map -f ptex-haranoaji.map
TEXMF = $(shell kpsewhich -var-value=TEXMFHOME)
default: $(STRIPTARGET) $(DVITARGET)
diff --git a/Master/texmf-dist/source/platex/base/platex.dtx b/Master/texmf-dist/source/platex/base/platex.dtx
index a7147374c5e..fd595fe8334 100644
--- a/Master/texmf-dist/source/platex/base/platex.dtx
+++ b/Master/texmf-dist/source/platex/base/platex.dtx
@@ -3,7 +3,7 @@
%
% Copyright 1995,1996 ASCII Corporation.
% Copyright (c) 2010 ASCII MEDIA WORKS
-% Copyright (c) 2016-2019 Japanese TeX Development Community
+% Copyright (c) 2016-2020 Japanese TeX Development Community
%
% This file is part of the pLaTeX2e system (community edition).
% -------------------------------------------------------------
@@ -85,6 +85,7 @@
% \changes{v1.0x}{2018/09/03}{plautopatch$B$K8@5Z(B}
% \changes{v1.0y}{2018/09/22}{$B:G=*99?7F|$r(B\file{pldoc.pdf}$B$KI=<((B}
% \changes{v1.0z}{2019/09/29}{$B%?%$%]=$@5(B}
+% \changes{v1.1}{2020/03/24}{$B%I%-%e%a%s%H$r99?7(B}
%\else
% \changes{v1.0}{1995/05/08}{first edition}
% \changes{v1.0a}{1995/08/25}{Added 'Compatibility', `Usage of \dst{}'
@@ -128,6 +129,7 @@
% \changes{v1.0x}{2018/09/03}{Mention plautopatch.}
% \changes{v1.0y}{2018/09/22}{Show last update info on \file{pldoc.pdf}}
% \changes{v1.0z}{2019/09/29}{Fix typos in document.}
+% \changes{v1.1}{2020/03/24}{Update document.}
%\fi
% \fi
%
@@ -135,7 +137,7 @@
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
-\ProvidesFile{platex.dtx}[2019/09/29 v1.0z pLaTeX document file]
+\ProvidesFile{platex.dtx}[2020/03/24 v1.1 pLaTeX document file]
% \iffalse
\documentclass{jltxdoc}
\usepackage{plext}
@@ -200,21 +202,22 @@
% \changes{v1.0q}{2017/11/29}{$B1Q8lHG%I%-%e%a%s%H$rDI2C(B}
% \changes{v1.0x}{2018/09/03}{$B%I%-%e%a%s%H$r99?7(B}
% \changes{v1.0z}{2019/09/29}{$B%?%$%]=$@5(B}
+% \changes{v1.1}{2020/03/24}{$B%I%-%e%a%s%H$r99?7(B}
%\else
% \changes{v1.0f}{2016/04/12}{Update document.}
% \changes{v1.0k}{2016/05/21}{Print also changes.}
% \changes{v1.0q}{2017/11/29}{New English documentation added!}
% \changes{v1.0x}{2018/09/03}{Update document.}
% \changes{v1.0z}{2019/09/29}{Fix typos in document.}
+% \changes{v1.1}{2020/03/24}{Update document.}
%\fi
%\ifJAPANESE
% \begin{chuui}
+% \pLaTeXe{}$B$O!"(B\LaTeXe{}$B$rF|K\8lAHHGMQ$K3HD%!&D4@0$7$?$b$N$G$9!#(B
% $B$3$NJ8=q$G$O!V%3%_%e%K%F%#HG(B\pLaTeXe{}$B!W$K$D$$$F4JC1$K@bL@$7$^$9!#(B
-% $B3t<02q<R%"%9%-!<!J8=%"%9%-!<!&%a%G%#%"%o!<%/%9(B
-% \footnote{$B%"%9%-!<F|K\8l(B\TeX{}$B!J(B\pTeX{}$B!K!"(B
-% \texttt{http://ascii.asciimw.jp/pb/ptex/}}$B!K$,G[I[$7$F$$$k(B
-% \pLaTeXe{}$B!J0J2<!"%"%9%-!<HG(B\pLaTeXe{}$B!K$H$O0[$J$kFbMF$G$9$N$G!"(B
-% $BCm0U$7$F$/$@$5$$!#(B
+% $B3t<02q<R%"%9%-!<$*$h$S3t<02q<R%"%9%-!<!&%a%G%#%"%o!<%/%9$,(B
+% $BG[I[$7$F$$$?(B\pLaTeXe{}$B!J0J2<!"!V%"%9%-!<HG(B\pLaTeXe{}$B!W!K$H$O(B
+% $B0[$J$j$^$9$N$G!"Cm0U$7$F$/$@$5$$!#(B
% \end{chuui}
%\else
% ^^A \begin{chuui}[]
@@ -877,7 +880,7 @@
% current \pLaTeXe\ and older versions or original \LaTeXe.
%
% \subsection{Compatibility with \LaTeXe}
-% \pLaTeXe\ is in most part upper compatible with \LaTeXe,
+% \pLaTeXe\ is in most part upward compatible with \LaTeXe,
% but some parameters are adjusted to be suitable for Japanese.
% Therefore, you should not expect identical output, even though
% the same source can be processed on both \LaTeXe\ and \pLaTeXe.
@@ -1436,7 +1439,7 @@ echo "" > ltxdoc.cfg
% makeindex$B%3%^%s%I$K$O!"$3$N%*%W%7%g%s$,$"$j$^$;$s!#(B
%\else
% Make the Change log and Glossary (Change History) using mendex.
-% `Mendex' is a Japanese index processor, which is mostly upper
+% `Mendex' is a Japanese index processor, which is mostly upward
% compatible with `makeindex' and automatically handles readings
% of Kanji words.
%
diff --git a/Master/texmf-dist/source/platex/base/platexrelease.dtx b/Master/texmf-dist/source/platex/base/platexrelease.dtx
index d230ade5fd2..c31d8c0d20b 100644
--- a/Master/texmf-dist/source/platex/base/platexrelease.dtx
+++ b/Master/texmf-dist/source/platex/base/platexrelease.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%% File: platexrelease.dtx
%
-% Copyright (c) 2016-2019 Japanese TeX Development Community
+% Copyright (c) 2016-2020 Japanese TeX Development Community
%
% This file is part of the pLaTeX2e system (community edition).
% -------------------------------------------------------------
@@ -31,6 +31,7 @@
% \changes{v1.0m}{2018/05/22}{reset \cs{\requestedLaTeXdate} for
% current and latest options
% (sync with latexrelease.dtx 2018/05/08 v1.0k)}
+% \changes{v1.0n}{2020/03/28}{$B@h$K(Blatexrelease$B$,FI$_9~$^$l$F$$$?$i7Y9p(B}
% \fi
%
% \iffalse
@@ -40,7 +41,7 @@
\ProvidesFile{platexrelease.dtx}
%</driver>
%<platexrelease>\ProvidesPackage{platexrelease}
- [2018/05/22 v1.0m latexrelease support for pLaTeX Kernel
+ [2020/03/28 v1.0n latexrelease support for pLaTeX Kernel
(including releases up to \platexreleaseversion)]
%<*driver>
\documentclass{jltxdoc}
@@ -198,9 +199,25 @@
%
% \section{$B%3!<%I(B}
%
-% $B:G=i$K(B\Lpack{latexrelease}$B%Q%C%1!<%8$rFI$_9~$_$^$9!#(B
+% \Lpack{platexrelease}$B%Q%C%1!<%8$,FI$_9~$^$l$^$7$?$N$G!"(B
+% $B8zN(2=$N$?$a(B|\begin{document|$B$G$N3NG'%3!<%I$rL58z2=$7$^$9!#(B
+% $B!J(B\file{plvers.dtx}$B$N(B2020/03/28 v1.1u$B0J9_!K!#(B
% \begin{macrocode}
%<*platexrelease>
+\ifx\p@warn@latexrelease\@undefined\else
+\let\p@warn@latexrelease\relax
+\fi
+% \end{macrocode}
+%
+% $B:G=i$K(B\Lpack{latexrelease}$B%Q%C%1!<%8$rFI$_9~$_$^$9!#(B
+% $B$3$l$h$jA0$K$9$G$KFI$_9~$^$l$F$$$k>l9g$O7Y9p$7$^$9!#(B
+% \changes{v1.0n}{2020/03/28}{$B@h$K(Blatexrelease$B$,FI$_9~$^$l$F$$$?$i7Y9p(B}
+% \begin{macrocode}
+\ifx\latexreleaseversion\@undefined\else
+ \PackageWarningNoLine{platexrelease}{%
+ Package `latexrelease' is already loaded;\MessageBreak
+ load `platexrelease' earlier}
+\fi
\RequirePackageWithOptions{latexrelease}
% \end{macrocode}
%
@@ -300,7 +317,6 @@ of this package available from CTAN}
% \begin{macrocode}
\let\pfmtversion\requestedplpatchdate
\let\currentpLaTeXdate\requestedpLaTeXdate
-%</platexrelease>
% \end{macrocode}
%
% $B$3$N$"$H$O!"(Bp\LaTeXe{}$B$N%+!<%M%k$NJQ99E@$r<($9%3!<%I$,F~$j$^$9!#(B
@@ -323,6 +339,12 @@ of this package available from CTAN}
some critical bugs. We advise you to\MessageBreak
select another format date}
\plIncludeInRelease{2017/10/28}{\PackageWarning}{pLaTeX Info}%
+ % * <2020-04-12>
+ % * <2020-02-02>+3
+ % * <2020-02-02>+2
+ % * <2020-02-02>+1
+ % * <2020-02-02>
+ % * <2019-10-01>+1
% * <2019-10-01>
% * <2019-04-06>
% * <2018-12-01>
@@ -377,6 +399,7 @@ of this package available from CTAN}
\plIncludeInRelease{0000/00/00}{\PackageWarning}{pLaTeX Info}%
% * <2006/11/10>
\plEndIncludeInRelease
+%</platexrelease>
% \end{macrocode}
%
% \Finale
diff --git a/Master/texmf-dist/source/platex/base/plcore.dtx b/Master/texmf-dist/source/platex/base/plcore.dtx
index f625ad2f1da..25f31fbe2c5 100644
--- a/Master/texmf-dist/source/platex/base/plcore.dtx
+++ b/Master/texmf-dist/source/platex/base/plcore.dtx
@@ -3,7 +3,7 @@
%
% Copyright 1994-2001 ASCII Corporation.
% Copyright (c) 2010 ASCII MEDIA WORKS
-% Copyright (c) 2016-2019 Japanese TeX Development Community
+% Copyright (c) 2016-2020 Japanese TeX Development Community
%
% This file is part of the pLaTeX2e system (community edition).
% -------------------------------------------------------------
@@ -123,13 +123,14 @@
% \changes{v1.3d}{2019/10/19}{$BH=Dj=g=x$r=$@5!((Bextended mode$B$+$D(B
% FAM256$B3HD%$"$j$N>l9g$K8B$j%l%8%9%??t$,(B65536$B8D$N$?$a!#(B}
% \changes{v1.3d}{2019/10/19}{$B%3%T!<K:$l(B}
+% \changes{v1.3e}{2020/03/05}{$B9g;z=hM}$rM^;_$7$D$D(B\cs{xkanjiskip}$B$OA^F~(B}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
-\ProvidesFile{plcore.dtx}[2019/10/19 v1.3d pLaTeX core file]
+\ProvidesFile{plcore.dtx}[2020/03/05 v1.3e pLaTeX core file]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{plcore.dtx}
@@ -1876,6 +1877,40 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\do@noligs}
+% |>|$B$J$I$N0lIt$NJ8;z$K$D$$$F!"(B|\xspcode`\>=3|$B$H$7$?$H$-$K(B
+% |\texttt{>}|$B$G$OA08e$K(B|\xkanjiskip|$BM3Mh$N%"%-$,F~$k$N$K!"(B
+% |\verb+>+|$B$G$O8e$m$K$7$+%"%-$,F~$i$J$$$H$$$&8=>]$KBP=h$7$^$9!#(B
+%
+% $B85$NDj5A$O(B\file{ltmiscen.dtx}$B$r;2>H$7$F$/$@$5$$!#(B
+% p\LaTeX{}$B$G$O!"(B|\kern\z@|$B$r(B|\vadjust{}|$B$KCV$-49$($k$3$H$G(B
+% $B!V9g;z=hM}$rM^;_!W$+$D!VOB2$J84V%9%Z!<%9$NA^F~=hM}$OF)2a!W$r<B8=$7$^$9!#(B
+% (Issue \#87)
+% \changes{v1.3e}{2020/03/05}{$B9g;z=hM}$rM^;_$7$D$D(B\cs{xkanjiskip}$B$OA^F~(B}
+% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\do@noligs}
+%<platexrelease> {Allow \xkanjiskip while avoiding ligature}%
+%<*plcore|platexrelease>
+\def\do@noligs#1{%
+ \catcode`#1\active
+ \begingroup
+ \lccode`\~`#1\relax
+ \lowercase{\endgroup\def~{\leavevmode\vadjust{}\char`#1}}}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\do@noligs}
+%<platexrelease> {LaTeX2e original}%
+%<platexrelease>\def\do@noligs#1{%
+%<platexrelease> \catcode`#1\active
+%<platexrelease> \begingroup
+%<platexrelease> \lccode`\~`#1\relax
+%<platexrelease> \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
+%<platexrelease>\plEndIncludeInRelease
+%<*plcore>
+% \end{macrocode}
+% \end{macro}
+%
%
% \subsection{tabbing$B4D6-(B}
%
diff --git a/Master/texmf-dist/source/platex/base/plfonts.dtx b/Master/texmf-dist/source/platex/base/plfonts.dtx
index 7163f9a5644..12efc700e84 100644
--- a/Master/texmf-dist/source/platex/base/plfonts.dtx
+++ b/Master/texmf-dist/source/platex/base/plfonts.dtx
@@ -145,13 +145,28 @@
% (sync with ltfssaxes.dtx 2020/02/27 v1.0d)}
% \changes{v1.6z}{2020/02/28}{Drop surplus ``m'' from \cs{target@series@value}
% (sync with ltfssini.dtx 2020/02/25 v3.1j)}
+% \changes{v1.7}{2020/03/05}{\cs{series@maybe@drop@one@m@x}$B$NB8:_3NG'(B}
+% \changes{v1.7}{2020/03/05}{$B0z?t!&%j%9%H$H$b(B\cs{detokenize}$B$K$h$C$FJ8;zNs2=(B}
+% \changes{v1.7}{2020/03/05}{\cs{do@subst@correction}$B$NF|K\8l2=(B}
+% \changes{v1.7a}{2020/03/06}{\cs{@defaultfamilyhook}$B$r3hMQ(B
+% (sync with ltfssini.dtx 2020/02/10 v3.1h)}
+% \changes{v1.7b}{2020/03/14}{$B8E$$(B\LaTeXe{}$B$G$b%U%)!<%^%C%H@8@.$,DL$k$h$&$K(B}
+% \changes{v1.7c}{2020/03/15}{\cs{fontshape}/\cs{fontshapeforce}$B$,(B
+% $BOBJ8%7%'%$%WL$Dj5A$N>l9g$O(B\cs{k@shape}$B$r99?7$7$J$$$h$&$KJQ99(B}
+% \changes{v1.7d}{2020/03/23}{$B%I%-%e%a%s%H2~NI(B}
+% \changes{v1.7e}{2020/03/26}{$B=D2#%(%s%3!<%G%#%s%0$N%;%C%H2=3NG'(B}
+% \changes{v1.7e}{2020/03/26}{\cs{wrong@fontshape}$B$NOBJ8BP1~(B}
+% \changes{v1.7e}{2020/03/26}{\cs{default@k@...}$B$r;HMQ(B}
+% \changes{v1.7f}{2020/04/07}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault}, use \cs{@setYYseriesdefaultshook}
+% (sync with ltfssini.dtx 2020/03/19 v3.1k and 2020/04/06 v3.1m)}
% \fi
%
% \iffalse
%<*driver>
\NeedsTeXFormat{pLaTeX2e}
% \fi
-\ProvidesFile{plfonts.dtx}[2020/02/28 v1.6z pLaTeX New Font Selection Scheme]
+\ProvidesFile{plfonts.dtx}[2020/04/07 v1.7f pLaTeX New Font Selection Scheme]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{plfonts.dtx}
@@ -209,23 +224,82 @@
% \MakeShortVerb{\|}
%
%
+% \subsection{$B3HD%%3%^%s%I(B}
+% \pLaTeXe{}$B$O!"0J2<$N?7$7$$%3%^%s%I$rDj5A$7$^$9!#(B
+%
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\+}
+% \begin{center}
+% \begin{tabular}{l|l}
+% \emph{$B%3%^%s%I(B} & \emph{$B0UL#(B}\\\hline
+% +\Declare{Yoko|Tate}KanjiEncoding+ & $BOBJ8%(%s%3!<%I$N@k8@(B\\
+% +\DeclareKanjiEncodingDefaults+ &
+% $B%G%U%)%k%H$NOBJ8%(%s%3!<%I$N@k8@(B\\
+% +\KanjiEncodingPair+ & $BOBJ8%(%s%3!<%I$N%;%C%H2=(B\\
+% +\DeclareKanjiFamily+ & $B%U%!%_%j$N@k8@(B\\
+% +\DeclareKanjiSubstitution+ & $BOBJ8$NBeMQ%U%)%s%H$N@k8@(B\\
+% +\DeclareErrorKanjiFont+ & $BOBJ8$N%(%i!<%U%)%s%H$N@k8@(B \\
+% +\reDeclareMathAlphabet+ & $BOB2$J8$rF1;~$K@Z$jBX$($k%3%^%s%I@k8@(B\\
+% +\{Declare|Set}RelationFont+ & $B=>B0=qBN$N@k8@(B\\
+% +\userelfont+ & $B2$J8=qBN$r=>B0=qBN$K$9$k(B\\
+% +\adjustbaseline+ & $B%Y!<%9%i%$%s%7%U%HNL$N@_Dj(B\\
+% +\{roman|kanji}encoding+ & $B%(%s%3!<%I$N;XDj(B\\
+% +\{roman|kanji}family+ & $B%U%!%_%j$N;XDj(B\\
+% +\{roman|kanji}series[force]+ & $B%7%j!<%:$N;XDj(B\\
+% +\{roman|kanji}shape[force]+ & $B%7%'%$%W$N;XDj(B\\
+% +\use{roman|kanji}+ & $B=qBN$N@Z$jBX$((B\\
+% +\mcfamily+, +\gtfamily+ & $BOBJ8=qBN$rL@D+BN!"%4%7%C%/BN$K$9$k(B\\
+% \end{tabular}
+% \end{center}
+% \DeleteShortVerb{\+}
+% \MakeShortVerb{\|}
+%
+% $B$5$i$K!"%*%j%8%J%k$N(B\LaTeXe{}$B$N0J2<$N%3%^%s%I$r:FDj5A$7$^$9!#(B
+%
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\+}
+% \begin{center}
+% \begin{tabular}{l|l}
+% \emph{$B%3%^%s%I(B} & \emph{$B0UL#(B}\\\hline
+% +\DeclareFontEncoding+ & $B%(%s%3!<%I$N@k8@(B\\
+% +\DeclareFontFamily+ & $B%U%!%_%j$N@k8@(B\\
+% +\DeclareFixedFont+ & $B%U%)%s%H$NL>A0$N@k8@(B \\
+% +\selectfont+ & $B%U%)%s%H$r@Z$jBX$($k(B\\
+% +\set@fontsize+ & $B%U%)%s%H%5%$%:$NJQ99(B\\
+% +\fontencoding+ & $B%(%s%3!<%I$N;XDj(B\\
+% +\fontfamily+ & $B%U%!%_%j$N;XDj(B\\
+% +\fontseries[force]+ & $B%7%j!<%:$N;XDj(B\\
+% +\fontshape[force]+ & $B%7%'%$%W$N;XDj(B\\
+% +\usefont+ & $B=qBN$N@Z$jBX$((B\\
+% +\normalfont+ & $B%G%U%)%k%HCM$N@_Dj$K@Z$jBX$($k(B\\
+% +\bfseries+, +\mdseries+ & $B%7%j!<%:$rB@;z!"Cf;z$K$9$k(B\\
+% \end{tabular}
+% \end{center}
+% \DeleteShortVerb{\+}
+% \MakeShortVerb{\|}
+%
%
% \section{$B%3!<%I(B}\label{plfonts:codes}
-% $B$3$N@a$G!"6qBNE*$K(B\NFSS2$B$r3HD%$9$k%3%^%s%I$d%^%/%m$NDj5A$r9T$J$C$F$$$^$9!#(B
+% $B$3$N@a$G!"<B:]$N%3!<%I$r@bL@$7$^$9!#(B
%
% \subsection{$B=`Hw(B}
% \NFSS2$B$r3HD%$9$k$?$a$N=`Hw$G$9!#(B
% $BOBJ8%U%)%s%H$NB0@-$r3JG<$9$k%*%V%8%'%/%H$dD9$5JQ?t!"(B
% $BB0@-$r@ZBX$($k:]$NH=CG:`NA$H$7$F;H$&%j%9%H$J$I$rDj5A$7$F$$$^$9!#(B
%
-% \file{ptrace}$B%Q%C%1!<%8$O(B\LaTeX{}$B$N(B\file{tracefnt}$B%Q%C%1!<%8$K0MB8$7$^$9!#(B
+% \LaTeX{}$B$N(B\file{tracefnt}$B%Q%C%1!<%8$KAjEv$9$k%G%P%C%05!G=$O!"(B
+% \pLaTeX{}$B$G$O(B\file{ptrace}$B%Q%C%1!<%8$GDs6!$7$^$9!#(B
+% $B0JA0!J%"%9%-!<HG!K$G$O(B\file{ptrace}$B$NA0$K(B\file{tracefnt}$B$r(B
+% $B<jF0$G(B|\usepackage|$B$9$kI,MW$,$"$j$^$7$?$,!"(B
+% $B%3%_%e%K%F%#HG$G$O(B\file{ptrace}$B$,<+F0$G(B\file{tracefnt}$B$r(B
+% $BFI$_9~$`$h$&$K2~NI$7$F$"$j$^$9!#(B
% \changes{v1.6b}{2016/04/30}{ptrace.sty$B$NKAF,$G(Btracefnt.sty$B$r(B
% \cs{RequirePackageWithOptions}$B$9$k$h$&$K$7$?(B}
% \begin{macrocode}
%<*trace>
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{ptrace}
- [2019/09/16 v1.6t Standard pLaTeX package (font tracing)]
+ [2020/03/26 v1.7e Standard pLaTeX package (font tracing)]
\RequirePackageWithOptions{tracefnt}
%</trace>
% \end{macrocode}
@@ -373,7 +447,7 @@
% \end{macrocode}
% \end{macro}
%
-% \subsubsection{$B0l;~%3%^%s%I(B}
+% \subsubsection{$B0l;~%3%^%s%I(B}\label{afont-ascii}
%
% \begin{macro}{\afont}
% \LaTeX{}$BFbIt$N(B|\do@subst@correction|$B%^%/%m$G$O!"(B
@@ -402,12 +476,44 @@
%
% \begin{macro}{\inlist@}
% $B<!$N%3%^%s%I$O!"%(%s%3!<%I$d%U%!%_%j$N%j%9%HFb$KBhFs0z?t$G;XDj$5$l$?J8;zNs(B
-% $B$,$"$k$+$I$&$+$rD4$Y$k%^%/%m$G$9!#(B
+% $B$,$"$k$+$I$&$+$rD4$Y$k%^%/%m$G$9!#7k2L$O(B\cs{ifin@}$B$K3JG<$5$l$^$9!#(B
+% $BBhFs0z?t$O%j%9%H$=$N$b$N!J%j%9%H$,3JG<$5$l$?%^%/%m$G$O$J$/!K$r;XDj$9$k$3$H$K$J$j$^$9!#(B
+% $BE57?E*$K$O0J2<$N$h$&$K8F$S=P$7$^$9!#(B
+%\begin{verbatim}
+% \edef\tmp@item{{\k@encoding}}%
+% \expandafter\expandafter\expandafter
+% \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}
+%\end{verbatim}
+%
+% |\do@subst@correction|$B$NF|K\8l2=$KI,MW$J$N$G!"(B
+% \pLaTeXe~2020-04-12$B0J9_$G$OHf3S;~$K(B
+% $B0z?t!&%j%9%H$H$b(B\cs{detokenize}$B$K$h$C$FJ8;zNs2=$9$k$h$&$K$7$^$7$?!#(B
+% \changes{v1.7}{2020/03/05}{$B0z?t!&%j%9%H$H$b(B\cs{detokenize}$B$K$h$C$FJ8;zNs2=(B}
% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\inlist@}
+%<platexrelease> {Detokenize}%
+%<*plcore|platexrelease>
\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}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\inlist@}
+%<platexrelease> {ASCII Corporation original}%
+%<platexrelease>\def\inlist@#1#2{%
+%<platexrelease> \def\in@@##1<#1>##2##3\in@@{%
+%<platexrelease> \ifx\in@##2\in@false\else\in@true\fi}%
+%<platexrelease> \in@@#2<#1>\in@\in@@}
+%<platexrelease>\plEndIncludeInRelease
+%<*plcore>
% \end{macrocode}
% \end{macro}
%
@@ -499,20 +605,19 @@
% \subsubsection{$B;YCl(B}
% $B9T4V$ND4@0$J$I$KMQ$$$k;YCl$G$9!#(B
% $B;YCl$N$b$H$H$J$k%\%C%/%9$NBg$-$5$O!"%U%)%s%H%5%$%:$,JQ99$5$l$k$?$S$K!"(B
-% |\set@fontsize|$B%3%^%s%I$K$h$C$FJQ2=$7$^$9!#(B
-%
-% $B%U%)%s%H%5%$%:$,JQ99$5$l$?$H$-$K!"(B|\set@fontsize|$B%3%^%s%I$G99?7$5$l$^$9!#(B
+% |\set@fontsize|$B%3%^%s%I$K$h$C$F99?7$5$l$^$9!#(B
%
+% $B%3%_%e%K%F%#HG(B\pLaTeXe~2017/04/08$B$G$NJQ99!'(B
% $B=>Mh!"2#AH%\%C%/%9MQ$N;YCl$O(B|\strutbox|$B$G!"9b$5$H?<$5$,(B7$BBP(B3$B$H$J$C$F$$$^$7$?!#(B
% $B$3$l$O(Bp\LaTeX{}$BC1BN$G$OLdBj$K$J$j$^$;$s$G$7$?$,!"3$30@=$N(B\LaTeX{}$B%Q%C%1!<%8$r(B
% $B=DAH$G;HMQ$7$?>l9g$K!"0U?^$7$J$$I}$d9b$5$,<hF@$5$l$k$3$H$,$"$j$^$7$?!#(B
% $B$3$NITET9g$r2sHr$9$k$?$a!"%3%_%e%K%F%#HG(Bp\LaTeX{}$B$G$O<!$NJ}K!$r$H$j$^$9!#(B
% \begin{itemize}
-% \item |\ystrutbox|$B!J?7@_!K!'9b$5$H?<$5$,(B7$BBP(B3$B$N2#AH%\%C%/%9MQ$N;YCl(B
-% \item |\tstrutbox|$B!'9b$5$H?<$5$,(B5$BBP(B5$B$N=DAH%\%C%/%9MQ$N;YCl(B
-% \item |\zstrutbox|$B!'9b$5$H?<$5$,(B7$BBP(B3$B$N=DAH%\%C%/%9MQ$N;YCl(B
+% \item |\ystrutbox|$B!J?7@_!K!'9b$5$H?<$5$,(B7$BBP(B3$B$N2#AHMQ$N;YCl%\%C%/%9%l%8%9%?(B
+% \item |\tstrutbox|$B!'9b$5$H?<$5$,(B5$BBP(B5$B$N=DAHMQ$N;YCl%\%C%/%9%l%8%9%?(B
+% \item |\zstrutbox|$B!'9b$5$H?<$5$,(B7$BBP(B3$B$N=DAHMQ$N;YCl%\%C%/%9%l%8%9%?(B
% \item |\strutbox|$B!J;EMMJQ99!K!'=D2#$N%G%#%l%/%7%g%s$K1~$8$F(B
-% |\tstrutbox|$B$^$?$O(B|\ystrutbox|$B$KE83+$5$l$k%^%/%m(B
+% |\tstrutbox|$B$^$?$O(B|\ystrutbox|$B$KE83+$5$l$k(B\emph{$B%^%/%m(B}
% \end{itemize}
% $B$9$J$o$A!"=>Mh$N(Bp\LaTeX{}$B$K$*$1$k(B|\strutbox|$B$HF1$85sF0$r<($9$N$,!"(B
% $B?7@_$5$l$?(B|\ystrutbox|$B$H$$$&$3$H$K$J$j$^$9!#(B
@@ -530,7 +635,7 @@
% \end{macro}
%
% \begin{macro}{\ystrutbox}
-% |\ystrutbox|$B$O9b$5$H?<$5$,(B7$BBP(B3$B$N2#AH%\%C%/%9MQ$N;YCl$G$9!#(B
+% |\ystrutbox|$B$O9b$5$H?<$5$,(B7$BBP(B3$B$N2#AHMQ$N;YCl%\%C%/%9$G$9!#(B
% \changes{v1.6f}{2017/02/20}{\cs{ystrutbox}$B$rDI2C(B}
% \begin{macrocode}
%</plcore>
@@ -666,41 +771,10 @@
%
%
%
-% \subsection{$B%3%^%s%I(B}
-% $B<!$N%3%^%s%I$NDj5A$r$7$F$$$^$9!#(B
-%
-% \DeleteShortVerb{\|}
-% \MakeShortVerb{\+}
-% \begin{center}
-% \begin{tabular}{l|l}
-% \emph{$B%3%^%s%I(B} & \emph{$B0UL#(B}\\\hline
-% +\Declare{Font|YokoKanji|TateKanji}Encoding+ & $B%(%s%3!<%I$N@k8@(B\\
-% +\Declare{Yoko|Tate}KanjiEncodingDefaults+ &
-% $B%G%U%)%k%H$NOBJ8%(%s%3!<%I$N@k8@(B\\
-% +\Declare{Font|Kanji}Family+ & $B%U%!%_%j$N@k8@(B\\
-% +\DeclareKanjiSubstitution+ & $BOBJ8$NBeMQ%U%)%s%H$N@k8@(B\\
-% +\DeclareErrorKanjiFont+ & $BOBJ8$N%(%i!<%U%)%s%H$N@k8@(B \\
-% +\DeclareFixedFont+ & $B%U%)%s%H$NL>A0$N@k8@(B \\
-% +\reDeclareMathAlphabet+ & $BOB2$J8$rF1;~$K@Z$jBX$($k%3%^%s%I@k8@(B\\
-% +\{Declare|Set}RelationFont+ & $B=>B0=qBN$N@k8@(B\\
-% +\userelfont+ & $B2$J8=qBN$r=>B0=qBN$K$9$k(B\\
-% +\selectfont+ & $B%U%)%s%H$r@Z$jBX$($k(B\\
-% +\set@fontsize+ & $B%U%)%s%H%5%$%:$NJQ99(B\\
-% +\adjustbaseline+ & $B%Y!<%9%i%$%s%7%U%HNL$N@_Dj(B\\
-% +\{font|roman|kanji}encoding+ & $B%(%s%3!<%I$N;XDj(B\\
-% +\{font|roman|kanji}family+ & $B%U%!%_%j$N;XDj(B\\
-% +\{font|roman|kanji}series+ & $B%7%j!<%:$N;XDj(B\\
-% +\{font|roman|kanji}shape+ & $B%7%'%$%W$N;XDj(B\\
-% +\use{font|roman|kanji}+ & $B=qBN$N@Z$jBX$((B\\
-% +\normalfont+ & $B%G%U%)%k%HCM$N@_Dj$K@Z$jBX$($k(B\\
-% +\mcfamily+,+\gtfamily+ & $BOBJ8=qBN$rL@D+BN!"%4%7%C%/BN$K$9$k(B\\
-% +\textunderscore+ & $B%F%-%9%H%b!<%I$G$N2<@~%^%/%m(B\\
-% \end{tabular}
-% \end{center}
-% \DeleteShortVerb{\+}
-% \MakeShortVerb{\|}
-%
+% \subsection{\NFSS2$B$N3HD%%3%^%s%I(B}
+% \NFSS2$B$N3HD%%3%^%s%I$rDj5A$7$^$9!#(B
%
+% \subsubsection{$B%(%s%3!<%I$N@k8@(B}
% \begin{macro}{\DeclareFontEncoding}
% \begin{macro}{\DeclareFontEncoding@}
% $B2$J8%(%s%3!<%I$r@k8@$9$k$?$a$N%3%^%s%I$G$9!#(B
@@ -921,6 +995,7 @@
%
% \begin{macro}{\DeclareKanjiEncodingDefaults}
% $BOBJ8%(%s%3!<%I$N%G%U%)%k%HCM$r@k8@$9$k%3%^%s%I$G$9!#(B
+% |\DeclareFontEncodingDefaults|$B$KAjEv$7$^$9!#(B
% \begin{macrocode}
\def\DeclareKanjiEncodingDefaults#1#2{%
\ifx\relax#1\else
@@ -945,13 +1020,57 @@
% \begin{macro}{\KanjiEncodingPair}
% $BOBJ8$N=D2#$N%(%s%3!<%G%#%s%0$O$=$l$>$lBP$K$7$F07$&$?$a!"%;%C%H2=$9$k$?$a$N(B
% $B%3%^%s%I$rDj5A$7$^$9!#(B
+% $BBh0l0z?t$,2#AHMQ!"BhFs0z?t$,=DAHMQ$G$9!#(B
% \changes{v1.3n}{2004/08/10}{$BOBJ8%(%s%3!<%G%#%s%0$N@Z$jBX$($rM-8z2=(B}
% \begin{macrocode}
\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\ensure@KanjiEncodingPair}
+% $B2#=q$-$H=D=q$-$N%(%s%3!<%G%#%s%0$OI,$:(B|\KanjiEncodingPair|$B$G(B
+% $B%;%C%H2=$7$J$$$H;H$($^$;$s!#$b$7%;%C%H2=$5$l$F$$$J$1$l$P!"(B
+% $BL@2w$J%(%i!<$GCN$i$;$^$9!#(B
+% ^^A $B:G6a$N(B\file{plfonts.dtx}$B$NJQ99(B(2017/11/06 v1.6j)$B$G!"(B
+% ^^A u\pLaTeX{}$B$H(B\pLaTeX{}$B$N%=!<%96&DL2=$N0l4D$H$7$F(B
+% ^^A $B<B9T%3!<%I(B|\KanjiEncodingPair{JY1}{JT1}|$B$r(B
+% ^^A \file{plcore.ltx}$B$+$i(B\file{pldefs.ltx}$B$X0\F0$7$?$N$G!"(B
+% ^^A $BK|$,0l8E$$(B\file{pldefs.cfg}$B$,FI$_9~$^$l$?>l9g$K<B9T$5$l$J$$2DG=@-$,$"$k!#(B
+% \changes{v1.7e}{2020/03/26}{$B=D2#%(%s%3!<%G%#%s%0$N%;%C%H2=3NG'(B}
+% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\ensure@KanjiEncodingPair}
+%<platexrelease> {Check \KanjiEncodingPair}%
+%<*plcore|platexrelease>
+\def\ensure@KanjiEncodingPair#1{%
+ \edef\reserved@a{\csname #1@enc@\k@encoding\endcsname}%
+ \edef\reserved@b{\csname c#1@encoding\endcsname}%
+% \end{macrocode}
+% |\reserved@a|$B$O!"%;%C%H2=$,M-8z$J$i%(%s%3!<%I$rI=$9J8;z%H!<%/%sNs!"(B
+% $BL58z$J$i(B|\relax|$B$HF15A$N@)8fDV$KE83+$5$l$k%^%/%m$G$9!#(B
+% $B$3$3$G!"(B|\ifcat|$B!JE83+ITG=%H!<%/%s$,8=$l$k$^$GE83+$7$F$+$iHf3S!K$r;H$$$^$9!#(B
+% ^^A $BJ8;z%H!<%/%sNs$OJ#?tJ8;z$+$i@.$jF@$k$,!"(B
+% ^^A |\relax|$B$H@hF,0lJ8;z$NHf3S$OI,$:56$H$J$j!";D$j$NJ8;z$OFI$_Ht$P$5$l$k!#(B
+% ^^A $B@)8fDV$N>l9g$OI,$:%H!<%/%s(B1$B8D$G$"$j!"(B|\relax|$B$H$NHf3S$G??$K$J$k!#(B
+% \begin{macrocode}
+ \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}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\ensure@KanjiEncodingPair}
+%<platexrelease> {ASCII Corporation original}%
+%<platexrelease>\let\ensure@KanjiEncodingPair\@undefined
+%<platexrelease>\plEndIncludeInRelease
+%<*plcore>
+% \end{macrocode}
+% \end{macro}
%
+%
+% \subsubsection{$B%U%!%_%j$N@k8@(B}
% \begin{macro}{\DeclareFontFamily}
% $B2$J8%U%!%_%j$r@k8@$9$k$?$a$N%3%^%s%I$G$9!#(B
% |\ffam@list|$B$r:n$k$h$&$K:FDj5A$r$7$^$9!#(B
@@ -1004,10 +1123,15 @@
% \end{macro}
%
% \begin{macro}{\DeclareKanjiSubstitution}
-% $BL\E*$NOBJ8%U%)%s%H$,8+$D$+$i$J$+$C$?$H$-$K;H$&%U%)%s%H$N@k8@$r$9$k(B
-% $B%3%^%s%I$G$9!#(B
-% |\DeclareFontSubstitution|$B$KBP1~$7$^$9!#(B
+% $BL\E*$NOBJ8%U%)%s%H$,8+$D$+$i$J$+$C$?$H$-$K;H$&BeMQ=qBN$N(B
+% $B@k8@$r$9$k%3%^%s%I$G$9!#(B
+% |\DeclareFontSubstitution|$B$KAjEv$7$^$9!#(B
+% \changes{v1.7e}{2020/03/26}{\cs{default@k@...}$B$r;HMQ(B}
% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\DeclareKanjiSubstitution}
+%<platexrelease> {Use \default@k@family etc.}%
+%<*plcore|platexrelease>
\def\DeclareKanjiSubstitution#1#2#3#4{%
\expandafter\ifx\csname T@#1\endcsname\relax
\@latex@error{KANJI Encoding scheme `#1' unknown}\@eha
@@ -1025,16 +1149,62 @@
\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}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\DeclareKanjiSubstitution}
+%<platexrelease> {ASCII Corporation original}%
+%<platexrelease>\def\DeclareKanjiSubstitution#1#2#3#4{%
+%<platexrelease> \expandafter\ifx\csname T@#1\endcsname\relax
+%<platexrelease> \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha
+%<platexrelease> \else
+%<platexrelease> \begingroup
+%<platexrelease> \def\reserved@a{#1}%
+%<platexrelease> \toks@{}%
+%<platexrelease> \def\cdp@elt##1##2##3##4{%
+%<platexrelease> \def\reserved@b{##1}%
+%<platexrelease> \ifx\reserved@a\reserved@b
+%<platexrelease> \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}%
+%<platexrelease> \else
+%<platexrelease> \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
+%<platexrelease> \fi}%
+%<platexrelease> \cdp@list
+%<platexrelease> \xdef\cdp@list{\the\toks@}%
+%<platexrelease> \endgroup
+%<platexrelease> \global\@namedef{D@#1}{\def\default@family{#2}%
+%<platexrelease> \def\default@series{#3}%
+%<platexrelease> \def\default@shape{#4}}%
+%<platexrelease> \fi}
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>% !!! Special case BEGIN
+%<platexrelease>% required for any emulation date
+%<platexrelease>% copied from (u)pldefs.ltx
+%<platexrelease>\def\pltx@tempa{JY1}\ifx\pltx@tempa\k@encoding
+%<platexrelease>\DeclareKanjiSubstitution{JY1}{mc}{m}{n}
+%<platexrelease>\DeclareKanjiSubstitution{JT1}{mc}{m}{n}
+%<platexrelease>\else\def\pltx@tempa{JY2}\ifx\pltx@tempa\k@encoding
+%<platexrelease>\DeclareKanjiSubstitution{JY2}{mc}{m}{n}
+%<platexrelease>\DeclareKanjiSubstitution{JT2}{mc}{m}{n}
+%<platexrelease>\fi\fi
+%<platexrelease>% emulate execution of \enc@update in \selectfont
+%<platexrelease>% before (u)pldefs.ltx is loaded
+%<platexrelease>\csname D@\f@encoding\endcsname
+%<platexrelease>% emulate execution of \kenc@update in \selectfont
+%<platexrelease>% inside (u)pldefs.ltx
+%<platexrelease>\csname D@\k@encoding\endcsname
+%<platexrelease>% !!! Special case END
+%<*plcore>
\@onlypreamble\DeclareKanjiSubstitution
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\DeclareErrorKanjiFont}
% |\DeclareErrorFont|$B$KBP1~$9$k%3%^%s%I$G$9!#(B
+% $BBeMQ=qBN$G<($5$l$?=qBN$b8+$D$+$i$J$+$C$?$H$-$K(B
+% $B:G8e$N<jCJ$H$7$F;H$o$l$k%(%i!<=qBN$rDj5A$7$^$9!#(B
% \changes{v1.6s}{2019/08/13}{\cs{DeclareErrorKanjiFont}:
% Don't set any \cs{k@...} macros
% (sync with ltfssbas.dtx 2019/07/09 v3.2c)}
@@ -1075,10 +1245,181 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\wrong@fontshape}
+% \begin{macro}{\wrong@al@fontshape}
+% \begin{macro}{\wrong@ja@fontshape}
+% |\wrong@fontshape|$B$rOBJ8BP1~$K$7$^$9!#(B
+% |\DeclareKanjiSubstitution|$B$G(B|\default@k@...|$B$r;HMQ$9$k2~NI$H(B
+% $BF1;~$G$J$1$l$P$J$j$^$;$s!#(B
+% \changes{v1.7e}{2020/03/26}{\cs{wrong@fontshape}$B$NOBJ8BP1~(B}
+%
+% $B%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A$O!"2$J8MQ$H$7$F;H$$$^$9!#(B
+% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\wrong@fontshape}
+%<platexrelease> {Japanese \wrong@fontshape}%
+%<*plcore|platexrelease>
+\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}
+% \end{macrocode}
+% $BOBJ8MQ$NDj5A$G$9!#(B
+% \begin{macrocode}
+\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}
+% \end{macrocode}
+% $B$=$7$F!"%(%s%3!<%G%#%s%0$K1~$8$F2$J8MQ$HOBJ8MQ$r;H$$J,$1$^$9!#(B
+% \begin{macrocode}
+\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
+}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{2015/01/01}{\wrong@fontshape}
+%<platexrelease> {LaTeX2e original (2015)}%
+%<platexrelease>\def\wrong@fontshape{%
+%<platexrelease> \csname D@\f@encoding\endcsname % install defaults if in math
+%<platexrelease> \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+%<platexrelease> \ifx\last@fontshape\reserved@a
+%<platexrelease> \errmessage{Corrupted NFSS tables}%
+%<platexrelease> \error@fontshape
+%<platexrelease> \else
+%<platexrelease> \let\f@shape\default@shape
+%<platexrelease> \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+%<platexrelease> \let\f@series\default@series
+%<platexrelease> \expandafter
+%<platexrelease> \ifx\csname\curr@fontshape\endcsname\relax
+%<platexrelease> \let\f@family\default@family
+%<platexrelease> \begingroup
+%<platexrelease> \try@load@fontshape
+%<platexrelease> \endgroup
+%<platexrelease> \fi \fi
+%<platexrelease> \fi
+%<platexrelease> \@font@warning{Font shape `\expandafter\string\reserved@a'
+%<platexrelease> \expandafter\@gobble\string\@undefined\MessageBreak
+%<platexrelease> using `\curr@fontshape' instead\@wrong@font@char}%
+%<platexrelease> \global\let\last@fontshape\reserved@a
+%<platexrelease> \gdef\@defaultsubs{%
+%<platexrelease> \@font@warning{Some font shapes were not available, defaults
+%<platexrelease> substituted.\@gobbletwo}}%
+%<platexrelease> \global\expandafter\expandafter\expandafter\let
+%<platexrelease> \expandafter\reserved@a
+%<platexrelease> \csname\curr@fontshape\endcsname
+%<platexrelease> \xdef\font@name{%
+%<platexrelease> \csname\curr@fontshape/\f@size\endcsname}%
+%<platexrelease> \pickup@font}
+%<platexrelease>\let\wrong@al@fontshape\@undefined
+%<platexrelease>\let\wrong@ja@fontshape\@undefined
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\wrong@fontshape}
+%<platexrelease> {LaTeX2e original (old)}%
+%<platexrelease>\def\wrong@fontshape{%
+%<platexrelease> \csname D@\f@encoding\endcsname
+%<platexrelease> \edef\reserved@a{\csname\curr@fontshape\endcsname}%
+%<platexrelease> \ifx\last@fontshape\reserved@a
+%<platexrelease> \errmessage{Corrupted NFSS tables}%
+%<platexrelease> \error@fontshape
+%<platexrelease> \else
+%<platexrelease> \let\f@shape\default@shape
+%<platexrelease> \expandafter\ifx\csname\curr@fontshape\endcsname\relax
+%<platexrelease> \let\f@series\default@series
+%<platexrelease> \expandafter
+%<platexrelease> \ifx\csname\curr@fontshape\endcsname\relax
+%<platexrelease> \let\f@family\default@family
+%<platexrelease> \fi \fi
+%<platexrelease> \fi
+%<platexrelease> \@font@warning{Font shape
+%<platexrelease> `\expandafter\string\reserved@a'
+%<platexrelease> \expandafter\@gobble\string\@undefined
+%<platexrelease> \MessageBreak
+%<platexrelease> using `\curr@fontshape' instead\@wrong@font@char}%
+%<platexrelease> \global\let\last@fontshape\reserved@a
+%<platexrelease> \gdef\@defaultsubs{%
+%<platexrelease> \@font@warning{Some font shapes were not available,
+%<platexrelease> defaults substituted.\@gobbletwo}}%
+%<platexrelease> \global\expandafter\expandafter\expandafter\let
+%<platexrelease> \expandafter\reserved@a
+%<platexrelease> \csname\curr@fontshape\endcsname
+%<platexrelease> \xdef\font@name{%
+%<platexrelease> \csname\curr@fontshape/\f@size\endcsname}%
+%<platexrelease> \pickup@font}
+%<platexrelease>\let\wrong@al@fontshape\@undefined
+%<platexrelease>\let\wrong@ja@fontshape\@undefined
+%<platexrelease>\plEndIncludeInRelease
+%<*plcore>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \begin{macro}{\DeclareFixedFont}
% $B%U%)%s%HL>$r@k8@$9$k%3%^%s%I$G$9!#(B
-%
+% $B%(%s%3!<%I!?%U%!%_%j!?%7%j!<%:!?%7%'%$%W!?%5%$%:$N(B5$B$D$NB0@-$r(B
+% $B0lEY$K@Z$jBX$($k$?$a$N%3%^%s%I$rDj5A$G$-$^$9!#(B
% \changes{v1.2}{1995/11/09}{\break\cs{DeclareFixedFont}$B$NF|K\8l2=(B}
% \changes{v1.3c}{1997/04/09}{$B=D2#%(%s%3!<%I!&%j%9%H$NJ,N%$K$h$k3HD%(B}
% \changes{v1.3f}{1998/08/10}{$B%W%j%"%s%V%k!&%3%^%s%I$K$7$F$7$^$C$F$$$?$N$r2r=|(B}
@@ -1113,7 +1454,104 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\do@subst@correction}
+% \begin{macro}{\pltx@do@subst@correction@al}
+% \begin{macro}{\pltx@do@subst@correction@yoko}
+% \begin{macro}{\pltx@do@subst@correction@tate}
+% |\font|$B$O2$J8%U%)%s%H$rJV$9$?$a!"(B\LaTeX{}$B$N85$N(B|\do@subst@correction|$B$O(B
+% $BOBJ8%U%)%s%H$KBP$7$F;H$($^$;$s$N$G!"OBJ8$KBP1~$5$;$^$9(B
+% \footnote{\pLaTeXe~2020-04-12$B$GBP1~!#85$N%"%9%-!<HG$NJ8=q$K$b(B
+% $BBh(B\ref{afont-ascii}$B@a$G(B\cs{do@subst@correction}$B$rF|K\8lBP1~$5$;$?;]$,(B
+% $B=q$+$l$F$$$^$7$?$,!"<B:]$K$O$3$NL?Na$O(B
+% \begin{itemize}
+% \item \cs{selectfont}$BFb$N(B\cs{pickup@font}$B$+$i8F$P$l$k>l9g(B
+% \item \cs{getanddefine@fonts}$BFb$N(B\cs{pickup@font}$B$+$i8F$P$l$k>l9g(B
+% \end{itemize}
+% $B$N(B2$BDL$j$,$"$k$h$&$G$9!#A0<T$O(B\cs{let}\cs{font}\cs{jfont}$B$K$h$C$F(B
+% $BBP=h$G$-$F$$$^$7$?$,!"8e<T$OL$BP:v$@$C$?$?$a!"Nc$($P(B
+% $BOBJ8?t<0%U%)%s%H$rDj5A$7$?>uBV$G(Bbm$B%Q%C%1!<%8$r;H$C$?>l9g$K(B
+% $BLdBj$,5/$-$F$$$^$7$?!J;29M!'(Btexjporg/jsclasses\#53$B!K!#(B}$B!#(B
+% \changes{v1.7}{2020/03/05}{\cs{do@subst@correction}$B$NF|K\8l2=(B}
+% \changes{v1.7d}{2020/03/23}{$B%I%-%e%a%s%H2~NI(B}
%
+% $B%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A$O!"2$J8MQ$H$7$F;H$$$^$9!#(B
+% \begin{macrocode}
+%</plcore>
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\do@subst@correction}
+%<platexrelease> {Japanese font substitution}%
+%<*plcore|platexrelease>
+\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
+}
+% \end{macrocode}
+% $BOBJ82#AHMQ$HOBJ8=DAHMQ$NDj5A$G$O!"$=$l$>$l(B|\jfont|$B$H(B|\tfont|$B$r;H$$$^$9!#(B
+% \begin{macrocode}
+\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
+}
+% \end{macrocode}
+% $B$=$7$F!"%(%s%3!<%G%#%s%0$K1~$8$F(B3$B$D$NL?Na$r;H$$J,$1$^$9!#(B
+% \begin{macrocode}
+\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
+}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\do@subst@correction}
+%<platexrelease> {LaTeX2e original}%
+%<platexrelease>\def\do@subst@correction{%
+%<platexrelease> \xdef\subst@correction{%
+%<platexrelease> \font@name
+%<platexrelease> \global\expandafter\font
+%<platexrelease> \csname \curr@fontshape/\f@size\endcsname
+%<platexrelease> \noexpand\fontname\font
+%<platexrelease> \relax}%
+%<platexrelease> \aftergroup\subst@correction
+%<platexrelease>}
+%<platexrelease>\let\pltx@do@subst@correction@al\@undefined
+%<platexrelease>\let\pltx@do@subst@correction@yoko\@undefined
+%<platexrelease>\let\pltx@do@subst@correction@tate\@undefined
+%<platexrelease>\plEndIncludeInRelease
+%<*plcore>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{$B?t<0MQ%U%)%s%H(B}
% \begin{macro}{\reDeclareMathAlphabet}
% \changes{v1.0}{1997/01/30}{\break\cs{reDeclareMathAlphabet}$B$rDI2C!#(B
% $B$"$j$,$H$&!"(Bymt$B$5$s!#(B}
@@ -1242,6 +1680,7 @@
% \end{macro}
%
%
+% \subsubsection{$B=>B0=qBN$N@k8@(B}
% \begin{macro}{\DeclareRelationFont}
% \begin{macro}{\SetRelationFont}
% $BOBJ8=qBN$KBP$9$k=>B0=qBN$r@k8@$9$k%3%^%s%I$G$9!#(B\emph{$B=>B0=qBN(B}$B$H$O!"(B
@@ -1331,6 +1770,7 @@
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{$B%U%)%s%H$NA*Br(B}
% \begin{macro}{\selectfont}
% |\selectfont|$B$N%*%j%8%J%k$+$i$NJQ99ItJ,$O!"<!$N#3E@$G$9!#(B
% \begin{itemize}
@@ -1342,10 +1782,13 @@
% \changes{v1.0c}{1995/08/22}{$B=D2#N>J}$N%U%)%s%H$r@Z$jBX$($k$h$&$K$7$?(B}
% \changes{v1.2}{1995/11/22}{$B%(%i!<%U%)%s%H$KBP1~$7$?(B}
% \changes{v1.3n}{2004/08/10}{$BOBJ8%(%s%3!<%G%#%s%0$N@Z$jBX$($rM-8z2=(B}
+% \changes{v1.7e}{2020/03/26}{$B=D2#%(%s%3!<%G%#%s%0$N%;%C%H2=3NG'(B}
% |\selectfont|$B%3%^%s%I$O!"$^$:!"OBJ8%U%)%s%H$r@Z$jBX$($^$9!#(B
% \begin{macrocode}
%</plcore>
-%<*plcore|trace>
+%<platexrelease|trace>\plIncludeInRelease{2020/04/12}{\selectfont}
+%<platexrelease|trace> {Check \KanjiEncodingPair}%
+%<*plcore|platexrelease|trace>
\DeclareRobustCommand\selectfont{%
\let\tmp@error@fontshape\error@fontshape
\let\error@fontshape\error@kfontshape
@@ -1354,12 +1797,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
@@ -1419,7 +1864,68 @@
\set@fontsize\baselinestretch\f@size\f@baselineskip
\fi
\size@update}
-%</plcore|trace>
+%</plcore|platexrelease|trace>
+%<platexrelease|trace>\plEndIncludeInRelease
+%<platexrelease|trace>\plIncludeInRelease{0000/00/00}{\selectfont}
+%<platexrelease|trace> {ASCII Corporation original}%
+%<platexrelease|trace>\DeclareRobustCommand\selectfont{%
+%<platexrelease|trace> \let\tmp@error@fontshape\error@fontshape
+%<platexrelease|trace> \let\error@fontshape\error@kfontshape
+%<platexrelease|trace> \edef\tmp@item{{\k@encoding}}%
+%<platexrelease|trace> \expandafter\expandafter\expandafter
+%<platexrelease|trace> \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}%
+%<platexrelease|trace> \ifin@
+%<platexrelease|trace> \let\cy@encoding\k@encoding
+%<platexrelease|trace> \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}%
+%<platexrelease|trace> \else
+%<platexrelease|trace> \expandafter\expandafter\expandafter
+%<platexrelease|trace> \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}%
+%<platexrelease|trace> \ifin@
+%<platexrelease|trace> \let\ct@encoding\k@encoding
+%<platexrelease|trace> \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}%
+%<platexrelease|trace> \else
+%<platexrelease|trace> \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \let\font\tfont
+%<platexrelease|trace> \let\k@encoding\ct@encoding
+%<platexrelease|trace> \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+%<platexrelease|trace> \pickup@font
+%<platexrelease|trace> \font@name
+%<platexrelease|trace> \let\font\jfont
+%<platexrelease|trace> \let\k@encoding\cy@encoding
+%<platexrelease|trace> \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+%<platexrelease|trace> \pickup@font
+%<platexrelease|trace> \font@name
+%<platexrelease|trace> \expandafter\def\expandafter\k@encoding\tmp@item
+%<platexrelease|trace> \kenc@update
+%<platexrelease|trace> \let\error@fontshape\tmp@error@fontshape
+%<platexrelease|trace> \if@knjcmd \@knjcmdfalse
+%<platexrelease|trace> \expandafter\ifx
+%<platexrelease|trace> \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
+%<platexrelease|trace> \expandafter\ifx
+%<platexrelease|trace> \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
+%<platexrelease|trace> \else
+%<platexrelease|trace> \csname rel@\k@encoding/\k@family/\k@series/all\endcsname
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \else
+%<platexrelease|trace> \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \let\font\afont
+%<platexrelease|trace> \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%
+%<platexrelease|trace> \pickup@font
+%<platexrelease|trace> \font@name
+%<*trace>
+%<platexrelease|trace> \ifnum \tracingfonts>\tw@
+%<platexrelease|trace> \@font@info{Roman:Switching to \font@name}\fi
+%</trace>
+%<platexrelease|trace> \enc@update
+%<platexrelease|trace> \ifx\f@linespread\baselinestretch \else
+%<platexrelease|trace> \set@fontsize\baselinestretch\f@size\f@baselineskip
+%<platexrelease|trace> \fi
+%<platexrelease|trace> \size@update}
+%<platexrelease|trace>\plEndIncludeInRelease
%<*plcore>
% \end{macrocode}
% \end{macro}
@@ -1651,6 +2157,7 @@
% \end{macro}
%
%
+% \subsubsection{$B%(%s%3!<%I$N;XDj(B}
% \begin{macro}{\romanencoding}
% \begin{macro}{\kanjiencoding}
% \begin{macro}{\fontencoding}
@@ -1766,6 +2273,7 @@
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{$B%U%!%_%j$N;XDj(B}
% \begin{macro}{\@notkfam}
% \begin{macro}{\@notffam}
% |\fontfamily|$B%3%^%s%IFb$G;HMQ$9$k%U%i%0$G$9!#(B
@@ -1928,35 +2436,68 @@
% \end{macro}
%
%
-% \begin{macro}{\series@maybe@drop@one@m}
-% $BK\2H(B\LaTeXe~2020-02-02 patch level~5$B$GDI2C$5$l$?L?Na$G$9!#(B
-% \NFSS{}$B$,BgI}$K=$@5!&3HD%$5$l$?(B\LaTeXe~2020-02-02$B$N$&$A!"(B
+% \subsubsection{$B%7%j!<%:$N;XDj!J?7(BNFSS$BBP1~!K(B}
+% \begin{macro}{\pltx@latex@level}
+% $B%3%_%e%K%F%#HG(B\pLaTeXe~2020-02-02$B$G$NJQ99!'$3$3$+$i(B
+% \LaTeXe~2020-02-02$B$G3HD%$5$l$??7$7$$(BNFSS$B$X$NBP1~%3!<%I$,;O$^$j$^$9!#(B
+% \pLaTeXe{}$B$N%3!<%I$rK\2H(B\LaTeXe{}$B$N5!G=$K1~$8$F@Z$jBX$($^$9!#(B
+%
+% \LaTeXe~2020-02-02$B$N$&$A!"(B
% patch level~2$B$K$O(B |latex3/latex2e#277| $B$N%P%0$,$"$j!"(B
-% ^^A $B"*BP:v$H$7$F(B \if@forced@series $B$,DI2C$5$l$?(B
-% patch level~4$B$K$O(B |latex3/latex2e#293| $B$N%P%0$,$"$C$?$?$a!"(B
-% ^^A $B"*BP:v$H$7$F(B \series@maybe@drop@one@m $B$,DI2C$5$l$?(B
-% $B0BDj$7$?(B\LaTeXe{}$B$N$_$r%5%]!<%H$7$^$9!#(B
+% ^^A $B"*BP:v$H$7$F(B |\if@forced@series| $B$,DI2C$5$l$?(B
+% patch level~4$B$K$O(B |latex3/latex2e#293| $B$N%P%0$,$"$j$^$7$?!#(B
+% ^^A $B"*BP:v$H$7$F(B |\series@maybe@drop@one@m| $B$,DI2C$5$l$?(B
+% $B$5$i$K3+H/HG(B\LaTeXe{}$B$G$O(B |latex3/latex2e#291| $B$NBP:v$b;\$5$l$F$$$^$9!#(B
+% ^^A $B"*BP:v$H$7$F(B |\series@maybe@drop@one@m@x| $B$,DI2C$5$l$?(B
% \changes{v1.6z}{2020/02/28}{\cs{series@maybe@drop@one@m}$B$NB8:_3NG'(B}
+% \changes{v1.7}{2020/03/05}{\cs{series@maybe@drop@one@m@x}$B$NB8:_3NG'(B}
% \begin{macrocode}
%<*plcore|platexrelease>
\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.}
-%<plcore> \@@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
+% \end{macrocode}
+% $B$3$3$G$O!":GDc8B$I$N%P!<%8%g%s$N(B\LaTeXe{}$B>e$G$b%U%)!<%^%C%H@8@.$,(B
+% $B@.8y$9$k$h$&$K(B|\catcode|$B%H%j%C%/$r;H$$$^$9!#(B
+% ^^A $B"*(B |\if@forced@series|$B%U%i%0$r1#$9I,MW$,$"$k$?$aLLE](B
+% $B8=:_$N<gMW$J%3!<%I$O(B
+% \begin{itemize}
+% \item \LaTeXe~2019-10-01 patch level~3$B0JA0!J=>Mh$N(B\NFSS2$B!K(B
+% \item \LaTeXe{}$B$N3+H/HG!J:G?7$N(Bdevelop$B%V%i%s%A!K(B
+% \end{itemize}
+% $B8~$1$K:GE,2=$7$F$*$j!"B>$N%P!<%8%g%s$X$NBP=h$O8e2s$7$K$7$^$9!#(B
+% ^^A $B"*(B $B>-MhE*$K:o=|$7$d$9$$$h$&$K(B
+% \begin{macrocode}
+\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
%</plcore|platexrelease>
% \end{macrocode}
@@ -2031,42 +2572,85 @@
\def\merge@kanji@series@#1#2#3\@nil{%
\def\reserved@a{#3}%
\ifx\reserved@a\@empty
+% \end{macrocode}
+% $B%7%j!<%:99?75,B'$,$J$$>l9g!'(B|#2|$B$,MW5a%7%j!<%:$G$"$j!"$3$l$r;H$&!#(B
+% \begin{macrocode}
\set@target@series@kanji{#2}%
\else
\begingroup\let\f@encoding\k@encoding\let\f@family\k@family
\maybe@load@fontshape\endgroup
\edef\reserved@a{\k@encoding /\k@family /#1/\k@shape}%
\ifcsname \reserved@a \endcsname
+% \end{macrocode}
+% $B%7%j!<%:99?75,B'$K4p$E$/?7%7%j!<%:(B |#1| $B$,MxMQ2DG=!'(B
+% \begin{macrocode}
\set@target@series@kanji{#1}%
\else
\ifcsname \k@encoding /\k@family /#2/\k@shape \endcsname
+% \end{macrocode}
+% $B%7%j!<%:99?75,B'$K4p$E$/BeBX%7%j!<%:(B |#2| $B$,MxMQ2DG=!'(B
+% \begin{macrocode}
\set@target@series@kanji{#2}%
{\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
\else
+% \end{macrocode}
+% $B$$$:$l$bMxMQIT2D!'MW5a%7%j!<%:(B |#3| $B$r;H$&!#(B
+% \begin{macrocode}
\set@target@series@kanji{#3}%
{\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
\fi
\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
+%</plcore|platexrelease>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
+% \subsubsection{$B%7%'%$%W$N;XDj!J?7(BNFSS$BBP1~!K(B}
+% $B%3%_%e%K%F%#HG(B\pLaTeXe~2020-04-12$B$G$NJQ99!'(B
+% $B=>Mh$O!"(B|\itshape|$B$J$I$NL?Na$r<B9T$9$k$H(B
+%\begin{verbatim}
+% LaTeX Font Warning: Font shape `JT1/mc/m/it' undefined
+% (Font) using `JT1/mc/m/n' instead on input line 4.
+% LaTeX Font Warning: Font shape `JY1/mc/m/it' undefined
+% (Font) using `JY1/mc/m/n' instead on input line 4.
+%\end{verbatim}
+% $B$N$h$&$J7Y9p$rH/$7$F$$$^$7$?!#$3$l$O0J2<$NM}M3$K$h$j$^$9!#(B
+% \begin{itemize}
+% \item \LaTeXe{}$B$,Dj5A$9$k(B|\itshape|$B$J$I$N%7%'%$%WJQ99L?Na$O(B
+% $BFbIt$G(B|\fontshape|$B$r8F$S=P$9!#(B
+% \item \pLaTeXe{}$B$G$O!"(B|\fontshape|$B$r2$J8=qBN$@$1$G$J$/(B
+% $BOBJ8=qBN$bJQ99$9$k$h$&$K:FDj5A$9$k!#(B
+% \item $B$7$+$7!"OBJ8=qBN$N%7%'%$%W$O$[$H$s$I(B``n''$B$7$+MQ$$$i$l$:!"(B
+% |\DeclareFontShape|$B$G$NDj5A$b(B``n''$B$7$+M?$($i$l$J$$$3$H$,B?$$!#(B
+% \item $B7k2LE*$K!"2$J8=qBN$N%7%'%$%W$rJQ99$9$k$D$b$j$G$b(B
+% $B!VOBJ8=qBN$N%7%'%$%W$,L$Dj5A!W$H$$$&7Y9p$,=P$F$7$^$&!#(B
+% \end{itemize}
+% $B$=$3$G!"OBJ8=qBN$N%7%'%$%W$,L$Dj5A$N>l9g$O(B
+% |\fontshape|$B5Z$S(B|\fontshapeforce|$B$,OBJ8=qBN$K$O1F6A$;$:!"(B
+% $B2$J8=qBN$N%7%'%$%W$N$_$rJQ99$9$k$h$&$K2~NI$7$^$9!#(B
+%
+% \begin{macro}{\if@shape@roman@kanji}
+% $BOB2$J8$NN>J}$K1F6A$7$h$&$H$9$k(B|\fontshape|$B%3%^%s%I<B9TCf$K(B
+% $B??$K$J$k%U%i%0$G$9!#(B|\fontshapeforce|$B$O<BAu$,C1=c$J$N$G!"(B
+% $B$3$N%U%i%0$O;H$C$F$$$^$;$s!#(B
+% \changes{v1.7c}{2020/03/15}{\cs{fontshape}/\cs{fontshapeforce}$B$,(B
+% $BOBJ8%7%'%$%WL$Dj5A$N>l9g$O(B\cs{k@shape}$B$r99?7$7$J$$$h$&$KJQ99(B}
+% \begin{macrocode}
+%<*plcore|platexrelease>
+\newif\if@shape@roman@kanji
+%</plcore|platexrelease>
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\romanshape}
% \begin{macro}{\kanjishape}
% \begin{macro}{\fontshape}
@@ -2077,15 +2661,38 @@
% \LaTeXe~2020-02-02$B0J9_$G$O!"(B|\DeclareFontShapeChangeRule|$B$K$h$C$F(B
% $B@k8@$5$l$?!V%7%'%$%W99?75,B'!W$K4p$E$-%7%'%$%W$rA*Br$7$^$9!#(B
% \begin{macrocode}
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\fontshape}
+%<platexrelease> {No \k@shape update if unavailable}%
+%<*plcore|platexrelease>
\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
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\fontshape}
+%<platexrelease> {ASCII Corporation / TeXJP original}%
+%<platexrelease>\ifx\fontshapeforce\@undefined % old
+%<platexrelease>\DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}}
+%<platexrelease>\else % 2020-02-02
+%<platexrelease>\DeclareRobustCommand\romanshape[1]{\merge@font@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\kanjishape[1]{\merge@kanji@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}}
+%<platexrelease>\fi
+%<platexrelease>\plEndIncludeInRelease
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2098,14 +2705,33 @@
% \changes{v1.6v}{2020/02/01}{New commands \cs{fontshapeforce} etc.
% (sync with ltfssaxes.dtx 2019/12/16 v1.0a)}
% \begin{macrocode}
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\fontshapeforce}
+%<platexrelease> {No \k@shape update if unavailable}%
+%<*plcore|platexrelease>
\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}}
+\DeclareRobustCommand\fontshapeforce[1]{%
+ \set@safe@kanji@shape{#1}{}%
+ \edef\f@shape{#1}%
+}
\fi
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\fontshapeforce}
+%<platexrelease> {ASCII Corporation / TeXJP original}%
+%<platexrelease>\ifx\fontshapeforce\@undefined % old
+%<platexrelease>\let\romanshapeforce\@undefined
+%<platexrelease>\let\kanjishapeforce\@undefined
+%<platexrelease>\else % 2020-02-02
+%<platexrelease>\DeclareRobustCommand\romanshapeforce[1]{\edef\f@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\kanjishapeforce[1]{\edef\k@shape{#1}}
+%<platexrelease>\DeclareRobustCommand\fontshapeforce[1]{\kanjishapeforce{#1}\romanshapeforce{#1}}
+%<platexrelease>\fi
+%<platexrelease>\plEndIncludeInRelease
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2115,6 +2741,9 @@
% \begin{macro}{\merge@kanji@shape@}
% \cs{merge@font@shape}$B$NOBJ8HG$G$9!#(B
% \begin{macrocode}
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\merge@kanji@shape@}
+%<platexrelease> {No \k@shape update if unavailable}%
+%<*plcore|platexrelease>
\ifx\fontseriesforce\@undefined % old
\let\merge@kanji@shape\@undefined
\let\merge@kanji@shape@\@undefined
@@ -2129,31 +2758,125 @@
\def\merge@kanji@shape@#1#2#3\@nil{%
\def\reserved@a{#3}%
\ifx\reserved@a\@empty
+% \end{macrocode}
+% $B%7%'%$%W99?75,B'$,$J$$>l9g!'(B|#2|$B$,MW5a%7%'%$%W$G$"$k!#(B\\
+% |\fontshape|$B$N2<@A$1$J$i!"(B|#2|$B$,MxMQ2DG=$+$I$&$+M=$a%A%'%C%/$9$k!#(B\\
+% |\kanjishape|$B$N2<@A$1$J$i!"(B|#2|$B$r;H$&!#(B
+% \begin{macrocode}
+ \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
\edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
\ifcsname \reserved@a\endcsname
+% \end{macrocode}
+% $B%7%'%$%W99?75,B'$K4p$E$/?7%7%'%$%W(B |#1| $B$,MxMQ2DG=!'(B
+% \begin{macrocode}
\edef\k@shape{#1}%
\else
\ifcsname \k@encoding /\k@family /\k@series/#2\endcsname
+% \end{macrocode}
+% $B%7%'%$%W99?75,B'$K4p$E$/BeBX%7%'%$%W(B |#2| $B$,MxMQ2DG=!'(B
+% \begin{macrocode}
\edef\k@shape{#2}%
{\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
\else
+% \end{macrocode}
+% $B$$$:$l$bMxMQIT2D!'MW5a%7%'%$%W(B |#3| $B$K$D$$$F(B\\
+% |\fontshape|$B$N2<@A$1$J$i!"(B|#3|$B$,MxMQ2DG=$+$I$&$+M=$a%A%'%C%/$9$k!#(B\\
+% |\kanjishape|$B$N2<@A$1$J$i!"(B|#3|$B$r;H$&!#(B
+% \begin{macrocode}
+ \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
%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\merge@kanji@shape@}
+%<platexrelease> {ASCII Corporation / TeXJP original}%
+%<platexrelease>\ifx\fontseriesforce\@undefined % old
+%<platexrelease>\let\merge@kanji@shape\@undefined
+%<platexrelease>\let\merge@kanji@shape@\@undefined
+%<platexrelease>\else % 2020-02-02
+%<platexrelease>\def\merge@kanji@shape#1{%
+%<platexrelease> \expandafter\expandafter\expandafter
+%<platexrelease> \merge@kanji@shape@
+%<platexrelease> \csname shape@\k@shape @#1\endcsname
+%<platexrelease> {#1}%
+%<platexrelease> \@nil
+%<platexrelease>}
+%<platexrelease>\def\merge@kanji@shape@#1#2#3\@nil{%
+%<platexrelease> \def\reserved@a{#3}%
+%<platexrelease> \ifx\reserved@a\@empty
+%<platexrelease> \edef\k@shape{#2}%
+%<platexrelease> \else
+%<platexrelease> \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+%<platexrelease> \maybe@load@fontshape\endgroup
+%<platexrelease> \edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
+%<platexrelease> \ifcsname \reserved@a\endcsname
+%<platexrelease> \edef\k@shape{#1}%
+%<platexrelease> \else
+%<platexrelease> \ifcsname \k@encoding /\k@family /\k@series/#2\endcsname
+%<platexrelease> \edef\k@shape{#2}%
+%<platexrelease> {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+%<platexrelease> \else
+%<platexrelease> \edef\k@shape{#3}%
+%<platexrelease> {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}%
+%<platexrelease> \fi
+%<platexrelease> \fi
+%<platexrelease> \fi
+%<platexrelease>}
+%<platexrelease>\fi
+%<platexrelease>\plEndIncludeInRelease
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\set@safe@kanji@shape}
+% \begin{macro}{\@kanji@shape@nochange@info}
+% $BOBJ8%7%'!<%W$,MxMQ2DG=$+$I$&$+M=$a%A%'%C%/$7$F$+$i@_Dj$7$^$9!#(B
+% \begin{macrocode}
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\set@safe@kanji@shape}
+%<platexrelease> {No \k@shape update if unavailable}%
+%<*plcore|platexrelease>
+\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}%
+}
+%</plcore|platexrelease>
+%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{0000/00/00}{\set@safe@kanji@shape}
+%<platexrelease> {ASCII Corporation original}%
+%<platexrelease>\let\set@safe@kanji@shape\@undefined
+%<platexrelease>\let\@kanji@shape@nochange@info\@undefined
+%<platexrelease>\plEndIncludeInRelease
% \end{macrocode}
% \end{macro}
% \end{macro}
%
%
+% \subsubsection{$B=qBN$N@Z$jBX$(!J?7(BNFSS$BBP1~!K(B}
% \begin{macro}{\usekanji}
% \begin{macro}{\useroman}
% \begin{macro}{\usefont}
@@ -2235,10 +2958,19 @@
% $BOBJ8=qBN$b%G%U%)%k%HCM$K$J$k$h$&$K:FDj5A$7$F$$$^$9!#(B
% $B$?$@$79bB.2=$N$?$a!"(B|\usekanji|$B$H(B|\useroman|$B$rE83+$7!"(B
% |\selectfont|$B$r0lEY$7$+8F$S=P$5$J$$$h$&$K$7$F$$$^$9!#(B
+%
+% \LaTeXe~2020-02-02 patch level~2$B$G?7@_$5$l$?%U%C%/(B
+% |\@defaultfamilyhook|$B$r;H$&$3$H$G!"85$NDj5A$r>e=q$-$9$kI,MW$,(B
+% $B$J$/$J$j$^$7$?!#!JCm0U!'%"%9%-!<HG$NKvHx$K$"$C$?(B
+% |\ignorespaces|$B$r:o=|$9$k$3$H$G!"85$N(B\LaTeXe{}$B$H8_49$K(B
+% $B$J$j$^$7$?!#(Bltfssini.dtx 1995/10/16 v3.0f$B$NJQ99$b;29M!#!K(B
+% \changes{v1.7a}{2020/03/06}{\cs{@defaultfamilyhook}$B$r3hMQ(B
+% (sync with ltfssini.dtx 2020/02/10 v3.1h)}
% \begin{macrocode}
-%<platexrelease>\plIncludeInRelease{2020/02/02}{\normalfont}
-%<platexrelease> {Don't call \fontseries or \fontshape}%
+%<platexrelease>\plIncludeInRelease{2020/04/12}{\normalfont}
+%<platexrelease> {Use \@defaultfamilyhook}%
%<*plcore|platexrelease>
+\ifx\@defaultfamilyhook\@undefined % old
\DeclareRobustCommand\normalfont{%
\kanjiencoding{\kanjiencodingdefault}%
\edef\k@family{\kanjifamilydefault}%
@@ -2248,11 +2980,41 @@
\edef\f@family{\familydefault}%
\edef\f@series{\seriesdefault}%
\edef\f@shape{\shapedefault}%
- \selectfont\ignorespaces}
+ \selectfont}
+\else % 2020-02-02 PL2
+%<platexrelease>\DeclareRobustCommand\normalfont{%
+%<platexrelease> \fontencoding\encodingdefault
+%<platexrelease> \edef\f@family{\familydefault}%
+%<platexrelease> \edef\f@series{\seriesdefault}%
+%<platexrelease> \edef\f@shape{\shapedefault}%
+%<platexrelease> \@defaultfamilyhook
+%<platexrelease> \selectfont}
+\g@addto@macro\@defaultfamilyhook{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
+}
+\fi
\adjustbaseline
\let\reset@font\normalfont
%</plcore|platexrelease>
%<platexrelease>\plEndIncludeInRelease
+%<platexrelease>\plIncludeInRelease{2020/02/02}{\normalfont}
+%<platexrelease> {Don't call \fontseries or \fontshape}%
+%<platexrelease>\DeclareRobustCommand\normalfont{%
+%<platexrelease> \kanjiencoding{\kanjiencodingdefault}%
+%<platexrelease> \edef\k@family{\kanjifamilydefault}%
+%<platexrelease> \edef\k@series{\kanjiseriesdefault}%
+%<platexrelease> \edef\k@shape{\kanjishapedefault}%
+%<platexrelease> \romanencoding{\encodingdefault}%
+%<platexrelease> \edef\f@family{\familydefault}%
+%<platexrelease> \edef\f@series{\seriesdefault}%
+%<platexrelease> \edef\f@shape{\shapedefault}%
+%<platexrelease> \selectfont\ignorespaces}
+%<platexrelease>\adjustbaseline
+%<platexrelease>\let\reset@font\normalfont
+%<platexrelease>\plEndIncludeInRelease
%<platexrelease>\plIncludeInRelease{0000/00/00}{\normalfont}
%<platexrelease> {ASCII Corporation original}%
%<platexrelease>\DeclareRobustCommand\normalfont{%
@@ -2309,18 +3071,22 @@
%
% \begin{macro}{\expand@font@defaults}
% $B%U%!%_%j$N%G%U%)%k%H$r40A4E83+$7$^$9!#(B
-% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A$r:\$;$F$*$-$^$9!#(B
+% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A!J(Bltfssini.dtx 2020/04/06 v3.1m$B0J9_!K$r(B
+% $B:\$;$F$*$-$^$9!#(B
% \begin{macrocode}
%\def\expand@font@defaults{%
% \edef\rmdef@ult{\rmdefault}%
% \edef\sfdef@ult{\sfdefault}%
% \edef\ttdef@ult{\ttdefault}%
-% \edef\bfdef@ult{\bfdefault}%
-% \edef\mddef@ult{\mddefault}%
+% \series@maybe@drop@one@m\bfdefault\bfdef@ult % !! changed 2020/02/25 v3.1j
+% \series@maybe@drop@one@m\mddefault\mddef@ult % !! changed 2020/02/25 v3.1j
% \edef\famdef@ult{\familydefault}%
+% \@expandfontdefaultshook % !! added 2020/04/06 v3.1m
%}
% \end{macrocode}
% p\LaTeX{}$B$G$O!"0J2<$N%3!<%I$rKvHx$KDI2C$7$^$9!#(B
+% ^^A ltfssini.dtx 2020/04/06 v3.1m $B$K4p$E$1$P(B |\@expandfontdefaultshook| $B$r(B
+% ^^A $B;H$&$3$H$b$G$-$k$,!"$H$j$"$($:(B |\g@addto@macro| $B$GKvHxDI2C$GLdBj$J$$!#(B
% \begin{macrocode}
\ifx\expand@font@defaults\@undefined\else % 2020-02-02
\g@addto@macro\expand@font@defaults{%
@@ -2336,56 +3102,111 @@
% \begin{macro}{\bfseries}
% \begin{macro}{\mdseries}
% $B%U%!%_%j$4$H$N@_DjCM$r;2>H$7$^$9!#(B
+% $B$^$:!"%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A!J(Bltfssini.dtx 2020/04/06 v3.1m$B0J9_!K$r(B
+% $B:\$;$F$*$-$^$9!#(B
+% \begin{macrocode}
+%\DeclareRobustCommand\bfseries{%
+% \not@math@alphabet\bfseries\mathbf
+% \expand@font@defaults
+% \ifx\bfdefault\bfdefault@previous\else
+% \expandafter\def\expandafter\bfdefault
+% \expandafter{\bfdefault\@empty}%
+% \let\bfseries@previous\bfdefault
+% \let\bfseries@rm\bfdef@ult
+% \let\bfseries@sf\bfdef@ult
+% \let\bfseries@tt\bfdef@ult
+% \@setbfseriesdefaultshook % !! added 2020/04/06 v3.1m
+% \fi
+% \ifx\f@family\rmdef@ult \fontseries\bfseries@rm
+% \else\ifx\f@family\sfdef@ult \fontseries\bfseries@sf
+% \else\ifx\f@family\ttdef@ult \fontseries\bfseries@tt
+% \else \fontseries\bfdefault
+% \fi\fi\fi
+% \selectfont
+%}
+%\DeclareRobustCommand\mdseries{%
+% \not@math@alphabet\mdseries\relax
+% \expand@font@defaults
+% \ifx\mddefault\mddefault@previous\else
+% \expandafter\def\expandafter\mddefault
+% \expandafter{\mddefault\@empty}%
+% \let\mdseries@previous\mddefault
+% \let\mdseries@rm\mddef@ult
+% \let\mdseries@sf\mddef@ult
+% \let\mdseries@tt\mddef@ult
+% \@setmdseriesdefaultshook % !! added 2020/04/06 v3.1m
+% \fi
+% \ifx\f@family\rmdef@ult \fontseries\mdseries@rm
+% \else\ifx\f@family\sfdef@ult \fontseries\mdseries@sf
+% \else\ifx\f@family\ttdef@ult \fontseries\mdseries@tt
+% \else \fontseries\mddefault
+% \fi\fi\fi
+% \selectfont
+%}
+% \end{macrocode}
+% $B0J2<$G(Bp\LaTeX{}$BMQ$K:FDj5A$7$^$9!#(B
% \changes{v1.6y}{2020/02/24}{Make the \cs{ifx} selection outside of
% \cs{fontseries} argument so that it is not done several times
% (sync with ltfssini.dtx 2020/02/18 v3.1i)}
+% \changes{v1.7f}{2020/04/07}{Support legacy use of \cs{bfdefault}
+% and \cs{mddefault}, use \cs{@setYYseriesdefaultshook}
+% (sync with ltfssini.dtx 2020/03/19 v3.1k and 2020/04/06 v3.1m)}
% \begin{macrocode}
-\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
-% \end{macrocode}
-% $B$3$3$+$i$,(Bp\LaTeX{}$B$K$h$kDI2C%3!<%I$G$9!#(B
-% \begin{macrocode}
+\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
-% \end{macrocode}
-% $B$3$3$^$G!#(B
-% \begin{macrocode}
- \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
-% \end{macrocode}
-% $B$3$3$+$i$,(Bp\LaTeX{}$B$K$h$kDI2C%3!<%I$G$9!#(B
-% \begin{macrocode}
+\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
-% \end{macrocode}
-% $B$3$3$^$G!#(B
-% \begin{macrocode}
\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
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2408,10 +3229,10 @@
\let\update@series@target@value@kanji\@undefined
\else % 2020-02-02
\def\prepare@family@series@update#1#2{%
- \if@forced@series
+~\if@forced@series
%<+debug> \series@change@debug{No series preparation (forced \f@series)\on@line}%
- \romanfamily#2% % changed \fontfamily -> \romanfamily
- \else
+~ \romanfamily#2% % changed \fontfamily -> \romanfamily
+~\else
%<+debug> \series@change@debug{Prepearing for switching to #1 (#2)\on@line}%
\expand@font@defaults
\let\target@series@value\@empty
@@ -2432,16 +3253,17 @@
\maybe@load@fontshape
%<+debug> \series@change@debug{Target series:
%<+debug> \f@series \space -> \target@series@value}%
- \let\f@series\target@series@value
+% \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
+~\if@forced@series
%<+debug> \series@change@debug{No series preparation (forced \k@series)\on@line}%
- \kanjifamily#2%
- \else
+~ \kanjifamily#2%
+~\else
%<+debug> \series@change@debug{Prepearing for switching to #1 (#2)\on@line}%
\expand@font@defaults
\let\target@series@value\@empty
@@ -2463,10 +3285,11 @@
\maybe@load@fontshape\endgroup
%<+debug> \series@change@debug{Target series:
%<+debug> \k@series \space -> \target@series@value}%
- \let\k@series\target@series@value
+% \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{%
@@ -2483,10 +3306,15 @@
\csname bfseries@\target@meta@family@value\endcsname
%<+debug>\series@change@debug{Targets for mdseries and bfseries:
%<+debug> \reserved@b\space and \reserved@c}%
- \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
%<+debug> \series@change@debug{mdseries@#1 matched -> \reserved@b}%
\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
%<+debug> \series@change@debug{bfseries@#1 matched -> \reserved@c}%
\let\target@series@value\reserved@c
\else\ifx\k@series\mddef@ult \let\target@series@value\reserved@b
@@ -2585,6 +3413,209 @@
% \end{macro}
% \end{macro}
%
+% $B8e2s$7$K$7$F$$$?B>$N%P!<%8%g%s$X$NBP=h$G$9!#(B
+% $B$3$3$G?7(BNFSS$BBP1~%3!<%I$,=*$o$j$^$9$N$G!"(B|\catcode|$B%H%j%C%/$r85$KLa$7$^$9!#(B
+% \changes{v1.7b}{2020/03/14}{$B8E$$(B\LaTeXe{}$B$G$b%U%)!<%^%C%H@8@.$,DL$k$h$&$K(B}
+% \begin{macrocode}
+%<*plcore|platexrelease>
+%%
+\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
+ \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
+%
+\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
+%<+debug> \series@change@debug{No series preparation (forced \f@series)\on@line}%
+~ \romanfamily#2% % changed \fontfamily -> \romanfamily
+~\else
+%<+debug> \series@change@debug{Prepearing for switching to #1 (#2)\on@line}%
+ \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
+%<+debug> \series@change@debug{Target series still empty ...}%
+ \else
+ \ifx \f@series\target@series@value
+%<+debug> \series@change@debug{Target series unchanged:
+%<+debug> \f@series \space = \target@series@value}%
+ \else
+ \maybe@load@fontshape
+%<+debug> \series@change@debug{Target series:
+%<+debug> \f@series \space -> \target@series@value}%
+ \let\f@series\target@series@value
+ \fi
+ \fi
+~\fi
+}
+\def\prepare@family@series@update@kanji#1#2{%
+~\if@forced@series
+%<+debug> \series@change@debug{No series preparation (forced \k@series)\on@line}%
+~ \kanjifamily#2%
+~\else
+%<+debug> \series@change@debug{Prepearing for switching to #1 (#2)\on@line}%
+ \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
+%<+debug> \series@change@debug{Target series still empty ...}%
+ \else
+ \ifx \k@series\target@series@value
+%<+debug> \series@change@debug{Target series unchanged:
+%<+debug> \k@series \space = \target@series@value}%
+ \else
+ \begingroup\let\f@encoding\k@encoding\let\f@family\k@family
+ \maybe@load@fontshape\endgroup
+%<+debug> \series@change@debug{Target series:
+%<+debug> \k@series \space -> \target@series@value}%
+ \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
+%<+debug> \series@change@debug{Trying to match #1: \csname#1def@ult\endcsname
+%<+debug> \space = \k@family\space ?}%
+ \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
+%<+debug>\series@change@debug{Targets for mdseries and bfseries:
+%<+debug> \reserved@b\space and \reserved@c}%
+ \expandafter\ifx\csname mdseries@#1\endcsname\k@series
+%<+debug> \series@change@debug{mdseries@#1 matched -> \reserved@b}%
+ \let\target@series@value\reserved@b
+ \else\expandafter\ifx\csname bfseries@#1\endcsname\k@series
+%<+debug> \series@change@debug{bfseries@#1 matched -> \reserved@c}%
+ \let\target@series@value\reserved@c
+ \else\ifx\k@series\mddef@ult \let\target@series@value\reserved@b
+%<+debug> \series@change@debug{mddef@ult matched -> \reserved@b}%
+ \else\ifx\k@series\bfdef@ult \let\target@series@value\reserved@c
+%<+debug> \series@change@debug{bfdef@ult matched -> \reserved@c}%
+ \fi\fi\fi\fi
+ \fi
+ \fi
+}
+\fi
+%
+\fi
+%%
+\pltx@reset@catcode@trick
+%</plcore|platexrelease>
+% \end{macrocode}
+%
+%
+% \begin{macro}{\romanprocess@table}
+% \begin{macro}{\kanjiprocess@table}
+% \begin{macro}{\process@table}
+% $BJ8=q$N@hF,$G!"OBJ8%G%U%)%k%H%U%)%s%H$NJQ99$,H?1G$5$l$J$$$N$r=$@5$7$^$9!#(B
+% \changes{v1.3g}{1999/04/05}{plpatch.ltx$B$NFbMF$rH?1G!#(B
+% $B$"$j$,$H$&!";3K\$5$s!#(B}
+% \begin{macrocode}
+%<*plcore>
+\let\romanprocess@table\process@table
+\def\kanjiprocess@table{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \kanjifamily{\kanjifamilydefault}%
+ \kanjiseries{\kanjiseriesdefault}%
+ \kanjishape{\kanjishapedefault}%
+}
+\def\process@table{%
+ \romanprocess@table
+ \kanjiprocess@table
+}
+\@onlypreamble\romanprocess@table
+\@onlypreamble\kanjiprocess@table
+%</plcore>
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsection{$B6/D4=qBN(B}
% \begin{macro}{\em}
% \begin{macro}{\emph}
% \begin{macro}{\eminnershape}
@@ -2654,35 +3685,7 @@
% \end{macro}
%
%
-% \begin{macro}{\romanprocess@table}
-% \begin{macro}{\kanjiprocess@table}
-% \begin{macro}{\process@table}
-% $BJ8=q$N@hF,$G!"OBJ8%G%U%)%k%H%U%)%s%H$NJQ99$,H?1G$5$l$J$$$N$r=$@5$7$^$9!#(B
-% \changes{v1.3g}{1999/04/05}{plpatch.ltx$B$NFbMF$rH?1G!#(B
-% $B$"$j$,$H$&!";3K\$5$s!#(B}
-% \begin{macrocode}
-%<*plcore>
-\let\romanprocess@table\process@table
-\def\kanjiprocess@table{%
- \kanjiencoding{\kanjiencodingdefault}%
- \kanjifamily{\kanjifamilydefault}%
- \kanjiseries{\kanjiseriesdefault}%
- \kanjishape{\kanjishapedefault}%
-}
-\def\process@table{%
- \romanprocess@table
- \kanjiprocess@table
-}
-\@onlypreamble\romanprocess@table
-\@onlypreamble\kanjiprocess@table
-%</plcore>
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
+% \subsection{$B2<@~%^%/%m(B}
% \begin{macro}{\textunderscore}
% \changes{v1.1b}{1995/04/12}{$B2<@~%^%/%m$rDI2C(B}
% $B$3$N%3%^%s%I$O%F%-%9%H%b!<%I$G;XDj$5$l$?(B|\_|$B$NFbIt%3%^%s%I$G$9!#(B
diff --git a/Master/texmf-dist/source/platex/base/plnewsc14.tex b/Master/texmf-dist/source/platex/base/plnewsc14.tex
new file mode 100644
index 00000000000..0599113d07c
--- /dev/null
+++ b/Master/texmf-dist/source/platex/base/plnewsc14.tex
@@ -0,0 +1,209 @@
+%% <2020-02-02> and <2020-04-12>
+\documentclass{plnews}
+
+\publicationyear{2020}% $BH/9TG/(B
+\publicationmonth{04}% $BH/9T7n(B
+\publicationissue{c14}% $BHV9f(B
+\author{$BF|K\8l(B\TeX{}$B3+H/%3%_%e%K%F%#!J(B\texttt{https://texjp.org/}$B!K(B}
+
+\def\cs#1{\texttt{\char92\nobreak #1}}
+\def\pTeX{p\kern-.15em\TeX}
+\def\eTeX{$\varepsilon$-\TeX}
+\def\epTeX{$\varepsilon$-\pTeX}
+\def\pLaTeX{p\kern-.05em\LaTeX}
+\def\pLaTeXe{p\kern-.05em\LaTeXe}
+\xspcode`\\=1
+
+\begin{document}
+
+\maketitle
+
+$B%3%_%e%K%F%#HG(B\pLaTeXe\ \texttt{<2020-02-02>}$B$*$h$S(B
+\texttt{<2020-04-12>}$B$K$D$$$F!"(B
+\pLaTeXe\ \texttt{<2019-10-01>}$B$+$i$N99?72U=j$r$^$H$a$^$9!#(B
+
+
+\section{\LaTeXe\ \texttt{<2020-02-02>}$BBP1~(B}
+$B"*;29M!'(B|texjporg/platex#88|
+
+\LaTeXe\ \texttt{<2020-02-02>}$B$G(B
+NFSS$B!J%U%)%s%HA*Br$N;EAH$_!K$,BgI}$K3HD%$5$l$?$3$H$r<u$1!"(B
+\pLaTeXe\ \texttt{<2020-02-02>}$B$GBP1~$r;\$7$^$7$?!#(B
+$B%7%j!<%:!&%7%'%$%W$NB?<42=$O(B\file{fontaxes}$B$+$i!"(B
+$B%U%!%_%j$4$H$N<B%7%j!<%:CM$O(B\file{mweights}$B$+$i!"(B
+$B$=$l$>$l%"%$%G%"$r<h$jF~$l$?$h$&$G$9!#(B
+\file{ltnews31}$B$b;2>H$7$F$/$@$5$$!#(B
+
+\pLaTeXe{}$B$G$N3HD%ItJ,$O0J2<$N$H$*$j$G$9!#(B
+
+\paragraph{$B%7%j!<%:$NB?<42=(B}
+\begin{itemize}
+ \item |\kanjiseries|, |\romanseries| (, |\fontseries|)\\
+ |\DeclareFontSeriesChangeRule|$B$K$h$k(B
+ $B%7%j!<%:99?75,B'$K=>$&$h$&$K$7$?!#(B
+ \item |\kanjiseriesforce|, |\romanseriesforce|\\
+ $BL5>r7o$K%7%j!<%:$r99?7$9$k!J?75,!K!#(B\\
+ |\fontseriesforce|$B$OOB2$J8N>J}$K1F6A!#(B
+\end{itemize}
+
+\paragraph{$B%7%'%$%W$NB?<42=(B}
+\begin{itemize}
+ \item |\kanjishape|, |\romanshape| (, |\fontshape|)\\
+ |\DeclareFontShapeChangeRule|$B$K$h$k(B
+ $B%7%'%$%W99?75,B'$K=>$&$h$&$K$7$?!#(B
+ \item |\kanjishapeforce|, |\romanshapeforce|\\
+ $BL5>r7o$K%7%'%$%W$r99?7$9$k!J?75,!K!#(B\\
+ |\fontshapeforce|$B$OOB2$J8N>J}$K1F6A!#(B
+\end{itemize}
+
+\paragraph{$BAm>N%U%!%_%j$4$H$N<B%7%j!<%:CM$N@_Dj(B}
+\begin{itemize}
+ \item |\DeclareFontSeriesDefault|\\
+ $BBh0l0z?t!J%*%W%7%g%s!K$NAm>N%U%!%_%jL>$K(B
+ |rm|, |sf|, |tt|$B$K2C$((B|mc|, |gt|$B$b;XDj$G$-$k$h$&$K$7$?!#(B
+\end{itemize}
+
+\paragraph{$B6/D4=qBN;XDj$N0lHL2=(B}
+\begin{itemize}
+ \item \pLaTeX{}$B$G:FDj5A$7$F$$$k(B|\em| (, |\emph|)$B$G$b(B
+ |\DeclareEmphSequence|$B$K$h$k(B
+ $BF~$l;R$N6/D4=qBN$N%+%9%?%^%$%:5!G=$r%5%]!<%H$7$?!#(B
+\end{itemize}
+
+\paragraph{$B4{DjCM(B}
+\LaTeXe{}$B$KDI?o$7$F(B\pLaTeXe{}$B$G$bD4@0!#(B
+
+$B$^$:!"(B\LaTeXe{}$B$G$N4{DjCM$NJQ99$r8+$F$_$^$9!#(B
+\begin{itemize}
+ \item |\bfdefault|: |bx| $B"*(B |b| $B$KJQ99(B
+ \item |\updefault|: |n| $B"*(B |up| $B$KJQ99(B
+ \item |\shapedefault|: |\updefault| $B"*(B |n| $B$KJQ99(B
+\end{itemize}
+$B$3$N$&$A!V(B|bx| $B"*(B |b|$B!W$O(B
+$BB@;z$r86B'(B|b| (bold)$B$KJQ99$9$k$3$H$r0UL#$7$^$9!#(B
+$B$3$l$@$1$G$O8_49@-$K4X$7$F7|G0$,$"$j$^$9$,!"(B
+\LaTeXe{}$B$G$OF1;~$K(B
+$B!VAm>N%U%!%_%j$4$H$N<B%7%j!<%:CM$N@_Dj!W$N?75!G=$r3hMQ$7$F(B
+\begin{itemize}
+ \item Computer Modern$B$H(BLatin Modern$B$N>l9g$@$1$O(B
+ $B=>Mh$I$*$jB@;z$r(B|bx| (bold-extended)$B$K0];}(B
+\end{itemize}
+$B$H$$$&5sF0$r<B8=$7$F$$$^$9!#(B
+
+\pLaTeXe{}$B$G$O!"(B|\bfdefault|$B$H(B|\updefault|$B$K$D$$$F(B
+\LaTeXe{}$B$N@_Dj$,$=$N$^$^OBJ8$K$b0z$-7Q$,$l$^$9!#(B
+$B;D$k0l$D$OOBJ8MQ$N4{DjCM$,JL$KB8:_$7$^$9!#(B
+\begin{itemize}
+ \item |\kanjishapedefault|: |\updefault| $B"*(B |n| $B$KJQ99(B
+\end{itemize}
+
+$B$5$F!"OBJ8$NB@;z$O=>Mh(B|\bfdefault|$B0lBr!J7k2LE*$K(B|bx|$B!K(B
+$B$G$7$?$,!"(B\pLaTeXe\ \texttt{<2020-02-02>}$B$G$O(B
+$B!VAm>N%U%!%_%j$4$H$N<B%7%j!<%:CM$N@_Dj!W$N?75!G=$,(B
+$BOBJ8%U%!%_%j(B|mc|, |gt|$B$K$b;H$($^$9!#(B
+$B$3$3$G!"(B|mc|, |gt|$B$NB@;z$r$I$&@_Dj$9$k$+$O5DO@$NM>CO$,$"$j$^$9!'(B
+\begin{enumerate}
+ \item $B8_49@-$N$?$a!"=>Mh$I$*$j(B|bx|$B$r0];}$9$k!#(B
+ \item Computer Modern$B$G$b(BLatin Modern$B$G$b$J$$$N$G!"(B
+ |b|$B$KJQ99$9$k!#(B
+\end{enumerate}
+$B$3$N(B2$B0F$N$&$A!"8=:_$NHG$G$O(B2.$B$9$J$o$A(B
+\begin{itemize}
+ \item $BOBJ8%U%!%_%j(B|mc|$B$H(B|gt|$B$NB@;z$b(B|b| (bold)$B$KJQ99(B
+\end{itemize}
+$B$r:N$C$F$$$^$9!#$3$l$O!"OBJ8$NB@;z$O@~$,B@$$$@$1$G!"(B
+$B2#I}$,9-$,$k$o$1$G$O$J$$$?$a$G$9!#(B
+
+
+\section{NFSS$B$NOBJ8BP1~$N2~A1(B}
+\pLaTeXe\ \texttt{<2020-04-12>}$B$G$N=$@5$G$9!#(B
+\LaTeXe\ \texttt{<2020-02-02>}$B$G$N(BNFSS$B$N3HD%$H$OL54X78$K!"(B
+$B=>Mh$+$i(B\pLaTeXe{}$B$N(BNFSS$B$KB8:_$7$?OBJ8%U%)%s%H$G$NIT6q9g$K(B
+$BBP=h$7$^$7$?!#(B
+
+\paragraph{\cs{fontshape}$B$GOBJ8%7%'%$%W$,L$Dj5A$J$i0];}(B}
+$BC<E*$K$O(B |{\itshape a}| $B$N$h$&$J%7%'%$%WJQ99$G(B
+\begin{verbatim}
+ Font shape `JT1/mc/m/it' undefined
+ using `JT1/mc/m/n' instead on ....
+ Font shape `JY1/mc/m/it' undefined
+ using `JY1/mc/m/n' instead on ....
+\end{verbatim}
+$B$H$$$&(B|LaTeX Font Warning|$B$,=P$k$N$rM^@)$9$k$3$H$r(B
+$BL\E*$H$7$?=$@5$G$9!#"*(B|texjporg/platex#90|
+
+\pLaTeXe{}$B$N(B|\fontshape|$B$O!"2$J8$K2C$($FOBJ8$N%7%'%$%W$bJQ99$9$k$h$&$K(B
+$B:FDj5A$5$l$F$$$^$7$?!J%"%9%-!<(B\pLaTeXe{}$B$N;EMM!K!#(B
+$B$7$+$7!"$3$l$G$O(B|\itshape|$B$N$h$&$JL?Na$GM>J,$J7Y9p$rH/$7$F$7$^$$$^$9!#(B
+\begin{itemize}
+ \item \LaTeXe{}$B$,Dj5A$9$k(B|\itshape|$B$J$I$N%7%'%$%WJQ99L?Na$O!"(B
+ $BFbIt$G(B|\fontshape|$B$r8F$S=P$9!#(B
+ \item \pLaTeXe{}$B$N(B|\fontshape|$B$O!"2$J8=qBN$@$1$G$J$/(B
+ $BOBJ8=qBN$N%7%'%$%W$bJQ99$7$h$&$H$9$k!#(B
+ \item $B$7$+$7!"OBJ8=qBN$N%7%'%$%W$O$[$H$s$I(B``n''$B$7$+MQ$$$i$l$:!"(B
+ |\DeclareFontShape|$B$G$NDj5A$b(B``n''$B$7$+M?$($i$l$J$$$3$H$,B?$$!#(B
+ \item $B7k2LE*$K!"2$J8=qBN$N%7%'%$%W$rJQ99$9$k$D$b$j$G$b(B
+ $B!VOBJ8=qBN$N%7%'%$%W$,L$Dj5A!W$H$$$&7Y9p$,=P$F$7$^$&!#(B
+\end{itemize}
+$B$3$l$r2~A1$9$k$?$a!"(B\pLaTeXe\ \texttt{<2020-04-12>}$B$G$O(B
+\begin{itemize}
+ \item |\fontshape|$B$,A*Br$7$h$&$H$7$?(B
+ $BOBJ8$N%7%'%$%W$,L$Dj5A$N>l9g$O!"(B
+ $BOBJ8$N%7%'%$%W$OJQ99$;$:!"2$J8$N%7%'%$%W$N$_$rJQ99$9$k(B
+\end{itemize}
+$B$H$$$&;EMM$KJQ99$7$^$7$?!#$3$l$O(B|\fontshapeforce|$B$bF1MM$G$9!#(B
+
+$B$J$*!"(B|\kanjishape|$B$d(B|\kanjishapeforce|$B$O(B
+$BOBJ8=qBN$N%7%'%$%W$rJQ99$9$k0U?^$G$7$+<B9T$5$l$J$$$?$a!"(B
+$BL$Dj5A$+$I$&$+$O3NG'$7$^$;$s!#(B
+$B$^$?!"(B|\usefont|$B$OOB2$J8N>MQ$G$9$,!"0l=o$K;XDj$5$l$?(B
+$B%(%s%3!<%G%#%s%0$K1~$8$F(B|\useroman|$B$H(B|\usekanji|$B$N0lJ}$@$1$,(B
+$B<B9T$5$l$k$3$H$,L@Gr$J$?$a!"$d$O$jL$Dj5A$+$I$&$+$O3NG'$7$^$;$s!#(B
+
+\paragraph{sub, ssub$B$NOBJ8BP1~(B}
+|\DeclareFontShape|$B$G;H$o$l$k(Bsize function$B$N(B
+|sub|, |ssub|$B$,OBJ8%U%)%s%H$r@5$7$/<hF@$G$-$J$$IT6q9g$r=$@5!#(B
+
+$B$3$l$,O*Dh$9$k6qBNE*$J>INc$H$7$F$O!"(BGitHub$B$N(B
+|texjporg/jsclasses#53|$B$GJs9p$5$l$F$$$k(B
+$B!VF|K\8l$N?t<0%U%!%_%j$r@k8@$7$?>uBV$G(B\file{bm}$B%Q%C%1!<%8$r(B
+$B;H$&$H%4%7%C%/$K$J$i$J$$!W$,$"$j$^$7$?$,!"(B
+$B:#2s$N%j%j!<%9$G2r>C$7$^$7$?!#(B
+
+\paragraph{\cs{normalfont}$BKvHx$N(B\cs{ignorespaces}$B:o=|(B}
+$B%*%j%8%J%k$N(B\LaTeXe{}$B$N(B1995$BG/$N=$@5$KDI?o$7!"(B
+\pLaTeXe{}$B$N(B|\normalfont|$BKvHx$K$J$<$+;D$C$F$$$?(B
+|\ignorespaces|$B$r:o=|$7$^$7$?!#(B
+
+\paragraph{\cs{KanjiEncodingPair}$BIT:_$N%(%i!<2~A1(B}
+2004$BG/$N%"%9%-!<(B\pLaTeXe{}$B$G!"(B|\KanjiEncodingPair|$B$K$h$k(B
+$BOBJ8=D2#%(%s%3!<%I$N%;%C%H2=$,I,?\$H$J$C$F$$$^$9!#(B
+$B$7$+$7!"%;%C%H2=$;$:$K%(%s%3!<%I$rDj5A$7$?>l9g$N%(%i!<$,(B
+$BH=$j$E$i$+$C$?$?$a!"2~A1$7$^$7$?!#(B(|#92|)
+
+\paragraph{\cs{DeclareKanjiSubstitution}$B$N=$@5(B}
+$BOBJ8$NBeMQ=qBN$N@k8@$,(B
+$B2$J8$N(B|\DeclareFontSubstitution|$B$H43>D$7!"(B
+$B8m$C$?%U%)%s%HDj5A%U%!%$%k$,FI$^$l$h$&$H$9$kLdBj$r2r>C$7$^$7$?!#(B(|#93|)
+
+\paragraph{\cs{verb}$B$N2~NI(B}
+|\verb+>+|$B$rOBJ8$G64$`$H8e$m$@$1%"%-$,F~$C$FA0$K$OF~$i$J$$8=>]$K(B
+$BBP=h$7!"(B|\texttt{>}|$B$HF1MM$KA08e$K%"%-$,F~$k$h$&$K$7$^$7$?!#(B(|#87|)
+
+
+\section{$B3+H/HG$N%F%9%H$N$*4j$$(B}
+$B:#8e(B\pLaTeX{}$B$KF3F~$9$k$+$b$7$l$J$$=$@5%Q%C%A$d;EMMJQ99$N%F%9%H$K(B
+$B$46(NO$/$@$5$$!#(B\TeX{}$B%U%!%$%k$NKAF,!J(B|\documentclass|$B$h$jA0!K$G(B
+\begin{verbatim}
+ \RequirePackage{exppl2e}
+\end{verbatim}
+$B$H=q$/$3$H$G!"8=:_$N3+H/HG$r%F%9%H$9$k$3$H$,$G$-$^$9!#(B
+$B>\:Y$O(B\file{exppl2e.pdf}$B$r;2>H$7$F$/$@$5$$!#$3$3$K$O!"(B
+$B$=$NB>$N(B\pLaTeXe{}$B$N4{CN$N@)Ls;v9`$b5-:\$7$F$$$^$9!#(B
+\TeX\ Forum$B$d(BGitHub$B$N(BIssue$B$G$N%P%0Js9p$d$40U8+$r4?7^$7$^$9!#(B
+\begin{itemize}
+\item \texttt{https://github.com/texjporg/platex}
+\item \texttt{https://github.com/texjporg/uplatex}
+\end{itemize}
+
+\end{document}
diff --git a/Master/texmf-dist/source/platex/base/plvers.dtx b/Master/texmf-dist/source/platex/base/plvers.dtx
index ff2cc58b87a..e85d8dca5d0 100644
--- a/Master/texmf-dist/source/platex/base/plvers.dtx
+++ b/Master/texmf-dist/source/platex/base/plvers.dtx
@@ -93,12 +93,15 @@
% (sync with ltvers.dtx 2019/07/01 v1.1c)}
% \changes{v1.1q}{2019/10/01}{\LaTeX\ \texttt{!<2019-10-01!>}$BHGBP1~3NG'(B}
% \changes{v1.1r}{2020/02/01}{\LaTeX\ \texttt{!<2020-02-02!>}$BHGBP1~3NG'(B}
+% \changes{v1.1s}{2020/03/14}{\LaTeX\ \texttt{!<2020-02-02!> PL5}$BHGBP1~3NG'(B}
+% \changes{v1.1t}{2020/03/25}{$B%P%J!<$N:F9=C[$r8zN(2=(B}
+% \changes{v1.1u}{2020/03/28}{latexrelease$BMxMQ;~$N7Y9p$rAa$a$?(B}
% \fi
%
% \iffalse
%<*driver>
% \fi
-\ProvidesFile{plvers.dtx}[2020/02/01 v1.1r pLaTeX Kernel (Version Info)]
+\ProvidesFile{plvers.dtx}[2020/03/28 v1.1u pLaTeX Kernel (Version Info)]
% \iffalse
\documentclass{jltxdoc}
\GetFileInfo{plvers.dtx}
@@ -113,9 +116,8 @@
% \fi
%
% \section{p\LaTeXe{}$B$N%P!<%8%g%s$N@_Dj(B}
-% $B$^$:!"$3$N%G%#%9%H%j%S%e!<%7%g%s$G$N(Bp\LaTeXe{}$B$NF|IU$H%P!<%8%g%sHV9f(B
-% $B$rDj5A$7$^$9!#(B
%
+% $B8=:_$N(Bp\LaTeXe{}$B$,%Y!<%9$H$7$?(B\LaTeXe{}$B$N%P!<%8%g%s$O!"2<5-$N$H$*$j$G$9!#(B
% \changes{v1.0}{1995/05/16}{p\LaTeXe\ $BMQ$K(B\file{ltvers.dtx}$B$r=$@5(B}
% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}$BHGMQ$K=$@5(B}
% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}$BHGMQ$K=$@5(B}
@@ -138,11 +140,7 @@
% \changes{v1.1o}{2018/12/01}{\LaTeX\ \texttt{!<2018-12-01!>}$BHGBP1~3NG'(B}
% \changes{v1.1q}{2019/10/01}{\LaTeX\ \texttt{!<2019-10-01!>}$BHGBP1~3NG'(B}
% \changes{v1.1r}{2020/02/01}{\LaTeX\ \texttt{!<2020-02-02!>}$BHGBP1~3NG'(B}
-%
-% $B$3$N%P!<%8%g%s$N(Bp\LaTeXe{}$B$O!"<!$N%P!<%8%g%s$N(B\LaTeX{}\footnote{%
-% \LaTeX\ authors: Johannes Braams, David Carlisle, Alan Jeffrey,
-% Leslie Lamport, Frank Mittelbach, Chris Rowley, Rainer Sch\"opf}$B$r(B
-% $B$b$H$K$7$F$$$^$9!#(B
+% \changes{v1.1s}{2020/03/14}{\LaTeX\ \texttt{!<2020-02-02!> PL5}$BHGBP1~3NG'(B}
% \begin{macrocode}
%<*2ekernel>
%\def\fmtname{LaTeX2e}
@@ -155,10 +153,10 @@
%</2ekernel|latexrelease|platexrelease>
% \end{macrocode}
%
-% $B$^$:!"<!$N%P!<%8%g%s$N(B\LaTeX{}$B$,MxMQ2DG=$J$3$H$r3NG'$7$^$9!#(B
-% \LaTeXe\ 2017-04-15$B$G!"%P!<%8%g%sHV9f!JF|IU!K$N%U%)!<%^%C%H$,(B
-% YYYY/MM/DD$B7A<0$+$i(BYYYY-MM-DD$B$KJQ99$5$l$F$$$^$9!#(B
-% ^^A \LaTeXe\ 2017/01/01$B0J9_$O(Be-\TeX{}$BI,?\$K$J$C$F$$$^$9!#(B
+% $B$^$?!"8=:_$N(Bp\LaTeXe{}$B$O:GDc$G$b(B\LaTeXe\ 2017-04-15$B0J9_(B
+% $B!J%P!<%8%g%sHV9f$9$J$o$AF|IU$,(B|YYYY/MM/DD|$B7A<0$+$i(B
+% |YYYY-MM-DD|$B7A<0$KJQ99$5$l$?HG!K$rA0Ds$H$7$^$9!#(B
+% $B$J$*!"(B\LaTeXe\ 2017/01/01$B0J9_$O(Be-\TeX{}$BI,?\$K$J$C$F$$$^$9!#(B
% \changes{v1.1i}{2018/03/31}{\LaTeXe\ 2017-04-15$B0J9_I,?\(B}
% \begin{macrocode}
%<*plcore>
@@ -183,7 +181,7 @@
% \begin{macro}{\pfmtname}
% \begin{macro}{\pfmtversion}
% \begin{macro}{\ppatch@level}
-% p\LaTeXe{}$B$N%U%)!<%^%C%H%U%!%$%kL>$H%P!<%8%g%s$G$9!#(B
+% p\LaTeXe{}$B$N%U%)!<%^%C%H%U%!%$%kL>$H%P!<%8%g%s$rDj5A$7$^$9!#(B
% \changes{v1.0x}{2016/06/19}{$B%Q%C%A%l%Y%k$r(B\file{plvers.dtx}$B$G@_Dj(B}
% \begin{macrocode}
%<*plcore>
@@ -192,44 +190,18 @@
%</plcore>
%<platexrelease>\edef\platexreleaseversion
%<*plcore|platexrelease>
- {2020-02-02}
+ {2020-04-12}
%</plcore|platexrelease>
%<*plcore>
-\def\ppatch@level{3}
+\def\ppatch@level{0}
%</plcore>
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
-% \subsection{\LaTeXe{}$B$N%P!<%8%g%s$N<hF@(B}
-% $B$3$N%U%!%$%k$ND>A0$G(B\LaTeXe{}$B$N(B\file{latex.ltx}$B$,FI$_9~$^$l$F$$$k$O$:(B
-% $B$J$N$G!"$=$N5/F0;~$N%P%J!<$rJ]B8$7$^$9!#(B
-%
-% \LaTeXe\ 2018-04-01 patch level 1$B$^$G$O!"(B|\everyjob|$B$,(B
-%\begin{verbatim}
-% \typeout{LaTeX2e version}\typeout{Babel version}
-%\end{verbatim}
-% $B$@$1$G$7$?$,!"(B\LaTeXe\ 2018-04-01 patch level 2$B$G?7$?$J%H!<%/%sNs$,(B
-% $BDI2C$5$l$^$7$?!#:#8e$b(B\LaTeXe{}$BB&$G(B|\everyjob|$B$K<B9T$rCY$i$;$k(B
-% $B%3!<%I$,DI2C$5$l$k2DG=@-$,$"$j$^$9$N$G!"$=$N%3!<%I$rCj=P$7$J$1$l$P(B
-% $B$J$j$^$;$s!#$=$3$G!":G=i$H:G8e$K6h@Z$j%H!<%/%s!J$=$l$>$l(B|\platexNILa|$B$H(B
-% |\platexNILb|$B!K$rIU$1$F$*$-$^$9!#(B
-% \changes{v1.1f}{2017/11/11}{\LaTeX{}$B$N%P%J!<$rJ]B8$9$k%3!<%I$r(B
-% \file{platex.ltx}$B$+$i(B\file{plcore.ltx}$B$X0\F0(B}
-% \changes{v1.1l}{2018/04/09}{$B%P%J!<$NJ]B8$7$+$?$r2~NI(B}
-% \begin{macrocode}
-%<*plcore>
-\edef\platexBANNER{\noexpand\platexNILa
- \the\everyjob % LaTeX banner and delayed codes
- \noexpand\platexNILb}
-%</plcore>
-% \end{macrocode}
-%
-% \subsection{$B%Q%C%A%U%!%$%k$N%m!<%I(B}
-%
% $B%3%_%e%K%F%#HG(B\pLaTeXe{}$B$G$O%Q%C%A%U%!%$%k$r;HMQ$7$J$$$N$G!"(B
-% $B%3%a%s%H%"%&%H$7$^$7$?!#(B
+% $B%Q%C%A%U%!%$%k$r%m!<%I$9$k%3!<%I$O:o=|$7$^$7$?!#(B
% \changes{v1.0v}{2016/05/07}{$B%Q%C%A%U%!%$%k$r%m!<%I$9$k$N$r$d$a$?!#(B}
%
% \iffalse
@@ -273,43 +245,54 @@
% \end{macrocode}
% \fi
%
-% \subsection{$B5/F0;~$K<B9T$9$k%3!<%I(B}
+% \section{$B5/F0;~$K<B9T$9$k%3!<%I(B}
%
-% \begin{macro}{\everyjob}
-% p\LaTeXe{}$B$,5/F0$5$l$?$H$-$K<B9T$5$l$k%3!<%I$G$9!#(B
-% \LaTeXe{}$B$N<B9T%3!<%I$r85$K!"(B\pLaTeXe{}$BMQ$ND4@0$r2C$($^$9!#(B
-% \changes{v1.1}{2016/09/14}{$B5/F0;~$N%P%J!<$r<hF@$9$k%3!<%I$r2~NI(B}
-% \changes{v1.1k}{2018/04/08}{$B%P%J!<D4@a$N%3!<%I$r:G8e(B(plfinal)$B$G$O$J$/(B
-% $B:G=i(B(plcore)$B$KAa$a$?(B}
-% \changes{v1.1l}{2018/04/09}{$B%P%J!<$N:F9=C[$N$7$+$?$r2~NI(B}
-% \changes{v1.1m}{2018/09/24}{$B%P%J!<$N:F9=C[$r4JN,2=(B}
+% \subsection{\LaTeXe{}$B5/F0;~$N<B9T%3!<%I$N<hF@(B}
+% $B$3$N%U%!%$%k$ND>A0$G(B\LaTeXe{}$B$N(B\file{latex.ltx}$B$,FI$_9~$^$l$F$$$k$O$:(B
+% $B$J$N$G!"$=$N5/F0;~$N<B9T%3!<%I!J(B|\everyjob|$B%H!<%/%s$NFbMF!K$rJ]B8$7$^$9!#(B
%
-% $B$^$:!"(B\LaTeXe{}$B$N%P!<%8%g%sI=<(!J(B|\typeout{LaTeX2e version}|$B!K$h$j(B
-% $BA0$K<B9T$5$l$k%3!<%I$,$"$l$P!"$=$l$rCj=P$7$F(B|\everyjob|$B$KF~$l$^$9!#(B
-% \LaTeXe\ 2018-04-01 patch level 2$B$N;~E@$G$O6u$G$9!#(B
+% \LaTeXe\ 2018-04-01 patch level~1$B$^$G$O!"(B|\everyjob|$B$,(B
+%\begin{verbatim}
+% \typeout{LaTeX2e version}\typeout{Babel version}
+%\end{verbatim}
+% $B$@$1$G$7$?$,!"(Bpatch level~2$B0J9_$G$O(B
+% $B$$$/$D$+$N%3!<%I$,(B|\everyjob|$B$GCY1d<B9T$5$l$k$h$&$K$J$C$F$$$^$9!#(B
+% $B$=$l$i$N%3!<%I$rCj=P$9$k$?$a!":G=i$H:G8e$K6h@Z$j%H!<%/%s(B
+% $B!J$=$l$>$l(B|\platexNILa|$B$H(B|\platexNILb|$B!K$rIU$1$F$*$-$^$9!#(B
+% \changes{v1.1f}{2017/11/11}{\LaTeX{}$B$N%P%J!<$rJ]B8$9$k%3!<%I$r(B
+% \file{platex.ltx}$B$+$i(B\file{plcore.ltx}$B$X0\F0(B}
+% \changes{v1.1l}{2018/04/09}{$B%P%J!<$NJ]B8$7$+$?$r2~NI(B}
% \begin{macrocode}
%<*plcore>
-\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#1}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
- \global\everyjob\expandafter{\the\toks0}%
-\endgroup
+\edef\platexBANNER{\noexpand\platexNILa
+ \the\everyjob % LaTeX banner and delayed codes
+ \noexpand\platexNILb}
% \end{macrocode}
%
-% $B<!$K!"(B\LaTeXe{}$B$N%P!<%8%g%s$rI=<($9$k%3!<%I$rCj=P$7!"(B
-% \pLaTeXe{}$B$N%P!<%8%g%s$H$^$H$a$FI=<($9$k$h$&$K@07A$7$^$9!#(B
+% \subsection{\pLaTeXe{}$B5/F0;~$K<B9T$9$k%3!<%I$N9=C[(B}
+%
+% \begin{macro}{\everyjob}
+% \LaTeXe{}$B5/F0;~$N<B9T%3!<%I$r85$K!"(B\pLaTeXe{}$BMQ$ND4@0$r2C$($^$9!#(B
% \changes{v1.0v}{2016/05/07}{$B5/F0;~$NJ8;zNs$r:G?7$N(B\LaTeX{}$B$K9g$o$;$?!#(B}
% \changes{v1.0w}{2016/05/12}{$B5/F0;~$NJ8;zNs$KF~$l$k(B\LaTeX{}$B$N%P!<%8%g%s$r(B
% $B85$N(B\LaTeX{}$B$N%P%J!<$+$i0z$-7Q$0$h$&$K2~NI(B}
+% \changes{v1.0w}{2016/05/12}{$B5/F0;~$NJ8;zNs$KF~$l$k(BBabel$B$N%P!<%8%g%s$r(B
+% $B85$N(B\LaTeX{}$B$N%P%J!<$+$i<hF@$9$k%3!<%I$r(B\file{platex.ini}$B$+$i<h$jF~$l$?(B}
+% \changes{v1.1}{2016/09/14}{$B5/F0;~$N%P%J!<$r<hF@$9$k%3!<%I$r2~NI(B}
% \changes{v1.1d}{2017/09/24}{$B%Q%C%A%l%Y%k$,Ii$N?t$N>l9g$r(Bpre-release$B07$$$X(B}
% \changes{v1.1g}{2017/12/04}{\pLaTeX{}$B$N%P%J!<$NDj5A;~$K(B
% \cs{pfmtname}, \cs{pfmtversion}, \cs{ppatch@level}$B$rE83+$7$J$$$h$&$K(B}
+% \changes{v1.1k}{2018/04/08}{$B%P%J!<D4@a$N%3!<%I$r:G8e(B(plfinal)$B$G$O$J$/(B
+% $B:G=i(B(plcore)$B$KAa$a$?(B}
+% \changes{v1.1l}{2018/04/09}{$B%P%J!<$N:F9=C[$N$7$+$?$r2~NI(B}
+% \changes{v1.1m}{2018/09/24}{$B%P%J!<$N:F9=C[$r4JN,2=(B}
+% \changes{v1.1t}{2020/03/25}{$B%P%J!<$N:F9=C[$r8zN(2=(B}
% \begin{macrocode}
-%\ifx\ppatch@level\@undefined % fallback if undefined in pLaTeX
-% \def\ppatch@level{0}\fi
\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#2}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
+% \end{macrocode}
+%
+% \pLaTeXe{}$B$N%P!<%8%g%sI=<($r:n$j$^$9!#(B
+% \begin{macrocode}
\ifnum\ppatch@level=0
\toks2={\pfmtname\space<\pfmtversion>\space}%
\else\ifnum\ppatch@level>0
@@ -317,24 +300,28 @@
\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
% \end{macrocode}
%
-% \LaTeXe{}$B$N%P!<%8%g%sI=<($N8e$K;D$C$F$$$k%3!<%I$r!"(B
-% $B$=$N$^$^(B|\everyjob|$B$KDI2C$7$^$9!#(B
+% |\everyjob|$B$NFbMF$r%Q!<%9$7$F(B
+% \begin{itemize}
+% \item \LaTeXe{}$B$N%P!<%8%g%sI=<($NCf?H!J(B|\typeout{}|$B$N0z?t!K$r(B |#2|
+% \item $B%P!<%8%g%sI=<($NA0$K<B9T$5$l$k%3!<%I$,$"$l$P(B |#1|
+% \item $B%P!<%8%g%sI=<($N8e$K;D$C$F$$$k%3!<%I$,$"$l$P(B |#3|
+% \end{itemize}
+% $B$KF~$l$^$9!#(B2020$BG/;~E@$G$O(B |#1| $B$O6u!"(B|#3| $B$O2$J8(Binputenc$B$N(BUTF-8$B2=$G(B
+% $BCY1d$5$l$?%3!<%I$K3:Ev$7$^$9!#(B
% ^^A Babel v3.20$B$^$G$O$3$NCf$K(B|\typeout{Babel version}|$B$b4^$^$l$F(B
% ^^A $B$$$^$7$?$,!"(BBabel v3.21$B$+$i$O$3$N%P%J!<I=<($OL5$/$J$C$?$h$&$G$9!#(B
-% \changes{v1.0w}{2016/05/12}{$B5/F0;~$NJ8;zNs$KF~$l$k(BBabel$B$N%P!<%8%g%s$r(B
-% $B85$N(B\LaTeX{}$B$N%P%J!<$+$i<hF@$9$k%3!<%I$r(B\file{platex.ini}$B$+$i<h$jF~$l$?(B}
+% $B$=$7$F!"(B\LaTeXe{}$B$N%P!<%8%g%s$H(B\pLaTeXe{}$B$N%P!<%8%g%s$r(B
+% $B$^$H$a$FI=<($9$k$h$&$K@07A$7$^$9!#(B
+% \begin{macrocode}
+ \edef\platexNILa#1\typeout#2#3\platexNILb{%
+ #1\noexpand\typeout{\the\toks2 (based on #2)}#3}
+ \global\everyjob\expandafter\expandafter\expandafter{\platexBANNER}%
+% \end{macrocode}
+%
+% $BITMW$K$J$C$?%^%/%mDj5A$O:o=|$7$F$*$-$^$9!#(B
% \begin{macrocode}
-\begingroup
- \def\platexNILa#1\typeout#2#3\platexNILb{#3}
- \toks0=\expandafter\expandafter\expandafter{\platexBANNER}
- \edef\platexBANNER{\the\everyjob \the\toks0}
- \global\everyjob\expandafter{\platexBANNER}%
\endgroup
\let\platexBANNER=\@undefined
%</plcore>
@@ -362,6 +349,8 @@
%
% $B:G8e$K!"(Blatexrelease$B%Q%C%1!<%8$X$NBP1~$G$9!#(B
% \begin{macro}{\plIncludeInRelease}
+% platexrelease$B%Q%C%1!<%8$G$O(B
+% |\plIncludeInRelease|...|\plEndIncludeInRelease|$B$N%V%m%C%/$r;H$$$^$9!#(B
% \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}$B$H(B
% \cs{plEndIncludeInRelease}$B$r?7@_!#(B}
% \changes{v1.1e}{2017/11/09}{\file{latexrelease}$B$H(B
@@ -447,21 +436,42 @@
% \end{macro}
%
% \LaTeXe{}$B$,Ds6!$9$k(Blatexrelease$B%Q%C%1!<%8$,FI$_9~$^$l$F$$$F!"(B
-% $B$+$D(Bp\LaTeXe{}$B$,Ds6!$9$k(Bplatexrelease$B%Q%C%1!<%8$,FI$_9~$^$l$F$$$J$$(B
-% $B>l9g$O!"7Y9p$r=P$7$^$9!#(B
+% $B$+$D(B\pLaTeXe{}$B$,Ds6!$9$k(Bplatexrelease$B%Q%C%1!<%8$,FI$_9~$^$l$F$$$J$$(B
+% $B>l9g$O!"4,$-La$75!G=$K$h$C$F(B\pLaTeXe{}$B$N%3%^%s%I$,(B\LaTeXe{}$B$N%3%^%s%I$G(B
+% $B>e=q$-$5$l!"F0:n$,2u$l$F$7$^$$$^$9$N$G!"7Y9p$r=P$7$^$9!#(B
% \changes{v1.0s}{2016/02/01}{latexrelease$BMxMQ;~$K7Y9p$r=P$9$h$&$K$7$?(B}
+%
+% $B0JA0$O(B|\AtBeginDocument|$B$r;H$C$F(B|\@begindocumenthook|$B$NKvHx$K(B
+% $B7Y9pJ8$rF~$l$F$$$^$7$?$,!"(B\LaTeXe~2020-02-02$B0J9_$KIUB0$N(B
+% latexrelease$B%Q%C%1!<%8$G4,$-La$9$H%U%C%/$N<B9T$h$jAa$$CJ3,(B
+% $B!J6qBNE*$K$O(B|\process@table|$BFb$N(B|\kanjiprocess@table|$B<B9TCf!K$G(B
+% $B!V(B|\series@maybe@drop@one@m|$B$,L$Dj5A!W$H$$$&%(%i!<$,=P$F$7$^$&$N$G!"(B
+% |\process@table|$B$N@hF,$K7Y9pJ8$rF~$l$^$9!#(B
+% $BK|$,0l(B|\process@table|$B$b4,$-La$7BP>]$H$5$l$F$7$^$C$?>l9g$N$?$a!"(B
+% |\@begindocumenthook|$B$N@hF,$K$bF~$l$F$*$-$^$9!#(B
+% ^^A $B$3$N>l9g$O(B|\process@table|$B$,(B|\romanprocess@table|$BAjEv$X$H(B
+% ^^A $B>e=q$-$5$l$F$$$k$O$:$G$"$j!"(B|\kanjiprocess@table|$B$O(B
+% ^^A $B<B9T$5$l$J$$$N$G%(%i!<$O=P$J$$!#(B
+% \changes{v1.1u}{2020/03/28}{latexrelease$BMxMQ;~$N7Y9p$rAa$a$?(B}
% \begin{macrocode}
%<*plfinal>
-\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
}
%</plfinal>
% \end{macrocode}
diff --git a/Master/texmf-dist/tex/platex/base/exppl2e.sty b/Master/texmf-dist/tex/platex/base/exppl2e.sty
index b28fa53dbbe..b5fc0cc2f36 100644
--- a/Master/texmf-dist/tex/platex/base/exppl2e.sty
+++ b/Master/texmf-dist/tex/platex/base/exppl2e.sty
@@ -34,7 +34,7 @@
% case 1: This file must be a normal package
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{exppl2e}
- [2020/02/09 v1.1f Experimental pLaTeX2e features]
+ [2020/02/10 v1.1g Experimental pLaTeX2e features]
\PackageWarningNoLine{exppl2e}{%
This is the unstable, experimental part of pLaTeX2e.\MessageBreak
This package may contain:\MessageBreak
@@ -332,107 +332,13 @@
%
% \section{\cs{verb}$B@hF,$N9g;zM^@)$H(B\cs{xkanjiskip}}
%
-% \begin{macro}{\do@noligs}
-% |>|$B$J$I$N0lIt$NJ8;z$K$D$$$F!"(B|\xspcode`\>=3|$B$H$7$?$H$-$K(B
-% |\texttt{>}|$B$G$OA08e$K(B|\xkanjiskip|$BM3Mh$N%"%-$,F~$k$N$K!"(B
-% |\verb+>+|$B$G$O8e$m$K$7$+%"%-$,F~$i$J$$$H$$$&8=>]$KBP=h$7$^$9!#(B
-%
-% $B85$NDj5A$O(B\file{ltmiscen.dtx}$B$r;2>H$7$F$/$@$5$$!#(B
-% p\LaTeX{}$B$G$O!"(B|\kern\z@|$B$r(B|\vadjust{}|$B$KCV$-49$($k$3$H$G(B
-% $B!V9g;z=hM}$rM^;_!W$+$D!VOB2$J84V%9%Z!<%9$NA^F~=hM}$OF)2a!W$r<B8=$7$^$9!#(B
-% (Issue \#87)
-% \begin{macrocode}
-\def\do@noligs#1{%
- \catcode`#1\active
- \begingroup
- \lccode`\~`#1\relax
- \lowercase{\endgroup\def~{\leavevmode\vadjust{}\char`#1}}}
-% \end{macrocode}
-% \end{macro}
+% 2020/04/12$B$KF3F~:Q$_!#(B
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \section{NFSS$B$N(Bsize function$B$NF|K\8l2=(B}
%
-% \begin{macro}{\inlist@}
-% |\do@subst@correction|$B$NF|K\8l2=$KI,MW$J$N$G!"(B
-% $BHf3S$9$k:]$K0z?t!&%j%9%H$H$b(B\cs{detokenize}$B$K$h$C$FJ8;zNs2=$9$k$h$&$K$7$^$7$?!#(B
-% \changes{v1.6x}{2020/02/05}{$B0z?t!&%j%9%H$H$b(B\cs{detokenize}$B$K$h$C$FJ8;zNs2=(B}
-% \begin{macrocode}
-\def\inlist@#1#2{%
- \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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\do@subst@correction}
-% \begin{macro}{\pltx@do@subst@correction@al}
-% \begin{macro}{\pltx@do@subst@correction@yoko}
-% \begin{macro}{\pltx@do@subst@correction@tate}
-% |\font|$B$O2$J8%U%)%s%H$rJV$9$?$a!"(B\LaTeX{}$B$N85$N(B|\do@subst@correction|$B$O(B
-% $BOBJ8%U%)%s%H$KBP$7$F;H$($^$;$s$N$G!"OBJ8$KBP1~$5$;$^$9!#(B
-% \changes{v1.6x}{2020/02/05}{\cs{do@subst@correction}$B$NF|K\8l2=(B}
-%
-% $B%*%j%8%J%k$N(B\LaTeX{}$B$NDj5A$O!"2$J8MQ$H$7$F;H$$$^$9!#(B
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% $BOBJ82#AHMQ$HOBJ8=DAHMQ$NDj5A$G$O!"$=$l$>$l(B|\jfont|$B$H(B|\tfont|$B$r;H$$$^$9!#(B
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% $B$=$7$F!"%(%s%3!<%G%#%s%0$K1~$8$F(B3$B$D$NL?Na$r;H$$J,$1$^$9!#(B
-% \begin{macrocode}
-\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
-}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
+% 2020/04/12$B$KF3F~:Q$_!#(B
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/Master/texmf-dist/tex/platex/base/platexrelease.sty b/Master/texmf-dist/tex/platex/base/platexrelease.sty
index 8710e500eb0..4199b306e55 100644
--- a/Master/texmf-dist/tex/platex/base/platexrelease.sty
+++ b/Master/texmf-dist/tex/platex/base/platexrelease.sty
@@ -18,7 +18,7 @@
\edef\p@known@latexreleaseversion
{2020-02-02}
\edef\platexreleaseversion
- {2020-02-02}
+ {2020-04-12}
\newif\if@plincludeinrelease
\@plincludeinreleasefalse
\def\plIncludeInRelease#1{%
@@ -69,8 +69,16 @@
%% File: platexrelease.dtx
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{platexrelease}
- [2018/05/22 v1.0m latexrelease support for pLaTeX Kernel
+ [2020/03/28 v1.0n latexrelease support for pLaTeX Kernel
(including releases up to \platexreleaseversion)]
+\ifx\p@warn@latexrelease\@undefined\else
+\let\p@warn@latexrelease\relax
+\fi
+\ifx\latexreleaseversion\@undefined\else
+ \PackageWarningNoLine{platexrelease}{%
+ Package `latexrelease' is already loaded;\MessageBreak
+ load `platexrelease' earlier}
+\fi
\RequirePackageWithOptions{latexrelease}
\ifnum\expandafter\@parse@version\latexreleaseversion//00\@nil
>\expandafter\@parse@version\p@known@latexreleaseversion//00\@nil
@@ -134,6 +142,12 @@ of this package available from CTAN}
some critical bugs. We advise you to\MessageBreak
select another format date}
\plIncludeInRelease{2017/10/28}{\PackageWarning}{pLaTeX Info}%
+ % * <2020-04-12>
+ % * <2020-02-02>+3
+ % * <2020-02-02>+2
+ % * <2020-02-02>+1
+ % * <2020-02-02>
+ % * <2019-10-01>+1
% * <2019-10-01>
% * <2019-04-06>
% * <2018-12-01>
@@ -189,6 +203,26 @@ of this package available from CTAN}
% * <2006/11/10>
\plEndIncludeInRelease
%% File: plfonts.dtx
+\plIncludeInRelease{2020/04/12}{\inlist@}
+ {Detokenize}%
+\def\inlist@#1#2{%
+ \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}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\inlist@}
+ {ASCII Corporation original}%
+\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@@}
+\plEndIncludeInRelease
\plIncludeInRelease{2017/04/08}{\ystrutbox}
{Add \ystrutbox}%
\newbox\ystrutbox
@@ -335,6 +369,87 @@ of this package available from CTAN}
}
\let\DeclareFontEncoding@saved\@undefined
\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\ensure@KanjiEncodingPair}
+ {Check \KanjiEncodingPair}%
+\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}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\ensure@KanjiEncodingPair}
+ {ASCII Corporation original}%
+\let\ensure@KanjiEncodingPair\@undefined
+\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\DeclareKanjiSubstitution}
+ {Use \default@k@family etc.}%
+\def\DeclareKanjiSubstitution#1#2#3#4{%
+ \expandafter\ifx\csname T@#1\endcsname\relax
+ \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha
+ \else
+ \begingroup
+ \def\reserved@a{#1}%
+ \toks@{}%
+ \def\cdp@elt##1##2##3##4{%
+ \def\reserved@b{##1}%
+ \ifx\reserved@a\reserved@b
+ \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}%
+ \else
+ \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
+ \fi}%
+ \cdp@list
+ \xdef\cdp@list{\the\toks@}%
+ \endgroup
+ \global\@namedef{D@#1}{\def\default@k@family{#2}% !!!
+ \def\default@k@series{#3}% !!!
+ \def\default@k@shape{#4}}% !!!
+ \fi}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\DeclareKanjiSubstitution}
+ {ASCII Corporation original}%
+\def\DeclareKanjiSubstitution#1#2#3#4{%
+ \expandafter\ifx\csname T@#1\endcsname\relax
+ \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha
+ \else
+ \begingroup
+ \def\reserved@a{#1}%
+ \toks@{}%
+ \def\cdp@elt##1##2##3##4{%
+ \def\reserved@b{##1}%
+ \ifx\reserved@a\reserved@b
+ \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}%
+ \else
+ \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}%
+ \fi}%
+ \cdp@list
+ \xdef\cdp@list{\the\toks@}%
+ \endgroup
+ \global\@namedef{D@#1}{\def\default@family{#2}%
+ \def\default@series{#3}%
+ \def\default@shape{#4}}%
+ \fi}
+\plEndIncludeInRelease
+% !!! Special case BEGIN
+% required for any emulation date
+% copied from (u)pldefs.ltx
+\def\pltx@tempa{JY1}\ifx\pltx@tempa\k@encoding
+\DeclareKanjiSubstitution{JY1}{mc}{m}{n}
+\DeclareKanjiSubstitution{JT1}{mc}{m}{n}
+\else\def\pltx@tempa{JY2}\ifx\pltx@tempa\k@encoding
+\DeclareKanjiSubstitution{JY2}{mc}{m}{n}
+\DeclareKanjiSubstitution{JT2}{mc}{m}{n}
+\fi\fi
+% emulate execution of \enc@update in \selectfont
+% before (u)pldefs.ltx is loaded
+\csname D@\f@encoding\endcsname
+% emulate execution of \kenc@update in \selectfont
+% inside (u)pldefs.ltx
+\csname D@\k@encoding\endcsname
+% !!! Special case END
\plIncludeInRelease{2019/10/01}{\DeclareErrorKanjiFont}
{No side effects please}%
\def\DeclareErrorKanjiFont#1#2#3#4#5{%
@@ -363,6 +478,210 @@ of this package available from CTAN}
\gdef\f@size{#5}%
\gdef\f@baselineskip{#5pt}}
\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\wrong@fontshape}
+ {Japanese \wrong@fontshape}%
+\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
+}
+\plEndIncludeInRelease
+\plIncludeInRelease{2015/01/01}{\wrong@fontshape}
+ {LaTeX2e original (2015)}%
+\def\wrong@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}
+\let\wrong@al@fontshape\@undefined
+\let\wrong@ja@fontshape\@undefined
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\wrong@fontshape}
+ {LaTeX2e original (old)}%
+\def\wrong@fontshape{%
+ \csname D@\f@encoding\endcsname
+ \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
+ \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}
+\let\wrong@al@fontshape\@undefined
+\let\wrong@ja@fontshape\@undefined
+\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\do@subst@correction}
+ {Japanese font substitution}%
+\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
+}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\do@subst@correction}
+ {LaTeX2e original}%
+\def\do@subst@correction{%
+ \xdef\subst@correction{%
+ \font@name
+ \global\expandafter\font
+ \csname \curr@fontshape/\f@size\endcsname
+ \noexpand\fontname\font
+ \relax}%
+ \aftergroup\subst@correction
+}
+\let\pltx@do@subst@correction@al\@undefined
+\let\pltx@do@subst@correction@yoko\@undefined
+\let\pltx@do@subst@correction@tate\@undefined
+\plEndIncludeInRelease
\plIncludeInRelease{2019/10/01}{\userelfont}
{Make robust}%
\DeclareRobustCommand\userelfont{\@knjcmdtrue}
@@ -372,6 +691,120 @@ of this package available from CTAN}
\def\userelfont{\@knjcmdtrue}
\expandafter \let \csname userelfont \endcsname \@undefined
\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\selectfont}
+ {Check \KanjiEncodingPair}%
+\DeclareRobustCommand\selectfont{%
+ \let\tmp@error@fontshape\error@fontshape
+ \let\error@fontshape\error@kfontshape
+ \edef\tmp@item{{\k@encoding}}%
+ \expandafter\expandafter\expandafter
+ \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
+ \fi
+ \fi
+ \let\font\tfont
+ \let\k@encoding\ct@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \let\font\jfont
+ \let\k@encoding\cy@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \expandafter\def\expandafter\k@encoding\tmp@item
+ \kenc@update
+ \let\error@fontshape\tmp@error@fontshape
+ \if@knjcmd \@knjcmdfalse
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname
+ \fi
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname
+ \fi
+ \fi
+ \let\font\afont
+ \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \enc@update
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip
+ \fi
+ \size@update}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\selectfont}
+ {ASCII Corporation original}%
+\DeclareRobustCommand\selectfont{%
+ \let\tmp@error@fontshape\error@fontshape
+ \let\error@fontshape\error@kfontshape
+ \edef\tmp@item{{\k@encoding}}%
+ \expandafter\expandafter\expandafter
+ \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}%
+ \ifin@
+ \let\cy@encoding\k@encoding
+ \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
+ \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}%
+ \else
+ \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
+ \fi
+ \fi
+ \let\font\tfont
+ \let\k@encoding\ct@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \let\font\jfont
+ \let\k@encoding\cy@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \expandafter\def\expandafter\k@encoding\tmp@item
+ \kenc@update
+ \let\error@fontshape\tmp@error@fontshape
+ \if@knjcmd \@knjcmdfalse
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname
+ \fi
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname
+ \fi
+ \fi
+ \let\font\afont
+ \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \enc@update
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip
+ \fi
+ \size@update}
+\plEndIncludeInRelease
\plIncludeInRelease{2017/04/08}{\set@fontsize}
{Construct \ystrutbox}%
\def\set@fontsize#1#2#3{%
@@ -488,22 +921,38 @@ of this package available from CTAN}
\expandafter \let \csname adjustbaseline \endcsname \@undefined
\plEndIncludeInRelease
\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.}
+ \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}}
@@ -555,18 +1004,32 @@ of this package available from CTAN}
\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
+\newif\if@shape@roman@kanji
+\plIncludeInRelease{2020/04/12}{\fontshape}
+ {No \k@shape update if unavailable}%
+\ifx\fontshapeforce\@undefined % old
+\DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}}
+\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#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]{%
+ \@shape@roman@kanjitrue
+ \kanjishape{#1}\romanshape{#1}%
+ \@shape@roman@kanjifalse}
\fi
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\fontshape}
+ {ASCII Corporation / TeXJP original}%
\ifx\fontshapeforce\@undefined % old
\DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}}
\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}}
@@ -576,6 +1039,23 @@ of this package available from CTAN}
\DeclareRobustCommand\kanjishape[1]{\merge@kanji@shape{#1}}
\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}}
\fi
+\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\fontshapeforce}
+ {No \k@shape update if unavailable}%
+\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]{%
+ \set@safe@kanji@shape{#1}{}%
+ \edef\f@shape{#1}%
+}
+\fi
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\fontshapeforce}
+ {ASCII Corporation / TeXJP original}%
\ifx\fontshapeforce\@undefined % old
\let\romanshapeforce\@undefined
\let\kanjishapeforce\@undefined
@@ -584,6 +1064,54 @@ of this package available from CTAN}
\DeclareRobustCommand\kanjishapeforce[1]{\edef\k@shape{#1}}
\DeclareRobustCommand\fontshapeforce[1]{\kanjishapeforce{#1}\romanshapeforce{#1}}
\fi
+\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\merge@kanji@shape@}
+ {No \k@shape update if unavailable}%
+\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\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
+ \edef\reserved@a{\k@encoding /\k@family /\k@series/#1}%
+ \ifcsname \reserved@a\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
+ \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
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\merge@kanji@shape@}
+ {ASCII Corporation / TeXJP original}%
\ifx\fontseriesforce\@undefined % old
\let\merge@kanji@shape\@undefined
\let\merge@kanji@shape@\@undefined
@@ -617,6 +1145,28 @@ of this package available from CTAN}
\fi
}
\fi
+\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\set@safe@kanji@shape}
+ {No \k@shape update if unavailable}%
+\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}%
+}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\set@safe@kanji@shape}
+ {ASCII Corporation original}%
+\let\set@safe@kanji@shape\@undefined
+\let\@kanji@shape@nochange@info\@undefined
+\plEndIncludeInRelease
\plIncludeInRelease{2020/02/02}{\usefont}
{Don't call \fontseries or \fontshape}%
\DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}%
@@ -672,6 +1222,37 @@ of this package available from CTAN}
\expandafter \let \csname useroman \endcsname \@undefined
\expandafter \let \csname usefont \endcsname \@undefined
\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\normalfont}
+ {Use \@defaultfamilyhook}%
+\ifx\@defaultfamilyhook\@undefined % old
+\DeclareRobustCommand\normalfont{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
+ \romanencoding{\encodingdefault}%
+ \edef\f@family{\familydefault}%
+ \edef\f@series{\seriesdefault}%
+ \edef\f@shape{\shapedefault}%
+ \selectfont}
+\else % 2020-02-02 PL2
+\DeclareRobustCommand\normalfont{%
+ \fontencoding\encodingdefault
+ \edef\f@family{\familydefault}%
+ \edef\f@series{\seriesdefault}%
+ \edef\f@shape{\shapedefault}%
+ \@defaultfamilyhook
+ \selectfont}
+\g@addto@macro\@defaultfamilyhook{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
+}
+\fi
+\adjustbaseline
+\let\reset@font\normalfont
+\plEndIncludeInRelease
\plIncludeInRelease{2020/02/02}{\normalfont}
{Don't call \fontseries or \fontshape}%
\DeclareRobustCommand\normalfont{%
@@ -720,39 +1301,60 @@ of this package available from CTAN}
\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
@@ -760,9 +1362,9 @@ of this package available from CTAN}
\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}%
@@ -777,15 +1379,15 @@ of this package available from CTAN}
\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}%
@@ -801,10 +1403,10 @@ of this package available from CTAN}
\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{%
@@ -817,9 +1419,14 @@ of this package available from CTAN}
\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
@@ -850,6 +1457,144 @@ of this package available from CTAN}
{\not@math@alphabet\gtfamily\mathgt
\prepare@family@series@update@kanji{gt}\gtdefault\selectfont}
\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
+ \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
+\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
\plIncludeInRelease{2020/02/02}{\DeclareEmphSequence}
{Nested emph}%
\ifx\DeclareEmphSequence\@undefined % old
@@ -2097,6 +2842,22 @@ of this package available from CTAN}
\@ifstar\@sverb\@verb}
\fi
\plEndIncludeInRelease
+\plIncludeInRelease{2020/04/12}{\do@noligs}
+ {Allow \xkanjiskip while avoiding ligature}%
+\def\do@noligs#1{%
+ \catcode`#1\active
+ \begingroup
+ \lccode`\~`#1\relax
+ \lowercase{\endgroup\def~{\leavevmode\vadjust{}\char`#1}}}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\do@noligs}
+ {LaTeX2e original}%
+\def\do@noligs#1{%
+ \catcode`#1\active
+ \begingroup
+ \lccode`\~`#1\relax
+ \lowercase{\endgroup\def~{\leavevmode\kern\z@\char`#1}}}
+\plEndIncludeInRelease
\plIncludeInRelease{2017/10/28}{\@startline}
{Inhibit JFM glue at the beginning}%
\gdef\@startline{%
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
%%
diff --git a/Master/texmf-dist/tex/platex/base/ptrace.sty b/Master/texmf-dist/tex/platex/base/ptrace.sty
index 45d5ecd800d..dda02ecb82a 100644
--- a/Master/texmf-dist/tex/platex/base/ptrace.sty
+++ b/Master/texmf-dist/tex/platex/base/ptrace.sty
@@ -15,8 +15,10 @@
%% File: plfonts.dtx
\NeedsTeXFormat{pLaTeX2e}
\ProvidesPackage{ptrace}
- [2019/09/16 v1.6t Standard pLaTeX package (font tracing)]
+ [2020/03/26 v1.7e Standard pLaTeX package (font tracing)]
\RequirePackageWithOptions{tracefnt}
+\plIncludeInRelease{2020/04/12}{\selectfont}
+ {Check \KanjiEncodingPair}%
\DeclareRobustCommand\selectfont{%
\let\tmp@error@fontshape\error@fontshape
\let\error@fontshape\error@kfontshape
@@ -25,12 +27,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
@@ -72,6 +76,65 @@
\set@fontsize\baselinestretch\f@size\f@baselineskip
\fi
\size@update}
+\plEndIncludeInRelease
+\plIncludeInRelease{0000/00/00}{\selectfont}
+ {ASCII Corporation original}%
+\DeclareRobustCommand\selectfont{%
+ \let\tmp@error@fontshape\error@fontshape
+ \let\error@fontshape\error@kfontshape
+ \edef\tmp@item{{\k@encoding}}%
+ \expandafter\expandafter\expandafter
+ \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}%
+ \ifin@
+ \let\cy@encoding\k@encoding
+ \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
+ \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}%
+ \else
+ \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha
+ \fi
+ \fi
+ \let\font\tfont
+ \let\k@encoding\ct@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \let\font\jfont
+ \let\k@encoding\cy@encoding
+ \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \expandafter\def\expandafter\k@encoding\tmp@item
+ \kenc@update
+ \let\error@fontshape\tmp@error@fontshape
+ \if@knjcmd \@knjcmdfalse
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax
+ \expandafter\ifx
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/all\endcsname
+ \fi
+ \else
+ \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname
+ \fi
+ \fi
+ \let\font\afont
+ \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}%
+ \pickup@font
+ \font@name
+ \ifnum \tracingfonts>\tw@
+ \@font@info{Roman:Switching to \font@name}\fi
+ \enc@update
+ \ifx\f@linespread\baselinestretch \else
+ \set@fontsize\baselinestretch\f@size\f@baselineskip
+ \fi
+ \size@update}
+\plEndIncludeInRelease
\plIncludeInRelease{2017/04/08}{\set@fontsize}
{Construct \ystrutbox}%
\def\set@fontsize#1#2#3{%