X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fltj-latex.sty;h=506adea2e79e45dbcd047b8d7ad4292979564e93;hb=33871cce0f86f9c403b0564df5bf9fe6344e59a1;hp=d4059c2e33b8abae686251bf4d6952333a8a273a;hpb=1a8013c2e2646f4c3bbfe8ee979cb6e615c20cb0;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-latex.sty b/src/ltj-latex.sty index d4059c2..506adea 100644 --- a/src/ltj-latex.sty +++ b/src/ltj-latex.sty @@ -8,64 +8,97 @@ \edef\ltj@latex@AtEnd{% \endlinechar=\the\endlinechar \relax} -\endlinechar=-1 % +\endlinechar\m@ne% \def\luatexjalatexLoaded{\endinput} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{ltj-latex}[2013/05/14 LaTeX support of LuaTeX-ja] +\ProvidesPackage{ltj-latex}[2020-10-09 LaTeX support of LuaTeX-ja] -% I (HK) don't know why the code below is not necessary. +% cleanup at end of the document %\let\ltj@@orig@end=\@@end -%\outer\protected\def\@@end{% -% \directlua{luatexja.direction.remove_end_whatsit()}\ltj@@orig@end} - -% Globally add to the head of a macro (cf. LaTeX2e's \g@addto@macro) -\long\def\ltj@g@addto@macro#1#2{ - \begingroup - \def\ltj@tmpa{#2} - \toks@\expandafter\expandafter\expandafter{\expandafter\ltj@tmpa#1} - \xdef#1{\the\toks@} - \endgroup} - -\def\ltj@AtBeginDocument{\ltj@g@addto@macro\@begindocumenthook} - -\def\ltj@pkgpatch#1{\ltj@AtBeginDocument{\@ifpackageloaded{#1}{\usepackage{lltjp-#1}}{}}} - -% similar to \ltj@pkgpatch, but this is used .sty which -% can be reloaded inside the document by \input. -\def\ltj@pkgpatchA#1{\ltj@AtBeginDocument{\@ifpackageloaded{#1}{\input{lltjp-#1.sty}}{}}} +%\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 -\directlua{ - local s = kpse.find_file('ltj-kinsoku.lua', 'tex') - luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {} +%%% 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 + }% } -\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=paverage +\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 -\ltj@pkgpatch{listings} -\ltj@pkgpatch{unicode-math} -\ltj@pkgpatch{xunicode} -\ltj@pkgpatch{fontspec} -\ltj@pkgpatch{stfloats} -\ltj@pkgpatch{footmisc} -\RequirePackage{lltjp-geometry} +\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