OSDN Git Service

more
[luatex-ja/luatexja.git] / src / ltj-latex.sty
1 %
2 % ltj-latex.sty
3 %
4
5 %! これは外から読まれない
6 %% Avoid multiple loading.
7 \csname luatexjalatexLoaded\endcsname
8 \edef\ltj@latex@AtEnd{%
9 \endlinechar=\the\endlinechar
10 \relax}
11 \endlinechar\m@ne%
12 \def\luatexjalatexLoaded{\endinput}
13
14 \NeedsTeXFormat{LaTeX2e}
15 \ProvidesPackage{ltj-latex}[2020-08-03 LaTeX support of LuaTeX-ja]
16
17 % cleanup at end of the document
18 %\let\ltj@@orig@end=\@@end
19 %\protected\def\@@end{%
20 %  \directlua{luatexja.ext_cleanup()}\ltj@@orig@end}
21
22 \endlinechar=13
23
24 %%% patch for LaTeX
25 \usepackage{lltjfont}
26 \usepackage{lltjdefs}
27 \usepackage{lltjcore}
28
29 %%% patching commands
30 \newif\ifltj@ltfilehook@avail
31 \@ifl@t@r\fmtversion{2020-10-01}{%
32   \ifnum\patch@level<0\relax \ifnum\patch@level<-6 \ltj@ltfilehook@availtrue\fi
33   \else\ltj@ltfilehook@availtrue\fi
34 }{}
35 \ifltj@ltfilehook@avail
36   \def\@@ltj@ExecuteAfterPackage#1{\AddToHook{package/after/#1}}
37   \def\@@ltj@ExecuteBeforePackage#1{\AddToHook{package/before/#1}}
38   \def\ltj@ExecuteAfterPackage{\@ifstar\@@ltj@ExecuteAfterPackage@star\@@ltj@ExecuteAfterPackage}
39   \def\@@ltj@ExecuteAfterPackage@star#1#2{%
40     \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteAfterPackage{#1}{#2}}%
41   }
42   \def\ltj@ExecuteBeforePackage{\@ifstar\@@ltj@ExecuteBeforePackage@star\@@ltj@ExecuteBeforePackage}
43   \def\@@ltj@ExecuteBeforePackage@star#1#2{%
44     \@ifpackageloaded{#1}{#2}{\@@ltj@ExecuteBeforePackage{#1}{#2}}%
45   }
46 \else
47   \RequirePackage{filehook}
48   \let\ltj@ExecuteAfterPackage=\AtEndOfPackageFile
49   \let\ltj@ExecuteBeforePackage=\AtBeginOfPackageFile
50 \fi
51 \def\ltj@pkgpatch@im#1{\@ifnextchar[{\ltj@pkgpatch@im@{#1}}{\ltj@pkgpatch@im@{#1}[lltjp-#1]}}%]
52 \def\ltj@pkgpatch@im@#1[#2]{\ltj@ExecuteAfterPackage*{#1}{\ltj@pkgpatch@im@@{#2}}}
53 \def\ltj@pkgpatch@im@@#1{%
54   \@ifpackageloaded{#1}{}{%
55     \if\catcode`@=11\let\ltj@temp\relax\else
56       \edef\ltj@temp{\noexpand\catcode`@=\the\catcode`@\relax}\makeatletter
57     \fi
58     \@@input{#1.\@pkgextension}\ltj@temp
59   }%
60 }
61
62 \def\ltj@pkgpatch#1{\@ifnextchar[{\ltj@pkgpatch@{#1}}{\ltj@pkgpatch@{#1}[lltjp-#1]}}%]
63 \ifltj@ltfilehook@avail
64   \def\ltj@pkgpatch@@{\AddToHook{env/document/before}[luatexja.autopatch]}
65 \else
66   \def\ltj@pkgpatch@@{\gpreto\@begindocumenthook}
67 \fi
68 \def\ltj@pkgpatch@#1[#2]{%
69   \ltj@pkgpatch@@{%
70     \@ifpackageloaded{#1}{\@ifpackageloaded{#2}{}{\RequirePackage{#2}}}{}%
71   }%
72 }
73
74 %%% default parameters
75 \directlua{
76   local s = kpse.find_file('ltj-kinsoku.lua', 'tex')
77   luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {}
78 }
79
80 \ltjsetparameter{kanjiskip=\z@ plus .4pt minus .5pt,
81   xkanjiskip=.25\zw plus 1pt minus 1pt,
82   autospacing, autoxspacing, jacharrange={-1},
83   yalbaselineshift=\z@, yjabaselineshift=\z@,
84   jcharwidowpenalty=500, differentjfm=paverage
85 }
86
87 \expandafter\let\csname JY3/mc/m/n/10\endcsname\relax
88
89 %%% patch for packages
90 \ltj@pkgpatch@im{listings}
91 \ltj@pkgpatch{xunicode}  %% at \begin{document}
92 \ltj@pkgpatch@im{fontspec}
93 \ltj@pkgpatch{footmisc}  %% at \begin{document}
94 \ltj@pkgpatch{tascmac}
95 \ltj@pkgpatch{ascmac}[lltjp-tascmac]
96 \ltj@pkgpatch@im{stfloats}
97 \ltj@pkgpatch{preview}  %% at \begin{document}
98   % (preview package has delayed option)
99 \ltj@pkgpatch{array}    %% at \begin{document}
100 \ltj@pkgpatch{collcell} %% at \begin{document}
101 \ltj@pkgpatch@im{unicode-math}
102 \ltj@pkgpatch@im{siunitx}
103 \ltj@pkgpatch@im{microtype}
104 \ltj@pkgpatch@im{everyshi}
105
106 \RequirePackage{lltjp-geometry}
107
108 %%------------------ all done
109 \ltj@latex@AtEnd
110 \endinput
111 %% EOF