\edef\ltj@latex@AtEnd{%
\endlinechar=\the\endlinechar
\relax}
-\endlinechar=-1 %
+\endlinechar\m@ne%
\def\luatexjalatexLoaded{\endinput}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ltj-latex}[2012/04/21 LuaLaTeX-ja]
+\ProvidesPackage{ltj-latex}[2020-10-09 LaTeX support of LuaTeX-ja]
-\def\ltj@pkgpatchlist{}
-\def\ltj@pkgpatch#1{
- \@ifpackageloaded{#1}{\usepackage{lltjp-#1}}{
- \@ifpackageloaded{filehook}{\AtEndOfPackageFile*{#1}{\usepackage{lltjp-#1}}}{}
- }
- \ifx\ltj@pkgpatchlist\@empty
- \gdef\ltj@pkgpatchlist{#1}
- \else
- \xdef\ltj@pkgpatchlist{\ltj@pkgpatchlist, #1}
- \fi
-}
-
-% similar to \ltj@pkgpatch, but this is used .sty which
-% can be reloaded inside the document by \input.
-\def\ltj@pkgpatchA#1{
- \@ifpackageloaded{#1}{\input{lltjp-#1.sty}}{
- \@ifpackageloaded{filehook}{\AtEndOfFile{#1.sty}{\input{lltjp-#1.sty}}}{}
- }
- \ifx\ltj@pkgpatchlist\@empty
- \gdef\ltj@pkgpatchlist{#1}
- \else
- \xdef\ltj@pkgpatchlist{\ltj@pkgpatchlist, #1}
- \fi
-}
+% cleanup at end of the document
+%\let\ltj@@orig@end=\@@end
+%\protected\def\@@end{%
+% \directlua{luatexja.ext_cleanup()}\ltj@@orig@end}
\endlinechar=13
+%%% LaTeX version detection
+\ifcsname tex_shipout:D\endcsname
+ \expandafter\let\csname tex_shipout:D\endcsname\ltj@shipout
+\fi
+\newif\ifltj@ltfilehook@avail
+\@ifl@t@r\fmtversion{2020-10-01}{%
+ \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi
+ \else\ltj@ltfilehook@availtrue\fi
+}{}
+
%%% patch for LaTeX
\usepackage{lltjfont}
\usepackage{lltjdefs}
\usepackage{lltjcore}
+\RequirePackage{lltjp-atbegshi}
-%%% default parameters
-\ltjsetparameter{kanjiskip=0pt plus 0.4pt minus 0.4pt,
- xkanjiskip=.25\zw plus 1pt minus 1pt,
- autospacing, autoxspacing, jacharrange={-1},
- yalbaselineshift=0pt, yjabaselineshift=0pt,
- jcharwidowpenalty=500, differentjfm=average
+%%% patching commands
+\ifltj@ltfilehook@avail
+ \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}}
+ \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}}
+ \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage}
+ \def\@@ltj@ExecuteAfterPackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}%
+ }
+ \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage}
+ \def\@@ltj@ExecuteBeforePackage@star#1#2{%
+ \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}%
+ }
+\else
+ \RequirePackage{filehook}
+ \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile
+ \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile
+\fi
+\def\ltj@pkgpatch@im#1{\@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%]
+\def\ltj@pkgpatch@im@#1[#2]{\ltj@ExecuteAfterPackage*{#1}{\ltj@pkgpatch@im@@{#2}}}
+\def\ltj@pkgpatch@im@@#1{%
+ \@ifpackageloaded{#1}{}{%
+ \if\catcode`@=11\let\ltj@temp\relax\else
+ \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter
+ \fi
+ \@@input{#1.\@pkgextension}\ltj@temp
+ }%
}
-\input luatexja-kinsoku.tex
+\def\ltj@pkgpatch#1{\@ifnextchar[{\ltj@pkgpatch@{#1}}{\ltj@pkgpatch@{#1}[lltjp-#1]}}%]
+\ifltj@ltfilehook@avail
+ \def\ltj@pkgpatch@@{\AddToHook{begindocument/before}[luatexja.autopatch]}
+\else
+ \def\ltj@pkgpatch@@{\gpreto\@begindocumenthook}
+\fi
+\def\ltj@pkgpatch@#1[#2]{%
+ \ltj@pkgpatch@@{%
+ \@ifpackageloaded{#1}{\@ifpackageloaded{#2}{}{\RequirePackage{#2}}}{}%
+ }%
+}
\expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
%%% patch for packages
-\IfFileExists{filehook.sty}{\usepackage{filehook}}{}
-\ltj@pkgpatch{listings}
-\ltj@pkgpatch{unicode-math}
-\ltj@pkgpatch{xunicode}
-\@ifpackageloaded{filehook}{}{%
- \@PackageWarningNoLine{ltj-latex}{
- LuaTeX-ja uses filehook package to apply patches to the following packages:\MessageBreak
- \ltj@pkgpatchlist.\MessageBreak
- But your TeX system does not have the filehook package.\MessageBreak
- Therefore problems may occur if you load the above packages after this message}%
-}
+\ltj@pkgpatch@im{listings}
+\ltj@pkgpatch{xunicode} %% at \begin{document}
+\ltj@pkgpatch@im{fontspec}
+\ltj@pkgpatch{footmisc} %% at \begin{document}
+\ltj@pkgpatch{tascmac}
+\ltj@pkgpatch{ascmac}[lltjp-tascmac]
+\ltj@pkgpatch@im{stfloats}
+\ifltj@ltfilehook@avail\else
+ \ltj@pkgpatch{preview} %% at \begin{document}
+ % (preview package has delayed option)
+\fi
+\ltj@pkgpatch{array} %% at \begin{document}
+\ltj@pkgpatch{collcell} %% at \begin{document}
+\ltj@pkgpatch@im{unicode-math}
+\ltj@pkgpatch@im{siunitx}
+\ltj@pkgpatch@im{microtype}
+
+\ifltj@ltfilehook@avail\else\ltj@pkgpatch@im{everyshi}\fi
+
+\RequirePackage{lltjp-geometry}
%%------------------ all done
\ltj@latex@AtEnd