summaryrefslogtreecommitdiff
path: root/language/japanese/jlreq/jlreq.cls
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-11-05 03:01:04 +0000
committerNorbert Preining <norbert@preining.info>2021-11-05 03:01:04 +0000
commitc628b1aa9cf528de739c1de45acf3739561619ed (patch)
tree07c7fadd26f7d7fb71c242459b79759c42e71274 /language/japanese/jlreq/jlreq.cls
parente9894be38f76d67f7c8b8e5d16f16e8b14b96f40 (diff)
CTAN sync 202111050301
Diffstat (limited to 'language/japanese/jlreq/jlreq.cls')
-rw-r--r--language/japanese/jlreq/jlreq.cls284
1 files changed, 174 insertions, 110 deletions
diff --git a/language/japanese/jlreq/jlreq.cls b/language/japanese/jlreq/jlreq.cls
index bd208994b0..a06ad633fc 100644
--- a/language/japanese/jlreq/jlreq.cls
+++ b/language/japanese/jlreq/jlreq.cls
@@ -5,9 +5,9 @@
%%
% (based on JLReq 20200811 https://www.w3.org/TR/2020/NOTE-jlreq-20200811/)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2021/10/09 jlreq]
+\ProvidesClass{jlreq}[2021/11/05 jlreq]
\RequirePackage{l3keys2e}
-\RequirePackage{ifthen}
+\RequirePackage{etoolbox}
\RequirePackage{jlreq-helpers}
\ExplSyntaxOn
@@ -105,7 +105,10 @@
\tl_gput_right:Nn \g__jlreq_papersizelist_tl { { ##1 } { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} } }
}
\clist_map_inline:nn {#2} {
- \keys_define:nn { jlreq } { ##1 .code:n = { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} } }
+ \keys_define:nn { jlreq } {
+ ##1 .code:n = { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} },
+ ##1 .value_forbidden:n = true
+ }
}
}
\keys_define:nn { jlreq } {
@@ -123,50 +126,142 @@
}
}
+\cs_set:Nn \__jlreq_addpapersize_withwarning:nnnn {
+ \exp_args:Nnnv \__jlreq_addpapersize_withwarning_aux:nnnn {#1}{#2}{jlreq@helper@papersizelist@#3}{#4}
+}
+\cs_set:Nn \__jlreq_addpapersize_withwarning_aux:nnnn {
+ \__jlreq_addpapersize_withwarning_auxi:nnnnn {#1}{#2}#3{#4}
+}
+\cs_set:Nn \__jlreq_addpapersize_withwarning_auxi:nnnnn {
+ \cs_set:Nn \l__jlreq_tmpa:n {
+ \ClassWarningNoLine{jlreq}{#5}
+ }
+ \clist_map_inline:nn {#1} {
+ \tl_gput_right:Nx \g__jlreq_papersizelist_tl { { ##1 } {
+ \exp_not:o { \l__jlreq_tmpa:n {##1} }
+ \exp_not:n { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} }
+ } }
+ }
+ \clist_map_inline:nn {#2} {
+ \cs_set:Nx \l__jlreq_do: {
+ \exp_not:N \keys_define:nn { jlreq } {
+ ##1 .code:n = {
+ \exp_not:o { \l__jlreq_tmpa:n {##1} }
+ \exp_not:n { \setlength{\paperwidth}{#3} \setlength{\paperheight}{#4} }
+ },
+ ##1 .value_forbidden:n = true
+ }
+ }
+ \l__jlreq_do:
+ }
+}
+
+\tl_set:Nn \g__jlreq_papersizechangeddate_tl{2021-11-05}
+\cs_set:Nn \__jlreq_addpapersize_withjisBwarning:nnnn {
+ \__jlreq_addpapersize_withwarning:nnnn {#1} {#2} {#3} {The~option~`##1'~means~the~papersize~in~the~ISO~B-series,~not~in~the~JIS~B-series.~This~behavior~was~changed~from~jlreq~version~\g__jlreq_papersizechangeddate_tl.~Use~`paper=#4'~for~the~JIS-B-series.}
+}
+
\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize:nnn
\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_aux:nnn
\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_auxi:nnnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning:nnnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning_aux:nnnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withwarning_auxi:nnnnn
+\__jlreq_aftercls_addtodeletecs:N \__jlreq_addpapersize_withjisBwarning:nnnn
\__jlreq_aftercls_addtodeletecs:N \g__jlreq_papersizelist_tl
% 紙サイズ一覧.b*はJIS B.
-\__jlreq_addpapersize:nnn{a0,A0}{}{a0}
-\__jlreq_addpapersize:nnn{a1,A1}{}{a1}
-\__jlreq_addpapersize:nnn{a2,A2}{}{a2}
-\__jlreq_addpapersize:nnn{a3,A3}{a3paper}{a3}
-\__jlreq_addpapersize:nnn{a4,A4}{a4paper}{a4}
-\__jlreq_addpapersize:nnn{a5,A5}{a5paper}{a5}
-\__jlreq_addpapersize:nnn{a6,A6}{a6paper}{a6}
-\__jlreq_addpapersize:nnn{a7,A7}{}{a7}
-\__jlreq_addpapersize:nnn{a8,A8}{}{a8}
-\__jlreq_addpapersize:nnn{a9,A9}{}{a9}
-\__jlreq_addpapersize:nnn{a10,A10}{}{a10}
-
-\__jlreq_addpapersize:nnn{b0,B0}{}{b0}
-\__jlreq_addpapersize:nnn{b1,B1}{}{b1}
-\__jlreq_addpapersize:nnn{b2,B2}{}{b2}
-\__jlreq_addpapersize:nnn{b3,B3}{}{b3}
-\__jlreq_addpapersize:nnn{b4,B4}{b4paper}{b4}
-\__jlreq_addpapersize:nnn{b5,B5}{b5paper}{b5}
-\__jlreq_addpapersize:nnn{b6,B6}{b6paper}{b6}
-\__jlreq_addpapersize:nnn{b7,B7}{}{b7}
-\__jlreq_addpapersize:nnn{b8,B8}{}{b8}
-\__jlreq_addpapersize:nnn{b9,B9}{}{b9}
-\__jlreq_addpapersize:nnn{b10,B10}{}{b10}
-
-\__jlreq_addpapersize:nnn{c2,C2}{}{c2}
-\__jlreq_addpapersize:nnn{c3,C3}{}{c3}
-\__jlreq_addpapersize:nnn{c4,C4}{}{c4}
-\__jlreq_addpapersize:nnn{c5,C5}{}{c5}
-\__jlreq_addpapersize:nnn{c6,C6}{}{c6}
-\__jlreq_addpapersize:nnn{c7,C7}{}{c7}
-\__jlreq_addpapersize:nnn{c8,C8}{}{c8}
+\__jlreq_addpapersize:nnn{a0paper}{}{a0paper}
+\__jlreq_addpapersize:nnn{a1paper}{}{a1paper}
+\__jlreq_addpapersize:nnn{a2paper}{}{a2paper}
+\__jlreq_addpapersize:nnn{a3paper}{a3paper}{a3paper}
+\__jlreq_addpapersize:nnn{a4paper}{a4paper}{a4paper}
+\__jlreq_addpapersize:nnn{a5paper}{a5paper}{a5paper}
+\__jlreq_addpapersize:nnn{a6paper}{a6paper}{a6paper}
+\__jlreq_addpapersize:nnn{a7paper}{}{a7paper}
+\__jlreq_addpapersize:nnn{a8paper}{}{a8paper}
+\__jlreq_addpapersize:nnn{a9paper}{}{a9paper}
+\__jlreq_addpapersize:nnn{a10paper}{}{a10paper}
+
+\__jlreq_addpapersize:nnn{a0,A0}{}{a0paper}
+\__jlreq_addpapersize:nnn{a1,A1}{}{a1paper}
+\__jlreq_addpapersize:nnn{a2,A2}{}{a2paper}
+\__jlreq_addpapersize:nnn{a3,A3}{}{a3paper}
+\__jlreq_addpapersize:nnn{a4,A4}{}{a4paper}
+\__jlreq_addpapersize:nnn{a5,A5}{}{a5paper}
+\__jlreq_addpapersize:nnn{a6,A6}{}{a6paper}
+\__jlreq_addpapersize:nnn{a7,A7}{}{a7paper}
+\__jlreq_addpapersize:nnn{a8,A8}{}{a8paper}
+\__jlreq_addpapersize:nnn{a9,A9}{}{a9paper}
+\__jlreq_addpapersize:nnn{a10,A10}{}{a10paper}
+
+\__jlreq_addpapersize:nnn{b0paper}{}{b0paper}
+\__jlreq_addpapersize:nnn{b1paper}{}{b1paper}
+\__jlreq_addpapersize:nnn{b2paper}{}{b2paper}
+\__jlreq_addpapersize:nnn{b3paper}{}{b3paper}
+\__jlreq_addpapersize:nnn{b4paper}{}{b4paper}
+\__jlreq_addpapersize:nnn{b5paper}{}{b5paper}
+\__jlreq_addpapersize:nnn{b6paper}{}{b6paper}
+\__jlreq_addpapersize:nnn{b7paper}{}{b7paper}
+\__jlreq_addpapersize:nnn{b8paper}{}{b8paper}
+\__jlreq_addpapersize:nnn{b9paper}{}{b9paper}
+\__jlreq_addpapersize:nnn{b10paper}{}{b10paper}
+
+\__jlreq_addpapersize:nnn{c2paper}{}{c2paper}
+\__jlreq_addpapersize:nnn{c3paper}{}{c3paper}
+\__jlreq_addpapersize:nnn{c4paper}{}{c4paper}
+\__jlreq_addpapersize:nnn{c5paper}{}{c5paper}
+\__jlreq_addpapersize:nnn{c6paper}{}{c6paper}
+\__jlreq_addpapersize:nnn{c7paper}{}{c7paper}
+\__jlreq_addpapersize:nnn{c8paper}{}{c8paper}
+
+\__jlreq_addpapersize:nnn{c2,C2}{}{c2paper}
+\__jlreq_addpapersize:nnn{c3,C3}{}{c3paper}
+\__jlreq_addpapersize:nnn{c4,C4}{}{c4paper}
+\__jlreq_addpapersize:nnn{c5,C5}{}{c5paper}
+\__jlreq_addpapersize:nnn{c6,C6}{}{c6paper}
+\__jlreq_addpapersize:nnn{c7,C7}{}{c7paper}
+\__jlreq_addpapersize:nnn{c8,C8}{}{c8paper}
+
+\__jlreq_addpapersize_withjisBwarning:nnnn{b0,B0}{}{b0paper}{b0j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b1,B1}{}{b1paper}{b1j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b2,B2}{}{b2paper}{b2j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b3,B3}{}{b3paper}{b3j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b4,B4}{}{b4paper}{b4j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b5,B5}{}{b5paper}{b5j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b6,B6}{}{b6paper}{b6j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b7,B7}{}{b7paper}{b7j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b8,B8}{}{b8paper}{b8j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b9,B9}{}{b9paper}{b9j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{b10,B10}{}{b10paper}{b10j}
+
+\__jlreq_addpapersize_withjisBwarning:nnnn{}{b4paper}{b4paper}{b4j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{}{b5paper}{b5paper}{b5j}
+\__jlreq_addpapersize_withjisBwarning:nnnn{}{b6paper}{b6paper}{b6j}
+
+\__jlreq_addpapersize:nnn{b0j}{}{b0j}
+\__jlreq_addpapersize:nnn{b1j}{}{b1j}
+\__jlreq_addpapersize:nnn{b2j}{}{b2j}
+\__jlreq_addpapersize:nnn{b3j}{}{b3j}
+\__jlreq_addpapersize:nnn{b4j}{}{b4j}
+\__jlreq_addpapersize:nnn{b5j}{}{b5j}
+\__jlreq_addpapersize:nnn{b6j}{}{b6j}
+\__jlreq_addpapersize:nnn{b7j}{}{b7j}
+\__jlreq_addpapersize:nnn{b8j}{}{b8j}
+\__jlreq_addpapersize:nnn{b9j}{}{b9j}
+\__jlreq_addpapersize:nnn{b10j}{}{b10j}
\__jlreq_addpapersize:nnn{a4var}{}{a4var}
\__jlreq_addpapersize:nnn{b5var}{}{b5var}
-\__jlreq_addpapersize:nnn{letter}{letterpaper}{letter}
-\__jlreq_addpapersize:nnn{legal}{legalpaper}{legal}
-\__jlreq_addpapersize:nnn{executive}{executivepaper}{executive}
+\__jlreq_addpapersize:nnn{letter,letterpaper}{letterpaper}{letterpaper}
+\__jlreq_addpapersize:nnn{legal,legalpaper}{legalpaper}{legalpaper}
+\__jlreq_addpapersize:nnn{executive,executivepaper}{executivepaper}{executivepaper}
+\__jlreq_addpapersize:nnn{ansiapaper}{}{ansiapaper}
+\__jlreq_addpapersize:nnn{ansibpaper}{}{ansibpaper}
+\__jlreq_addpapersize:nnn{ansicpaper}{}{ansicpaper}
+\__jlreq_addpapersize:nnn{ansidpaper}{}{ansidpaper}
+\__jlreq_addpapersize:nnn{ansiepaper}{}{ansiepaper}
\__jlreq_addpapersize:nnn{hagaki}{}{hagaki}
@@ -978,35 +1073,6 @@
\__jlreq_setprebreakpenalty:Vn \jlreq@charlist@inseparablecharacters {10000}
% ¥100とか70%とか……
-%.. 文字範囲
-\ifx u\jlreq@engine
- % \kcatcodeの設定
- \cs_set:Nn \__jlreq_setkcatcode:nn {
- \clist_map_inline:nn {#1} { \kcatcode"##1=#2\relax }
- }
- \__jlreq_aftercls_addtodeletecs:N \__jlreq_setkcatcode:nn
- % LuaTeX-jaのデフォルトのままに近い設定をする
- % 範囲1&8
- \__jlreq_setkcatcode:nn {80} {15} % Latin-1 Supplement,どうしよう……
- \__jlreq_setkcatcode:nn {100,180,250,2B0,300,1E00} {15}
- % 範囲2
- \__jlreq_setkcatcode:nn {370,400,1F00} {18}
- % 範囲3
- \__jlreq_setkcatcode:nn {2000,2070,20A0,20D0,2100,2150,2190,2200,2300,2400,2500,2580,25A0,2600,2700,2900,2980,2B00} {18}
- % 範囲4
- \__jlreq_setkcatcode:nn {500,530,590,600,700,750,780,7C0,800,840,8A0,900,980,A00,A80,B00,B80,C00,C80,D00,D80,E00,E80,F00,1000,10A0,1200,1380,13A0,1400,1680,16A0,1700,1720,1740,1760,1780,1800,18B0,1900,1950,1980,19E0,1A00,1A20,1AB0,1B00,1B80,1BC0,1C00,1C50,1C80,1CC0,1CD0,1D00,1D80,1DC0,2400,2440,27C0,27F0,2800,2A00,2C00,4DC0,A4D0,A500,A640,A6A0,A700,A720,A800,A840,A880,A8E0,A900,A930,A960,A980,A9E0,AA00,AA60,AA80,AAE0,AB00,AB30,AB70,ABC0,FB00,FB50,FE00,FE20,FE70,10000,10080,10100,10140,10190,101D0,10280,102A0,102E0,10300,10330,10350,10380,103A0,10400,10450,10480,104B0,10500,10530,10600,10800,10840,10860,10880,108E0,10900,10920,10980,109A0,10A00,10A60,10A80,10AC0,10B00,10B40,10B60,10B80,10C00,10C80,10E60,11000,11080,110D0,11100,11150,11180,111E0,11200,11280,112B0,11300,11400,11480,11580,11600,11660,11680,11700,118A0,11AC0,11C00,11C70,12000,12400,12480,13000,14400,16800,16A40,16AD0,16B00,16F00,16FE0,17000,18800,1B000,1BC00,1BCA0,1D000,1D100,1D200,1D300,1D360,1D400,1D800,1E000,1E800,1E900,1EE00,1F000,1F030,1F0A0,1F100,1F200,1F300,1F600,1F650,1F680,1F700,1F780,1F800,1F900,E000} {15}
- % 範囲5(Variation Selectors SupplementはLuaTeX-jaではE01F0--E01EFまで範囲5,他は範囲6)
- \__jlreq_setkcatcode:nn {D800,DB80,DC00,E0000,F0000,100000} {15}
- % 範囲6
- \__jlreq_setkcatcode:nn {3040,30A0,31F0} {17} % Hiragana,Katakana,Katakana Phonetic Extensions
- \__jlreq_setkcatcode:nn {2460,3000,3200,3300,FE10,FE30,FE50,E0100} {18} % Enclosed Alphanumerics,CJK Symbols and Punctuation,Enclosed CJK Letters and Months,CJK Compatibility,Vertical Forms,CJK Compatibility Forms,Small Form Variants,Variation Selectors Supplement
- \__jlreq_setkcatcode:nn {2E80,3190,3400,4E00,F900,20000} {16}
- % 範囲7
- \__jlreq_setkcatcode:nn {A000,A490} {18} % Yi Syllables,Yi Radicals
- \__jlreq_setkcatcode:nn {1100,3130,AC00,D7B0} {19} % Hangul Jamo,Hangul Compatibility Jamo,Hangul Syllables,Hangul Jamo Extended-B
- \__jlreq_setkcatcode:nn {2F00,2FF0,3100,31A0,31C0,A830} {16}
-\fi
-
%.. フォント
\RequirePackage{lmodern}
@@ -1151,11 +1217,18 @@
\emergencystretch 3\jlreq@gol
\setlength{\parindent}{1\zw}
-\hook_gput_code:nnn { cmd/set@fontsize/after } {.} {
+\newcommand{\jlreqparindent}{1\zw}
+\apptocmd\set@fontsize {
\expandafter\def\expandafter\size@update\expandafter{\size@update\g__jlreq_setfontsizehook_tl}
+}{}{
+ \ClassWarningNoLine { jlreq } { `\string\apptocmd`~to~`\string\size@update`~failed,~maybe~a~bug}
}
\tl_new:N \g__jlreq_setfontsizehook_tl
-\tl_set:Nn \g__jlreq_setfontsizehook_tl { \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{1\jlreq@zw} } }
+\tl_set:Nn \g__jlreq_setfontsizehook_tl {
+ \tl_if_empty:VF \jlreqparindent {
+ \dim_compare:nT { \parindent>0pt } { \setlength{\parindent}{\jlreqparindent} }
+ }
+}
\ifx l\jlreq@engine
\@tempskipa=\ltjgetparameter{kanjiskip}
\ifdim\@tempskipa=\maxdimen\else
@@ -1613,7 +1686,7 @@
% デフォルトでは\<命令名>markと\addcontentslineが必要ならば呼ばれる.
% 見出しの直前に実行される
-\NewHook{./heading/before}
+\cs_new:Nn \g__jlreq_hook_beforeheading:n {}
% 見出し名一覧を格納する
\seq_new:N \l__jlreq_heading_allheadings_seq
% 目次を出力する命令\l@<命令名>を作る命令を作る.{1 = 命令名}{2 = レベル}{3 = ラベルのフォーマット}
@@ -1668,7 +1741,6 @@
%.. 中/半扉見出し
% addcontentslineに渡すやつ:番号出すのと出さないの
\NewDocumentCommand{\DeclareTobiraHeading}{ m m +m } {
- \ProvideHook{jlreq/heading/before/#1}
\seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
\seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
\expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}%
@@ -1747,8 +1819,7 @@
\ifx\jlreq@pagestyle\@empty\else\noexpand\thispagestyle{\exp_not:o {\jlreq@pagestyle}}\fi
\noexpand\secdef{\exp_not:c {jlreq@TobiraHeading@start@#1}}{\exp_not:c {jlreq@TobiraHeading@start@s@#1}}}%
\noexpand\def\exp_not:c {#1}{%
- \noexpand\UseHook{jlreq/heading/before}%
- \noexpand\UseHook{jlreq/heading/before/#1}%
+ \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
\exp_not:c {jlreq@headingcs@#1}%
}%
}%
@@ -2125,12 +2196,18 @@
\jlreq@ifgluezero\jlreq@tempskipb{}{\vskip\jlreq@tempskipb}%
\edef\jlreq@do{%
\dim_compare:nF { \parskip=0pt } {
- \noexpand\AddToHookNext{para/before}{\noexpand\parskip=\the\parskip\noexpand\relax}%
+ \exp_not:N \cs_set:Nn \exp_not:N \g__jlreq_gyodori_hook_par: {
+ \noexpand\parskip=\the\parskip\noexpand\relax
+ \exp_not:n { \cs_set:Nn \g__jlreq_gyodori_hook_par: {} }
+ }
\noexpand\parskip=0pt
}
}%
\expandafter}\jlreq@do
}
+\cs_set:Nn \g__jlreq_gyodori_hook_par: {}
+\PushPostHook{par}{\g__jlreq_gyodori_hook_par:}
+
% 行取り情報をゲットだぜ
% \jlreq@resultに{1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}を入れる
@@ -2184,7 +2261,6 @@
% \DeclareBlockHeading{命令名}{レベル}{設定}
\seq_new:N \l__jlreq_BlockHeading_allheadings_seq
\NewDocumentCommand {\DeclareBlockHeading} { m m +m } {
- \ProvideHook{jlreq/heading/before/#1}
\def\jlreq@do{\@removeelement{#1}}%
\seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
\seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
@@ -2416,8 +2492,7 @@
\edef\jlreq@do{%
\exp_not:o {\jlreq@do}%
\noexpand\edef\exp_not:c {jlreq@headingcs@#1}{\noexpand\unexpanded{%
- \noexpand\UseHook{jlreq/heading/before}%
- \noexpand\UseHook{jlreq/heading/before/#1}%
+ \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
\exp_not:o {\jlreq@pagebreak}%
\tl_if_empty:NF \l__jlreq_pagestyle_tl { \exp_not:N \thispagestyle {\exp_not:o { \l__jlreq_pagestyle_tl } } }
\unexpanded{\jlreq@BlockHeading@start{#1}{#2}}%
@@ -2802,7 +2877,6 @@
\__jlreq_declare_runin_heading:nnn {#1} {#2} {#3}
}
\cs_set:Nn \__jlreq_declare_runin_heading:nnn {
- \hook_provide:n { jlreq/heading/before/#1 }
\def\jlreq@do{\@removeelement{#1}}%
\seq_put_right:Nn \l__jlreq_heading_allheadings_seq {#1}
\seq_remove_duplicates:N \l__jlreq_heading_allheadings_seq
@@ -2861,8 +2935,7 @@
% パラメータトークンを含むので,\edefして\unexpandedで包む
\noexpand\edef\exp_not:c {#1}{%
\noexpand\unexpanded{%
- \exp_not:N \UseHook{jlreq/heading/before}%
- \exp_not:N \UseHook{jlreq/heading/before/#1}
+ \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
\exp_not:n {\jlreq@RuninHeading@start{#1}{#2}}
{\bool_if:NF \l__jlreq_number_bool {-}}
{\exp_not:o {\l__jlreq_label_format_tl}}
@@ -2960,7 +3033,6 @@
}
\NewDocumentCommand{\DeclareCutinHeading}{ m m +m }{
- \hook_provide:n { jlreq/heading/before/#1 }
\expandafter\def\csname jlreq@heading@level@#1\endcsname{#2}
\expandafter\def\csname jlreq@heading@setting@#1\endcsname{#3}
\expandafter\def\csname jlreq@heading@type@#1\endcsname{\RenewCutinHeading}
@@ -2985,8 +3057,7 @@
}{}%
\cs_set:Nx \l__jlreq_do: {
\exp_not:N \DeclareDocumentCommand \exp_not:c {#1} {m} {
- \exp_not:N \UseHook{jlreq/heading/before}%
- \exp_not:N \UseHook{jlreq/heading/before/#1}%
+ \exp_not:N \g__jlreq_hook_beforeheading:n {#1}
\exp_not:N \__jlreq_CutinHeading_start:nnnnnnn{#1}{\exp_not:o \l__jlreq_fontcommand_tl}{\exp_not:o \l__jlreq_indent_tl}{\exp_not:o \l__jlreq_after_space_tl}{\exp_not:o \l__jlreq_onelinemax_tl}{\exp_not:o \l__jlreq_twolinemax_tl}{####1}
}
}
@@ -3411,23 +3482,15 @@
\def\jlreq@endnote@texts{}
\long\def\jlreq@endnote@addtext#1#2{\tl_gput_right:Nx \jlreq@endnote@texts { \exp_not:n {{{#1}{#2}}} } }
% \endnote自身は後で定義する
-\NewHook{cmd/endnote/before}
-\NewHook{cmd/endnote/after}
-\NewHook{cmd/endnotemark/before}
-\NewHook{cmd/endnotemark/after}
\NewDocumentCommand { \endnotemark }{ O{} } {
\jlreq@hook@prenote
- \UseHook{cmd/endnote/before}
\jlreq@endnotemark{#1}
- \UseHook{cmd/endnote/after}
\jlreq@hook@postnote
}
\NewDocumentCommand { \endnotetext } { O{} +m } { \jlreq@endnotetext{#1}{#2} }
\long\def\jlreq@endnote#1#2{
\jlreq@hook@prenote
- \UseHook{ cmd/endnote/before }
\jlreq@endnotemark{#1}\@endnotetext{#2}
- \UseHook{ cmd/endnote/after }
\jlreq@hook@postnote
}
\def\jlreq@endnotemark#1{%
@@ -3517,11 +3580,13 @@
}
\let\@makeendmark=\@makefnmark
+\cs_new:Nn \g__jlreq_endnote_hook_beforeheading:n {}
+\apptocmd \g__jlreq_hook_beforeheading:n { \g__jlreq_endnote_hook_beforeheading:n {#1} }{}{
+ \ClassWarningNoLine { jlreq } { `\string\apptocmd`~to~`\string\g__jlreq_hook_beforeheading:n`~failed,~maybe~a~bug}
+}
% \theendnoteの出力を仕込む
\keys_define:nn { jlreqsetup } {
endnote_position .code:n = {
- \AddToHook{jlreq/heading/before}[jlreq/endnote]{}
- \RemoveFromHook{jlreq/heading/before}[jlreq/endnote]
\jlreq@tempafalse % headingsが指定された
\jlreq@tempbfalse % paragraphが指定された
% \jlreq@tempcにセクション名たちを入れていく
@@ -3545,7 +3610,7 @@
\ifjlreq@tempb
\DeclareDocumentCommand { \endnote } { O{} +m } {
- \AddToHookNext { para/after } { \theendnotes }
+ \def\par{\@restorepar\theendnotes\par}
\jlreq@endnote{##1}{##2}
}
\else
@@ -3555,15 +3620,17 @@
\fi
\ifjlreq@tempa
- \AddToHook{jlreq/heading/before}[jlreq/endnote]{\theendnotes}
+ \cs_set:Nn \g__jlreq_endnote_hook_beforeheading:n {\theendnotes}
\else
- \seq_map_variable:NNn \l_jlreq_tmpa_seq \@tempa {
- \tl_if_empty:VF \@tempa {
- \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{}
- \RemoveFromHook{jlreq/heading/before/\@tempa}[jlreq/endnote]
- \AddToHook{jlreq/heading/before/\@tempa}[jlreq/endnote]{\theendnotes}
+ \tl_set:Nn \l__jlreq_tmpa_tl {}
+ \seq_map_inline:Nn \l_jlreq_tmpa_seq {
+ \tl_if_empty:nF {##1} {
+ \tl_put_right:Nn \l__jlreq_tmpa_tl { {##1} {\theendnotes} }
}
}
+ \cs_set:Nx \g__jlreq_endnote_hook_beforeheading:n {
+ \exp_not:N \str_case:nn { ##1 } { \exp_not:o { \l__jlreq_tmpa_tl } }
+ }
\fi
}
}
@@ -3579,10 +3646,6 @@
% (2) では\sidenote{見出し}{注中身}を定義
% sidenote_length>0ptの時のみ定義する
\dim_compare:nT { \jlreq@sidenote@length > 0pt } {
- \ProvideHook{ cmd/sidenote/before }
- \ProvideHook{ cmd/sidenote/after }
- \ProvideHook{ cmd/sidenotemark/before }
- \ProvideHook{ cmd/sidenotemark/after }
\def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名
\long\def\@sidenotetext#1{%
\marginpar{\reset@font\footnotesize
@@ -3600,14 +3663,14 @@
\__jlreq_jlreqsetup_addtofinally:n {
\str_if_eq:VnT \jlreq@sidenote@type { number } {
\DeclareDocumentCommand { \sidenote } { O{} +m } {
- \jlreq@hook@prenote\UseHook{cmd/sidenote/before}
+ \jlreq@hook@prenote
\jlreq@sidenote{#1}{#2}
- \UseHook{cmd/sidenote/after}\jlreq@hook@postnote
+ \jlreq@hook@postnote
}
\DeclareDocumentCommand { \sidenotemark } { O{} } {
- \jlreq@hook@prenote\UseHook{cmd/sidenotemark/before}
+ \jlreq@hook@prenote
\jlreq@sidenotemark{#1}
- \UseHook{cmd/sidenotemark/after}\jlreq@hook@postnote
+ \jlreq@hook@postnote
}
\DeclareDocumentCommand { \sidenotetext } { O{} +m } { \jlreq@sidenotetext{#1}{#2} }
\long\def\jlreq@sidenote#1#2{\jlreq@sidenotemark{#1}\@sidenotetext{#2}}
@@ -3644,8 +3707,8 @@
\let\@makesidemark=\@makefnmark
}
\str_if_eq:VnT \jlreq@sidenote@type { symbol } {% sidenote_type = symbol
- \DeclareDocumentCommand { \sidenote } { m +m } { \UseHook{cmd/sidenote/before}\jlreq@sidenote{#1}{#2}\UseHook{cmd/sidenote/after} }
- \DeclareDocumentCommand { \sidenotemark } { m } { \UseHook{cmd/sidenotemark/before}\jlreq@sidenotemark{#1}\UseHook{cmd/sidenote/after} }
+ \DeclareDocumentCommand { \sidenote } { m +m } { \jlreq@sidenote{#1}{#2} }
+ \DeclareDocumentCommand { \sidenotemark } { m } { \jlreq@sidenotemark{#1} }
\DeclareDocumentCommand { \sidenotetext } { m +m } { \jlreq@sidenotetext{#1}{#2} }
\long\def\jlreq@sidenote#1#2{\jlreq@sidenotemark{#1}\jlreq@sidenotetext{#1}{#2}}
\edef\jlreq@sidenotemark#1{%
@@ -5976,7 +6039,8 @@
\itemindent=\dimexpr\jlreq@theorem@indent\relax
\jlreq@theorem@font
\item[\hskip \labelsep{\reset@font\jlreq@theorem@label@font #1\ #2(#3)}]}
-\AddToHook{package/after/amsthm}{
+\RequirePackage{filehook}
+\AtEndOfPackageFile{amsthm}{
\jlreq@saveoriginalcs{proof}%
\jlreq@saveoriginalcs{endproof}%
\edef\jlreq@do{