diff options
Diffstat (limited to 'Master/texmf-dist/tex/platex/base/plcore.ltx')
-rw-r--r-- | Master/texmf-dist/tex/platex/base/plcore.ltx | 212 |
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 |