summaryrefslogtreecommitdiff
path: root/language/japanese/plautopatch/plautopatch.sty
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-28 03:04:08 +0000
committerNorbert Preining <norbert@preining.info>2020-09-28 03:04:08 +0000
commit34310603e5253ef5742542e3f0123b341a70ee20 (patch)
tree51076d298e97a9c86619db3ada2af17e81c074d1 /language/japanese/plautopatch/plautopatch.sty
parentac0ae0fcbd5ee121e6b9134cced71d961e30ed68 (diff)
CTAN sync 202009280304
Diffstat (limited to 'language/japanese/plautopatch/plautopatch.sty')
-rw-r--r--language/japanese/plautopatch/plautopatch.sty75
1 files changed, 57 insertions, 18 deletions
diff --git a/language/japanese/plautopatch/plautopatch.sty b/language/japanese/plautopatch/plautopatch.sty
index 30707cb8b4..f77c4e0b8a 100644
--- a/language/japanese/plautopatch/plautopatch.sty
+++ b/language/japanese/plautopatch/plautopatch.sty
@@ -8,7 +8,7 @@
\NeedsTeXFormat{LaTeX2e}% not pLaTeX2e on purpose!
\ProvidesPackage{plautopatch}
- [2020/05/25 v0.9g Automated patches for pLaTeX/upLaTeX]
+ [2020/09/27 v0.9j Automated patches for pLaTeX/upLaTeX]
\ifx\pfmtname\@undefined
\PackageWarningNoLine{plautopatch}{%
@@ -23,7 +23,21 @@
\def\platpc@warn{\PackageWarningNoLine\platpc@pkgname}
\def\platpc@info{\PackageInfo\platpc@pkgname}
-\RequirePackage{filehook}
+%% Since LaTeX2e 2020-10-01, most of features in filehook.sty
+%% is available in ltfilehook.dtx.
+%% The new code defines \declare@file@substitution,
+%% so we can detect it!
+
+\ifx\declare@file@substitution\@undefined
+ % LaTeX2e 2020-02-02 PL5 or older
+ \RequirePackage{filehook}
+ \let\platpc@ExecuteAfterPackage=\AtEndOfPackageFile
+ \let\platpc@ExecuteBeforePackage=\AtBeginOfPackageFile
+\else
+ % LaTeX2e 2020-10-01 or newer
+ \def\platpc@ExecuteAfterPackage#1{\AddToHook{package/after/#1}}
+ \def\platpc@ExecuteBeforePackage#1{\AddToHook{package/before/#1}}
+\fi
% low-level helpers
@@ -67,7 +81,7 @@
\@ifpackageloaded{#1}{%
\csname platpc@end@#1\endcsname
}{%
- \AtEndOfPackageFile{#1}{\csname platpc@end@#1\endcsname}%
+ \platpc@ExecuteAfterPackage{#1}{\csname platpc@end@#1\endcsname}%
}%
}
\@onlypreamble\platpc@patch@after
@@ -84,16 +98,16 @@
\@ifpackageloaded{#2}{%
\csname platpc@end@#1+#2\endcsname
}{%
- \AtEndOfPackageFile{#2}{\csname platpc@end@#1+#2\endcsname}%
+ \platpc@ExecuteAfterPackage{#2}{\csname platpc@end@#1+#2\endcsname}%
}%
}{%
\@ifpackageloaded{#2}{%
- \AtEndOfPackageFile{#1}{\csname platpc@end@#1+#2\endcsname}%
+ \platpc@ExecuteAfterPackage{#1}{\csname platpc@end@#1+#2\endcsname}%
}{%
- \AtEndOfPackageFile{#1}{%
+ \platpc@ExecuteAfterPackage{#1}{%
\@ifpackageloaded{#2}{\csname platpc@end@#1+#2\endcsname}{}%
}%
- \AtEndOfPackageFile{#2}{%
+ \platpc@ExecuteAfterPackage{#2}{%
\@ifpackageloaded{#1}{\csname platpc@end@#1+#2\endcsname}{}%
}%
}%
@@ -119,13 +133,7 @@
% load the <patch> package
\RequirePackage{#2}\platpc@addtolist{#2}%
% avoid loading <orig> twice by discarding "\@@input <orig>" (*!)
- \let\platpc@filehook@@atbegin\filehook@@atbegin
- \def\filehook@@atbegin\@@input####1\filehook@atend{%
- \let\filehook@@atbegin\platpc@filehook@@atbegin
- % avoid infinite loop even when \AtEndOfPackageFile used
- \expandafter\let\csname filehook@atend@#1.sty\endcsname\relax
- \filehook@@atbegin
- \filehook@atend}%
+ \platpc@discard@input{#1}%
% all done
}%
}%
@@ -134,11 +142,30 @@
\@ifpackageloaded{#1}{%
\platpc@err@toolate{#1}%
}{% else
- \AtBeginOfPackageFile{#1}{\csname platpc@begin@#1\endcsname}%
+ \platpc@ExecuteBeforePackage{#1}{\csname platpc@begin@#1\endcsname}%
}%
}
\@onlypreamble\platpc@patch@before
+\ifx\declare@file@substitution\@undefined
+ % LaTeX2e 2020-02-02 PL5 or older
+ \def\platpc@discard@input#1{%
+ \let\platpc@filehook@@atbegin\filehook@@atbegin
+ \def\filehook@@atbegin\@@input##1\filehook@atend{%
+ \let\filehook@@atbegin\platpc@filehook@@atbegin
+ % avoid infinite loop even when \AtEndOfPackageFile used
+ \expandafter\let\csname filehook@atend@#1.sty\endcsname\relax
+ \filehook@@atbegin
+ \filehook@atend}}
+\else
+ % LaTeX2e 2020-10-01 or newer
+ \def\platpc@discard@input#1{%
+ \let\platpc@InputIfFileExists\InputIfFileExists
+ \def\InputIfFileExists##1##2##3{%
+ \let\InputIfFileExists\platpc@InputIfFileExists}}
+\fi
+\@onlypreamble\platpc@discard@input
+
% interface for users who want don't patches
%% \plautopatchdisable{<orig 1>,<orig 2>,...}
@@ -186,12 +213,24 @@
% --- in most cases, pxeverysel can be safely loaded even after everysel
% --- but it can fail when \AtBeginDocument{everysel} is involved
\platpc@patch@before{everysel}{pxeverysel}% platex-tools
-\platpc@patch@after{everyshi}{pxeveryshi}% platex-tools
-\platpc@patch@after{atbegshi}{pxatbegshi}% platex-tools
+% --- since LaTeX2e 2020-10-01, everyshi.sty is merely
+% --- an emulation by everyshi-ltx.sty from ltshipout.dtx,
+% --- which is supported by pLaTeX2e kernel natively
+\@ifl@t@r{\fmtversion}{2020/10/01}{}%
+ {\platpc@patch@after{everyshi}{pxeveryshi}}% platex-tools
+% --- since LaTeX2e 2020-10-01, atbegshi.sty is merely
+% --- an emulation by atbegshi-ltx.sty from ltshipout.dtx,
+% --- which is supported by pLaTeX2e kernel natively
+\@ifl@t@r{\fmtversion}{2020/10/01}{}%
+ {\platpc@patch@after{atbegshi}{pxatbegshi}}% platex-tools
\platpc@patch@before{ftnright}{pxftnright}% platex-tools
\platpc@patch@after{multicol}{pxmulticol}% platex-tools
\platpc@patch@after{xspace}{pxxspace}% platex-tools
\platpc@patch@after{textpos}{pxtextpos}% (maintained here!)
+% --- until LaTeX2e 2020-10-01, patching eso-pic automatically
+% --- is not supported by pxesopic
+\@ifl@t@r{\fmtversion}{2020/10/01}%
+ {\platpc@patch@before{eso-pic}{pxesopic}}{}% (maintained here!)
\platpc@patch@after{pdfpages}{pxpdfpages}% (maintained here!)
\platpc@patch@before{stfloats}{pxstfloats}% pxsttools -- (!!)
% --- in most cases, pxjahyper works without explicit options
@@ -213,6 +252,6 @@
% special case, mainly for problematic packages
% --- mdwtab forbids loading array
% --- so plarray should also be forbidden
-\AtEndOfPackageFile{mdwtab}{\@namedef{ver@plarray.sty}{}}
+\platpc@ExecuteAfterPackage{mdwtab}{\@namedef{ver@plarray.sty}{}}
\endinput