summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/jlreq
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/jlreq')
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq-complements.sty16
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty4
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty93
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq.cls145
4 files changed, 186 insertions, 72 deletions
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-complements.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-complements.sty
index 2e20114fe61..144bc21b577 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq-complements.sty
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-complements.sty
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-complements}[2022/07/13 jlreq-complements]
-\RequirePackage{jlreq-helpers}[2021/08/12]
+\ProvidesPackage{jlreq-complements}[2022/11/28 jlreq-complements]
+\RequirePackage{jlreq-helpers}[2022/11/28]
\RequirePackage{l3keys2e}
\ExplSyntaxOn
@@ -40,7 +40,7 @@
\int_compare_p:n { (\ltjgetparameter{direction}-(\ltjgetparameter{direction}/8)*8) == 3 }
}
}{
- \prg_new_conditional:Nnn \__jlreq_complements_iftdir: { T, F, TF} { \legacy_if_p:n { tdir } }
+ \prg_new_conditional:Nnn \__jlreq_complements_iftdir: { T, F, TF} { \iftdir \prg_return_true: \else \prg_return_false: \fi }
}
\@ifundefined{jlreq@zw}{
@@ -129,7 +129,7 @@
\bool_new:N \g__jlreq_complements_theindex_restorepagestyle_bool
\keys_define:Vn \g__jlreq_complements_setupname_str {
theindex_yoko .bool_gset:N = \g__jlreq_complements_theindex_yoko_bool,
- theindex_twocolumn .bool_gset:N = \g__jlreq_complements_theindex_twcolumn_bool,
+ theindex_twocolumn .bool_gset:N = \g__jlreq_complements_theindex_twocolumn_bool,
}
\keys_set:Vn \g__jlreq_complements_setupname_str {
@@ -146,14 +146,15 @@
{ \keys_set:Vn \g__jlreq_complements_setupname_str { theindex_yoko = false } }
{ \keys_set:Vn \g__jlreq_complements_setupname_str { theindex_yoko = true } }
-
\bool_new:N \l__jlreq_complements_resttate_bool
+\bool_new:N \l__jlreq_complements_theindex_maincolumn_bool
\renewenvironment{theindex}{%
\prop_item:Nn \g__jlreq_complements_theindex_prop { precode }
\bool_set_false:N \l__jlreq_complements_resttate_bool
\bool_if:NT \g__jlreq_complements_theindex_yoko_bool {
\__jlreq_complements_iftdir:T { \clearpage \yoko \bool_set_true:N \l__jlreq_complements_resttate_bool }
}
+ \bool_set:Nn \l__jlreq_complements_theindex_maincolumn_bool { \legacy_if_p:n { @twocolumn } }
\bool_if:NTF \g__jlreq_complements_theindex_twocolumn_bool {
\setlength{\columnseprule}{ \prop_item:Nn \g__jlreq_complements_theindex_prop { column_rule_width } }
\setlength{\columnsep} { \prop_item:Nn \g__jlreq_complements_theindex_prop { column_gap } }
@@ -168,14 +169,15 @@
}
\prop_item:Nn \g__jlreq_complements_theindex_prop { mark }
\tl_set:Nx \l__jlreq_tmpa_tl { \exp_not:N \pagestyle { \prop_item:Nn \g__jlreq_complements_theindex_prop { pagestyle } } }
+ \l__jlreq_tmpa_tl
\parindent\z@
\parskip\z@ \@plus .03\jlreq@zh\relax
\let\item\@idxitem
}{%
\bool_if:NTF \g__jlreq_complements_theindex_twocolumn_bool {
- \legacy_if:nF { @twocolumn } { \onecolumn }
+ \bool_if:NF \l__jlreq_complements_theindex_maincolumn_bool { \onecolumn }
}{
- \legacy_if:nT { @twocolumn } { \twocolumn }
+ \bool_if:NT \l__jlreq_complements_theindex_maincolumn_bool { \twocolumn }
}
\clearpage
\bool_if:NT \l__jlreq_complements_resttate_bool { \tate }
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
index ea475e87dd9..ab61fe07091 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
@@ -1,7 +1,7 @@
% エンジン非依存のマクロ集
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-helpers}[2021/08/12 jlreq-helpers]
+\ProvidesPackage{jlreq-helpers}[2022/11/28 jlreq-helpers]
\ExplSyntaxOn
%. helper1
@@ -441,7 +441,7 @@
\@namedef{jlreq@helper@papersizelist@c2paper}{{458mm}{648mm}}
\@namedef{jlreq@helper@papersizelist@c3paper}{{324mm}{458mm}}
-\@namedef{jlreq@helper@papersizelist@c4paper}{{229mm}{354mm}}
+\@namedef{jlreq@helper@papersizelist@c4paper}{{229mm}{324mm}}
\@namedef{jlreq@helper@papersizelist@c5paper}{{162mm}{229mm}}
\@namedef{jlreq@helper@papersizelist@c6paper}{{114mm}{162mm}}
\@namedef{jlreq@helper@papersizelist@c7paper}{{81mm}{114mm}}
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
index b21bdcc4538..f2e72aeddc1 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
@@ -1,7 +1,7 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-trimmarks}[2022/07/13 jlreq-trimmarks]
+\ProvidesPackage{jlreq-trimmarks}[2022/11/28 jlreq-trimmarks]
\RequirePackage{l3keys2e}
-\RequirePackage{jlreq-helpers}
+\RequirePackage{jlreq-helpers}[2022/11/28]
\ExplSyntaxOn
% check \tombowdatetrue
@@ -184,9 +184,7 @@
}[\PackageError{jlreq-trimmarks}{Unknown~value~`##1'~in~the~option~`show'}{\@ehc}]
}
}
- }
-}
-\keys_define:nn { jlreq-trimmarks } {
+ },
bleed_margin .code:n = {
\begingroup
\def\jlreq@do{}%
@@ -337,6 +335,33 @@
\jlreq@do
}
+\tl_new:N \g__jlreq_trimmarks_pattern_center_top_tl
+\tl_new:N \g__jlreq_trimmarks_pattern_center_bottom_tl
+\tl_new:N \g__jlreq_trimmarks_pattern_center_left_tl
+\tl_new:N \g__jlreq_trimmarks_pattern_center_right_tl
+\cs_set:Nn \__jlreq_check_rotatebox:n {
+ \@ifundefined{rotatebox}{
+ \PackageError{jlreq-trimmarks}{`\string\rotatebox'~is~needed~to~use~#1,~please~load~the~package~`graphicx'~or~its~variant}{\@ehc}
+ }{}
+}
+\keys_define:nn { jlreq-trimmarks-pattern } {
+ top-center .tl_gset:N = \g__jlreq_trimmarks_pattern_center_top_tl,
+ center-top .tl_gset:N = \g__jlreq_trimmarks_pattern_center_top_tl,
+ bottom-center .tl_gset:N = \g__jlreq_trimmarks_pattern_center_bottom_tl,
+ center-bottom .tl_gset:N = \g__jlreq_trimmarks_pattern_center_bottom_tl,
+ center-left .tl_gset:N = \g__jlreq_trimmarks_pattern_center_left_tl,
+ left-center .tl_gset:N = \g__jlreq_trimmarks_pattern_center_left_tl,
+ center-right .tl_gset:N = \g__jlreq_trimmarks_pattern_center_right_tl,
+ right-center .tl_gset:N = \g__jlreq_trimmarks_pattern_center_right_tl,
+ centers .code:n = {
+ \__jlreq_check_rotatebox:n { trimmarks_pattern/centers }
+ \tl_gset:Nn \g__jlreq_trimmarks_pattern_center_top_tl {#1}
+ \tl_gset:Nn \g__jlreq_trimmarks_pattern_center_left_tl { \rotatebox[origin=cb]{90}{#1} }
+ \tl_gset:Nn \g__jlreq_trimmarks_pattern_center_bottom_tl { \rotatebox[origin=cb]{180}{#1} }
+ \tl_gset:Nn \g__jlreq_trimmarks_pattern_center_right_tl { \rotatebox[origin=cb]{270}{#1} }
+ },
+}
+
\keys_define:nn { jlreqtrimmarkssetup } {
banner .code:n = {
\clist_map_variable:nNn { odd,even } \@tempa {
@@ -437,11 +462,15 @@
}%
}%
}%
- }%
+ },
+ trimmarks_pattern .code:n = {
+ \keys_set:nn { jlreq-trimmarks-pattern } {#1}
+ }
}
\NewDocumentCommand { \jlreqtrimmarkssetup } { +m } {
\keys_set:nn { jlreqtrimmarkssetup } {#1}
}
+\def\jlreqtrimmarkswidth{\@tombowwidth}
\@onlypreamble\jlreqtrimmarkssetup
\@bannertoken{%
\jobname\space(\number\year-\two@digits\month-\two@digits\day
@@ -450,7 +479,27 @@
\jlreqtrimmarkssetup{
banner={\the\@bannertoken},
banner_font={\@bannerfont},
- color={}
+ color={},
+ trimmarks_pattern = {
+ top-center = {
+ \vrule width10mm~height\@tombowwidth depth\z@
+ \vrule height10mm~width\@tombowwidth depth\z@
+ \vrule width10mm~height\@tombowwidth depth\z@
+ },
+ bottom-center = {
+ \vrule width10mm~depth\@tombowwidth height\z@
+ \vrule depth10mm~width\@tombowwidth height\z@
+ \vrule width10mm~depth\@tombowwidth height\z@
+ },
+ center-right = {
+ \vrule height 10mm depth10mm width\@tombowwidth
+ \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm
+ },
+ center-left = {
+ \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
+ \vrule height10mm depth10mm width\@tombowwidth
+ }
+ }
}
\ifx\jlreq@trimmarks@engine\@undefined
@@ -559,7 +608,14 @@
\hfill
\setbox\jlreq@tempboxa=\hbox{% \@TC
\yoko
- \vrule width10mm height\@tombowwidth depth\z@
+ \setbox\jlreq@tempboxb=\hbox{
+ \g__jlreq_trimmarks_pattern_center_top_tl
+ }%
+ \jlreq@tempdima=\wd\jlreq@tempboxb\relax
+ \ht\jlreq@tempboxb=0pt \dp\jlreq@tempboxb=0pt \wd\jlreq@tempboxb=0pt
+ \kern -0.5\jlreq@tempdima\relax
+ \box\jlreq@tempboxb
+ \kern 0.5\jlreq@tempdima\relax
\jlreq@trimmarks@outputbanner{before@top@center}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
@@ -572,13 +628,11 @@
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern-\jlreq@tempdimb\raise-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb
}%
- \vrule height10mm width\@tombowwidth depth\z@
\jlreq@trimmarks@outputbanner{after@top@center}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\raise 4pt\box\jlreq@tempboxa
}%
- \vrule width10mm height\@tombowwidth depth\z@
}%
\dp\jlreq@tempboxa=0pt
\box\jlreq@tempboxa
@@ -664,7 +718,7 @@
\hbox to\@@paperwidth{%
\hbox to\z@{% \@CL
\yoko\hss
- \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
+ \g__jlreq_trimmarks_pattern_center_left_tl
\jlreq@trimmarks@outputbanner{before@center@left}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\ifx l\jlreq@trimmarks@engine
@@ -685,7 +739,6 @@
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
}%
- \vrule height10mm depth10mm width\@tombowwidth
\jlreq@trimmarks@outputbanner{in@center@left}{%
\setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\jlreq@trimmarks@bannerfont##1}%
\ifx l\jlreq@trimmarks@engine
@@ -714,7 +767,6 @@
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern-\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern\jlreq@tempdima
}%
- \vrule height10mm depth10mm width\@tombowwidth
\jlreq@trimmarks@outputbanner{before@center@right}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
@@ -727,7 +779,8 @@
\dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
}%
- \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss
+ \g__jlreq_trimmarks_pattern_center_right_tl
+ \hss
}%
}%
\vfill
@@ -811,9 +864,17 @@
\ht\jlreq@tempboxa=0pt
\box\jlreq@tempboxa
\hfill
+ \jlreq@tempafalse
\setbox\jlreq@tempboxa=\hbox{% \@BC
\yoko
- \vrule width10mm depth\@tombowwidth height\z@
+ \setbox\jlreq@tempboxb=\hbox{
+ \g__jlreq_trimmarks_pattern_center_bottom_tl
+ }%
+ \jlreq@tempdimb=\wd\jlreq@tempboxb
+ \ht\jlreq@tempboxb=0pt \dp\jlreq@tempboxb=0pt \wd\jlreq@tempboxb=0pt
+ \kern-0.5\jlreq@tempdimb
+ \box\jlreq@tempboxb
+ \kern 0.5\jlreq@tempdimb
\jlreq@trimmarks@outputbanner{before@bottom@center}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
@@ -827,14 +888,12 @@
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
\kern-\jlreq@tempdimb\raise\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdimb
}%
- \vrule depth10mm width\@tombowwidth height\z@
\jlreq@trimmarks@outputbanner{before@bottom@center}{%
\setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 5mm\jlreq@trimmarks@bannerfont##1\hss}%
\jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
\ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
\raise-\jlreq@tempdima\box\jlreq@tempboxa
}%
- \vrule width10mm depth\@tombowwidth height\z@
}%
\ht\jlreq@tempboxa=0pt
\box\jlreq@tempboxa
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
index 8615e3bf303..d6ce3e2eb0d 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
@@ -5,10 +5,10 @@
%%
% (based on JLReq 20200811 https://www.w3.org/TR/2020/NOTE-jlreq-20200811/)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2022/07/13 jlreq]
+\ProvidesClass{jlreq}[2022/11/28 jlreq]
\RequirePackage{l3keys2e}
\RequirePackage{etoolbox}
-\RequirePackage{jlreq-helpers}[2021/08/12]
+\RequirePackage{jlreq-helpers}[2022/11/28]
\ExplSyntaxOn
\int_new:N \l__jlreq_tmpa_int
@@ -1669,19 +1669,19 @@
%. 見出し関係 (4.1)
% \clear***page
-\NewDocumentCommand{\cleartooddpage}{ O{} }{
+\newcommand{\jlreq@cleartooddpage}[1][]{
\clearpage
\ifodd\c@page\else
- \jlreq@ifempty{#1}{}{\thispagestyle{#1}}%
+ \tl_if_empty:nF {#1} { \thispagestyle{#1} }%
\hbox{}%
\newpage
\if@twocolumn\hbox{}\newpage\fi
\fi
}
-\NewDocumentCommand{\cleartoevenpage}{ O{} }{
+\newcommand{\jlreq@cleartoevenpage}[1][]{
\clearpage
\ifodd\c@page
- \jlreq@ifempty{#1}{}{\thispagestyle{#1}}%
+ \tl_if_empty:nF {#1} { \thispagestyle{#1} }%
\hbox{}%
\newpage
\if@twocolumn\hbox{}\newpage\fi
@@ -1826,7 +1826,7 @@
}%
\noexpand\def\exp_not:c {jlreq@headingcs@#1}{%
% 改丁.これでよいのかな.
- \unexpanded{\if@twocolumn\onecolumn\@restonecoltrue\else\@restonecolfalse\fi\cleartooddpage[empty]}%
+ \unexpanded{\if@twocolumn\onecolumn\@restonecoltrue\else\@restonecolfalse\fi\jlreq@cleartooddpage[empty]}%
\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}{%
@@ -1886,20 +1886,27 @@
% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = 全フォーマット}{5 = *}{6 = running head}{7 = 見出し}{8 = 副題}
\long\def\jlreq@BlockHeading@start@@@@#1#2#3#4#5#6#7#8{%
+ \global\advance\jlreq@BlockHeading@spaces@current@count by 1
+ \tl_gput_right:Nn \jlreq@BlockHeading@spaces@current@sequence {_#1}%
\edef\jlreq@tempa##1##2##3##4##5##6##7{%
\unexpanded{\jlreq@BlockHeading@start@makeoutput{#1}{#2}}{{##1}{##2}{##3}}{\exp_not:o {\jlreq@BlockHeading@start@eachformat}}{\exp_not:o {\jlreq@BlockHeading@start@format}}\unexpanded{{#5}{#6}{#7}{#8}}%
\unexpanded{\def\jlreq@tempb}{{##4}{##5}{##6}}% 縦方向空き
\noexpand\jlreq@ifempty{##7}{\noexpand\jlreq@tempatrue}{\noexpand\jlreq@tempafalse}% 偶数ページのみで改ページするならば\jlreq@tempatrue
}%
\jlreq@tempa#3%
- \global\advance\jlreq@BlockHeading@spaces@current@count by 1
- \tl_gput_right:Nn \jlreq@BlockHeading@spaces@current@sequence {_#1}%
+ \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@afteroutsidebox@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
+ \exp_not:o { \jlreq@resultc }
+ }%
% 連続する見出しの間の処理をするために,即時では出力せず,いったんマクロに格納する.
+ % \jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@<n>
% \jlreq@BlockHeading@spaces@current@before@<n>
% \jlreq@BlockHeading@start@gyodori\jlreq@BlockHeading@spaces@current@space@<n>{jlreq@BlockHeading@spaces@current@output@<n>}
% ↑\jlreq@BlockHeading@spaces@current@format@<n>で整形される.
% \jlreq@BlockHeading@spaces@current@after@<n>
+ % \jlreq@BlockHeading@spaces@current@afteroutsidebox@<n>
+ % \jlreq@BlockHeading@spaces@current@afteroutsideiflast@<n>
% として後に呼び出される.(spaceは書き換えられる可能性がある.)
+ % outsideとついているものは全体が行取りされた場合はその外に出される.
\expandafter\xdef\csname jlreq@BlockHeading@spaces@current@output@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
\exp_not:o {\jlreq@resultb}%
}%
@@ -1907,28 +1914,31 @@
\exp_not:o {\jlreq@tempb}%
}%
\long\def\@tempa##1##2##3{##1}%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@before@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
+ \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
\exp_not:o {\@tempa#4}%
- \exp_not:o {\jlreq@resulta}%
\ifjlreq@tempa\unexpanded{%
\jlreq@setcurrentpage
\edef\jlreq@BlockHeading@currentpage{\the\jlreq@currentpage}%
}\fi
}%
+ \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@before@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
+ \exp_not:o {\jlreq@resulta}%
+ }%
\long\def\@tempa##1##2##3{##2}%
\expandafter\xdef\csname jlreq@BlockHeading@spaces@current@format@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
\exp_not:o {\@tempa#4}%
}%
\long\def\@tempa##1##2##3{##3}%
- \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
- \exp_not:o {\jlreq@resultc}%
+ \expandafter\gdef\csname jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
+ }%
+ \expandafter\xdef\csname jlreq@BlockHeading@spaces@current@afteroutsideiflast@\the\jlreq@BlockHeading@spaces@current@count\endcsname{%
\ifjlreq@tempa\unexpanded{%
\ifx\jlreq@BlockHeading@currentpage\@empty\nobreak\else
\ifodd\jlreq@BlockHeading@currentpage\nobreak\else\allowbreak\fi
\fi
}\else\noexpand\nobreak\fi
\exp_not:o {\@tempa#4}%
- }%
+ }
\ifx\jlreq@BlockHeading@spaces@headingslist\@empty
\expandafter\jlreq@BlockHeading@spaces@outputwospace
\expandafter\ignorespaces
@@ -2362,8 +2372,8 @@
pagebreak / clearpage .code:n = {\def\jlreq@pagebreak{\clearpage}\jlreq@column@spanning@possibletrue},
pagebreak / cleardoublepage .code:n = {\def\jlreq@pagebreak{\cleardoublepage}\jlreq@column@spanning@possibletrue},
pagebreak / clearcolumn .code:n = {\if@twocolumn\def\jlreq@pagebreak{\newpage}\else\def\jlreq@pagebreak{}\fi\jlreq@column@spanning@possiblefalse},
- pagebreak / begin_with_even_page .code:n = {\def\jlreq@pagebreak{\cleartoevenpage[empty]}\jlreq@column@spanning@possibletrue},
- pagebreak / begin_with_odd_page .code:n = {\def\jlreq@pagebreak{\cleartooddpage[empty]}\jlreq@column@spanning@possibletrue},
+ pagebreak / begin_with_even_page .code:n = {\def\jlreq@pagebreak{\jlreq@cleartoevenpage[empty]}\jlreq@column@spanning@possibletrue},
+ pagebreak / begin_with_odd_page .code:n = {\def\jlreq@pagebreak{\jlreq@cleartooddpage[empty]}\jlreq@column@spanning@possibletrue},
pagebreak / nariyuki .code:n = {\def\jlreq@pagebreak{}\jlreq@column@spanning@possiblefalse},
pagestyle .tl_set:N = \l__jlreq_pagestyle_tl,
% 後々数字を受け付けるようになったりするかもしれないので……
@@ -2558,7 +2568,7 @@
% それ以外:空き量
% 最初や最後に空き量指定がある場合は,全体への指定に組み込むことにする.
%
-% 現在状況保存に以下のマクロを使う
+% 現在状況保存に以下のマクロを使う,nは1から始まる.
% \jlreq@BlockHeading@spaces@current@sequence
% : 現在どのような見出しが続いているかリスト.
% \jlreq@BlockHeading@spaces@current@space@<n>
@@ -2569,8 +2579,14 @@
% : 現在処理中のn番目の見出しのフォーマット.行取りマクロを包み込むようにする.
% \jlreq@BlockHeading@spaces@current@before@<n>
% : n番目の見出しの前に出すもの
+% \jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@<n>
+% : n番目の見出しの前に出すもの.現在処理中の最初の見出しの時はボックスの前に出す.
% \jlreq@BlockHeading@spaces@current@after@<n>
% : n番目の見出しの後ろに出すもの
+% \jlreq@BlockHeading@spaces@current@afteroutsideiflast@<n>
+% : n番目の見出しの前に出すもの.現在処理中の最後の見出しの時はボックスのあとに出す.
+% \jlreq@BlockHeading@spaces@current@afteroutsidebox@<n>
+% : n番目の見出しの後ろに出すが,ボックスの外に出すもの(\markなどが想定)
% \jlreq@BlockHeading@spaces@current@count
% : 現在いくつの連続する見出しを処理しているかのカウンター
\newcount\jlreq@BlockHeading@spaces@current@count
@@ -2739,7 +2755,10 @@
\def\jlreq@BlockHeading@spaces@outputwospace@{%
\ifnum\jlreq@tempcnta<\jlreq@BlockHeading@spaces@current@count
\advance\jlreq@tempcnta by 1
- \tl_put_right:Nx \jlreq@do {\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta}}%
+ \tl_put_right:Nx \jlreq@do {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@\the\jlreq@tempcnta}
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta}
+ }%
\edef\jlreq@tempa{%
\unexpanded{\long\def\jlreq@tempa##1}{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@format@\the\jlreq@tempcnta}}%
}%
@@ -2751,7 +2770,12 @@
{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta}}%
}}%
}%
- \tl_put_right:Nx \jlreq@do {\jlreq@tempb\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta}}%
+ \tl_put_right:Nx \jlreq@do {
+ \jlreq@tempb
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsidebox@\the\jlreq@tempcnta}%
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta}%
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsideiflast@\the\jlreq@tempcnta}%
+ }%
\expandafter\jlreq@BlockHeading@spaces@outputwospace@
\fi
}
@@ -2759,45 +2783,61 @@
\def\jlreq@BlockHeading@spaces@output@#1#2\jlreq@endmark{%
\def\jlreq@result{}%
\jlreq@tempcnta=0
- \jlreq@BlockHeading@spaces@output@@#2\jlreq@endmark
\jlreq@tempatrue % 周りの行取り処理が必要か
\tl_if_empty:nT {#1} {\jlreq@tempafalse}%
\tl_if_eq:nnT {#1} {{}{}{}} { \jlreq@tempafalse }
- \edef\jlreq@do{%
- \ifjlreq@tempa
- \unexpanded{\jlreq@BlockHeading@start@gyodori#1}{%
- \exp_not:o {\jlreq@result}%
- }%
- \else
- \exp_not:o {\jlreq@result}%
- \fi
- }%
+ \legacy_if:nTF { jlreq@tempa } {
+ \jlreq@BlockHeading@spaces@output@@{*}#2\jlreq@endmark
+ \tl_set:Nx \l__jlreq_do_tl {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@1}
+ \exp_not:n { \jlreq@BlockHeading@start@gyodori#1 } {
+ \exp_not:o { \jlreq@result }
+ }
+ }
+ \int_step_inline:nnn { 1 } { \jlreq@BlockHeading@spaces@current@count } {
+ \tl_put_right:Nx \l__jlreq_do_tl {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsidebox@##1}
+ }
+ }
+ \tl_put_right:Nx \l__jlreq_do_tl {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsideiflast@\the\jlreq@BlockHeading@spaces@current@count}
+ }
+ }{
+ \jlreq@BlockHeading@spaces@output@@{}#2\jlreq@endmark
+ \tl_set:Nx \l__jlreq_do_tl { \exp_not:o { \jlreq@result } }
+ }
\jlreq@BlockHeading@spaces@clear
- \jlreq@do
+% \message{[[output~headings]]}
+% \message{\exp_not:o \l__jlreq_do_tl}
+ \l__jlreq_do_tl
}
% jlreq@resultに出力すべきものを入れていく
-\def\jlreq@BlockHeading@spaces@output@@#1{%
- \jlreq@ifendmark{#1}{}{%
- \str_if_eq:eeTF {\str_head:n {#1}} {_} {
+% #1: 全体の行取り処理をする場合は*
+\def\jlreq@BlockHeading@spaces@output@@#1#2{%
+ \jlreq@ifendmark{#2}{}{%
+ \str_if_eq:eeTF {\str_head:n {#2}} {_} {
\advance\jlreq@tempcnta by 1
- \expandafter\jlreq@BlockHeading@spaces@output@@@\expandafter{\@gobble #1}%
+ \tl_set:Nx \l__jlreq_tmpa_tl {
+ \exp_not:N \jlreq@BlockHeading@spaces@output@@@ {#1} { \exp_not:o { \@gobble #2 } }
+ }
+ \l__jlreq_tmpa_tl
}{%
- \tl_put_right:Nn \jlreq@result {\vskip\glueexpr #1\relax}%
+ \tl_put_right:Nn \jlreq@result {\vskip\glueexpr #2\relax}%
}%
- \jlreq@BlockHeading@spaces@output@@
+ \jlreq@BlockHeading@spaces@output@@{#1}
}%
}
-\def\jlreq@BlockHeading@spaces@output@@@#1{%
+\def\jlreq@BlockHeading@spaces@output@@@#1#2{%
\edef\jlreq@do{%
- \noexpand\jlreq@BlockHeading@spaces@output@@@@
- \jlreq@iffirsttoken@ignorespaces{#1}{*}{{*}\exp_not:o {\@gobble #1}}{\unexpanded{{}#1}}%
+ \noexpand\jlreq@BlockHeading@spaces@output@@@@{#1}
+ \jlreq@iffirsttoken@ignorespaces{#2}{*}{{*}\exp_not:o {\@gobble #2}}{\unexpanded{{}#2}}%
\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@space@\the\jlreq@tempcnta}%
{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta}}%
}%
\jlreq@do
}
-% #1: デフォルト値を使うならば*,#2#3#4が設定された値,#5#6#7がデフォルト値,#8は偶数ページの,#9が出力
-\def\jlreq@BlockHeading@spaces@output@@@@#1#2#3#4#5#6#7#8{%
+% #2: デフォルト値を使うならば*,#3#4#5が設定された値,#6#7#8がデフォルト値,#9は偶数ページの
+\def\jlreq@BlockHeading@spaces@output@@@@#1#2#3#4#5#6#7#8#9{%
\edef\jlreq@tempa{%
\unexpanded{\long\def\jlreq@tempa##1}{\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@format@\the\jlreq@tempcnta}}%
}%
@@ -2805,17 +2845,26 @@
\edef\jlreq@tempb{%
\noexpand\exp_not:o {\noexpand\jlreq@tempa{%
\noexpand\jlreq@BlockHeading@start@gyodori
- \jlreq@ifempty{#1}{\unexpanded{{#2}{#3}{#4}}}{%
- {\jlreq@ifempty{#2}{\unexpanded{#5}}{\unexpanded{#2}}}%
+ \jlreq@ifempty{#2}{\unexpanded{{#3}{#4}{#5}}}{%
{\jlreq@ifempty{#3}{\unexpanded{#6}}{\unexpanded{#3}}}%
{\jlreq@ifempty{#4}{\unexpanded{#7}}{\unexpanded{#4}}}%
- }\unexpanded{{#8}}%
+ {\jlreq@ifempty{#5}{\unexpanded{#8}}{\unexpanded{#5}}}%
+ }\unexpanded{{#9}}%
}}%
}%
\tl_put_right:Nx \jlreq@result {%
+ \bool_if:nT { \tl_if_empty_p:n {#1} || \int_compare_p:n { \jlreq@tempcnta > 0 } } {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@\the\jlreq@tempcnta}%
+ }
\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta}%
\jlreq@tempb
+ \tl_if_empty:nT { #1 } {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsidebox@\the\jlreq@tempcnta}%
+ }
\exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta}%
+ \bool_if:nT { \tl_if_empty_p:n {#1} || \int_compare_p:n { \jlreq@tempcnta < \jlreq@BlockHeading@spaces@current@count } } {
+ \exp_args:Nc \exp_not:o {jlreq@BlockHeading@spaces@current@afteroutsideiflast@\the\jlreq@tempcnta}%
+ }
}%
}
@@ -2828,7 +2877,10 @@
\expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@space@\the\jlreq@tempcnta\endcsname=\@undefined
\expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@output@\the\jlreq@tempcnta\endcsname=\@undefined
\expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@before@\the\jlreq@tempcnta\endcsname=\@undefined
+ \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@beforeoutsideiffirst@\the\jlreq@tempcnta\endcsname=\@undefined
\expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@after@\the\jlreq@tempcnta\endcsname=\@undefined
+ \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@afteroutsideiflast@\the\jlreq@tempcnta\endcsname=\@undefined
+ \expandafter\global\expandafter\let\csname jlreq@BlockHeading@spaces@current@afteroutsidebox@\the\jlreq@tempcnta\endcsname=\@undefined
}%
\gdef\jlreq@BlockHeading@spaces@current@sequence{}%
\global\jlreq@BlockHeading@spaces@current@count=0
@@ -5069,7 +5121,8 @@
\vskip\abovecaptionskip
\edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@format@setting}{\jlreq@tempb}}}%
\jlreq@do
- \setbox\jlreq@tempboxa=\hbox{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@font@setting}{\jlreq@tempb}#1}%
+ % 最後の\relaxはhttps://github.com/abenori/jlreq/issues/112のため.
+ \setbox\jlreq@tempboxa=\hbox{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@label@font@setting}{\jlreq@tempb}#1\relax}%
\ifdim\wd\jlreq@tempboxa=0pt
\edef\jlreq@tempa{{\jlreq@jlreqsetup@withenv@nameuse{jlreq@@makecaption@font@setting}{\jlreq@tempb}\unexpanded{#2}}}%
\else
@@ -6537,7 +6590,7 @@
\ifx p\jlreq@engine platex\fi
\ifx u\jlreq@engine uplatex\fi
,setupname=jlreqsetup
- ]{jlreq-complements}[2022-07-13]
+ ]{jlreq-complements}[2022/11/28]
}
\l__jlreq_tmpa_tl
\jlreqsetup{