%% %% This is file `plcore.ltx', %% generated with the docstrip utility. %% %% 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-2020 Japanese TeX Development Community %% %% This file is part of the pLaTeX2e system (community edition). %% ------------------------------------------------------------- %% %% File: plvers.dtx \ifx\fmtversion\@undefined \errhelp{Please reinstall LaTeX.}% \errmessage{This cannot happen!^^JYour file `latex.ltx' might be broken}\@@end \else \ifnum\expandafter\@parse@version\fmtversion//00\@nil<20170415 \errhelp{Please update your TeX installation; if not available, obtain it^^Jmanually from CTAN (https://ctan.org/pkg/latex-base) or from^^JGitHub (https://github.com/latex3/latex2e).}% \errmessage{This version of pLaTeX2e requires LaTeX2e 2017-04-15 or newer!^^JObtain a newer version of `latex', otherwise pLaTeX2e setup will^^Jnever succeed}\@@end \fi \fi \def\pfmtname{pLaTeX2e} \def\pfmtversion {2021-11-15} \def\ppatch@level{0} \edef\platexBANNER{\noexpand\platexNILa \the\everyjob % LaTeX banner and delayed codes \noexpand\platexNILb} \begingroup \ifnum\ppatch@level=0 \toks2={\pfmtname\space<\pfmtversion>\space}% \else\ifnum\ppatch@level>0 \toks2={\pfmtname\space<\pfmtversion>+\ppatch@level\space}% \else \toks2={\pfmtname\space<\pfmtversion>-pre\ppatch@level\space}% \fi\fi \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 \chardef\pltx@newhook@avail=\z@ \@ifl@t@r\fmtversion{2020/10/01}{\chardef\pltx@newhook@avail=\@ne}{} \newif\if@plincludeinrelease \@plincludeinreleasefalse \def\plIncludeInRelease#1{% \if@plincludeinrelease \PackageError{platexrelease} {mis-matched \string\plIncludeInRelease}% {There is an \string\plEndIncludeRelease\space missing}% \@plincludeinreleasefalse \fi \kernel@ifnextchar[% {\@plIncludeInRelease{#1}} {\@plIncludeInRelease{#1}[#1]}} \def\@plIncludeInRelease#1[#2]{\@plIncludeInRele@se{#2}} \def\@plIncludeInRele@se#1#2#3{% \toks@{[#1] #3}% \expandafter\ifx\csname\string#2+\@currname+plIIR\endcsname\relax \ifnum\expandafter\@parse@version#1//00\@nil >\expandafter\@parse@version\pfmtversion//00\@nil \GenericInfo{}{Skipping: \the\toks@}% \expandafter\expandafter\expandafter\@gobble@plIncludeInRelease \else \GenericInfo{}{Applying: \the\toks@}% \@plincludeinreleasetrue \expandafter\let\csname\string#2+\@currname+plIIR\endcsname\@empty \fi \else \GenericInfo{}{Already applied: \the\toks@}% \expandafter\@gobble@plIncludeInRelease \fi } \def\plEndIncludeInRelease{% \if@plincludeinrelease \@plincludeinreleasefalse \else \PackageError{platexrelease} {mis-matched \string\plEndIncludeInRelease}{}% \fi} \long\def\@gobble@plIncludeInRelease#1\plEndIncludeInRelease{% \@plincludeinreleasefalse \@check@plIncludeInRelease#1\plIncludeInRelease \@check@plIncludeInRelease\@end@check@plIncludeInRelease} \long\def\@check@plIncludeInRelease#1\plIncludeInRelease #2#3\@end@check@plIncludeInRelease{% \ifx\@check@plIncludeInRelease#2\else \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 \let\cy@encoding\@empty \let\ct@encoding\@empty \let\k@family\@empty \let\k@series\@empty \let\k@shape\@empty \def\curr@kfontshape{\k@encoding/\k@family/\k@series/\k@shape} \def\rel@fontshape{\f@encoding/\f@family/\f@series/\f@shape} \newdimen\Cht \newdimen\cht \newdimen\Cdp \newdimen\cdp \newdimen\Cwd \newdimen\cwd \newdimen\Cvs \newdimen\cvs \newdimen\Chs \newdimen\chs \newdimen\cHT \let\afont\font \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} \def\fam@elt{\noexpand\fam@elt} \def\enc@elt{\noexpand\enc@elt} \def\fenc@list{\enc@elt\enc@elt\enc@elt\enc@elt% \enc@elt\enc@elt\enc@elt} \let\kenc@list\@empty \let\kyenc@list\@empty \let\ktenc@list\@empty \def\kfam@list{\fam@elt\fam@elt} \def\ffam@list{\fam@elt\fam@elt\fam@elt% \fam@elt\fam@elt\fam@elt} \let\notkfam@list\ffam@list \let\notffam@list\kfam@list \newbox\tstrutbox \newbox\zstrutbox \newbox\ystrutbox \def\strutbox{\iftdir\tstrutbox\else\ystrutbox\fi} \DeclareRobustCommand\strut{\relax \iftdir \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi \else \ifmmode\copy\ystrutbox\else\unhcopy\ystrutbox\fi \fi} \DeclareRobustCommand\tstrut{\relax\hbox{\tate \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi}} \DeclareRobustCommand\zstrut{\relax\hbox{\tate \ifmmode\copy\zstrutbox\else\unhcopy\zstrutbox\fi}} \DeclareRobustCommand\ystrut{\relax\hbox{\yoko \ifmmode\copy\ystrutbox\else\unhcopy\ystrutbox\fi}} \def\DeclareFontEncoding{% \begingroup \nfss@catcodes \expandafter\endgroup \DeclareFontEncoding@} \def\DeclareFontEncoding@#1#2#3{% \expandafter \ifx\csname T@#1\endcsname\relax \def\cdp@elt{\noexpand\cdp@elt}% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% {\default@family}{\default@series}% {\default@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@cmd \def\enc@elt{\noexpand\enc@elt}% \xdef\fenc@list{\fenc@list\enc@elt<#1>}% \else \@font@info{Redeclaring font encoding #1}% \fi \global\@namedef{T@#1}{#2}% \global\@namedef{M@#1}{\default@M#3}% \xdef\LastDeclaredEncoding{#1}% } \let\DeclareFontEncoding@saved\DeclareFontEncoding@ \ifx\IeC\@undefined\else \def\DeclareFontEncoding@#1#2#3{% \expandafter \ifx\csname T@#1\endcsname\relax \def\cdp@elt{\noexpand\cdp@elt}% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% {\default@family}{\default@series}% {\default@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@cmd \begingroup \wlog{Now handling font encoding #1 ...}% \lowercase{% \InputIfFileExists{#1enc.dfu}}% {\wlog{... processing UTF-8 mapping file for font % encoding #1}}% {\wlog{... no UTF-8 mapping file for font encoding #1}}% \endgroup \def\enc@elt{\noexpand\enc@elt}% \xdef\fenc@list{\fenc@list\enc@elt<#1>}% \else \@font@info{Redeclaring font encoding #1}% \fi \global\@namedef{T@#1}{#2}% \global\@namedef{M@#1}{\default@M#3}% \xdef\LastDeclaredEncoding{#1}% } \fi \def\DeclareKanjiEncoding#1{% \@latex@warning{% The \string\DeclareKanjiEncoding\space is obsoleted command. Please use \MessageBreak the \string\DeclareTateKanjiEncoding\space for `Tate-kumi' encoding, and \MessageBreak the \string\DeclareYokoKanjiEncoding\space for `Yoko-kumi' encoding. \MessageBreak I treat the `#1' encoding as `Yoko-kumi'.} \DeclareYokoKanjiEncoding{#1}% } \def\DeclareYokoKanjiEncoding{% \begingroup \nfss@catcodes \expandafter\endgroup \DeclareYokoKanjiEncoding@} \def\DeclareYokoKanjiEncoding@#1#2#3{% \expandafter \ifx\csname T@#1\endcsname\relax \def\cdp@elt{\noexpand\cdp@elt}% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% {\default@k@family}{\default@k@series}% {\default@k@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd \def\enc@elt{\noexpand\enc@elt}% \xdef\kyenc@list{\kyenc@list\enc@elt<#1>}% \xdef\kenc@list{\kenc@list\enc@elt<#1>}% \else \@font@info{Redeclaring KANJI (yoko) font encoding #1}% \fi \global\@namedef{T@#1}{#2}% \global\@namedef{M@#1}{\default@KM#3}% } \def\DeclareTateKanjiEncoding{% \begingroup \nfss@catcodes \expandafter\endgroup \DeclareTateKanjiEncoding@} \def\DeclareTateKanjiEncoding@#1#2#3{% \expandafter \ifx\csname T@#1\endcsname\relax \def\cdp@elt{\noexpand\cdp@elt}% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% {\default@k@family}{\default@k@series}% {\default@k@shape}}% \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd \def\enc@elt{\noexpand\enc@elt}% \xdef\ktenc@list{\ktenc@list\enc@elt<#1>}% \xdef\kenc@list{\kenc@list\enc@elt<#1>}% \else \@font@info{Redeclaring KANJI (tate) font encoding #1}% \fi \global\@namedef{T@#1}{#2}% \global\@namedef{M@#1}{\default@KM#3}% } \@onlypreamble\DeclareKanjiEncoding \@onlypreamble\DeclareYokoKanjiEncoding \@onlypreamble\DeclareYokoKanjiEncoding@ \@onlypreamble\DeclareTateKanjiEncoding \@onlypreamble\DeclareTateKanjiEncoding@ \def\DeclareKanjiEncodingDefaults#1#2{% \ifx\relax#1\else \ifx\default@KT\@empty\else \@font@info{Overwriting KANJI encoding scheme text defaults}% \fi \gdef\default@KT{#1}% \fi \ifx\relax#2\else \ifx\default@KM\@empty\else \@font@info{Overwriting KANJI encoding scheme math defaults}% \fi \gdef\default@KM{#2}% \fi} \let\default@KT\@empty \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}% {\edef\tmp@item{{#2}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% \ifin@ \else \def\fam@elt{\noexpand\fam@elt}% \xdef\ffam@list{\ffam@list\fam@elt<#2>}% \fi \def\reserved@a{#3}% \global \expandafter\let\csname #1+#2\expandafter\endcsname \ifx \reserved@a\@empty \@empty \else \reserved@a \fi }% } \def\DeclareKanjiFamily#1#2#3{% \@ifundefined{T@#1}% {\@latex@error{KANJI Encoding scheme `#1' unknown}\@eha}% {\edef\tmp@item{{#2}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% \ifin@ \else \def\fam@elt{\noexpand\fam@elt}% \xdef\kfam@list{\kfam@list\fam@elt<#2>}% \fi \def\reserved@a{#3}% \global \expandafter\let\csname #1+#2\expandafter\endcsname \ifx \reserved@a\@empty \@empty \else \reserved@a \fi }% } \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} \@onlypreamble\DeclareKanjiSubstitution \def\DeclareErrorKanjiFont#1#2#3#4#5{% \xdef\error@kfontshape{% \noexpand\expandafter\noexpand\split@name\noexpand\string \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname \noexpand\@nil}% \gdef\default@k@family{#2}% \gdef\default@k@series{#3}% \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 \math@fontsfalse \every@math@size{}% \fontsize{#6}\z@ \edef\tmp@item{{#2}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% \ifin@ \usekanji{#2}{#3}{#4}{#5}% \let\font\jfont \else \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% \ifin@ \usekanji{#2}{#3}{#4}{#5}% \let\font\tfont \else \useroman{#2}{#3}{#4}{#5}% \let\font\afont \fi \fi \global\expandafter\let\expandafter#1\the\font \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}% \edef\@tempa{\expandafter\@gobble\string#2}% \edef\@tempb{\expandafter\@gobble\string#3}% \edef\@tempc{\string @\expandafter\@gobbletwo\string#2}% \ifx\@tempc\@tempa% \edef\@tempa{\expandafter\@gobbletwo\string#2}% \edef\@tempb{\expandafter\@gobbletwo\string#3}% \fi \expandafter\edef\csname\expandafter\@gobble\string#1\space\space\endcsname% {\noexpand\DualLang@mathalph@bet% {\expandafter\noexpand\csname\@tempa\space\endcsname}% {\expandafter\noexpand\csname\@tempb\space\endcsname}% }% } \@onlypreamble\reDeclareMathAlphabet \def\DualLang@mathalph@bet#1#2{% \relax\ifmmode \ifx\math@bgroup\bgroup% 2e normal style (\mathrm{...}) \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard \else \ifx\math@bgroup\relax% 2e two letter style (\rm->\mathrm) \let\DualLang@Mfontsw\DLMfontsw@oldstyle \else \ifx\math@bgroup\@empty% 2.09 oldlfont style ({\mathrm ...}) \let\DualLang@Mfontsw\DLMfontsw@oldlfont \else% panic! assume 2e normal style \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard \fi \fi \fi \else \let\DualLang@Mfontsw\@firstoftwo \fi \DualLang@Mfontsw{#1}{#2}% } \def\DLMfontsw@standard#1#2#3{#1{#2{#3}}\egroup} \def\DLMfontsw@oldstyle#1#2{#1\relax\@fontswitch\relax{#2}} \def\DLMfontsw@oldlfont#1#2{#1\relax#2\relax} \def\all@shape{all}% \def\DeclareRelationFont#1#2#3#4#5#6#7#8{% \def\rel@shape{#4}% \ifx\rel@shape\@empty \global \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% \romanencoding{#5}\romanfamily{#6}% \romanseries{#7}}% \else \global \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% \romanencoding{#5}\romanfamily{#6}% \romanseries{#7}\romanshape{#8}}% \fi } \def\SetRelationFont#1#2#3#4#5#6#7#8{% \def\rel@shape{#4}% \ifx\rel@shape\@empty \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% \romanencoding{#5}\romanfamily{#6}% \romanseries{#7}}% \else \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% \romanencoding{#5}\romanfamily{#6}% \romanseries{#7}\romanshape{#8}}% \fi } \newif\if@knjcmd \DeclareRobustCommand\userelfont{\@knjcmdtrue} \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN %% \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} %% \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN %% \DeclareRobustCommand\selectfont{% % !! sync with ltfsstrc.dtx 2021/04/26 v3.0o BEGIN \ifx\delayed@k@adjustment\@empty \else \let\k@shape@saved\k@shape \let\k@series@saved\k@series \delayed@k@adjustment \begingroup\let\f@encoding\k@encoding\let\f@family\k@family \maybe@load@fontshape\endgroup \ifcsname \k@encoding/\k@family/\k@series/\k@shape \endcsname \else \let\k@shape\k@shape@saved \let\k@series\k@series@saved \let\delayed@merge@kanji@shape\merge@kanji@shape \let\delayed@merge@kanji@series\merge@kanji@series \delayed@k@adjustment \let\delayed@merge@kanji@shape\merge@kanji@shape@without@substitution \let\delayed@merge@kanji@series\merge@kanji@series@without@substitution \fi \let\delayed@k@adjustment\@empty \fi \@forced@series@kanjifalse % !! sync with ltfsstrc.dtx 2021/04/26 v3.0o END \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 % !! sync with ltfsstrc.dtx 2021/04/26 v3.0o BEGIN \ifx\delayed@f@adjustment\@empty \else \let\f@shape@saved\f@shape \let\f@series@saved\f@series \delayed@f@adjustment \maybe@load@fontshape \ifcsname \f@encoding/\f@family/\f@series/\f@shape \endcsname \else \let\f@shape\f@shape@saved \let\f@series\f@series@saved \let\delayed@merge@font@shape\merge@font@shape \let\delayed@merge@font@series\merge@font@series \delayed@f@adjustment \let\delayed@merge@font@shape\merge@font@shape@without@substitution \let\delayed@merge@font@series\merge@font@series@without@substitution \fi \let\delayed@f@adjustment\@empty \fi \@forced@seriesfalse % !! sync with ltfsstrc.dtx 2021/04/26 v3.0o END \let\font\afont \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}% \pickup@font \font@name \UseHook{selectfont}% since LaTeX2e 2021-06-01 \enc@update \ifx\f@linespread\baselinestretch \else \set@fontsize\baselinestretch\f@size\f@baselineskip \fi \size@update} %% \fi % --- for >= 2021-06-01 END \def\set@fontsize#1#2#3{% \@defaultunits\@tempdimb#2pt\relax\@nnil \edef\f@size{\strip@pt\@tempdimb}% \@defaultunits\@tempskipa#3pt\relax\@nnil \edef\f@baselineskip{\the\@tempskipa}% \edef\f@linespread{#1}% \let\baselinestretch\f@linespread \def\size@update{% \baselineskip\f@baselineskip\relax \baselineskip\f@linespread\baselineskip \normalbaselineskip\baselineskip \adjustbaseline \setbox\ystrutbox\hbox{\yoko \vrule\@width\z@ \@height.7\baselineskip \@depth.3\baselineskip}% \setbox\tstrutbox\hbox{\tate \vrule\@width\z@ \@height.5\baselineskip \@depth.5\baselineskip}% \setbox\zstrutbox\hbox{\tate \vrule\@width\z@ \@height.7\baselineskip \@depth.3\baselineskip}% \let\size@update\relax}} \newbox\adjust@box \newdimen\adjust@dimen \DeclareRobustCommand\adjustbaseline{% \setbox\adjust@box\hbox{\char\jis"3441}%" \cht\ht\adjust@box \cdp\dp\adjust@box \cwd\wd\adjust@box \cvs\normalbaselineskip \chs\cwd \cHT\cht \advance\cHT\cdp \iftdir \setbox\adjust@box\hbox{\tbaselineshift\z@ M}% \adjust@dimen\ht\adjust@box \advance\adjust@dimen\dp\adjust@box \advance\adjust@dimen-\cHT \divide\adjust@dimen\tw@ \advance\adjust@dimen\cdp \advance\adjust@dimen-\dp\adjust@box \tbaselineshift\adjust@dimen \fi} \DeclareRobustCommand\romanencoding[1]{% \expandafter\ifx\csname T@#1\endcsname\relax \@latex@error{Encoding scheme `#1' unknown}\@eha \else \edef\f@encoding{#1}% \ifx\cf@encoding\f@encoding \let\enc@update\relax \else \let\enc@update\@@enc@update \fi \fi } \DeclareRobustCommand\kanjiencoding[1]{% \expandafter\ifx\csname T@#1\endcsname\relax \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha \else \edef\k@encoding{#1}% \ifx\ck@encoding\k@encoding \let\kenc@update\relax \else \let\kenc@update\@@kenc@update \fi \fi } \DeclareRobustCommand\fontencoding[1]{% \edef\tmp@item{{#1}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% \ifin@ \kanjiencoding{#1}\else\romanencoding{#1}\fi} \def\@@kenc@update{% \default@KT \csname T@\k@encoding\endcsname \csname D@\k@encoding\endcsname \let\kenc@update\relax \let\ck@encoding\k@encoding \edef\tmp@item{{\k@encoding}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% \ifin@ \let\cy@encoding\k@encoding \else \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% \ifin@ \let\ct@encoding\k@encoding \else \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha \fi \fi } \let\kenc@update\relax \def\@changed@kcmd#1#2{% \ifx\protect\@typeset@protect \@inmathwarn#1% \expandafter\ifx\csname\ck@encoding\string#1\endcsname\relax \expandafter\ifx\csname ?\string#1\endcsname\relax \expandafter\def\csname ?\string#1\endcsname{% \TextSymbolUnavailable#1% }% \fi \global\expandafter\let \csname\cf@encoding \string#1\expandafter\endcsname \csname ?\string#1\endcsname \fi \csname\ck@encoding\string#1% \expandafter\endcsname \else \noexpand#1% \fi} \newif\if@notkfam \newif\if@notffam \newif\if@tempswz \DeclareRobustCommand\romanfamily[1]{\edef\f@family{#1}} \DeclareRobustCommand\kanjifamily[1]{\edef\k@family{#1}} \DeclareRobustCommand\fontfamily[1]{% \edef\tmp@item{{#1}}% \@notkfamfalse \@notffamfalse \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% \ifin@ \edef\k@family{#1}% \else \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\notkfam@list}% \ifin@ \@notkfamtrue \else \@tempswzfalse \def\fam@elt{\noexpand\fam@elt}% \message{(I search kanjifont definition file:}% \def\enc@elt<##1>{\message{.}% \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% \reserved@a{\@tempswztrue}{}\relax}% \kenc@list \message{)}% \if@tempswz \edef\k@family{#1}% \else \@notkfamtrue \xdef\notkfam@list{\notkfam@list\fam@elt<#1>}% \fi \fi\fi \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% \ifin@ \edef\f@family{#1}\else \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\notffam@list}% \ifin@ \@notffamtrue \else \@tempswzfalse \def\fam@elt{\noexpand\fam@elt}% \message{(I search font definition file:}% \def\enc@elt<##1>{\message{.}% \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% \reserved@a{\@tempswztrue}{}\relax}% \fenc@list \message{)}% \if@tempswz \edef\f@family{#1}% \else \@notffamtrue \xdef\notffam@list{\notffam@list\fam@elt<#1>}% \fi \fi\fi \if@notkfam\if@notffam \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 \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 \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\delayed@f@adjustment\@undefined % old \let\delayed@k@adjustment\@undefined \else % 2021-06-01 \let\delayed@k@adjustment\@empty \fi \ifx\@forced@seriestrue\@undefined % old \let\@forced@series@kanjifalse\@undefined \let\@forced@series@kanjitrue\@undefined \else % 2020-02-02 PL3 or later \expandafter\newif\csname if@forced@series@kanji\endcsname \fi \ifx\fontseriesforce\@undefined % old \DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} \DeclareRobustCommand\kanjiseries[1]{\edef\k@series{#1}} \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} \else % 2020-02-02 \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN \DeclareRobustCommand\romanseries[1]{\@forced@seriesfalse\merge@font@series{#1}} \DeclareRobustCommand\kanjiseries[1]{\@forced@series@kanjifalse\merge@kanji@series{#1}} \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN \DeclareRobustCommand\romanseries[1]{\@forced@seriesfalse \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\delayed@merge@font@series{#1}}} \DeclareRobustCommand\kanjiseries[1]{\@forced@series@kanjifalse \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\delayed@merge@kanji@series{#1}}} \DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} \fi % --- for >= 2021-06-01 END \fi \ifx\fontseriesforce\@undefined % old \let\romanseriesforce\@undefined \let\kanjiseriesforce\@undefined \else % 2020-02-02 \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN \DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue\edef\f@series{#1}} \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@series@kanjitrue\edef\k@series{#1}} \DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}} \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN \DeclareRobustCommand\romanseriesforce[1]{\@forced@seriestrue \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\edef\f@series{#1}}} \DeclareRobustCommand\kanjiseriesforce[1]{\@forced@series@kanjitrue \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\edef\k@series{#1}}} \DeclareRobustCommand\fontseriesforce[1]{\kanjiseriesforce{#1}\romanseriesforce{#1}} \fi % --- for >= 2021-06-01 END \fi \ifx\fontseriesforce\@undefined % old \let\merge@kanji@series\@undefined \let\merge@kanji@series@\@undefined \let\set@target@series@kanji\@undefined \else % 2020-02-02 \def\merge@kanji@series#1{% \expandafter\expandafter\expandafter \merge@kanji@series@ \csname series@\k@series @#1\endcsname {#1}% \@nil } \def\merge@kanji@series@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \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 \set@target@series@kanji{#1}% \else \ifcsname \k@encoding /\k@family /#2/\k@shape \endcsname \set@target@series@kanji{#2}% {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% \else \set@target@series@kanji{#3}% {\let\curr@fontshape\curr@kfontshape\@font@shape@subst@warning}% \fi \fi \fi } \def\set@target@series@kanji#1{% \edef\k@series{#1}% \series@maybe@drop@one@m\k@series\k@series } \fi \ifx\merge@font@series@without@substitution\@undefined % old \let\merge@kanji@series@without@substitution\@undefined \let\merge@kanji@series@without@substitution@\@undefined \let\delayed@merge@kanji@series\@undefined \else % 2021-06-01 \def\merge@kanji@series@without@substitution#1{% \expandafter\expandafter\expandafter \merge@kanji@series@without@substitution@ \csname series@\k@series @#1\endcsname {#1}% \@nil } \def\merge@kanji@series@without@substitution@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \set@target@series@kanji{#2}% \else \set@target@series@kanji{#1}% \fi } \let\delayed@merge@kanji@series\merge@kanji@series@without@substitution \fi \ifx\@shape@roman@kanjitrue\@undefined % just in case \expandafter\newif\csname if@shape@roman@kanji\endcsname \fi \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 \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN \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} \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN \DeclareRobustCommand\romanshape[1]{% \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\delayed@merge@font@shape{#1}}} \DeclareRobustCommand\kanjishape[1]{% \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\delayed@merge@kanji@shape{#1}}} \DeclareRobustCommand\fontshape[1]{% \romanshape{#1}% \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\@shape@roman@kanjitrue \delayed@merge@kanji@shape{#1}\@shape@roman@kanjifalse}} \fi % --- for >= 2021-06-01 END \fi \ifx\fontshapeforce\@undefined % old \let\romanshapeforce\@undefined \let\kanjishapeforce\@undefined \else % 2020-02-02 \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN \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}% } \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN \DeclareRobustCommand\romanshapeforce[1]{% \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\edef\f@shape{#1}}} \DeclareRobustCommand\kanjishapeforce[1]{% \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\edef\k@shape{#1}}} \DeclareRobustCommand\fontshapeforce[1]{% \expandafter\def\expandafter\delayed@k@adjustment\expandafter {\delayed@k@adjustment\set@safe@kanji@shape{#1}{}}% \expandafter\def\expandafter\delayed@f@adjustment\expandafter {\delayed@f@adjustment\edef\f@shape{#1}}% } \fi % --- for >= 2021-06-01 END \fi \ifx\fontseriesforce\@undefined % old \let\merge@kanji@shape\@undefined \let\merge@kanji@shape@\@undefined \else % 2020-02-02 \def\merge@kanji@shape#1{% \expandafter\expandafter\expandafter \merge@kanji@shape@ \csname shape@\k@shape @#1\endcsname {#1}% \@nil } \def\merge@kanji@shape@#1#2#3\@nil{% \def\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 \ifx\merge@font@shape@without@substitution\@undefined % old \let\merge@kanji@shape@without@substitution\@undefined \let\merge@kanji@shape@without@substitution@\@undefined \let\delayed@merge@kanji@shape\@undefined \else % 2021-06-01 \def\merge@kanji@shape@without@substitution#1{% \expandafter\expandafter\expandafter \merge@kanji@shape@without@substitution@ \csname shape@\k@shape @#1\endcsname {#1}% \@nil } \def\merge@kanji@shape@without@substitution@#1#2#3\@nil{% \def\reserved@a{#3}% \ifx\reserved@a\@empty \edef\k@shape{#2}% \else \edef\k@shape{#1}% \fi } \let\delayed@merge@kanji@shape\merge@kanji@shape@without@substitution \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}% } \ifx\set@target@series\@undefined % old \DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}% \edef\k@family{#2}% \edef\k@series{#3}% \edef\k@shape{#4}\selectfont \ignorespaces} \DeclareRobustCommand\useroman[4]{\romanencoding{#1}% \edef\f@family{#2}% \edef\f@series{#3}% \edef\f@shape{#4}\selectfont \ignorespaces} \else % 2020-02-02 \ifx\delayed@f@adjustment\@undefined % --- for <= 2020-10-01 BEGIN \DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}% \edef\k@family{#2}% \set@target@series@kanji{#3}% \edef\k@shape{#4}\selectfont \ignorespaces} \DeclareRobustCommand\useroman[4]{\romanencoding{#1}% \edef\f@family{#2}% \set@target@series{#3}% \edef\f@shape{#4}\selectfont \ignorespaces} \else % --- for <= 2020-10-01 END & for >= 2021-06-01 BEGIN \DeclareRobustCommand\usekanji[4]{\kanjiencoding{#1}% \edef\k@family{#2}% \set@target@series@kanji{#3}% \edef\k@shape{#4}% \let\delayed@k@adjustment\@empty \selectfont \ignorespaces} \DeclareRobustCommand\useroman[4]{\romanencoding{#1}% \edef\f@family{#2}% \set@target@series{#3}% \edef\f@shape{#4}% \let\delayed@f@adjustment\@empty \selectfont \ignorespaces} \fi % --- for >= 2021-06-01 END \fi % done \DeclareRobustCommand\usefont[4]{% \edef\tmp@item{{#1}}% \expandafter\expandafter\expandafter \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% \ifin@ \usekanji{#1}{#2}{#3}{#4}% \else\useroman{#1}{#2}{#3}{#4}% \fi} \ifnum\pltx@newhook@avail=\z@ % --- for <= 2020-02-02 BEGIN \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 \g@addto@macro\@defaultfamilyhook{% \kanjiencoding{\kanjiencodingdefault}% \edef\k@family{\kanjifamilydefault}% \edef\k@series{\kanjiseriesdefault}% \edef\k@shape{\kanjishapedefault}% } \fi % done \else % --- for <= 2020-02-02 END & for >= 2020-10-01 BEGIN \ifx\delayed@f@adjustment\@undefined % --- for == 2020-10-01 BEGIN \AddToHook{normalfont}{% \kanjiencoding{\kanjiencodingdefault}% \edef\k@family{\kanjifamilydefault}% \edef\k@series{\kanjiseriesdefault}% \edef\k@shape{\kanjishapedefault}% } \else % --- for == 2020-10-01 END & for >= 2021-06-01 BEGIN \AddToHook{normalfont}{% \kanjiencoding{\kanjiencodingdefault}% \edef\k@family{\kanjifamilydefault}% \edef\k@series{\kanjiseriesdefault}% \edef\k@shape{\kanjishapedefault}% \let\delayed@k@adjustment\@empty } \fi % --- for >= 2021-06-01 END \fi % --- for >= 2020-10-01 END \adjustbaseline \let\reset@font\normalfont \ifx\bfseries@rm\@undefined % old \let\bfseries@mc\@undefined \let\bfseries@gt\@undefined \let\mdseries@mc\@undefined \let\mdseries@gt\@undefined \else % 2020-02-02 \edef\bfseries@mc{\bfdefault}% b \edef\bfseries@gt{\bfdefault}% b \edef\mdseries@mc{\mddefault}% m \edef\mdseries@gt{\mddefault}% m \fi \ifx\expand@font@defaults\@undefined\else %<*2020-02-02|2020-10-01|.> \ifnum\pltx@newhook@avail=\z@ % --- for == 2020-02-02 BEGIN \g@addto@macro\expand@font@defaults{% \edef\mcdef@ult{\mcdefault}% \edef\gtdef@ult{\gtdefault}% \edef\kanjidef@ult{\kanjifamilydefault}% } \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 % \ifx\bfseries@rm\@undefined\else %<*2020-02-02|2020-10-01|.> \ifnum\pltx@newhook@avail=\z@ % --- 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 } \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 } \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 } \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 % \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 \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 \series@maybe@drop@one@m\target@series@value\f@series \fi \fi ~\fi } \def\prepare@family@series@update@kanji#1#2{% ~\if@forced@series@kanji ~ \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 \series@maybe@drop@one@m\target@series@value\k@series \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\series@maybe@drop@one@m \csname mdseries@#1\endcsname\reserved@d \ifx\reserved@d\k@series \let\target@series@value\reserved@b \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 \fi\fi\fi\fi \fi \fi } \fi \expandafter\ifx\csname init@series@setup\endcsname\relax \else %<*2020-02-02|2020-10-01|.> \ifnum\pltx@newhook@avail=\z@ % --- 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 }% \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 % \ifnum\pltx@newhook@avail>\z@ % --- for >= 2020-10-01 BEGIN \def\code@after@pldefs{% \expandafter\def\expandafter\kanjiseriesdefault \expandafter{\kanjiseriesdefault\@empty} \let\kanjiseriesdefault@kernel\kanjiseriesdefault} \fi % --- for >= 2020-10-01 END \ifx\prepare@family@series@update@kanji\@undefined % old \DeclareRobustCommand\mcfamily {\not@math@alphabet\mcfamily\mathmc \kanjifamily\mcdefault\selectfont} \DeclareRobustCommand\gtfamily {\not@math@alphabet\gtfamily\mathgt \kanjifamily\gtdefault\selectfont} \else % 2020-02-02 \DeclareRobustCommand\mcfamily {\not@math@alphabet\mcfamily\mathmc \prepare@family@series@update@kanji{mc}\mcdefault\selectfont} \DeclareRobustCommand\gtfamily {\not@math@alphabet\gtfamily\mathgt \prepare@family@series@update@kanji{gt}\gtdefault\selectfont} \fi \DeclareTextFontCommand{\textmc}{\mcfamily} \DeclareTextFontCommand{\textgt}{\gtfamily} %% \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@kanji ~ \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 \edef\k@family{\kanjifamilydefault}% \edef\k@series{\kanjiseriesdefault}% \edef\k@shape{\kanjishapedefault}% } \def\process@table{% \romanprocess@table \kanjiprocess@table } \@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 \else\tbaselineshift\fi \else\ybaselineshift\fi \vbox{\hrule\@width.3em}} \def\pltx@saved@oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}} \def\pltx@oalign#1{\ifmmode \leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}% \else \iftdir\ybaselineshift\tbaselineshift\fi \m@th$\hbox{\vtop{\baselineskip\z@skip \lineskip.25ex% \ialign{##\crcr#1\crcr}}}$% \fi} \def\pltx@saved@ltx@sh@ft #1{% \dimen@ #1% \kern \strip@pt \fontdimen1\font \dimen@ } % kern by #1 times the current slant \def\pltx@ltx@sh@ft #1{% \ybaselineshift\z@ \dimen@ #1% \kern \strip@pt \fontdimen1\font \dimen@ } % kern by #1 times the current slant \def\g@tlastchart@#1{#1\ifx\lastnodechar\@undefined\m@ne\else\lastnodechar\fi} \def\pltx@mark{\pltx@mark@} \let\pltx@scanstop\relax \long\def\pltx@cond#1\fi{% #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} \def\pltx@pdfencA{PD1} \def\pltx@composite@chkenc{% \ifx\pltx@pdfencA\f@encoding \expandafter\@firstoftwo \else \expandafter\@secondoftwo \fi} \long\def\pltx@isletter#1{% \expandafter\pltx@isletter@i#1\pltx@scanstop} \long\def\pltx@isletter@i#1\pltx@scanstop{% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi{\@firstoftwo}% {\pltx@isletter@ii\pltx@scanstop#1\pltx@scanstop{}#1\pltx@mark}} \long\def\pltx@isletter@ii#1\pltx@scanstop#{% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi% {\pltx@isletter@iii}{\pltx@isletter@iv}} \long\def\pltx@isletter@iii#1\pltx@mark{\@secondoftwo} \long\def\pltx@isletter@iv#1#2#3\pltx@mark{% \pltx@cond\ifx\pltx@mark#3\pltx@mark\fi{% \pltx@cond{\ifnum0\ifcat A\noexpand#21\fi\ifcat=\noexpand#21\fi>\z@}\fi {\@firstoftwo}{\pltx@composite@chkenc}% }{\pltx@composite@chkenc}} \def\pltx@saved@text@composite@x#1{% \ifx#1\relax \expandafter\@secondoftwo \else \expandafter\@firstoftwo \fi #1} \def\pltx@text@composite@x#1#2{% \ifx#1\relax #2% \else\pltx@isletter{#1}{#1}{% \begingroup \setbox\z@\hbox\bgroup \ybaselineshift\z@\tbaselineshift\z@ #1% \g@tlastchart@\@tempcntb \xdef\pltx@composite@temp{\noexpand\@tempcntb=\the\@tempcntb\relax}% \aftergroup\pltx@composite@temp \egroup \ifnum\@tempcntb<\@cclvi \ifnum\@tempcntb>\m@ne \ifodd\xspcode\@tempcntb\else\leavevmode\null\fi \fi \begingroup\m@th$% \ifx\textbaselineshiftfactor\@undefined\else \textbaselineshiftfactor\z@\fi \box\z@ $\endgroup \ifnum\@tempcntb>\m@ne \ifnum\xspcode\@tempcntb<2\null\fi \fi \else {\ybaselineshift\z@\tbaselineshift\z@#1}% \fi \endgroup}% \fi } \DeclareRobustCommand\fixcompositeaccent{% \let\oalign\pltx@oalign \let\ltx@sh@ft\pltx@ltx@sh@ft \let\@text@composite@x\pltx@text@composite@x } \DeclareRobustCommand\nofixcompositeaccent{% \let\oalign\pltx@saved@oalign \let\ltx@sh@ft\pltx@saved@ltx@sh@ft \let\@text@composite@x\pltx@saved@text@composite@x } \nofixcompositeaccent \ifx\protected\@undefined \def\<{\inhibitglue} \else \protected\def\<{\ifvmode\leavevmode\fi\inhibitglue} \fi %% File: plcore.dtx \def\NeedsTeXFormat#1{% \def\reserved@a{#1}% \ifx\reserved@a\pfmtname \expandafter\@needsPformat \else \ifx\reserved@a\fmtname \expandafter\expandafter\expandafter\@needsformat \else \@latex@error{This file needs format `\reserved@a'% \MessageBreak but this is `\pfmtname'}{% The current input file will not be processed further,\MessageBreak because it was written for some other flavor of TeX.\MessageBreak\@ehd}% \endinput \fi \fi} \def\@needsPformat{\@ifnextchar[\@needsPf@rmat{}} \def\@needsPf@rmat[#1]{% \@ifl@t@r\pfmtversion{#1}{}% {\@latex@warning@no@line {You have requested release `#1' of pLaTeX,\MessageBreak but only release `\pfmtversion' is available}}} \@onlypreamble\@needsPformat \@onlypreamble\@needsPf@rmat \def\documentstyle{% \makeatletter\input{pl209.def}\makeatother \documentclass} \ifx\lastnodesubtype\@undefined \let\removejfmglue\@undefined \else \setbox0\hbox{% \ifnum\jis"2121="3000 %% upTeX check \jfont\tenmin=upjisr-h at 9.62216pt \else \jfont\tenmin=min10 \fi\tenmin \char\jis"214B\null\setbox0\lastbox \global\chardef\pltx@gluetype\lastnodetype \global\chardef\pltx@jfmgluesubtype\lastnodesubtype } \setbox0=\box\voidb@x \protected\def\removejfmglue{% \ifnum\lastnodetype=\pltx@gluetype\relax \ifnum\lastnodesubtype=\pltx@jfmgluesubtype\relax \unskip \fi \fi} \fi \def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page \iftdir \hbox{}\thispagestyle{empty}\newpage \if@twocolumn\hbox{}\newpage\fi \fi \else \ifydir \hbox{}\thispagestyle{empty}\newpage \if@twocolumn\hbox{}\newpage\fi \fi \fi\fi} \def\@gnewline #1{% \ifvmode \@nolnerr \else \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null \ignorespaces \fi} \def\pltx@adjust@wd@outputbox{% \ifydir\else\vbox{\pdfprimitive\everypar{}\hskip\z@}\fi} \def\pltx@adjust@wd@outputbox@vtryfc{% \ifydir\else\pdfprimitive\everypar{}\hskip\z@\fi} \gdef\@makecol{% \setbox\@outputbox\box\@cclv% \let\@elt\relax % added on LaTeX (ltoutput.dtx 2003/12/16 v1.2k) \xdef\@freelist{\@freelist\@midlist}% \global \let \@midlist \@empty \@combinefloats \let\pltx@textbottom\@textbottom % save (pLaTeX 2017/02/25) \ifvoid\footins\else % changed (pLaTeX 2017/02/25) \setbox\@outputbox \vbox {% \boxmaxdepth \@maxdepth \unvbox \@outputbox \@textbottom % inserted here (pLaTeX 2017/02/25) \vskip \skip\footins \color@begingroup \normalcolor \footnoterule \unvbox \footins \color@endgroup }% \let\@textbottom\relax % disable temporarily (pLaTeX 2017/02/25) \fi \ifvbox\@kludgeins \@makespecialcolbox \else \setbox\@outputbox \vbox to\@colht {% %\boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 \@texttop \dimen@ \dp\@outputbox \unvbox \@outputbox \pltx@adjust@wd@outputbox \vskip -\dimen@ \@textbottom }% \fi \let\@textbottom\pltx@textbottom % restore (pLaTeX 2017/02/25) \global \maxdepth \@maxdepth } \gdef\@makespecialcolbox{% \setbox\@outputbox \vbox {% \@texttop \dimen@ \dp\@outputbox \unvbox\@outputbox \vskip-\dimen@ }% \@tempdima \@colht \ifdim \wd\@kludgeins>\z@ \advance \@tempdima -\ht\@outputbox \advance \@tempdima \pageshrink \setbox\@outputbox \vbox to \@colht {% \unvbox\@outputbox \vskip \@tempdima \@textbottom \ifvoid\footins\else % for pLaTeX \vskip\skip\footins \color@begingroup \normalcolor \footnoterule \unvbox \footins \color@endgroup \fi }% \else \advance \@tempdima -\ht\@kludgeins \setbox \@outputbox \vbox to \@colht {% \vbox to \@tempdima {% \unvbox\@outputbox \@textbottom \ifvoid\footins\else % for pLaTeX \vskip\skip\footins \color@begingroup \normalcolor \footnoterule \unvbox \footins \color@endgroup \fi }\vss}% \fi {\setbox \@tempboxa \box \@kludgeins}% } \def\@reinserts{% \ifvoid\footins\else\insert\footins{% \iftbox\footins\tate\else\yoko\fi \unvbox\footins}\fi \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi } \def\@vtryfc #1{% \global\setbox\@outputbox\vbox{\pltx@adjust@wd@outputbox@vtryfc}% \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 \setlength{\@tombowwidth}{.1\p@} \def\@tombowbleed{3mm} \def\@tombowcolor{\normalcolor} \newbox\@TL\newbox\@Tl \newbox\@TC \newbox\@TR\newbox\@Tr \newbox\@BL\newbox\@Bl \newbox\@BC \newbox\@BR\newbox\@Br \newbox\@CL \newbox\@CR \font\@bannerfont=cmtt9 \newtoks\@bannertoken \@bannertoken{} \def\maketombowbox{% \setbox\@TL\hbox to\z@{\yoko\hss \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@ \vrule height10mm width\@tombowwidth depth\z@ \iftombowdate \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% \fi}% \setbox\@Tl\hbox to\z@{\yoko\hss \vrule width10mm height\@tombowwidth depth\z@ \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@}% \setbox\@TC\hbox{\yoko \vrule width10mm height\@tombowwidth depth\z@ \vrule height10mm width\@tombowwidth depth\z@ \vrule width10mm height\@tombowwidth depth\z@}% \setbox\@TR\hbox to\z@{\yoko \vrule height10mm width\@tombowwidth depth\z@ \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}% \setbox\@Tr\hbox to\z@{\yoko \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@ \vrule width10mm height\@tombowwidth depth\z@\hss}% \setbox\@BL\hbox to\z@{\yoko\hss \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@ \vrule depth10mm width\@tombowwidth height\z@}% \setbox\@Bl\hbox to\z@{\yoko\hss \vrule width10mm depth\@tombowwidth height\z@ \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}% \setbox\@BC\hbox{\yoko \vrule width10mm depth\@tombowwidth height\z@ \vrule depth10mm width\@tombowwidth height\z@ \vrule width10mm depth\@tombowwidth height\z@}% \setbox\@BR\hbox to\z@{\yoko \vrule depth10mm width\@tombowwidth height\z@ \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}% \setbox\@Br\hbox to\z@{\yoko \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@ \vrule width10mm depth\@tombowwidth height\z@\hss}% \setbox\@CL\hbox to\z@{\yoko\hss \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth \vrule height10mm depth10mm width\@tombowwidth}% \setbox\@CR\hbox to\z@{\yoko \vrule height10mm depth10mm width\@tombowwidth \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% } \def\@outputtombow{% \iftombow \vbox to\z@{\kern-\dimexpr 10mm+\@tombowbleed\relax\relax \boxmaxdepth\maxdimen \moveleft\@tombowbleed \vbox to\@@paperheight{% \color@begingroup \@tombowcolor \hbox to\@@paperwidth{\hskip\@tombowbleed\relax \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}% \kern-10mm \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% \vfill \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% \vfill \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% \kern-10mm \hbox to\@@paperwidth{\hskip\@tombowbleed\relax \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}% \color@endgroup }\vss }% \fi } \newdimen\@@paperheight \newdimen\@@paperwidth \newdimen\@@topmargin \def\@tombowreset@@paper{% \@@topmargin\topmargin \iftombow \@@paperwidth\paperwidth \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax \@@paperheight\paperheight \advance\@@paperheight 10mm\relax \advance\@@paperheight 2\dimexpr\@tombowbleed\relax \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax \fi } \def\@outputpage{% \begingroup % the \endgroup is put in by \aftergroup \iftdir \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ \fi \let \protect \noexpand \language\document@default@language \@resetactivechars \global\let\@@if@newlist\if@newlist \global\@newlistfalse \@parboxrestore \shipout\vbox{\yoko \set@typeset@protect \aftergroup\endgroup \aftergroup\set@typeset@protect \if@specialpage \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% \fi \if@twoside \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot \iftdir\let\@themargin\evensidemargin \else\let\@themargin\oddsidemargin\fi \else \let\@thehead\@evenhead \let\@thefoot\@evenfoot \iftdir\let\@themargin\oddsidemargin \else\let\@themargin\evensidemargin\fi \fi\fi \@tombowreset@@paper \reset@font \normalsize \normalsfcodes \let\label\@gobble \let\index\@gobble \let\glossary\@gobble \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ \@begindvi \@outputtombow \vskip \@@topmargin \moveright\@themargin\vbox{% \setbox\@tempboxa \vbox to\headheight{% \vfil \color@hbox \normalcolor \hb@xt@\textwidth{\@thehead}% \color@endbox }% %% 22 Feb 87 \dp\@tempboxa \z@ \box\@tempboxa \vskip \headsep \box\@outputbox \baselineskip \footskip \color@hbox \normalcolor \hb@xt@\textwidth{\@thefoot}% \color@endbox }% }% \global\let\if@newlist\@@if@newlist \global \@colht \textheight \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}}% \fi \let\pltx@AtBeginDvi@untouched\@undefined \ifdefined\ExplSyntaxOn %--- expl3 available BEGIN \ExplSyntaxOn \cs_if_exist:NT \__shipout_execute_cont: { %--- IF LEVEL 1 BEGIN \cs_if_exist:NF \__platex_original_shipout_execute_cont: { \cs_new_eq:NN \__platex_original_shipout_execute_cont: \__shipout_execute_cont: } \cs_if_exist:NF \l__platex_shipout_dummy_box { \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 } } } %--- IF LEVEL 1 END \cs_if_exist:NT \__shipout_execute_nohooks_cont: { %--- IF LEVEL 1 BEGIN \cs_if_exist:NF \__platex_original_shipout_execute_nohooks_cont: { \cs_new_eq:NN \__platex_original_shipout_execute_nohooks_cont: \__shipout_execute_nohooks_cont: } \cs_set:Npn \__shipout_execute_nohooks_cont: { \platex_if_box_yoko:NF \l__shipout_raw_box { \vbox_set:Nn \l__shipout_raw_box { \platex_direction_yoko: \box_use:N \l__shipout_raw_box } } \platex_if_direction_yoko:TF { \__platex_original_shipout_execute_nohooks_cont: }{ \vbox_set:Nn \l__platex_shipout_dummy_box { \platex_direction_yoko: \__platex_original_shipout_execute_nohooks_cont: } } } } %--- IF LEVEL 1 END \ExplSyntaxOff \fi %--- expl3 available END \renewcommand\@makefnmark{% \ifydir \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi} \ifx\@undefined\pltx@foot@penalty \newcount\pltx@foot@penalty \fi \pltx@foot@penalty\z@ \def\footnote{\inhibitglue \@ifnextchar[\@xfootnote{\stepcounter\@mpfn \protected@xdef\@thefnmark{\thempfn}% \@footnotemark\@footnotetext}} \def\footnotemark{\inhibitglue \@ifnextchar[\@xfootnotemark {\stepcounter{footnote}% \protected@xdef\@thefnmark{\thefootnote}% \@footnotemark}} \def\footnotetext{% \ifhmode\pltx@foot@penalty\lastpenalty\unpenalty\fi% \@ifnextchar [\@xfootnotenext {\protected@xdef\@thefnmark{\thempfn}% \@footnotetext}} \long\def\@footnotetext#1{% \ifydir\def\@tempa{\yoko}\else\def\@tempa{\tate}\fi \insert\footins{\@tempa% \reset@font\footnotesize \interlinepenalty\interfootnotelinepenalty \splittopskip\footnotesep \splitmaxdepth \dp\strutbox \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore \def\@currentcounter{footnote}% \protected@edef\@currentlabel{% \csname p@footnote\endcsname\@thefnmark }% \color@begingroup \@makefntext{% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% \par \color@endgroup}\ifhmode\null\fi \ifnum\pltx@foot@penalty=\z@\else \penalty\pltx@foot@penalty \pltx@foot@penalty\z@ \fi} \def\@footnotemark{\leavevmode \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi \ifydir\@makefnmark \else\hbox to\z@{\hskip-.25zw\raise.9zh\@makefnmark\hss}\fi \ifhmode\spacefactor\@x@sf\fi\relax} \def\@setref#1#2#3{% \ifx#1\relax \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% \@latex@warning{Reference `#3' on page \thepage \space undefined}% \else \expandafter#2#1\protect\@setref@{}% change \null to \protect\@setref@{} \fi} \def\@setref@{\ifhmode\spacefactor\@m\fi} \if@compatibility\else \def\verb{\relax\ifmmode\hbox\else\leavevmode\vadjust{}\fi \bgroup \verb@eol@error \let\do\@makeother \dospecials \verbatim@font\@noligs \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 \global\@nxttabmar \@hightab \fi \global\@curtabmar \@nxttabmar \global\@curtab \@curtabmar \global\setbox\@curline \hbox {}% \@startfield \strut\inhibitglue} \gdef\@stopfield{\null\color@endgroup\egroup} \newcommand\printglossary{\@input@{\jobname.gls}} \newcount\hour \newcount\minute \ifx\removejfmglue\@undefined \def\@tabclassz{% \ifcase\@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse\@acol \fi \edef\@preamble{% \@preamble{% \ifcase\@chnum \hfil\mbox{\inhibitglue\ignorespaces\@sharp\unskip}\hfil % c \or \hskip1sp\mbox{\inhibitglue\ignorespaces\@sharp\unskip}\hfil % l \or \hfil\hskip1sp\mbox{\inhibitglue\ignorespaces\@sharp\unskip}% % r \fi}}} \else \def\@tabclassz{% \ifcase\@lastchclass \@acolampacol \or \@ampacol \or \or \or \@addamp \or \@acolampacol \or \@firstampfalse\@acol \fi \edef\@preamble{% \@preamble{% \ifcase\@chnum \hfil\hskip1sp\inhibitglue \ignorespaces\@sharp\unskip\removejfmglue\hfil % c \or \hskip1sp\inhibitglue \ignorespaces\@sharp\unskip\removejfmglue\hfil % l \or \hfil\hskip1sp\inhibitglue \ignorespaces\@sharp\unskip\removejfmglue % r \fi}}} \fi \def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\pltx@next@inhibitglue\ignorespaces \@sharp\unskip\@endpbox}} \protected\def\pltx@next@inhibitglue{% \ifhmode\inhibitglue\else \edef\@tempa{\everypar{% \everypar{\unexpanded\expandafter{\the\everypar}}% \unexpanded\expandafter{\the\everypar}\inhibitglue}}% \@tempa\fi} \def\@tabular{\leavevmode \null\hbox \bgroup $\let\@acol\@tabacol \let\@classz\@tabclassz \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} \def\endtabular{\crcr\egroup\egroup $\egroup\null} \expandafter \let \csname endtabular*\endcsname = \endtabular \let\@parboxto\@empty \long\def\@iiiparbox#1#2[#3]#4#5{% \leavevmode \@pboxswfalse \setlength\@tempdima{#4}% \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% \ifx\relax#2\else \setlength\@tempdimb{#2}% \edef\@parboxto{to\the\@tempdimb}% \fi \if#1b\vbox \else\if #1t\vtop \else\ifmmode\vcenter \else\@pboxswtrue\null$\vcenter% !!! \fi\fi\fi \@parboxto{\let\hss\vss\let\unhbox\unvbox \csname bm@#3\endcsname}% \if@pboxsw \m@th$\null\fi% !!! \@end@tempboxa} \DeclareRobustCommand\underline[1]{% \relax \ifmmode\@@underline{#1}% \else \leavevmode\null$\@@underline{\hbox{#1}}\m@th$\null\relax\fi} \ifx\widowpenalties\@undefined \mathchardef\e@alloc@top=255 \let\e@alloc@chardef\chardef \else \ifx\omathchar\@undefined \mathchardef\e@alloc@top=32767 \let\e@alloc@chardef\mathchardef \else \omathchardef\e@alloc@top=65535 \let\e@alloc@chardef\omathchardef \fi \fi \let\float@count\e@alloc@top \ifx\omathchar\@undefined \chardef\e@mathgroup@top=16 % LaTeX2e kernel standard \else \mathchardef\e@mathgroup@top=256 % for e-pTeX FAM256 patched \fi \ifx\l@nohyphenation \@undefined \newlanguage\l@nohyphenation \fi \ifx\document@default@language \@undefined \let\document@default@language\m@ne \fi %% File: plvers.dtx \ifnum\pltx@newhook@avail=\z@ \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 \@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 %% %% End of file `plcore.ltx'.