summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/platex/base/plcore.ltx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/platex/base/plcore.ltx')
-rw-r--r--Master/texmf-dist/tex/platex/base/plcore.ltx212
1 files changed, 161 insertions, 51 deletions
diff --git a/Master/texmf-dist/tex/platex/base/plcore.ltx b/Master/texmf-dist/tex/platex/base/plcore.ltx
index 6c9eb8ef549..97f42e307b2 100644
--- a/Master/texmf-dist/tex/platex/base/plcore.ltx
+++ b/Master/texmf-dist/tex/platex/base/plcore.ltx
@@ -5,12 +5,13 @@
%% The original source files were:
%%
%% plvers.dtx (with options: `plcore')
+%% plexpl3.dtx (with options: `plcore')
%% plfonts.dtx (with options: `plcore')
%% plcore.dtx (with options: `plcore')
%% plvers.dtx (with options: `plfinal')
%%
%% Copyright (c) 2010 ASCII MEDIA WORKS
-%% Copyright (c) 2016-2018 Japanese TeX Development Community
+%% Copyright (c) 2016-2020 Japanese TeX Development Community
%%
%% This file is part of the pLaTeX2e system (community edition).
%% -------------------------------------------------------------
@@ -33,7 +34,7 @@
\fi
\def\pfmtname{pLaTeX2e}
\def\pfmtversion
- {2020-04-12}
+ {2020-10-01}
\def\ppatch@level{0}
\edef\platexBANNER{\noexpand\platexNILa
\the\everyjob % LaTeX banner and delayed codes
@@ -98,6 +99,12 @@
\PackageError{platexrelease}
{skipped \string\plIncludeInRelease\space for tag \string#2}{}%
\fi}
+%% File: plexpl3.dtx
+\ifdefined\ExplSyntaxOn %--- expl3 available BEGIN
+\ExplSyntaxOn
+\input plexpl3.ltx
+\ExplSyntaxOff
+\fi %--- expl3 available END
%% File: plfonts.dtx
\let\k@encoding\@empty
\let\ck@encoding\@empty
@@ -980,6 +987,7 @@
\ifin@ \usekanji{#1}{#2}{#3}{#4}%
\else\useroman{#1}{#2}{#3}{#4}%
\fi}
+\ifx\AddToHook\@undefined % --- for 2020-02-02 or older BEGIN
\ifx\@defaultfamilyhook\@undefined % old
\DeclareRobustCommand\normalfont{%
\kanjiencoding{\kanjiencodingdefault}%
@@ -998,7 +1006,15 @@
\edef\k@series{\kanjiseriesdefault}%
\edef\k@shape{\kanjishapedefault}%
}
-\fi
+\fi % done
+\else % --- for 2020-02-02 or older END & for 2020-10-01 BEGIN
+\AddToHook{normalfont}{%
+ \kanjiencoding{\kanjiencodingdefault}%
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
+}
+\fi % --- for 2020-10-01 END
\adjustbaseline
\let\reset@font\normalfont
\ifx\bfseries@rm\@undefined % old
@@ -1012,68 +1028,80 @@
\edef\mdseries@mc{\mddefault}% m
\edef\mdseries@gt{\mddefault}% m
\fi
-\ifx\expand@font@defaults\@undefined\else % 2020-02-02
+\ifx\expand@font@defaults\@undefined\else %<*2020-02-02|2020-10-01>
+\ifx\AddToHook\@undefined % --- for 2020-02-02 BEGIN
\g@addto@macro\expand@font@defaults{%
\edef\mcdef@ult{\mcdefault}%
\edef\gtdef@ult{\gtdefault}%
\edef\kanjidef@ult{\kanjifamilydefault}%
}
-\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
+\else % --- for 2020-02-02 END & for 2020-10-01 BEGIN
+\AddToHook{expand@font@defaults}{%
+ \edef\mcdef@ult{\mcdefault}%
+ \edef\gtdef@ult{\gtdefault}%
+ %\edef\kanjidef@ult{\kanjifamilydefault}% !! sync with 2020/04/13 v3.1n
+}
+\fi % --- for 2020-10-01 END
+\fi %</2020-02-02|2020-10-01>
+\ifx\bfseries@rm\@undefined\else %<*2020-02-02|2020-10-01>
+\ifx\AddToHook\@undefined % --- for 2020-02-02 BEGIN
+\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
% 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
- }%
-}
-\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
+\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
% 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{%
+\else % --- for 2020-02-02 END & for 2020-10-01 BEGIN
+\AddToHook{bfseries/defaults}{%
+ \let\bfseries@mc\bfdef@ult
+ \let\bfseries@gt\bfdef@ult
+}
+\AddToHook{bfseries}{%
+ % 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
+}
+\AddToHook{mdseries/defaults}{%
\let\mdseries@mc\mddef@ult
\let\mdseries@gt\mddef@ult
}
-\fi
-\expandafter\expandafter\expandafter
- \pltx@patch@mdseries\csname mdseries \endcsname
-\fi
+\AddToHook{mdseries}{%
+ % 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
+}
+\fi % --- for 2020-10-01 END
+\fi %</2020-02-02|2020-10-01>
\ifx\prepare@family@series@update\@undefined % old
\let\prepare@family@series@update@kanji\@undefined
\let\@meta@family@list@kanji\@undefined
@@ -1153,13 +1181,32 @@
\fi
}
\fi
-\expandafter\ifx\csname init@series@setup\endcsname\relax\else % 2020-02-02
+\expandafter\ifx\csname init@series@setup\endcsname\relax
+\else %<*2020-02-02|2020-10-01>
+\ifx\AddToHook\@undefined % --- for 2020-02-02 BEGIN
\g@addto@macro\init@series@setup{%
\ifx\kanjidef@ult\mcdef@ult \mcfamily
\else\ifx\kanjidef@ult\gtdef@ult \gtfamily
\fi\fi
}%
-\fi
+\else % --- for 2020-02-02 END & for 2020-10-01 BEGIN
+\g@addto@macro\init@series@setup{%
+ % !! sync with 2020/04/13 v3.1n BEGIN
+ \ifx\kanjiseriesdefault\kanjiseriesdefault@kernel
+ \mdseries
+ \let\kanjiseriesdefault\k@series
+ \fi
+ % !! sync with 2020/04/13 v3.1n END
+}%
+\fi % --- for 2020-10-01 END
+\fi %</2020-02-02|2020-10-01>
+\ifx\AddToHook\@undefined
+\else % --- for LaTeX2e 2020-10-01 or later BEGIN
+\def\code@after@pldefs{%
+\expandafter\def\expandafter\kanjiseriesdefault
+ \expandafter{\kanjiseriesdefault\@empty}
+\let\kanjiseriesdefault@kernel\kanjiseriesdefault}
+\fi % --- for LaTeX2e 2020-10-01 or later END
\ifx\prepare@family@series@update@kanji\@undefined % old
\DeclareRobustCommand\mcfamily
{\not@math@alphabet\mcfamily\mathmc
@@ -1317,10 +1364,10 @@
\pltx@reset@catcode@trick
\let\romanprocess@table\process@table
\def\kanjiprocess@table{%
- \kanjiencoding{\kanjiencodingdefault}%
- \kanjifamily{\kanjifamilydefault}%
- \kanjiseries{\kanjiseriesdefault}%
- \kanjishape{\kanjishapedefault}%
+ \kanjiencoding\kanjiencodingdefault
+ \edef\k@family{\kanjifamilydefault}%
+ \edef\k@series{\kanjiseriesdefault}%
+ \edef\k@shape{\kanjishapedefault}%
}
\def\process@table{%
\romanprocess@table
@@ -1605,6 +1652,18 @@
\unvbox\footins}\fi
\ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi
}
+\def\@vtryfc #1{%
+ \global\setbox\@outputbox\vbox{\ifydir\else\hskip\z@\fi}%
+ \let\@elt\@wtryfc
+ \@flsucceed
+ \global\setbox\@outputbox \vbox to\@colht{%
+ \vskip \@fptop
+ \vskip -\@fpsep
+ \unvbox \@outputbox
+ \vskip \@fpbot}%
+ \let\@elt\relax
+ \xdef #1{\@failedlist\@flfail}%
+ \xdef\@freelist{\@freelist\@flsucceed}}
\newif\iftombow \tombowfalse
\newif\iftombowdate \tombowdatetrue
\newdimen\@tombowwidth
@@ -1763,10 +1822,57 @@
\stepcounter{page}%
\let\firstmark\botmark
}
+\chardef\pltx@AtBeginDvi@untouched\z@
+\ifdefined\ExplSyntaxOn %--- expl3 available BEGIN
+\ExplSyntaxOn
+\if_cs_exist:N \__shipout_add_firstpage_material:Nn
+ \chardef\pltx@AtBeginDvi@untouched\@ne
+\fi:
+\ExplSyntaxOff
+\fi %--- expl3 available END
+\ifnum\pltx@AtBeginDvi@untouched>\z@\else
\DeclareRobustCommand \AtBeginDvi [1]{%
\global \setbox \@begindvibox
- \vbox{\yoko \unvbox \@begindvibox #1}%
-}
+ \vbox{\yoko \unvbox \@begindvibox #1}}%
+\fi
+\let\pltx@AtBeginDvi@untouched\@undefined
+\ifdefined\ExplSyntaxOn %--- expl3 available BEGIN
+\ExplSyntaxOn
+\if_cs_exist:N \__shipout_execute_cont:
+\cs_new_eq:NN \__platex_original_shipout_execute_cont: \__shipout_execute_cont:
+\box_new:N \l__platex_shipout_dummy_box
+\cs_set:Npn \__shipout_execute_cont:
+ {
+ % if \l_shipout_box is not a \yoko-box (= horizontal writing),
+ % then make it a \yoko-box behorehand.
+ \platex_if_box_yoko:NF \l_shipout_box {
+ \vbox_set:Nn \l_shipout_box
+ {
+ \platex_direction_yoko:
+ \box_use:N \l_shipout_box
+ }
+ }
+ % if the current direction is not \yoko,
+ % then enclose \__shipout_execute_cont: with
+ % a dummy \yoko-box named \l__platex_shipout_dummy_box.
+ \platex_if_direction_yoko:TF {
+ \__platex_original_shipout_execute_cont:
+ }{
+ \vbox_set:Nn \l__platex_shipout_dummy_box
+ {
+ \platex_direction_yoko:
+ \__platex_original_shipout_execute_cont:
+ }
+ % [Limitation] the code above may discard some contents,
+ % so we'd like to put it back by \box\l__platex_shipout_dummy_box.
+ % however, an infinite loop occurs if we uncomment the line below
+ % so we can't.
+ %\box_use:N \l__platex_shipout_dummy_box
+ }
+ }
+\fi:
+\ExplSyntaxOff
+\fi %--- expl3 available END
\renewcommand\@makefnmark{%
\ifydir \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}%
\else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}
@@ -1960,12 +2066,16 @@
\let\document@default@language\m@ne
\fi
%% File: plvers.dtx
+\ifx\AddToHook\@undefined
\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
+\else
+\AddToHook{begindocument/before}{\p@warn@latexrelease}
+\fi
\def\p@warn@latexrelease{%
\ifx\latexreleaseversion\@undefined\else
\ifx\platexreleaseversion\@undefined