summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/jlreq
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-12-10 22:57:36 +0000
committerKarl Berry <karl@freefriends.org>2018-12-10 22:57:36 +0000
commitcdde74fc51a74159b464afaf5a1570117d90c858 (patch)
tree205f548d59983cbbda6afeaaace8c6dbafce3cd8 /Master/texmf-dist/tex/latex/jlreq
parentc871eb0744646b3fa09135cc962cdc2d15cd83a0 (diff)
jlreq (10dec18)
git-svn-id: svn://tug.org/texlive/trunk@49375 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/jlreq')
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty61
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty593
-rw-r--r--Master/texmf-dist/tex/latex/jlreq/jlreq.cls943
3 files changed, 1208 insertions, 389 deletions
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
index 9bf28042489..484e873f8e3 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty
@@ -248,32 +248,38 @@
% <parse対象>は一回だけ展開される.
\newcommand{\jlreq@parsekeyval@nokey}[2]{%
\begingroup
- \def\jlreq@do{}%
- \def\jlreq@parsekeyval@nokey@execute##1##2{#1}%
- \expandafter\jlreq@parsekeyval@nokey@i#2,\jlreq@endmark,%
+ \long\def\jlreq@do{}%
+ \long\def\jlreq@parsekeyval@nokey@execute##1##2{#1}%
+ \expandafter\jlreq@parsekeyval@nokey@i@wuniq\expandafter\jlreq@uniqtoken#2,\jlreq@endmark,%
\expandafter\endgroup
\jlreq@do
}
-\long\def\jlreq@parsekeyval@nokey@i#1,{\jlreq@ifendmark{#1}{}{\jlreq@parsekeyval@nokey@ii#1=\jlreq@endmark}}
-\long\def\jlreq@parsekeyval@nokey@ii#1=#2\jlreq@endmark{%
- \jlreq@ifempty{#2}{\jlreq@parsekeyval@nokey@iii{#2}{#1}}{%
+\long\def\jlreq@parsekeyval@nokey@i@wuniq#1,{\expandafter\jlreq@parsekeyval@nokey@i\expandafter{\@gobble#1}}
+\long\def\jlreq@parsekeyval@nokey@i#1{\jlreq@ifendmark{#1}{}{\jlreq@parsekeyval@nokey@ii@wuniq\jlreq@uniqtoken#1=\jlreq@endmark}}
+\long\def\jlreq@parsekeyval@nokey@ii@wuniq#1=#2\jlreq@endmark{\expandafter\jlreq@parsekeyval@nokey@ii\expandafter{\@gobble#1}{#2}}%
+\long\def\jlreq@parsekeyval@nokey@ii#1#2{%
+ \jlreq@ifempty{#2}{\jlreq@parsekeyval@nokey@iii{*}{#2}{#1}}{%
\edef\jlreq@tempa{%
- \noexpand\jlreq@parsekeyval@nokey@iii{\jlreq@parsekeyval@nokey@removeequal{#2}}{\unexpanded{#1}}%
+ \noexpand\jlreq@parsekeyval@nokey@iii{}{\jlreq@parsekeyval@nokey@removeequal{#2}}{\unexpanded{#1}}%
}%
\jlreq@tempa
}%
}
-\long\def\jlreq@parsekeyval@nokey@iii#1#2{%
- \jlreq@remove@spaceandbracket{#1}{\jlreq@tempa}%
- \jlreq@remove@spaceandbracket{#2}{\jlreq@tempb}%
+% valueが与えられていない場合は#1=*になる.そうでなければ#1は空
+\long\def\jlreq@parsekeyval@nokey@iii#1#2#3{%
+ \jlreq@remove@spaceandbracket{#2}{\jlreq@tempa}%
+ \jlreq@remove@spaceandbracket{#3}{\jlreq@tempb}%
\ifx\jlreq@tempb\@empty\else
- \edef\@tempa{\noexpand\jlreq@parsekeyval@nokey@iv{\expandonce{\jlreq@tempb}}{\expandonce{\jlreq@tempa}}}%
+ \edef\@tempa{\noexpand\jlreq@parsekeyval@nokey@iv{#1}{\expandonce{\jlreq@tempb}}{\expandonce{\jlreq@tempa}}}%
\@tempa
\fi
- \jlreq@parsekeyval@nokey@i
+ \jlreq@parsekeyval@nokey@i@wuniq\jlreq@uniqtoken
}
-\long\def\jlreq@parsekeyval@nokey@iv#1#2{%
- \eappto\jlreq@do{\expandonce{\jlreq@parsekeyval@nokey@execute{#1}{#2}}}%
+\long\def\jlreq@parsekeyval@nokey@iv#1#2#3{%
+ \eappto\jlreq@do{%
+ \unexpanded{\let\ifjlreq@parsekeyval@nokey@novalue}\jlreq@ifempty{#1}{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}%
+ \expandonce{\jlreq@parsekeyval@nokey@execute{#2}{#3}}%
+ }%
}
\long\def\jlreq@parsekeyval@nokey@removeequal#1{\jlreq@parsekeyval@nokey@removeequal@\jlreq@uniqtoken#1\jlreq@endmark}
\long\def\jlreq@parsekeyval@nokey@removeequal@#1=\jlreq@endmark{\expandafter\unexpanded\expandafter{\@gobble#1}}
@@ -322,7 +328,7 @@
% {str1}{xyz}
% {default} % ここは#1を受け付けない(パラメータトークンを受け付けたい場合のため).
%} -> abcd
-% 文字列比較→\edefして比較する
+% strは\edefで展開されるが,\jlreq@switch*の場合は展開されない.
% 第一引数は\jlreq@tempaに入れておく.
\long\def\jlreq@helper@switch@executeoption#1[#2]{%
\begingroup
@@ -331,33 +337,34 @@
\jlreq@do{#1}%
}
\long\def\jlreq@helper@removeoption[#1]{}
-\newcommand{\jlreq@switch}[2]{%
+\newcommand{\jlreq@switch}{\@ifstar{\jlreq@switch@{*}}{\jlreq@switch@{}}}
+\newcommand{\jlreq@switch@}[3]{%
\begingroup
\let\jlreq@do\@undefined
- \edef\jlreq@tempa{#1}% ループ中ずっと保存する
- \jlreq@helper@switch@#2\jlreq@endmark
+ \edef\jlreq@tempa{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}% ループ中ずっと保存する
+ \jlreq@helper@switch@{#1}#3\jlreq@endmark
\ifx\jlreq@do\@undefined
- \def\jlreq@do{\@ifnextchar[{\jlreq@helper@switch@executeoption{#1}}{}}%
+ \edef\jlreq@do{\unexpanded{\jlreq@ifnextchar[{\jlreq@helper@switch@executeoption{#2}}{}}}%
\else
\appto\jlreq@do{\@ifnextchar[{\jlreq@helper@removeoption}{}}%
\fi
\expandafter\endgroup
\jlreq@do
}
-\long\def\jlreq@helper@switch@#1{%
- \jlreq@ifendmark{#1}{}{\jlreq@helper@switch@@{#1}}%
+\long\def\jlreq@helper@switch@#1#2{%
+ \jlreq@ifendmark{#2}{}{\jlreq@helper@switch@@{#1}{#2}}%
}
-\long\def\jlreq@helper@switch@@#1#2{%
- \jlreq@ifendmark{#2}{%
- \edef\jlreq@do{\unexpanded{#1}}%
+\long\def\jlreq@helper@switch@@#1#2#3{%
+ \jlreq@ifendmark{#3}{%
+ \edef\jlreq@do{\unexpanded{#2}}%
}{%
- \edef\jlreq@tempb{#1}%
+ \edef\jlreq@tempb{\jlreq@ifempty{#1}{#2}{\unexpanded{#2}}}%
\ifx\jlreq@tempa\jlreq@tempb\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi{%
- \edef\jlreq@do{\unexpanded{#2}}%
+ \edef\jlreq@do{\unexpanded{#3}}%
\jlreq@deleteuntileendmark
}{%
- \jlreq@helper@switch@
+ \jlreq@helper@switch@{#1}%
}%
}%
}
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
index e5d13f08ff7..19ced9a2072 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq-trimmarks.sty
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{jlreq-trimmarks}[2018/09/01 jlreq-trimmarks]
+\ProvidesPackage{jlreq-trimmarks}[2018/12/10 jlreq-trimmarks]
\RequirePackage{xkeyval,etoolbox}
\RequirePackage{jlreq-helpers}
@@ -27,7 +27,7 @@
\DeclareOptionX{#1}{%
\jlreq@ifempty{##1}{}{\PackageError{jlreq-trimmarks}{The option #1 should have no value}{\@ehc}}%
#2%
- }
+ }%
}
\jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@DeclareOption}
@@ -101,17 +101,17 @@
\jlreq@trimmarks@addpapersize{hagaki}[hagaki]
% width -> \jlreq@resulta, height -> \jlreq@resultb
-\edef\jlreq@trimmarks@analyzepapersize#1{%
- \noexpand\jlreq@switch{#1}{%
+\edef\jlreq@trimmarks@analyzepapersize#1{
+ \noexpand\jlreq@switch{#1}{
\expandonce{\jlreq@trimmarks@switchpapersize}%
{%
- \noexpand\jlreq@helper@dividebycomma{#1}
- \unexpanded{\ifjlreq@result\else}
- \unexpanded{\def\jlreq@resulta}{#1}
- \unexpanded{\def\jlreq@resultb}{#1}
+ \noexpand\jlreq@helper@dividebycomma{#1}%
+ \unexpanded{\ifjlreq@result\else}%
+ \unexpanded{\def\jlreq@resulta}{#1}%
+ \unexpanded{\def\jlreq@resultb}{#1}%
\noexpand\fi
}%
- }\noexpand\relax%
+ }\noexpand\relax
}
\jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@analyzepapersize}
@@ -127,7 +127,7 @@
\newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse
\DeclareOptionX{show}{%
- \jlreq@trimmarks@showtrue
+ \jlreq@trimmarks@option@showtrue
\jlreq@ifempty{#1}{
\jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue
}{
@@ -202,17 +202,137 @@
\fi
\fi
+\long\def\jlreq@trimmarks@setbanner#1#2{%
+ \begingroup
+ \def\jlreq@do{}%
+ \jlreq@parsekeyval@nokey{%
+ \ifjlreq@parsekeyval@nokey@novalue{}{%
+ \jlreq@switch{##1}{
+ {yoko}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{##2}}}
+ {horizontal}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{##2}}}
+ {tate}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{##2}}}
+ {vertial}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{##2}}}
+ {corner}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{corner@#1}{##2}}}
+ {in-yoko}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{##2}}}
+ {in-horizontal}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{##2}}}
+ {in-tate}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{##2}}}
+ {in-vertial}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{##2}}}
+ }%
+ }%
+ }{#2}%
+ \ifx\jlreq@do\@empty
+ \appto\jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{#2}}%
+ \fi
+ \expandafter\endgroup
+ \jlreq@do
+}
+
+\long\def\jlreq@trimmarks@setbanner@#1#2{%
+ \begingroup
+ \def\jlreq@do{}%
+ \jlreq@parsekeyval@nokey{%
+ \ifjlreq@parsekeyval@nokey@novalue{}{%
+ \jlreq@switch*{##1}{
+ {left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{##2}}}
+ {right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{##2}}}
+ {above}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{##2}}}
+ {below}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{##2}}}
+ {in}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@@{in@#1}{##2}}}
+ }%
+ }%
+ }{#2}%
+ \ifx\jlreq@do\@empty
+ \appto\jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{#2}}%
+ \fi
+ \expandafter\endgroup
+ \jlreq@do
+}
+
+\long\def\jlreq@trimmarks@setbanner@@#1#2{%
+ \begingroup
+ \def\jlreq@do{}%
+ \jlreq@parsekeyval@nokey{%
+ \ifjlreq@parsekeyval@nokey@novalue{}{%
+ \jlreq@switch*{##1}{
+ {odd}{\appto\jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{##2}}}}
+ {even}{\appto\jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@even@#1\endcsname{\unexpanded{##2}}}}
+ }%
+ }%
+ }{#2}%
+ \ifx\jlreq@do\@empty
+ \appto\jlreq@do{%
+ \expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{#2}}%
+ \expandafter\edef\csname jlreq@trimmarks@banner@even@#1\endcsname{\unexpanded{#2}}%
+ }%
+ \fi
+ \expandafter\endgroup
+ \jlreq@do
+}
+
\newcommand{\jlreqtrimmarkssetup}[1]{%
- \jlreq@parsekeyval{%
- {banner}{\@bannertoken{##1}\maketombowbox}
- {trimmarks_width}{\setlength{\@tombowwidth}{##1}\maketombowbox}
- {color}{
- \jlreq@ifempty{##1}{
- \def\jlreq@trimmarks@color{\normalcolor}
- }{
- \@ifundefined{color}{
- \PackageError{jlreq-trimmarks}{`\string\color' is not defined, please load the package `color' or its variant before this package}{\@ehc}
- }
+ \jlreq@parsekeyval[jlreqtrimmarkssetup]{
+ {banner}{%
+ \@for\@tempa:=odd,even\do{%
+ \@for\jlreq@tempa:=tate,yoko,corner,inyoko,intate\do{%
+ \@for\jlreq@tempb:=top,bottom\do{%
+ \@for\jlreq@tempc:=left,right\do{%
+ \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @\jlreq@tempc}{}%
+ }%
+ }%
+ }%
+ \@for\jlreq@tempa:=before,after\do{%
+ \@for\jlreq@tempb:=top,bottom,in\do{%
+ \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @center}{}%
+ }%
+ \@for\jlreq@tempb:=left,right,in\do{%
+ \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}%
+ }%
+ }%
+ }%
+ \@bannertoken{}%
+ \def\jlreq@do{}%
+ \jlreq@parsekeyval@nokey{%
+ \ifjlreq@parsekeyval@nokey@novalue{}{%
+ \jlreq@tempafalse
+ \jlreq@switch*{####1}{
+ {top-left}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{####2}}}
+ {left-top}{\jlreq@tempatrue\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{####2}}}
+ {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{####2}}}
+ {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{####2}}}
+ {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{####2}}}
+ {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{####2}}}
+ {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{####2}}}
+ {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{####2}}}
+ {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{####2}}}
+ {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{####2}}}
+ {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{####2}}}
+ {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{####2}}}
+ {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{####2}}}
+ {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{####2}}}
+ {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{####2}}}
+ {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{####2}}}
+ }%
+ \ifjlreq@tempa
+ \appto\jlreq@do{\expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}}%
+ \fi
+ }%
+ }{##1}%
+ \ifx\jlreq@do\@empty
+ \jlreq@trimmarks@setbanner{top@left}{##1}%
+ \expandafter\@bannertoken\expandafter{\jlreq@trimmarks@banner@odd@yoko@top@left}%
+ \else
+ \jlreq@do
+ \fi
+ }
+ {banner_font}{\def\jlreq@trimmarks@bannerfont{##1}}
+ {trimmarks_width}{\setlength{\@tombowwidth}{##1}}
+ {color}{%
+ \jlreq@ifempty{##1}{%
+ \def\jlreq@trimmarks@color{\normalcolor}%
+ }{%
+ \@ifundefined{color}{%
+ \PackageError{jlreq-trimmarks}{`\string\color' is not defined, please load the package `color' or its variant before this package}{\@ehc}%
+ }%
\jlreq@switch{##1}{
{c}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,0}}}
{m}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,0}}}
@@ -229,19 +349,18 @@
{cyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,1}}}
{myk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,1}}}
{cmyk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,1}}}
- {
- \jlreq@iffirsttoken{##1}{[}{
- \def\@tempa[####1]####2\jlreq@endmark{\def\jlreq@trimmarks@color{\color[####1]{####2}}}
- }{
- \def\@tempa####1\jlreq@endmark{\def\jlreq@trimmarks@color{\color{####1}}}
- }
+ {%
+ \jlreq@iffirsttoken{##1}{[}{%
+ \def\@tempa[####1]####2\jlreq@endmark{\def\jlreq@trimmarks@color{\color[####1]{####2}}}%
+ }{%
+ \def\@tempa####1\jlreq@endmark{\def\jlreq@trimmarks@color{\color{####1}}}%
+ }%
\@tempa##1\jlreq@endmark
- }
- }
- }
- \maketombowbox
- }
- }{#1}
+ }%
+ }%
+ }%
+ }%
+ }{#1}%
}
\@onlypreamble\jlreqtrimmarkssetup
\jlreqtrimmarkssetup{
@@ -249,6 +368,7 @@
\jobname\space(\number\year-\two@digits\month-\two@digits\day
\space\two@digits\hour:\two@digits\minute)%
},
+ banner_font={},
color={}
}
@@ -266,7 +386,7 @@
\fi
\fi
-\ifx l\jlreq@engine
+\ifx l\jlreq@trimmarks@engine
\setlength{\pagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax}
\setlength{\pageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
\else
@@ -274,9 +394,9 @@
\setlength{\pdfpageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
\fi
-\hoffset=\dimexpr(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \ifx l\jlreq@engine 1in\else 1truein\fi\relax
-\voffset=\dimexpr(\jlreq@trimmarks@paperheight - \paperheight)/2 - \ifx l\jlreq@engine 1in\else 1truein\fi\relax
-\ifx l\jlreq@engine\else
+\hoffset=\dimexpr(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax
+\voffset=\dimexpr(\jlreq@trimmarks@paperheight - \paperheight)/2 - \ifx l\jlreq@trimmarks@engine 1in\else 1truein\fi\relax
+\ifx l\jlreq@trimmarks@engine\else
\@ifundefined{@tombowreset@@paper}{
\AtBeginDocument{%
\addtolength{\oddsidemargin}{\dimexpr 1truein - 1in\relax}%
@@ -308,77 +428,360 @@
\setlength{\stockwidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax}
\setlength{\stockheight}{\dimexpr\jlreq@trimmarks@paperheight\relax}
-
-\def\maketombowbox{%
- \setbox\@TL\hbox to\z@{\yoko\hss
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@
- \vrule height10mm width\@tombowwidth depth\z@
- \iftombowdate
- \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}%
- \fi}%
- \setbox\@Tl\hbox to\z@{\yoko\hss
- \vrule width10mm height\@tombowwidth depth\z@
- \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@}%
- \setbox\@TC\hbox{\yoko
- \vrule width10mm height\@tombowwidth depth\z@
- \vrule height10mm width\@tombowwidth depth\z@
- \vrule width10mm height\@tombowwidth depth\z@}%
- \setbox\@TR\hbox to\z@{\yoko
- \vrule height10mm width\@tombowwidth depth\z@
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@\hss}%
- \setbox\@Tr\hbox to\z@{\yoko
- \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@
- \vrule width10mm height\@tombowwidth depth\z@\hss}%
- \setbox\@BL\hbox to\z@{\yoko\hss
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@
- \vrule depth10mm width\@tombowwidth height\z@}%
- \setbox\@Bl\hbox to\z@{\yoko\hss
- \vrule width10mm depth\@tombowwidth height\z@
- \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@}%
- \setbox\@BC\hbox{\yoko
- \vrule width10mm depth\@tombowwidth height\z@
- \vrule depth10mm width\@tombowwidth height\z@
- \vrule width10mm depth\@tombowwidth height\z@}%
- \setbox\@BR\hbox to\z@{\yoko
- \vrule depth10mm width\@tombowwidth height\z@
- \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@\hss}%
- \setbox\@Br\hbox to\z@{\yoko
- \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@
- \vrule width10mm depth\@tombowwidth height\z@\hss}%
- \setbox\@CL\hbox to\z@{\yoko\hss
- \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
- \vrule height10mm depth10mm width\@tombowwidth}%
- \setbox\@CR\hbox to\z@{\yoko
- \vrule height10mm depth10mm width\@tombowwidth
- \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}%
+\def\jlreq@trimmarks@outputbanner#1#2{%
+ \iftombowdate
+ \expandafter\let\expandafter\jlreq@tempa\csname jlreq@trimmarks@banner@\ifodd\c@page odd\else even\fi @#1\endcsname
+ \ifx\jlreq@tempa\@empty\else
+ \def\@tempa##1{#2}%
+ \expandafter\@tempa\expandafter{\jlreq@tempa}%
+ \fi
+ \fi
}
-\def\@outputtombow{%
- % 6mm = \@tombowbleed: from plcore
- \@@paperwidth=\dimexpr\@@paperwidth - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax
- \@@paperheight=\dimexpr\@@paperheight - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax
- \ifjlreq@trimmarks@show
- \vbox to\z@{\kern-\dimexpr 10mm + \jlreq@trimmarks@bleed\relax
+
+\def\jlreq@trimmarks@outputtombow{%
+ \vbox to\z@{%
+ \kern-\dimexpr 10mm + \jlreq@trimmarks@bleed\relax
\boxmaxdepth\maxdimen
\moveleft\jlreq@trimmarks@bleed\vbox to\@@paperheight{%
\color@begingroup\jlreq@trimmarks@color
- \hbox to\@@paperwidth{\hskip\jlreq@trimmarks@bleed\relax
- \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\jlreq@trimmarks@bleed}%
+ \hbox to\@@paperwidth{%
+ \hskip\jlreq@trimmarks@bleed\relax
+ \setbox\jlreq@tempboxa=\hbox to\z@{% \@TL
+ \yoko\hss
+ \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@
+ \vrule height10mm width\@tombowwidth depth\z@
+ \iftombowdate
+ \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\@bannerfont\jlreq@trimmarks@bannerfont
+ \ifodd\c@page\the\@bannertoken\else\jlreq@trimmarks@banner@even@yoko@top@left\fi
+ \hss}%
+ \dp\jlreq@tempboxa=0pt
+ \raise 4pt\box\jlreq@tempboxa
+ \fi
+ \jlreq@trimmarks@outputbanner{inyoko@top@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ }%
+ \dp\jlreq@tempboxa=0pt
+ \box\jlreq@tempboxa
+ \hfill
+ \setbox\jlreq@tempboxa=\hbox{% \@TC
+ \yoko
+ \vrule width10mm height\@tombowwidth depth\z@
+ \jlreq@trimmarks@outputbanner{before@top@center}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \raise 4pt\box\jlreq@tempboxa
+ }%
+ \jlreq@trimmarks@outputbanner{in@top@center}{%
+ \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax
+ \jlreq@tempdimb=0.5\wd\jlreq@tempboxa
+ \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\@bannerfont\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
+ \hfill
+ \setbox\jlreq@tempboxa=\hbox to\z@{% \@TR
+ \yoko
+ \jlreq@trimmarks@outputbanner{yoko@top@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise 4pt\box\jlreq@tempboxa
+ }%
+ \jlreq@trimmarks@outputbanner{inyoko@top@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \vrule height10mm width\@tombowwidth depth\z@
+ \jlreq@trimmarks@outputbanner{corner@top@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip\dimexpr\jlreq@trimmarks@bleed + 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise 4pt\box\jlreq@tempboxa
+ }%
+ \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax height\@tombowwidth depth\z@\hss
+ }%
+ \dp\jlreq@tempboxa=0pt
+ \box\jlreq@tempboxa
+ \hskip\jlreq@trimmarks@bleed
+ }%
\kern-10mm
- \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}%
+ \hbox to\@@paperwidth{%
+ \hbox to\z@{% \@Tl
+ \yoko\hss
+ \vrule width10mm height\@tombowwidth depth\z@
+ \jlreq@trimmarks@outputbanner{corner@top@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 4pt}%
+ \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt
+ \raise\dimexpr \jlreq@trimmarks@bleed + 4pt\relax\box\jlreq@tempboxa
+ }%
+ \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@
+ \jlreq@trimmarks@outputbanner{tate@top@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
+ \fi
+ \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \kern-\jlreq@tempdima\raise-5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{intate@top@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
+ \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ }%
+ \hfill
+ \hbox to\z@{% \@Tr
+ \yoko
+ \jlreq@trimmarks@outputbanner{tate@top@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\raise -5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{intate@top@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax
+ \fi
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
+ }%
+ \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth depth\z@
+ \vrule width10mm height\@tombowwidth depth\z@
+ \hss
+ }%
+ }%
\vfill
- \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}%
+ \hbox to\@@paperwidth{%
+ \hbox to\z@{% \@CL
+ \yoko\hss
+ \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth
+ \jlreq@trimmarks@outputbanner{before@center@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hss\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
+ \fi
+ \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{after@center@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
+ \fi
+ \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\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax
+ \jlreq@tempdimb=.5\wd\jlreq@tempboxa
+ \else
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed\relax
+ \jlreq@tempdimb=.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax
+ \fi
+ \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\raise\jlreq@tempdimb\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ }%
+ \hfill
+ \hbox to\z@{% \@CR
+ \yoko
+ \jlreq@trimmarks@outputbanner{in@center@right}{%
+ \setbox\jlreq@tempboxa=\hbox{\tate\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax
+ \jlreq@tempdimb=0.5\wd\jlreq@tempboxa
+ \else
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax
+ \jlreq@tempdimb=0.5\dimexpr\ht\jlreq@tempboxa + \dp\jlreq@tempboxa\relax
+ \fi
+ \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\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
+ \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{after@center@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\hskip 5mm\adjustbaseline\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr 4pt \ifx l\jlreq@trimmarks@engine + \dp\jlreq@tempboxa\fi\relax
+ \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
+ }%
+ }%
\vfill
- \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}%
+ \hbox to\@@paperwidth{%
+ \hbox to\z@{% \@Bl
+ \yoko\hss
+ \vrule width10mm depth\@tombowwidth height\z@
+ \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@
+ \jlreq@trimmarks@outputbanner{tate@bottom@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr 4pt + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr 4pt + \wd\jlreq@tempboxa\relax
+ \fi
+ \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \kern-\jlreq@tempdima\raise 5mm\box\jlreq@tempboxa\kern\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{intate@bottom@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed \ifx l\jlreq@trimmarks@engine + \ht\jlreq@tempboxa\fi\relax
+ \wd\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ }%
+ \hfill
+ \hbox to\z@{% \@Br
+ \yoko
+ \jlreq@trimmarks@outputbanner{tate@bottom@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\ifx l\jlreq@trimmarks@engine\ht\jlreq@tempboxa + \fi 4pt\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern\jlreq@tempdima\raise5mm\box\jlreq@tempboxa\kern-\jlreq@tempdima
+ }%
+ \jlreq@trimmarks@outputbanner{intate@bottom@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \ifx l\jlreq@trimmarks@engine
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \ht\jlreq@tempboxa\relax
+ \else
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \wd\jlreq@tempboxa\relax
+ \fi
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt \wd\jlreq@tempboxa=0pt
+ \kern-\jlreq@tempdima\box\jlreq@tempboxa\kern\jlreq@tempdima
+ }%
+ \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed\relax width\@tombowwidth height\z@
+ \jlreq@trimmarks@outputbanner{corner@bottom@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed + 4pt\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \vrule width10mm depth\@tombowwidth height\z@\hss
+ }%
+ }%
\kern-10mm
- \hbox to\@@paperwidth{\hskip\jlreq@trimmarks@bleed\relax
- \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\jlreq@trimmarks@bleed}%
+ \hbox to\@@paperwidth{%
+ \hskip\jlreq@trimmarks@bleed\relax
+ \setbox\jlreq@tempboxa=\hbox to\z@{% \@BL
+ \yoko\hss
+ \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@
+ \jlreq@trimmarks@outputbanner{corner@bottom@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed + 4pt\relax}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \vrule depth10mm width\@tombowwidth height\z@
+ \jlreq@trimmarks@outputbanner{yoko@bottom@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hskip 5mm\@bannerfont\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
+ }%
+ \jlreq@trimmarks@outputbanner{inyoko@bottom@left}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\@bannerfont\jlreq@trimmarks@bannerfont##1\hss}%
+ \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed + \dp\jlreq@tempboxa\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ }%
+ \ht\jlreq@tempboxa=0pt
+ \box\jlreq@tempboxa
+ \hfill
+ \setbox\jlreq@tempboxa=\hbox{% \@BC
+ \yoko
+ \vrule width10mm depth\@tombowwidth height\z@
+ \jlreq@trimmarks@outputbanner{before@bottom@center}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \jlreq@trimmarks@outputbanner{in@bottom@center}{%
+ \setbox\jlreq@tempboxa=\hbox{\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax
+ \jlreq@tempdimb=.5\wd\jlreq@tempboxa
+ \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\@bannerfont\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
+ \hfill
+ \setbox\jlreq@tempboxa=\hbox to 0pt{% \@BR
+ \yoko
+ \jlreq@trimmarks@outputbanner{yoko@bottom@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1\hskip 5mm}%
+ \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + 4pt\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise-\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \jlreq@trimmarks@outputbanner{inyoko@bottom@right}{%
+ \setbox\jlreq@tempboxa=\hbox to 0pt{\yoko\hss\@bannerfont\jlreq@trimmarks@bannerfont##1}%
+ \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed\relax
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \raise\jlreq@tempdima\box\jlreq@tempboxa
+ }%
+ \vrule depth10mm width\@tombowwidth height\z@
+ \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed\relax depth\@tombowwidth height\z@\hss
+ }%
+ \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt
+ \box\jlreq@tempboxa
+ \hskip\jlreq@trimmarks@bleed
+ }%
\color@endgroup}\vss
}%
- \fi
+}
+\def\@outputtombow{%
+ % 6mm = \@tombowbleed: from plcore
+ \@@paperwidth=\dimexpr\@@paperwidth - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax
+ \@@paperheight=\dimexpr\@@paperheight - 6mm + 2\dimexpr\jlreq@trimmarks@bleed\relax\relax
+ \ifjlreq@trimmarks@show\expandafter\jlreq@trimmarks@outputtombow\fi
}
\ifjlreq@trimmarks@digital
- \ifx l\jlreq@engine
+ \ifx l\jlreq@trimmarks@engine
\setlength\jlreq@resultdimen{1pt}
\else
\jlreq@helper@divide{\the\mag pt}{1000pt}
@@ -430,6 +833,6 @@
% always true
\tombowtrue
-\maketombowbox
+
\endinput
diff --git a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
index d3712ede72a..6fc46710125 100644
--- a/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
+++ b/Master/texmf-dist/tex/latex/jlreq/jlreq.cls
@@ -5,7 +5,7 @@
%%
% (based on JLReq 20120403 https://www.w3.org/TR/2012/NOTE-jlreq-20120403/ja/)
\NeedsTeXFormat{LaTeX2e}
-\ProvidesClass{jlreq}[2018/09/01 jlreq]
+\ProvidesClass{jlreq}[2018/12/10 jlreq]
\RequirePackage{xkeyval,everyhook,filehook,etoolbox,ifthen}
\RequirePackage{jlreq-helpers}
@@ -189,6 +189,7 @@
\newcommand*{\jlreq@option@fore@edge}{}
\jlreq@aftercls@addtodeletecs{\jlreq@option@fore@edge}
\DeclareOptionX{fore_edge}{\renewcommand*{\jlreq@option@fore@edge}{#1}}
+\DeclareOptionX{fore-edge}{\renewcommand*{\jlreq@option@fore@edge}{#1}}
%.. 柱とノンブル
\newcommand*{\jlreq@option@headfoot@verticalpos}{}
@@ -254,6 +255,9 @@
\jlreq@DeclareOption{openany}{\@openrightfalse\jlreq@option@opentrue}
\jlreq@DeclareOption{leqno}{\input{leqno.clo}}
\jlreq@DeclareOption{fleqn}{\input{fleqn.clo}}
+\newif\ifjlreq@option@enablejfam \jlreq@option@enablejfamtrue
+\jlreq@aftercls@addtodeleteif{\ifjlreq@option@enablejfam}
+\jlreq@DeclareOption{disablejfam}{\jlreq@option@enablejfamfalse}
\newcommand*{\jlreq@note}[1]{}
\jlreq@DeclareOption{jlreq_notes}{\renewcommand*{\jlreq@note}[1]{\message{^^JJLReq note: ##1^^J}}}
@@ -320,7 +324,11 @@
% 必要パッケージのロード
\ifx l\jlreq@engine
- \RequirePackage{luatexja}
+ \ifjlreq@option@enablejfam
+ \RequirePackage{luatexja}
+ \else
+ \RequirePackage[disablejfam]{luatexja}
+ \fi
\directlua{jlreq = {}}
\fi
@@ -558,21 +566,21 @@
\fi
%. 基本設定
-\providecommand*{\jlreq@kanjiskip}{0pt plus 0.25\zw minus 0pt}
-\providecommand*{\jlreq@xkanjiskip}{0.25\zw plus 0.25\zw minus 0.125\zw}
+\providecommand*{\jlreqkanjiskip}{0pt plus 0.25\zw minus 0pt}
+\providecommand*{\jlreqxkanjiskip}{0.25\zw plus 0.25\zw minus 0.125\zw}
\ifx l\jlreq@engine
- \ltjsetparameter{kanjiskip=\jlreq@kanjiskip}
- \ltjsetparameter{xkanjiskip=\jlreq@xkanjiskip}
+ \ltjsetparameter{kanjiskip=\jlreqkanjiskip}
+ \ltjsetparameter{xkanjiskip=\jlreqxkanjiskip}
\else
- \kanjiskip=\jlreq@kanjiskip
- \xkanjiskip=\jlreq@xkanjiskip
+ \kanjiskip=\jlreqkanjiskip
+ \xkanjiskip=\jlreqxkanjiskip
\fi
% 文字クラスのリスト(必要なものだけ)
% 開き括弧(文字クラス1)
\edef\jlreq@charlist@openingbrackets{(〔[{〈《「『【‘“\ifx p\jlreq@engine\else ⦅〘〖«〝\fi}
% 閉じ括弧(文字クラス2)
-\edef\jlreq@charlist@closingbrackets{)〕]}〉》」』】’”\ifx p\jlreq@engine\else⦆〙〗»〟\fi}
+\edef\jlreq@charlist@closingbrackets{)〕]}〉》」』】’”\ifx p\jlreq@engine\else ⦆〙〗»〟\fi}
% ハイフン(文字クラス3)
\edef\jlreq@charlist@hyphens{‐〜\ifx p\jlreq@engine\else ゠–\fi}
% 区切り約物(文字クラス4)
@@ -948,17 +956,19 @@
\romanfamily\ttdefault\kanjifamily\gtdefault\selectfont}
% 数式フォント設定
-\ifx l\jlreq@engine\else
- \DeclareSymbolFont{mincho}{\jlreq@yokokanjiencoding}{mc}{m}{n}
- \DeclareSymbolFontAlphabet{\mathmc}{mincho}
- \SetSymbolFont{mincho}{bold}{\jlreq@yokokanjiencoding}{gt}{m}{n}
- \jfam\symmincho
- \DeclareMathAlphabet{\mathgt}{\jlreq@yokokanjiencoding}{gt}{m}{n}
+\ifjlreq@option@enablejfam
+ \ifx l\jlreq@engine\else
+ \DeclareSymbolFont{mincho}{\jlreq@yokokanjiencoding}{mc}{m}{n}
+ \DeclareSymbolFontAlphabet{\mathmc}{mincho}
+ \SetSymbolFont{mincho}{bold}{\jlreq@yokokanjiencoding}{gt}{m}{n}
+ \jfam\symmincho
+ \DeclareMathAlphabet{\mathgt}{\jlreq@yokokanjiencoding}{gt}{m}{n}
+ \fi
+ \AtBeginDocument{%
+ \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}%
+ \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}%
+ }
\fi
-\AtBeginDocument{%
- \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}%
- \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt}%
-}
% 和文間隔
\DeclareRobustCommand*\ {\futurelet\jlreq@nextchar\jlreq@zenkakuspace@ignorespaces}
@@ -1049,18 +1059,18 @@
\ifdim\@tempskipa=\maxdimen\else
\appto\jlreq@setfontsizehook{%
\ltj@setpar@global
- \ltjsetkanjiskip\jlreq@kanjiskip
+ \ltjsetkanjiskip\jlreqkanjiskip
\@tempskipa=\ltjgetparameter{xkanjiskip}%
\ifdim\@tempskipa>0pt
- \ltjsetxkanjiskip\jlreq@xkanjiskip
+ \ltjsetxkanjiskip\jlreqxkanjiskip
\fi
}
\fi
\else
\appto\jlreq@setfontsizehook{%
- \kanjiskip=\jlreq@kanjiskip
+ \kanjiskip=\jlreqkanjiskip
\ifdim\xkanjiskip>0pt
- \xkanjiskip=\jlreq@xkanjiskip
+ \xkanjiskip=\jlreqxkanjiskip
\fi
}
\fi
@@ -1381,7 +1391,7 @@
\jlreq@setsidemargin@by@gutter{\jlreq@speciallength{\jlreq@option@gutter}}
\ifx\jlreq@option@fore@edge\@empty\else
\ifjlreq@determine@kihonhanmen@warning@first
- \ClassWarningNoLine{jlreq}{fore_edge is ignored}
+ \ClassWarningNoLine{jlreq}{fore-edge is ignored}
\fi
\fi
\fi
@@ -1511,7 +1521,9 @@
\jlreq@tempdimb=\dimexpr\the\numexpr\jlreq@tempdima/\dimexpr 1\zw\relax + 2\relax\zw\relax
\edef\jlreq@do{%
\unexpanded{\def\jlreq@result}{%
- \noexpand\def\expandonce{\csname l@#1\endcsname}{\unexpanded{\@dottedtocline{#2}{0\zw}}{\the\jlreq@tempdimb}}%
+ \noexpand\def\expandonce{\csname l@#1\endcsname}{%
+ \unexpanded{\@dottedtocline{#2}{0\zw}}{\the\jlreq@tempdimb}%
+ }%
}%
}%
\expandafter\endgroup
@@ -1519,15 +1531,22 @@
}{\def\jlreq@result{}}%
}
+% \jlreq@heading@make@maketoc{セクション名}{レベル}
\def\jlreq@heading@make@maketoc#1#2{%
% 目次への出力をするマクロ.外部に切り出しておく.
\@ifundefined{jlreq@heading@maketoc@#1}{%
- % {1 = *}{2 = ラベル}{3 = running head}
+ % {1 = */-}{2 = ラベル}{3 = running head}
+ % 1はcounter=falseならば-,星付き命令ならば*,それ以外は空.
+ % 1が*または-の時は見出しにはラベルが現れないが,2には常にラベルが入るので,必要ならばここで無視する.
\expandafter\def\csname jlreq@heading@maketoc@#1\endcsname##1##2##3{%
- \ifnum0\jlreq@ifempty{##1}{}{1}\ifnum #2>\c@secnumdepth 1\fi>0\else
+ \jlreq@iffirsttoken{##1}{*}{}{%
\csname #1mark\endcsname{##3}%
- \addcontentsline{toc}{#1}{\protect\numberline{##2}##3}%
- \fi
+ \ifnum0\jlreq@iffirsttoken{##1}{-}{1}{}\ifnum #2>\c@secnumdepth 1\fi>0
+ \addcontentsline{toc}{#1}{##3}%
+ \else
+ \addcontentsline{toc}{#1}{\jlreq@ifempty{##2}{}{\protect\numberline{##2}}##3}%
+ \fi
+ }{}%
}%
}{}%
}
@@ -1549,6 +1568,7 @@
\edef\jlreq@label@format{\expandonce{\csname the#1\endcsname}}%
\def\jlreq@heading@clearpage{\clearpage\hbox{}\clearpage}%
\def\jlreq@pagestyle{empty}%
+ \newif\ifjlreq@number \jlreq@numbertrue
\jlreq@parsekeyval[DeclareTobiraHeading:#1]{
{label_format}{\def\jlreq@label@format{##1}}
{format}{\def\jlreq@format####1####2{##1}}
@@ -1559,6 +1579,7 @@
{naka}{\def\jlreq@heading@clearpage{\clearpage\hbox{}\clearpage}}
}%
}
+ {number}[true,false]{\csname jlreq@number##1\endcsname}
}{#3}%
\def\jlreq@do{}%
\ifx\jlreq@format\@undefined
@@ -1570,21 +1591,39 @@
\edef\jlreq@do{%
\expandonce{\jlreq@do}%
\noexpand\def\expandonce{\csname jlreq@TobiraHeading@start@#1\endcsname}[####1]####2{%
- \unexpanded{\ifnum#2>\c@secnumdepth\else}%
- \unexpanded{\refstepcounter{#1}}%
- \noexpand\fi
- \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{}{\expandonce{\jlreq@label@format}}{####1}%
- \unexpanded{\ifnum#2>\c@secnumdepth\relax}%
+ \ifjlreq@number
+ \unexpanded{\ifnum#2>\c@secnumdepth\else}%
+ \unexpanded{\refstepcounter{#1}}%
+ \noexpand\fi
+ \fi
+ \expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{\ifjlreq@number\else -\fi}{\expandonce{\jlreq@label@format}}{####1}%
+ \unexpanded{\jlreq@ifempty{##2}%
+ {\long\gdef\jlreqHeadingText####1{}}%
+ {\long\gdef\jlreqHeadingText####1{####1}}%
+ }%
+ \ifjlreq@number
+ \unexpanded{\ifnum#2>\c@secnumdepth\relax}%
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
+ \expandonce{\jlreq@format{}{##1}}%
+ \noexpand\else
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}%
+ \expandafter\expandonce\expandafter{\jlreq@formatwlabel{##2}}%
+ \noexpand\fi
+ \else
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
\expandonce{\jlreq@format{}{##1}}%
- \noexpand\else
- \expandafter\expandonce\expandafter{\jlreq@formatwlabel{##2}}%
- \noexpand\fi
+ \fi
\noexpand\@afterheading
\expandonce{\jlreq@heading@clearpage}%
\unexpanded{\if@restonecol\twocolumn\fi}%
}%
\noexpand\def\expandonce{\csname jlreq@TobiraHeading@start@s@#1\endcsname}####1{%
- \expandonce{\jlreq@format{}{##1}}%
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
+ \unexpanded{\jlreq@ifempty{##1}%
+ {\long\gdef\jlreqHeadingText####1{}}%
+ {\long\gdef\jlreqHeadingText####1{####1}}%
+ }%
+ \expandonce{\jlreq@format{}{##1}}
\expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{*}{\expandonce{\jlreq@label@format}}{####1}%
\noexpand\@afterheading
\expandonce{\jlreq@heading@clearpage}%
@@ -1613,7 +1652,8 @@
%.. 別行見出し
% \jlreq@BlockHeading@start:別行見出しを出力する命令.
-% \jlreq@BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 = フォーマット関連}{5 = 全体フォーマット}*{見出し}[副題]
+% \jlreq@BlockHeading@start{1 = 命令名}{2 = レベル}{3 = スペース関連}{4 = カウンタ関連}{5 = フォーマット関連}{6 = 全体フォーマット}*{見出し}[副題]
+% カウンタ関連=-,*,無し:-はカウンタ関連を処理しない.*はさらに目次に追加しない(星付き命令と同様).星付きで呼び出された時は常に*同等.
% スペース関連={配置:lcr(左中央右)}{字下げ(寸法)}{字上げ(寸法)}{前空き}{後空き}{行取りの行数}{空か*か,偶数ページでも改ページを許可するならば空}
% 前/後空きはprefixにa:/s:/r:が入る.r:は空きがその値そのものになる.a:/s:は行取りに加えて入る.a:で指定された空きはページ行頭では入らない
% 後空きの時はs:は指定できない.
@@ -1623,19 +1663,19 @@
% 見出し全体のフォーマット内では#1=ラベル,#2=見出し文字列,#3=副題,それぞれ各々のフォーマットに基づき整形される.
% ラベルフォーマットでは#1=カウンタ名,見出し文字列フォーマットでは#1=見出し文字列,副題フォーマットでは#1=副題
% ラベルのみのフォーマットは目次に使われる.
-\newcommand{\jlreq@BlockHeading@start}[5]{%
+\newcommand{\jlreq@BlockHeading@start}[6]{%
\if@noskipsec\leavevmode\fi
- \edef\jlreq@BlockHeading@start@format{\unexpanded{#4}}% この二つは\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる)
- \edef\jlreq@BlockHeading@start@totalformat{\unexpanded{#5}}%
- \jlreq@BlockHeading@start@{#1}{#2}{#3}%
+ \edef\jlreq@BlockHeading@start@format{\unexpanded{#5}}% この二つは\parを含むかもしれないので引数渡しはしない(後の\@ifstarで詰まる)
+ \edef\jlreq@BlockHeading@start@totalformat{\unexpanded{#6}}%
+ \jlreq@BlockHeading@start@{#1}{#2}{#3}{#4}%
}
% {1 = 命令}{2 = レベル}{3 = スペース関連}
-\newcommand{\jlreq@BlockHeading@start@}[3]{%
- \@ifstar{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{*}}}{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{}}}%
+\newcommand{\jlreq@BlockHeading@start@}[4]{%
+ \@ifstar{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{*}}}{\@dblarg{\jlreq@BlockHeading@start@@{#1}{#2}{#3}{#4}}}%
}
% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}[5 = running head]{6 = 見出し}
\long\def\jlreq@BlockHeading@start@@#1#2#3#4[#5]#6{%
- \jlreq@ifnextchar[{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}}{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}[]}%
+ \@ifnextchar[{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}}{\jlreq@BlockHeading@start@@@{#1}{#2}{#3}{#4}{#5}{#6}[]}%
}
% {1 = 命令}{2 = レベル}{3 = スペース関連}{4 = *}{5 = running head}{6 = 見出し}[7 = 副題]
@@ -1696,7 +1736,7 @@
}
% コントロールシークエンスを保存
-\def\jlreq@BlockHeading@start@afterheading@saveafter@cs#1{%
+\long\def\jlreq@BlockHeading@start@afterheading@saveafter@cs#1{%
\csgappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{#1}%
\jlreq@BlockHeading@start@afterheading@saveafter@option
}
@@ -1704,15 +1744,25 @@
\def\jlreq@BlockHeading@start@afterheading@saveafter@option{%
\@ifnextchar[{\jlreq@BlockHeading@start@afterheading@saveafter@option@}{\jlreq@BlockHeading@start@afterheading@saveafter@arguments}%
}
-\def\jlreq@BlockHeading@start@afterheading@saveafter@option@[#1]{%
+\long\def\jlreq@BlockHeading@start@afterheading@saveafter@option@[#1]{%
\csxappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{\unexpanded{[#1]}}%
\jlreq@BlockHeading@start@afterheading@saveafter@arguments
}
% 引数を保存し続けるループ
\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments{%
- \jlreq@ifnextchar\bgroup{\jlreq@BlockHeading@start@afterheading@saveafter@arguments@}{\jlreq@BlockHeading@start@afterheading}%
+ \futurelet\jlreq@nextchar\jlreq@BlockHeading@start@afterheading@saveafter@arguments@
}
-\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@#1{%
+\edef\jlreq@BlockHeading@start@afterheading@saveafter@arguments@{%
+ \noexpand\ifx\space\unexpanded{\jlreq@nextchar\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\else\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@\fi}%
+}
+\expandafter\def\expandafter\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@\space{%
+ \csgappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{ }%
+ \jlreq@BlockHeading@start@afterheading@saveafter@arguments
+}
+\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@{%
+ \jlreq@ifnextchar\bgroup{\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@}{\jlreq@BlockHeading@start@afterheading}%
+}
+\long\def\jlreq@BlockHeading@start@afterheading@saveafter@arguments@@@@#1{%
\csxappto{jlreq@BlockHeading@spaces@current@after@\the\jlreq@BlockHeading@spaces@current@count}{\unexpanded{{#1}}}%
\jlreq@BlockHeading@start@afterheading@saveafter@arguments
}
@@ -1724,10 +1774,10 @@
% {1 = 命令}{2 = レベル}{3 = スペース関連(横方向のみ)}{4 = フォーマット群}{5 = *}{6 = running head}{7 = 見出し}{8 = 副題}
\long\def\jlreq@BlockHeading@start@makeoutput#1#2#3#4#5#6#7#8{%
\begingroup
- \ifnum0\jlreq@ifempty{#5}{}{1}\ifnum #2>\c@secnumdepth 1\fi>0
+ \ifnum #2>\c@secnumdepth
\def\jlreq@tempc{*}%
\else
- \def\jlreq@tempc{}%
+ \def\jlreq@tempc{#5}%
\fi
\long\def\jlreq@tempa##1##2##3##4##5##6##7{%
\long\def\jlreq@tempa{##1}% 素のラベルのフォーマットを取り出す
@@ -1739,7 +1789,18 @@
\jlreq@do
\edef\jlreq@do{%
\unexpanded{\def\jlreq@resulta}{%
- \expandafter\if\jlreq@tempc *\else\unexpanded{\refstepcounter{#1}}\fi
+ \ifx\jlreq@tempc\@empty
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{####1}}%
+ \unexpanded{\refstepcounter{#1}}%
+ \else
+ \unexpanded{\long\gdef\jlreqHeadingLabel####1{}}%
+ \fi
+ \jlreq@ifempty{#7}%
+ {\unexpanded{\long\gdef\jlreqHeadingText####1{}}}%
+ {\unexpanded{\long\gdef\jlreqHeadingText####1{####1}}}%
+ \jlreq@ifempty{#8}%
+ {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{}}}%
+ {\unexpanded{\long\gdef\jlreqHeadingSubtitle####1{####1}}}%
\expandonce{\csname jlreq@heading@maketoc@#1\endcsname}{\unexpanded{#5}}{\expandonce{\jlreq@tempa}}{\unexpanded{#6}}%
}%
\unexpanded{\def\jlreq@resultb}{%
@@ -1801,15 +1862,15 @@
}%
}
-% 行取り処理
+% 行取り処理.#3が空の時は行取りの処理はしない.(空白挿入は行う.)
% {1 = 前空き}{2 = 後ろ空き}{3 = トータル行数}{4 = 偶数ページ改ページするなら空}{5 = 出力}
-\long\def\jlreq@BlockHeading@start@gyodori#1#2#3#4#5{{%
- \par
+\long\def\jlreq@BlockHeading@start@gyodori#1#2#3#4#5{\par{%
\jlreq@ifempty{#4}{\jlreq@setcurrentpage}{}%
\setbox\jlreq@tempboxa=\vbox{#5}%
% \jlreq@tempskip(a/b)に前/後ろに入れるべき値を入れる
% #1がa:ならばその値は\jlreq@tempskipaには足さず\jlreq@tempskipcに入れておく
\jlreq@tempskipa=0pt
+ \jlreq@tempskipb=0pt
\jlreq@tempskipc=0pt
\jlreq@BlockHeading@start@analyzespace#1:\jlreq@endmark
\let\jlreq@maeakitype=\jlreq@resulta
@@ -1823,7 +1884,11 @@
\setbox\jlreq@tempboxb=\hbox{阿}%
\ifx\jlreq@lines\@empty
\ifx\jlreq@maeaki\@empty\else
- \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax
+ \ifx a\jlreq@maeakitype
+ \jlreq@tempskipc=\glueexpr\jlreq@maeaki\relax
+ \else
+ \jlreq@tempskipa=\glueexpr\jlreq@maeaki\relax
+ \fi
\fi
\ifx\jlreq@ushiroaki\@empty\else
\jlreq@tempskipb=\glueexpr\jlreq@ushiroaki\relax
@@ -1858,26 +1923,42 @@
\jlreq@tempskipa=\glueexpr\jlreq@tempdima - \jlreq@tempskipb + \baselineskip - \ht\jlreq@tempboxb\relax
\fi
\fi
+ % \jlreq@tempdimaの利用ここまで
\fi
\jlreq@ifgluezero\jlreq@tempskipc{}{\vskip\jlreq@tempskipc\relax}%
\ifx r\jlreq@maeakitype\prevdepth=-1000pt\fi
+ % \jlreq@tempdimb, \jlreq@tempdimcに出力対称の高さを深さを代入
+ \jlreq@tempdimb=\ht\jlreq@tempboxa
+ \jlreq@tempdimc=\dp\jlreq@tempboxa
\setbox\jlreq@tempboxa=\vbox{%
\jlreq@ifgluezero\jlreq@tempskipa{}{\vskip\jlreq@tempskipa}%
- \unvbox\jlreq@tempboxa}%
- \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa\relax
- \ht\jlreq@tempboxa=0pt
- \box\jlreq@tempboxa
+ \unvbox\jlreq@tempboxa
+ }%
+ \ifx\jlreq@lines\@empty
+ \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa - \jlreq@tempdimb\relax
+ \ht\jlreq@tempboxa=\jlreq@tempdimb
+ \box\jlreq@tempboxa
+ \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt \else\prevdepth=\jlreq@tempdimc\fi
+ % \jlreq@tempdimb, \jlreq@tempdimcの利用ここまで
+ \else
+ \dp\jlreq@tempboxa=\dimexpr\dp\jlreq@tempboxa + \ht\jlreq@tempboxa\relax
+ \ht\jlreq@tempboxa=0pt
+ \box\jlreq@tempboxa
+ \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt \else\prevdepth=0pt \fi
+ \fi
\jlreq@ifempty{#4}{\ifodd\jlreq@currentpage\nobreak\fi}{\nobreak}%
- \ifx r\jlreq@ushiroakitype\prevdepth=-1000pt\else\prevdepth=0pt\fi
\jlreq@ifgluezero\jlreq@tempskipb{}{\vskip\jlreq@tempskipb}%
\edef\jlreq@do{%
- \unexpanded{\def\jlreq@parhook@gyodori}{%
- \noexpand\parskip=\the\parskip
- \unexpanded{\def\jlreq@parhook@gyodori{}}%
- }%
- \unexpanded{\parskip=0pt plus 1pt}%
+ \ifdim\parskip=0pt \else
+ \unexpanded{\def\jlreq@parhook@gyodori}{%
+ \noexpand\parskip=\the\parskip
+ \unexpanded{\def\jlreq@parhook@gyodori{}}%
+ }%
+ \unexpanded{\parskip=0pt plus 1pt}%
+ \fi
}%
-\expandafter}\jlreq@do}
+ \expandafter}\jlreq@do
+}
\PushPostHook{par}{\jlreq@parhook@gyodori}
\def\jlreq@parhook@gyodori{}
@@ -1891,7 +1972,7 @@
\def\jlreq@BlockHeading@gyodori@parsekeyval@#1{%
\@ifnextchar[{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}}{\jlreq@BlockHeading@gyodori@parsekeyval@@{#1}[jlreq@key]}%
}
-\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{%
+\long\def\jlreq@BlockHeading@gyodori@parsekeyval@@#1[#2]#3#4#5#6{%
\begingroup
\def\jlreq@lines{#6}%
\def\jlreq@before@space{}%
@@ -1903,9 +1984,11 @@
{before_space}{\def\jlreq@before@space{##1}}
{after_space}{\def\jlreq@after@space{##1}}
{before_lines}{%
- \jlreq@iffirsttoken@ignorespaces{##1}{*}%
- {\edef\jlreq@before@lines{s:\expandonce{\@gobble ##1}}}%
- {\def\jlreq@before@lines{a:##1}}%
+ \jlreq@ifempty{##1}{\def\jlreq@before@lines{}}{%
+ \jlreq@iffirsttoken@ignorespaces{##1}{*}%
+ {\edef\jlreq@before@lines{s:\expandonce{\@gobble ##1}}}%
+ {\def\jlreq@before@lines{a:##1}}%
+ }%
}
{after_lines}{\def\jlreq@after@lines{##1}}
}{#3}%
@@ -1952,6 +2035,7 @@
\def\jlreq@second@heading@text@indent@wlabel{0pt}%
\def\jlreq@second@heading@text@indent@wolabel{0pt}%
\edef\jlreq@subtitle@format{\unexpanded{---##1---}}%
+ \newif\ifjlreq@subtitleindent@withlabel\jlreq@subtitleindent@withlabeltrue
\def\jlreq@subtitle@indent{1\zw}%
\def\jlreq@afterindent{\@afterindenttrue}%
\def\jlreq@allowbreak@evenpage{*}% 偶数ページでも改ページを許可するならば空,そうでないなら*
@@ -1959,6 +2043,7 @@
\def\jlreq@subtitle@indent{1\zw}%
\def\jlreq@column@spanning{false}%
\newif\ifjlreq@column@spanning@possible\jlreq@column@spanning@possiblefalse
+ \newif\ifjlreq@number \jlreq@numbertrue
% a,bみたいなのをaとbにわける.カンマがなければbは空.引数を{a}{b}として##2を呼び出す.
\def\jlreq@parsecomma##1##2{%
\jlreq@helper@dividebycomma{##1}%
@@ -2007,7 +2092,15 @@
}
{label_format}{\edef\jlreq@label@format{\unexpanded{##1}}}
{subtitle_format}{\edef\jlreq@subtitle@format{\unexpanded{##1}}}
- {subtitle_indent}{\def\jlreq@subtitle@indent{##1}}
+ {subtitle_indent}{%
+ \jlreq@iffirsttoken{##1}{*}{%
+ \jlreq@subtitleindent@withlabelfalse
+ \edef\jlreq@subtitle@indent{\expandonce{\@gobble ##1}}%
+ }{%
+ \jlreq@subtitleindent@withlabeltrue
+ \def\jlreq@subtitle@indent{##1}%
+ }%
+ }
{subtitle_break}[true,false]{\csname jlreq@subtitle@break##1\endcsname}
{afterindent}[true,false]{\edef\jlreq@afterindent{\expandonce{\csname @afterindent##1\endcsname}}}
{allowbreak_if_evenpage}[true,false]{%
@@ -2042,6 +2135,7 @@
}%
\ifjlreq@tempa\ClassWarningNoLine{jlreq}{Invalid input `##1' for column_spanning in BlockHeading #1}\fi
}
+ {number}[true,false]{\csname jlreq@number##1\endcsname}
}{#3}%
\def\jlreq@do{}% 初期化.これに最終処理を入れていく.
% 入力チェック
@@ -2051,48 +2145,69 @@
\def\jlreq@column@spanning{false}%
\fi
}{}%
- \edef\jlreq@format{\expandonce{\jlreq@font}\expandonce{\jlreq@format}}%
% 空き量などの調整を含んだラベル
\edef\jlreq@label@format@modified{%
\noexpand\noindent
- \unexpanded{\setbox\jlreq@tempboxa=\hbox}{\expandonce{\jlreq@label@format}}%
- \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq@after@label@space}) + (\expandonce{\jlreq@second@heading@text@indent@wlabel})%
- \ifjlreq@hang
- +\wd\jlreq@tempboxa\relax
+ \ifnum 0\ifjlreq@subtitleindent@withlabel 1\fi\ifjlreq@hang 1\fi>0
+ \unexpanded{\setbox\jlreq@tempboxa=\hbox}{\expandonce{\jlreq@label@format}}%
+ \unexpanded{\xdef\jlreq@BlockHeading@start@labellength{\the\wd\jlreq@tempboxa}}%
+ \unexpanded{\box\jlreq@tempboxa}%
\else
- \relax
- \unexpanded{\edef\jlreq@BlockHeading@start@labellength{\the\wd\jlreq@tempboxa}}%
+ \expandonce{\jlreq@label@format}%
+ \fi
+ \inhibitglue\hbox{}%
+ \ifdim\dimexpr\jlreq@after@label@space\relax=0pt \else
+ \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq@after@label@space}\noexpand\relax}%
\fi
- \box\jlreq@tempboxa
}%
\edef\jlreq@heading@text@format@wlabel{%
- \ifdim\dimexpr\jlreq@after@label@space\relax=0pt\else
- \noexpand\hspace*{\noexpand\dimexpr\expandonce{\jlreq@after@label@space}\noexpand\relax}%
+ \ifnum 0\ifdim\jlreq@second@heading@text@indent@wlabel>0pt 1\fi\ifjlreq@hang 1\fi>0
+ \unexpanded{\hangindent=\glueexpr}(\expandonce{\jlreq@second@heading@text@indent@wlabel})%
+ \ifjlreq@hang + (\expandonce{\jlreq@after@label@space}) + \unexpanded{\jlreq@BlockHeading@start@labellength}\fi
+ \noexpand\relax
\fi
\expandonce{\jlreq@heading@text@format}%
}%
\edef\jlreq@heading@text@format@wolabel{%
- \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=0pt\else
- \noexpand\hangindent=\noexpand\dimexpr\expandonce{\jlreq@second@heading@text@indent@wolabel}\noexpand\relax
+ \ifdim\dimexpr\jlreq@second@heading@text@indent@wolabel\relax=0pt \else
+ \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@second@heading@text@indent@wolabel}\noexpand\relax
\fi
\expandonce{\jlreq@heading@text@format}%
}%
\def\jlreq@make@subtitle@format##1##2{%
\edef##1{%
- \ifjlreq@subtitle@break\unexpanded{{\par}\hangafter=0}\fi
- \unexpanded{\hangindent=\dimexpr\hangindent + }(\expandonce{\jlreq@subtitle@indent}) ##2\noexpand\relax
- \ifdim\jlreq@subtitle@indent=0pt\else
- \ifjlreq@subtitle@break\else\unexpanded{\hspace*}{\expandonce{\jlreq@subtitle@indent}}\fi
+ \ifjlreq@subtitle@break
+ \unexpanded{\par}%
+ ##2%
+ \fi
+ \ifdim\jlreq@subtitle@indent=0pt \else
+ \ifjlreq@subtitle@break\else
+ \unexpanded{\hspace*}{\expandonce{\jlreq@subtitle@indent}}%
+ \fi
+ \fi
+ \ifjlreq@subtitle@break
+ \unexpanded{\nobreak\noindent}%
\fi
- \unexpanded{\nobreak\noindent}%
- {\ifx\jlreq@subtitle@font\@empty\else\expandonce{\jlreq@subtitle@font}\fi\expandonce{\jlreq@subtitle@format}}%
+ {\expandonce{\jlreq@subtitle@font}\expandonce{\jlreq@subtitle@format}}%
}%
}%
\jlreq@make@subtitle@format\jlreq@subtitle@format@wlabel{%
- - (\expandonce{\jlreq@second@heading@text@indent@wlabel})%
- \ifjlreq@hang\else + (\noexpand\jlreq@BlockHeading@start@labellength)\fi
+ \ifjlreq@subtitleindent@withlabel
+ \noexpand\hangafter=0
+ \unexpanded{\hangindent=\dimexpr}\noexpand\jlreq@BlockHeading@start@labellength + (\expandonce{\jlreq@after@label@space}) + (\expandonce{\jlreq@subtitle@indent})\noexpand\relax
+ \else
+ \ifdim\jlreq@subtitle@indent>0pt
+ \noexpand\hangafter=0
+ \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@subtitle@indent}\noexpand\relax
+ \fi
+ \fi
+ }%
+ \jlreq@make@subtitle@format\jlreq@subtitle@format@wolabel{%
+ \ifdim\jlreq@subtitle@indent>0pt
+ \noexpand\hangafter=0
+ \unexpanded{\hangindent=\dimexpr}\expandonce{\jlreq@subtitle@indent}\noexpand\relax
+ \fi
}%
- \jlreq@make@subtitle@format\jlreq@subtitle@format@wolabel{- (\expandonce{\jlreq@second@heading@text@indent@wolabel})}%
\jlreq@heading@make@l@{#1}{#2}{\jlreq@label@format}%
\eappto\jlreq@do{\expandonce{\jlreq@result}}%
\jlreq@BlockHeading@gyodori@parsekeyval*[BlockHeading:#1]{#3}{}{}{1}%
@@ -2104,12 +2219,12 @@
% 前開きが常に入ってしまうので,a:の時は除去する
\jlreq@iffirsttoken{##1}{a}{\def\jlreq@spaceset{{}{##2}{##3}}}{}
\edef\jlreq@totalformat{%
- \noexpand\twocolumn[%
+ \noexpand\twocolumn[{%
% 普段自動で入る\topskipと\baselineskipを手動で入れる
\jlreq@iffirsttoken{##1}{r}{}{\unexpanded{\vskip\topskip\relax}}%
\unexpanded{####1}%
\jlreq@iffirsttoken{##2}{r}{}{\unexpanded{\vskip\glueexpr\baselineskip - \topskip\relax}}%
- ]%
+ }]%
}%
}%
\expandafter\@tempa\jlreq@spaceset
@@ -2122,11 +2237,12 @@
\expandonce{\jlreq@pagebreak}%
\unexpanded{\jlreq@BlockHeading@start{#1}{#2}}%
{{\expandonce{\jlreq@align}}{\expandonce{\jlreq@indent}}{\expandonce{\jlreq@end@indent}}\expandonce{\jlreq@spaceset}{\expandonce{\jlreq@allowbreak@evenpage}}}%
+ {\ifjlreq@number\else -\fi}%
{%
{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@label@format@modified}}%
{\expandonce{\jlreq@heading@text@format@wlabel}}{\expandonce{\jlreq@heading@text@format@wolabel}}%
{\expandonce{\jlreq@subtitle@format@wlabel}}{\expandonce{\jlreq@subtitle@format@wolabel}}%
- {\expandonce{\jlreq@format}}%
+ {\expandonce{\jlreq@font}\expandonce{\jlreq@format}}%
}%
{\expandonce{\jlreq@totalformat}}%
}}%
@@ -2264,7 +2380,7 @@
\jlreq@ifendswith{#1}{*}{{%
\def\@tempa_##1*{\def\@tempa{##1}}%
\@tempa#1%
- \ClassWarning{jlreq}{The heading name `\@gobble #1' ends with `*'. Do you mean `\@tempa{*}'? (in SetBlockHeadingSpaces)}%
+ \ClassWarning{jlreq}{The heading name `\@gobble #1' ends with `*'. Do you mean `_\@tempa{*}'? (in SetBlockHeadingSpaces)}%
}}{}%
\appto\jlreq@headings{#1}%
\jlreq@SetBlockHeadingSpaces@v
@@ -2402,15 +2518,15 @@
}
%.. 同行見出し
-% {1 = 命令名}{2 = レベル}{3 = ラベルフォーマット}{4 = ラベルありフォーマット}{5 = ラベルなしフォーマット}
+% {1 = 命令名}{2 = レベル}{3 = */-}{4 = ラベルフォーマット}{5 = ラベルありフォーマット}{6 = ラベルなしフォーマット}
% 4,5は見出し文字列が#1になる.
-\long\def\jlreq@RuninHeading@start#1#2#3#4#5{%
- \edef\jlreq@RuninHeading@start@format@label{\unexpanded{#3}}%
- \edef\jlreq@RuninHeading@start@format@wlabel{\unexpanded{#4}}%
- \edef\jlreq@RuninHeading@start@format@wolabel{\unexpanded{#5}}%
- \@ifstar{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{}}}%
+\long\def\jlreq@RuninHeading@start#1#2#3#4#5#6{%
+ \edef\jlreq@RuninHeading@start@format@label{\unexpanded{#4}}%
+ \edef\jlreq@RuninHeading@start@format@wlabel{\unexpanded{#5}}%
+ \edef\jlreq@RuninHeading@start@format@wolabel{\unexpanded{#6}}%
+ \@ifstar{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{*}}}{\@dblarg{\jlreq@RuninHeading@start@{#1}{#2}{#3}}}%
}
-% {1 = 命令名}{2 = レベル}{3 = *}{4 = running head}{5 = 見出し}
+% {1 = 命令名}{2 = レベル}{3 = */-}{4 = running head}{5 = 見出し}
\long\def\jlreq@RuninHeading@start@#1#2#3[#4]#5{%
\edef\jlreq@do{\unexpanded{\jlreq@RuninHeading@start@@{#1}{#2}{#3}{#4}{#5}}{\expandonce{\jlreq@RuninHeading@start@format@label}}{\expandonce{\jlreq@RuninHeading@start@format@wlabel}}{\expandonce{\jlreq@RuninHeading@start@format@wolabel}}}%
\jlreq@do
@@ -2466,6 +2582,7 @@
\def\jlreq@label@font{}%
\def\jlreq@label@format{\@seccntformat{#1}}%
\def\jlreq@after@space{1\zw}%
+ \newif\ifjlreq@number \jlreq@numbertrue
\jlreq@parsekeyval[RuninHeading:#1]{%
{font}{\def\jlreq@font{##1}}
{indent}{\def\jlreq@indent{##1}}
@@ -2479,6 +2596,7 @@
\ifdim\dimexpr##1\relax<0pt \ClassWarning{jlreq}{after_space in Runin Heading #1 should be not negative}\fi
\def\jlreq@after@space{##1}%
}
+ {number}{\csname jlreq@number##1\endcsname}
}{#3}%
\newif\ifjlreq@indent@zero
\jlreq@ifgluezero{\glueexpr\jlreq@indent\relax}{\jlreq@indent@zerotrue}{\jlreq@indent@zerofalse}%
@@ -2507,7 +2625,7 @@
\noexpand\edef\expandonce{\csname #1\endcsname}{%
\noexpand\unexpanded{%
\unexpanded{\jlreq@hook@beforeheadings{#1}}%
- \unexpanded{\jlreq@RuninHeading@start{#1}{#2}}{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@format@wlabel}}{\expandonce{\jlreq@format@wolabel}}%
+ \unexpanded{\jlreq@RuninHeading@start{#1}{#2}}{\ifjlreq@number\else -\fi}{\expandonce{\jlreq@label@format}}{\expandonce{\jlreq@format@wlabel}}{\expandonce{\jlreq@format@wolabel}}%
}%
}%
}%
@@ -2564,11 +2682,11 @@
\hspace*{#2}%
\copy\@tempboxa
\hspace*{#3}%
- \par
% でかい見出しボックスの分をキャンセルする空きを入れる
% \baselineskip - \ht\jlreq@tempboxaはTeXが挿入するスキップの分
- \vskip -\dimexpr\ht\@tempboxa + \dp\@tempboxa + \baselineskip - \ht\jlreq@tempboxa\relax\relax
\edef\jlreq@do{%
+ \noexpand\par
+ \noexpand\vskip -\the\dimexpr\ht\@tempboxa + \dp\@tempboxa + \baselineskip - \ht\jlreq@tempboxa\relax\relax
\noexpand\hangindent=\the\dimexpr#2 + \wd\@tempboxa + #3\relax\relax
\noexpand\hangafter=-\jlreq@CutinHeading@linecount\relax
}%
@@ -2652,7 +2770,7 @@
\jlreq@do
}
-\newcommand*\jlreq@HeadingType[1]{%
+\newcommand*{\jlreq@HeadingType}[1]{%
\ifcsname jlreq@heading@type@#1\endcsname
\jlreq@HeadingType@{#1}{\RenewTobiraHeading}{TobiraHeading}{%
\jlreq@HeadingType@{#1}{\RenewBlockHeading}{BlockHeading}{%
@@ -2663,7 +2781,7 @@
UndefinedHeading%
\fi
}
-\newcommand*\jlreq@HeadingType@[2]{%
+\newcommand*{\jlreq@HeadingType@}[2]{%
\expandafter\expandafter\expandafter\ifx\csname jlreq@heading@type@#1\endcsname#2\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
}
@@ -2774,33 +2892,6 @@
\ModifyHeading{chapter}{pagebreak=clearpage}
\fi
}
-\jlreq@switch{\jlreq@article@type}{
- {book}{%
- \renewcommand{\jlreq@heading@maketoc@chapter}[3]{%
- \jlreq@ifempty{#1}{%
- \chaptermark{#3}%
- \ifnum0\if@mainmatter\else1\fi\ifnum\jlreq@heading@level@chapter>\c@secnumdepth 1\fi>0
- \addcontentsline{toc}{chapter}{#3}%
- \else
- \addcontentsline{toc}{chapter}{\protect\numberline{#2}#3}%
- \fi
- }{}%
- }
- }
- {report}{
- \renewcommand{\jlreq@heading@maketoc@chapter}[3]{%
- \jlreq@ifempty{#1}{%
- \chaptermark{#3}%
- \ifnum0\ifnum\jlreq@heading@level@chapter>\c@secnumdepth 1\fi>0
- \addcontentsline{toc}{chapter}{#3}%
- \else
- \addcontentsline{toc}{chapter}{\protect\numberline{#2}#3}%
- \fi
- }{}%
- }
- }
-}
-
%. 注
% 文字サイズは6ポイントくらい(4.2.3.a)とりあえす\scriptsize
@@ -3230,7 +3321,7 @@
\def\jlreq@sidenotemarkname{@thefnmark}% 合印用番号を一時的に入れるマクロ名
\long\def\@sidenotetext#1{%
\marginpar{\reset@font\footnotesize
- \color@begingroup
+ \color@begingroup\normalcolor
\@makesidetext{#1}%
\color@endgroup
}%
@@ -3326,12 +3417,14 @@
% \inlinenote*は自動で改行されない.\\で改行位置を指定する.
\newif\ifjlreq@in@inlinenote
\jlreq@in@inlinenotefalse
-\newcommand*{\inlinenote}{%
- \ifjlreq@in@inlinenote\ClassError{jlreq}{\string\inlinenote\space can't be nested}{\@ehc}\fi
+\newcommand*{\jlreq@inlinenote@}[1]{%
+ \ifjlreq@in@inlinenote\ClassError{jlreq}{\string#1\space can't be nested}{\@ehc}\fi
\jlreq@in@inlinenotetrue
\ifvmode\leavevmode\fi
- \@ifstar\jlreq@inlinenote@noauto\jlreq@inlinenote@auto}
-\let\warichu=\inlinenote
+ \@ifstar\jlreq@inlinenote@noauto\jlreq@inlinenote@auto
+}
+\newcommand*{\inlinenote}{\jlreq@inlinenote@{\inlinenote}}
+\newcommand*{\warichu}{\jlreq@inlinenote@{\warichu}}
\newcommand*{\jlreq@inlinenote@auto}[1]{%
% 割注初め括弧の前の場所を保存
@@ -3359,9 +3452,7 @@
\else
\jlreq@tempdima=\dimexpr\jlreq@tempdimc - \jlreq@tempdimb\relax
\divide\jlreq@tempdima\linewidth
- \@tempcntb=\number\jlreq@tempdima
- \multiply\@tempcntb by 2\relax
- \advance\@tempcntb by 4\relax
+ \@tempcntb=\numexpr 2*\number\jlreq@tempdima + 4\relax
\fi
% \jlreq@parshapeargに\parshapeに指定する書式の最後以外を入れる.
\ifnum\@tempcntb>2\relax
@@ -3492,58 +3583,60 @@
% として整形した際に,#5行以内に収まる.
% \jlreq@resultboxに整形結果を返す(垂直ボックス).見つからなかったらvoid.\globalに設定する.
\newcommand{\jlreq@inlinenote@determinelength}[7]{%
-% \message{#1 の試行開始,行数 = #5, \the\dimexpr#6\relax から \the\dimexpr#7\relaxまで}%
- \@tempcnta=1\relax
- \def\@tempa{}%
- % 調整に使う行の\parshape指定を\@tempaに入れる.長さは\jlreq@tempdima.
- \@whilenum\@tempcnta<#4\do{%
- \expandafter\def\expandafter\@tempa\expandafter{\@tempa 0pt \the\jlreq@tempdima}%
- \advance\@tempcnta by 1\relax
- }%
- \@tempcnta=0
- \jlreq@tempdima=#6\relax
- % \jlreq@tempdimaを少しずつ伸ばしていく
- \@whilenum\@tempcnta<1000\do{%
- \ifnum\@tempcnta>999\relax% ループが長すぎる
- \global\setbox\jlreq@resultbox=\voidb@x%
- \@tempcnta=1001\relax
- \else
- \setbox\@tempboxa=\vbox{#2%
- \vbadness=10000\hbadness=10000\vfuzz=\maxdimen\hfuzz=\maxdimen
- \parindent=0pt\leftskip=0pt\rightskip=0pt
- \parshape #5 #3 \@tempa 0pt \the\maxdimen
- #1\par\global\@tempcntb=\prevgraf}%
-% \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}%
- \fi
- \jlreq@getlastbox{\@tempboxa}%
- \setbox\jlreq@tempboxa=\box\jlreq@resultbox
- \ifnum\@tempcntb<#5\relax% 行数が達していないならOK
-% \message{行数 = \the\@tempcntb により確定}
- % #5行になるまで空の水平ボックスを加えていく.
- \global\setbox\jlreq@resultbox=\vbox{#2%
- \unvbox\@tempboxa\hbox{\unhbox\jlreq@tempboxa\unskip\unskip\unpenalty}%
- \@whilenum\@tempcntb<#5\do{\hbox{}\advance\@tempcntb by 1}}%
- \@tempcnta=1001\relax
- \else
- % そうでない場合は最後の二行の長さを比較する
+ \begingroup
+ % \message{#1 の試行開始,行数 = #5, \the\dimexpr#6\relax から \the\dimexpr#7\relaxまで}%
+ \@tempcnta=1\relax
+ \def\@tempa{}%
+ % 調整に使う行の\parshape指定を\@tempaに入れる.長さは\jlreq@tempdima.
+ \@whilenum\@tempcnta<#4\do{%
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempa 0pt \the\jlreq@tempdima}%
+ \advance\@tempcnta by 1\relax
+ }%
+ \@tempcnta=0
+ \jlreq@tempdima=#6\relax
+ % \jlreq@tempdimaを少しずつ伸ばしていく
+ \@whilenum\@tempcnta<1000\do{%
+ \ifnum\@tempcnta>999\relax% ループが長すぎる
+ \global\setbox\jlreq@resultbox=\voidb@x%
+ \@tempcnta=1001\relax
+ \else
+ \setbox\@tempboxa=\vbox{#2%
+ \vbadness=10000\hbadness=10000\vfuzz=\maxdimen\hfuzz=\maxdimen
+ \parindent=0pt\leftskip=0pt\rightskip=0pt
+ \parshape #5 #3 \@tempa 0pt \the\maxdimen
+ #1\par\global\@tempcntb=\prevgraf}%
+ % \message{\string\jlreq@tempdima = \the\jlreq@tempdima で試行,行数は\the\@tempcntb , 書式 #5 #3 \@tempa 0pt \the\maxdimen}%
+ \fi
\jlreq@getlastbox{\@tempboxa}%
- \setbox\jlreq@tempboxb=\box\jlreq@resultbox
-% \message{最終行の長さ \the\wd\jlreq@tempboxa, その前の長さ \the\wd\jlreq@tempboxb}%
- \ifdim\wd\jlreq@tempboxa>\wd\jlreq@tempboxb
- \advance\jlreq@tempdima by 0.3pt\relax% 0.3ptに意味はない
+ \setbox\jlreq@tempboxa=\box\jlreq@resultbox
+ \ifnum\@tempcntb<#5\relax% 行数が達していないならOK
+ % \message{行数 = \the\@tempcntb により確定}
+ % #5行になるまで空の水平ボックスを加えていく.
+ \global\setbox\jlreq@resultbox=\vbox{#2%
+ \unvbox\@tempboxa\hbox{\unhbox\jlreq@tempboxa\unskip\unskip\unpenalty}%
+ \@whilenum\@tempcntb<#5\do{\hbox{}\advance\@tempcntb by 1}}%
+ \@tempcnta=1001\relax
\else
- % 後ろが短いのでOK
- \global\setbox\jlreq@resultbox=\vbox{#2\unvbox\@tempboxa\box\jlreq@tempboxb\box\jlreq@tempboxa}%
- \jlreq@resultdimen=\jlreq@tempdima
+ % そうでない場合は最後の二行の長さを比較する
+ \jlreq@getlastbox{\@tempboxa}%
+ \setbox\jlreq@tempboxb=\box\jlreq@resultbox
+ % \message{最終行の長さ \the\wd\jlreq@tempboxa, その前の長さ \the\wd\jlreq@tempboxb}%
+ \ifdim\wd\jlreq@tempboxa>\wd\jlreq@tempboxb
+ \advance\jlreq@tempdima by 0.3pt\relax% 0.3ptに意味はない
+ \else
+ % 後ろが短いのでOK
+ \global\setbox\jlreq@resultbox=\vbox{#2\unvbox\@tempboxa\box\jlreq@tempboxb\box\jlreq@tempboxa}%
+ \jlreq@resultdimen=\jlreq@tempdima
+ \@tempcnta=1001\relax
+ \fi
+ \fi
+ \ifdim\jlreq@tempdima>#7\relax
+ \global\setbox\jlreq@resultbox=\box\voidb@x
\@tempcnta=1001\relax
\fi
- \fi
- \ifdim\jlreq@tempdima>#7\relax
- \global\setbox\jlreq@resultbox=\box\voidb@x
- \@tempcnta=1001\relax
- \fi
- \advance\@tempcnta by 1\relax
- }%
+ \advance\@tempcnta by 1\relax
+ }%
+ \endgroup
}
%. ページスタイル.
@@ -3594,6 +3687,7 @@
{center}{\def\jlreq@tempd{#1}}
{gutter}{\if@tate\def\jlreq@tempd{right}\else\def\jlreq@tempd{left}\fi}
{fore_edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi}
+ {fore-edge}{\if@tate\def\jlreq@tempd{left}\else\def\jlreq@tempd{right}\fi}
{\ClassError{jlreq}{Invalid position: #1}{\@ehc}}
}%
}
@@ -3859,7 +3953,11 @@
\def\jlreq@pagestyle@make@headingmark@@#1#2#3#4#5{%
% \jlreq@tempbに\***markの定義を入れる
- \edef\jlreq@tempb{\expandonce{\csname the#1\endcsname}\noexpand\quad\unexpanded{##1}}%
+ \edef\jlreq@tempb{%
+ \expandonce{\csname the#1\endcsname}%
+ \noexpand\ifx\expandonce{\csname the#1\endcsname}\unexpanded{\@empty\else\quad\fi}%
+ \unexpanded{##1}%
+ }%
\jlreq@parsekeyval@nokey{%
\jlreq@ifempty{##1}{}{\ifthenelse{\equal{##1}{#3}}{\edef\jlreq@tempb{\unexpanded{##2}}}{}}%
\ifthenelse{\equal{##1}{_#1}}{\edef\jlreq@tempb{\unexpanded{##2}}}{}%
@@ -3907,20 +4005,20 @@
% #1の左右に傍注調整用の空白を入れて#1に代入する
\def\jlreq@pagestyle@addsidenotemargin@left#1{%
- \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{}{\marginparwidth+\marginparsep}%
+ \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{}%
}
-\def\jlreq@pagestyle@addsidenotemargin@right#1{
- \jlreq@pagestyle@addsidenotemargin@{#1}{}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}%
+\def\jlreq@pagestyle@addsidenotemargin@right#1{%
+ \jlreq@pagestyle@addsidenotemargin@{#1}{}{\marginparwidth+\marginparsep}%
}
-\def\jlreq@pagestyle@addsidenotemargin@bothside#1{
- \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}{2\marginparwidth+2\marginparsep}%
+\def\jlreq@pagestyle@addsidenotemargin@bothside#1{%
+ \jlreq@pagestyle@addsidenotemargin@{#1}{\marginparwidth+\marginparsep}{\marginparwidth+\marginparsep}%
}
% #2: 左,#3:右,#4:#2 + #3
-\def\jlreq@pagestyle@addsidenotemargin@#1#2#3#4{%
+\def\jlreq@pagestyle@addsidenotemargin@#1#2#3{%
\ifx#1\@empty\else
\edef#1{%
\jlreq@ifempty{#2}{}{\unexpanded{\hskip-\dimexpr #2\relax}}%
- \unexpanded{\hbox to \dimexpr\textwidth + #4\relax}{\expandonce{#1}}%
+ \expandonce{#1}%
\jlreq@ifempty{#3}{}{\unexpanded{\hskip-\dimexpr #3\relax}}%
}%
\fi
@@ -3931,9 +4029,9 @@
\ifx#1\@empty\ifx#4\@empty\else\eappto#2{\expandonce{#3}\expandonce{#4}}\def#4{}\fi\fi
}
-% #1: ターゲットなコントロールシークエンスの名前,#2:*ならばreverseする,#3:空き
% #1に入っている{柱1}{柱2}... という並びから,実際に出力する柱を構築する.
% 間に空白を入れる.
+% #1: ターゲットなコントロールシークエンスの名前,#2:*ならばreverseする,#3:空き
\def\jlreq@pagestyle@make@runninghead#1#2#3{%
\expandafter\ifx\csname #1\endcsname\@empty\expandafter\@gobble\else\expandafter\@firstofone\fi{%
\edef\jlreq@do{%
@@ -3967,6 +4065,15 @@
}%
}
+% #1= cs,#2 = フォーマットの入ったcs,#3 = デフォルトフォーマットの入ったcs
+\def\jlreq@pagestyle@applyformat#1#2#3{%
+ % デフォルト時に限り,\hbox to ***{空トークン}を避ける
+ \ifnum 0\ifx#1\@empty\else 1\fi\ifx#2\relax\else 1\fi>0
+ \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\ifx#2\relax\expandonce{#3}\else\expandonce{#2}\fi}}\jlreq@do
+ \edef#1{\expandafter\expandonce\expandafter{\expandafter\jlreq@tempa\expandafter{#1}}}%
+ \fi
+}
+
%.. \DeclarePageStyle
\newcommand{\DeclarePageStyle}[2]{%
\expandafter\edef\csname jlreq@pagestyle@setting@#1\endcsname{\unexpanded{#2}}%
@@ -3979,6 +4086,10 @@
\def\jlreq@command{}%
\def\jlreq@mark@format{}%
\def\jlreq@font{}%
+ \let\jlreq@oddheadformat\relax
+ \let\jlreq@evenheadformat\relax
+ \let\jlreq@oddfootformat\relax
+ \let\jlreq@evenfootformat\relax
% 柱とノンブルの間
\def\jlreq@gap{1.5\zw}%
\def\jlreq@nombre@gap{}%
@@ -4008,6 +4119,10 @@
{running_head_gap}{\def\jlreq@running@head@gap{##1}}
% trueにすると,\ps@***実行時にまず\***markを全て\@gobbleにする.
{clear_markcommand}[true,false]{\csname jlreq@clearmarkcommand##1\endcsname}
+ {odd_head_format}{\edef\jlreq@oddheadformat{\unexpanded{##1}}}
+ {even_head_format}{\edef\jlreq@evenheadformat{\unexpanded{##1}}}
+ {odd_foot_format}{\edef\jlreq@oddfootformat{\unexpanded{##1}}}
+ {even_foot_format}{\edef\jlreq@evenfootformat{\unexpanded{##1}}}
% 二つ目
{nombre_ii}{\def\jlreq@nombre@ii{##1}}
{nombre_ii_position}{\def\jlreq@nombre@ii@position{##1}}
@@ -4120,13 +4235,20 @@
\fi
}%
% \jlreq@(odd|even)headの構築
+ \@ifundefined{jlreq@\jlreq@parity headformat}
+ {\def\jlreq@format{####1}}%
+ {\expandafter\let\expandafter\jlreq@format\csname jlreq@\jlreq@parity headformat\endcsname}%
+ \edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\expandonce{\jlreq@format}}}\jlreq@do
+ \edef\jlreq@tempb{%
+ \csexpandonce{jlreq@\jlreq@parity @contents}%
+ \noexpand\hfil
+ \expandonce{\jlreq@nombre@contents}%
+ }%
\expandafter\edef\csname jlreq@\jlreq@parity head\endcsname{%
\unexpanded{\setbox\jlreq@tempboxa=\hbox to \dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\zh}\fi\noexpand\relax
{%
\unexpanded{\tate\adjustbaseline}%
- \csexpandonce{jlreq@\jlreq@parity @contents}%
- \noexpand\hfil
- \expandonce{\jlreq@nombre@contents}%
+ \expandafter\expandonce\expandafter{\expandafter\jlreq@tempa\expandafter{\jlreq@tempb}}%
}%
% Underful対策
\ifx l\jlreq@engine
@@ -4138,7 +4260,7 @@
}%
% \jlreq@tempboxaに入っているボックスを正しく配置する
\edef\jlreq@lefthead@adjustbox{%
- \noexpand\hskip\noexpand\dimexpr\if@tate\unexpanded{- \Cdp}\fi - \unexpanded{\headsep - 1\zw\relax}%
+ \noexpand\hskip\noexpand\dimexpr\if@tate\unexpanded{- \Cdp}\fi \unexpanded{- \headsep - 1\zw\relax}%
\unexpanded{\box\jlreq@tempboxa\hfil}%
}%
\edef\jlreq@righthead@adjustbox{%
@@ -4264,6 +4386,15 @@
\jlreq@pagestyle@setheadfoot{\jlreq@oddfoot}{jlreq@odd@bottom@left}{jlreq@odd@bottom@center}{jlreq@odd@bottom@right}%
\jlreq@pagestyle@setheadfoot{\jlreq@evenhead}{jlreq@even@top@left}{jlreq@even@top@center}{jlreq@even@top@right}%
\jlreq@pagestyle@setheadfoot{\jlreq@evenfoot}{jlreq@even@bottom@left}{jlreq@even@bottom@center}{jlreq@even@bottom@right}%
+ \ifdim\marginparwidth>0pt
+ \def\jlreq@defaultformat{\hbox to \jlreqyokoheadlength{####1}}%
+ \else
+ \def\jlreq@defaultformat{####1}%
+ \fi
+ \jlreq@pagestyle@applyformat{\jlreq@oddhead}{\jlreq@oddheadformat}{\jlreq@defaultformat}%
+ \jlreq@pagestyle@applyformat{\jlreq@evenhead}{\jlreq@evenheadformat}{\jlreq@defaultformat}%
+ \jlreq@pagestyle@applyformat{\jlreq@oddfoot}{\jlreq@oddfootformat}{\jlreq@defaultformat}%
+ \jlreq@pagestyle@applyformat{\jlreq@evenfoot}{\jlreq@evenfootformat}{\jlreq@defaultformat}%
% 傍注用調整
\ifdim\marginparwidth>0pt
\if@tate\else
@@ -4304,6 +4435,17 @@
\jlreq@do
}
+\ifdim\marginparwidth>0pt
+ \if@twocolumn
+ \def\jlreqyokoheadlength{\dimexpr\textwidth + 2\marginparwidth + 2\marginparsep\relax}
+ \else
+ \def\jlreqyokoheadlength{\dimexpr\textwidth + \marginparwidth + \marginparsep\relax}
+ \fi
+\else
+ \def\jlreqyokoheadlength{\textwidth}
+\fi
+\edef\jlreqtateheadlength{\unexpanded{\dimexpr\headsep + \headheight + \textheight}\if@tate\else\unexpanded{- \topskip + 1\zh}\fi\noexpand\relax}
+
\newcommand*{\NewPageStyle}[2]{%
\expandafter\@ifdefinable\csname ps@#1\endcsname{\DeclarePageStyle{#1}{#2}}%
}
@@ -4376,11 +4518,12 @@
\vskip\abovecaptionskip
\edef\jlreq@do{\unexpanded{\def\jlreq@tempa##1}{\expandonce{\jlreq@makecaption@label@format}}}%
\jlreq@do
- \jlreq@ifempty{#1}{}{%
- \edef\jlreq@tempa{{\noexpand\jlreq@@makecaption@label@font\expandonce{\jlreq@tempa{#1}}\unexpanded{\hskip \glueexpr\jlreq@makecaption@after@label@space\relax}}}%
- }%
- \appto\jlreq@tempa{{\jlreq@@makecaption@font #2}}%
- \setbox\@tempboxa=\hbox{\jlreq@tempa}%
+ \setbox\jlreq@tempboxa=\hbox{\jlreq@@makecaption@label@font #1}%
+ \ifdim\wd\jlreq@tempboxa=0pt
+ \edef\jlreq@tempa{\unexpanded{{\jlreq@@makecaption@font #2}}}%
+ \else
+ \edef\jlreq@tempa{{\noexpand\jlreq@@makecaption@label@font\expandonce{\jlreq@tempa{#1}}\unexpanded{\hskip\glueexpr\jlreq@makecaption@after@label@space\relax}}\unexpanded{{\jlreq@@makecaption@font #2}}}%
+ \fi
\@ifundefined{@currenvir}{%
\@ifundefined{@captype}%
{\def\jlreq@tempb{}}%
@@ -4389,11 +4532,12 @@
\@ifundefined{jlreq@caption@align@\jlreq@tempb}%
{\let\jlreq@align=\jlreq@caption@align}%
{\expandafter\let\expandafter\jlreq@align\csname jlreq@caption@align@\jlreq@tempb\endcsname}%
+ \setbox\@tempboxa=\hbox{\jlreq@tempa}%
\ifdim\wd\@tempboxa>\hsize\relax
{%
\ifx c\jlreq@align\centering\fi
\ifx r\jlreq@align\raggedleft\fi
- \jlreq@tempa\par
+ \unhbox\@tempboxa\par
}%
\else
\global\@minipagefalse
@@ -4718,7 +4862,7 @@
}%
}%
\def\jlreq@tempa{%
- \jlreq@parsekeyval{%
+ \jlreq@parsekeyval[jlreqsetup: itemization_beforeafter_space]{%
{i}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@i{####1}}}
{ii}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@ii{####1}}}
{iii}{\appto\jlreq@do{\def\jlreq@itemization@beforeafter@space@iii{####1}}}
@@ -4968,12 +5112,12 @@
\interlinepenalty\@M
\leavevmode
\@lnumwidth #3\relax
- \@tempcnta=#1\relax
- \advance\@tempcnta by -\jlreq@top@contents
- \@tempdima=1\jlreq@mol
- \multiply \@tempdima by \@tempcnta
+ \@tempcnta=#1\relax
+ \advance\@tempcnta by -\jlreq@top@contents
+ \@tempdima=1\jlreq@mol
+ \multiply \@tempdima by \@tempcnta
\advance\leftskip \@lnumwidth \hbox{}\hskip -\leftskip
- \advance\leftskip\@tempdima
+ \advance\leftskip\@tempdima
{#4}\nobreak
\leaders\hbox{$\m@th\mkern \@dotsep mu$\null\inhibitglue ・\inhibitglue\null$\m@th\mkern \@dotsep mu$}%
\hfill\nobreak
@@ -5053,71 +5197,336 @@
\newcommand{\subsubitem}{\@idxitem \hspace*{3\jlreq@mol}}
\newcommand{\indexspace}{\par \vskip 1\jlreq@gol \@plus .5\jlreq@gol \@minus .3\jlreq@gol\relax}
-
%. 前付,後付,付録
+
+% \jlreq@matter@heading[restoreする見出し一覧を入れる制御綴]{#2@<見出し命令名>に今の見出しの中身を入れる}{生成する制御綴の名前}{設定}
+\def\jlreq@matter@heading{\@ifnextchar[{\jlreq@matter@heading@}{\jlreq@matter@heading@[]{}}}
+\def\jlreq@matter@heading@[#1]#2#3#4{%
+ \begingroup
+ \def\jlreq@restoreheadings{}% 復帰させる見出し名(カンマ区切り)
+ \def\jlreq@headingscmds{}% \ModiryHeadings**,\RenewHeadings**の塊
+ \jlreq@parsekeyval@nokey{%
+ % ##1 = 見出し命令名, ##2 = 設定
+ \def\jlreq@headingsettings{}% Modifyする中身
+ \def\jlreq@declaretype{Modify}%
+ \def\jlreq@level{}%
+ \jlreq@tempatrue % restore
+ \jlreq@parsekeyval@nokey{%
+ % 各見出し命令に対する設定を解析
+ \ifjlreq@parsekeyval@nokey@novalue{%
+ \eappto\jlreq@headingsettings{\unexpanded{####1}}%
+ }{%
+ \jlreq@switch{####1}{%
+ {heading_type}{%
+ \lowercase{\def\jlreq@tempa{####2}}%
+ \jlreq@switch{\jlreq@tempa}{
+ {tobira}{\def\jlreq@declaretype{RenewTobira}}
+ {block}{\def\jlreq@declaretype{RenewBlock}}
+ {runin}{\def\jlreq@declaretype{RenewRunin}}
+ {cutin}{\def\jlreq@declaretype{RenewCutin}}
+ {modify}{\def\jlreq@declaretype{Modify}}
+ {\ClassError{jlreq}{Unknown heading type `####2'}{\@ehc}}
+ }%
+ }
+ {heading_level}{\def\jlreq@level{####2}}
+ {%
+ \jlreq@ifempty{#1}{\@firstofone}{%
+ \ifthenelse{\equal{####1}{restore}}{%
+ \csname jlreq@tempa####2\endcsname\@gobble
+ }{\@firstofone}%
+ }%
+ {\eappto\jlreq@headingsettings{\ifx\jlreq@headingsettings\@empty\else ,\fi\unexpanded{####1={####2}}}}%
+ }%
+ }%
+ }%
+ }{##2}%
+ \jlreq@ifempty{#1}{}{%
+ \ifjlreq@tempa
+ \eappto\jlreq@headingscmds{\noexpand\SaveHeading{\unexpanded{##1}}{\expandonce{\csname #2@##1\endcsname}}}%
+ \eappto\jlreq@restoreheadings{\ifx\jlreq@restoreheadings\@empty\else ,\fi\unexpanded{##1}}%
+ \fi
+ }%
+ % \jlreq@declareに\ModifyHeadingか\Renew***Headingを入れる
+ \ifx\jlreq@\@empty\else
+ \edef\jlreq@declare{\expandonce{\csname\jlreq@declaretype Heading\endcsname}{##1}}%
+ \ifthenelse{\NOT \equal{\jlreq@declaretype}{Modify}}{%
+ \ifx\jlreq@level\@empty
+ % \frontmatter時でのレベルを引用する.
+ \edef\jlreq@declare{%
+ \unexpanded{\edef\jlreq@tempa}{\noexpand\unexpanded{\expandonce{\jlreq@declare}}{\noexpand\expandonce{\expandonce{\csname jlreq@heading@level@##1\endcsname}}}}%
+ \noexpand\jlreq@tempa
+ }%
+ \else
+ \eappto\jlreq@declare{{\expandonce{\jlreq@level}}}%
+ \fi
+ }{}%
+ \eappto\jlreq@headingscmds{\expandonce{\jlreq@declare}{\expandonce{\jlreq@headingsettings}}}%
+ \fi
+ }{#4}%
+ \edef\jlreq@do{%
+ \unexpanded{\def#3}{%
+ \expandonce{\jlreq@headingscmds}%
+ \jlreq@ifempty{#1}{}{\unexpanded{\def#1}{\expandonce{\jlreq@restoreheadings}}}%
+ }%
+ }%
+ \expandafter\endgroup
+ \jlreq@do
+}
+
+\def\jlreq@matter@counter@norestore#1#2{%
+ \def#1{}%
+ \jlreq@parsekeyval@nokey{%
+ \jlreq@parsekeyval{
+ {value}{\appto#1{\setcounter{##1}{####1}}}
+ {the}{\eappto#1{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}}
+ }{##2}%
+ }{#2}%
+}
+
\ifthenelse{\equal{\jlreq@article@type}{book}}{
+% \tracingmacros=1
\newif\if@mainmatter
\@mainmattertrue
+ \jlreq@jlreqsetup@add{frontmatter_pagebreak}{%
+ \edef\jlreq@frontmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+ }
+ \jlreq@jlreqsetup@add{frontmatter_counter}{%
+ \def\jlreq@frontmatter@counter{}%
+ \def\jlreq@tempa{}% 復帰させるカウンタ名リスト
+ \jlreq@parsekeyval@nokey{%
+ \def\jlreq@tempb{}% 中身
+ \jlreq@tempatrue % restore
+ \jlreq@parsekeyval{
+ {value}{\appto\jlreq@tempb{\setcounter{##1}{####1}}}
+ {restore}{\csname jlreq@tempa####1\endcsname}
+ {the}{\eappto\jlreq@tempb{\noexpand\def\expandonce{\csname the##1\endcsname}{\unexpanded{####1}}}}
+ }{##2}%
+ \ifjlreq@tempa
+ \epreto\jlreq@tempb{%
+ \noexpand\let\expandonce{\csname jlreq@frontmatter@savedcounter@the@##1\endcsname}\expandonce{\csname the##1\endcsname}%
+ \noexpand\edef\expandonce{\csname jlreq@frontmatter@savedcounter@value@##1\endcsname}{\unexpanded{\the\value{##1}}}%
+ }%
+ \eappto\jlreq@tempa{\ifx\jlreq@tempa\@empty\else ,\fi\unexpanded{##1}}%
+ \fi
+ \eappto\jlreq@frontmatter@counter{\expandonce{\jlreq@tempb}}%
+ }{#1}%
+ \eappto\jlreq@frontmatter@counter{\unexpanded{\def\jlreq@frontmatter@restorecounters}{\expandonce{\jlreq@tempa}}}%
+ }
+ \jlreq@jlreqsetup@add{frontmatter_heading}{\jlreq@matter@heading[\jlreq@frontmatter@restoreheadings]{jlreq@frontmatter@savedheading}{\jlreq@frontmatter@heading}{#1}}
+ \jlreq@jlreqsetup@add{frontmatter_pagestyle}{%
+ \def\jlreq@tempa{}% ページスタイル名
+ \def\jlreq@frontmatter@pagestyle{}%
+ \jlreq@tempatrue % restore
+ \jlreq@parsekeyval@nokey{%
+ \ifjlreq@parsekeyval@nokey@novalue{\def\jlreq@tempa{##1}}{%
+ \jlreq@switch{##1}{%
+ {restore}{\csname jlreq@tempa##2\endcsname}%
+ }%
+ }%
+ }{#1}%
+ \ifjlreq@tempa
+ \appto\jlreq@frontmatter@pagestyle{\let\jlreq@frontmatter@savedpagestyle\jlreq@current@pagestyle}%
+ \fi
+ \ifx\jlreq@tempa\@empty\else
+ \eappto\jlreq@frontmatter@pagestyle{\noexpand\pagestyle{\expandonce{\jlreq@tempa}}}%
+ \fi
+ }
+ \jlreq@jlreqsetup@add{frontmatter_precode}{\edef\jlreq@frontmatter@precode{\unexpanded{#1}}}
+ \jlreq@jlreqsetup@add{frontmatter_postcode}{\edef\jlreq@frontmatter@postcode{\unexpanded{#1}}}
+ \jlreq@jlreqsetup@add{frontmatter_pagination}{%
+ \def\jlreq@pagination@frontmatterstyle{arabic}%
+ \let\jlreq@pagination@mainmatterpagecommand=\pagenumbering
+ \@for\jlreq@tempa:=#1\do{%
+ \jlreq@switch{\jlreq@tempa}{
+ {continuous}{%
+ \def\jlreq@pagination@mainmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}%
+ }
+ {independent}{\let\jlreq@pagination@mainmatterpagecommand=\pagenumbering}
+ {\edef\jlreq@pagination@frontmatterstyle{\jlreq@tempa}}
+ }%
+ }%
+ }
\newcommand*{\frontmatter}{%
- \cleardoublepage
+ \jlreq@frontmatter@precode
+ \jlreq@frontmatter@pagebreak
\@mainmatterfalse
- \let\jlreq@pagestyle@atmain\jlreq@current@pagestyle
- \SaveHeading{chapter}{\jlreq@heading@chapter@atmain}%
- \ModifyHeading{chapter}{label_format={},after_label_space=0pt}%
- \pagestyle{plain}%
- \pagenumbering{roman}}
+ \let\jlreq@frontmatter@savedpagestyle\@undefined
+ \jlreq@frontmatter@pagestyle
+ \jlreq@frontmatter@counter
+ \jlreq@frontmatter@heading
+ \expandafter\gdef\expandafter\thepage\expandafter{\csname @\jlreq@pagination@frontmatterstyle\endcsname\c@page}%
+ \jlreq@frontmatter@postcode
+ }
+ \def\jlreq@frontmatter@restorecounters{}
+ \def\jlreq@frontmatter@restoreheadings{}
+ \def\jlreq@frontmatter@restorecommands{}
+ \jlreq@jlreqsetup@add{mainmatter_pagebreak}{%
+ \edef\jlreq@mainmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+ }
+ \jlreq@jlreqsetup@add{mainmatter_pagestyle}{%
+ \edef\jlreq@mainmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
+ }
+ \jlreq@jlreqsetup@add{mainmatter_counter}{\jlreq@matter@counter@norestore{\jlreq@mainmatter@counter}{#1}}%
+ \jlreq@jlreqsetup@add{mainmatter_heading}{\jlreq@matter@heading{\jlreq@mainmatter@heading}{#1}}%
+ \jlreq@jlreqsetup@add{mainmatter_precode}{\edef\jlreq@mainmatter@precode{\unexpanded{#1}}}%
+ \jlreq@jlreqsetup@add{mainmatter_postcode}{\edef\jlreq@mainmatter@postcode{\unexpanded{#1}}}%
+ \jlreq@jlreqsetup@add{mainmatter_pagination}{%
+ \def\jlreq@pagination@mainmatterstyle{#1}%
+ }
\newcommand*{\mainmatter}{%
- \cleardoublepage
+ \jlreq@mainmatter@precode
+ \jlreq@mainmatter@pagebreak
\@mainmattertrue
- \@ifundefined{jlreq@pagestyle@atmain}{}{%
- \expandafter\pagestyle\expandafter{\jlreq@pagestyle@atmain}%
+ \@ifundefined{jlreq@frontmatter@savedpagestyle}{%
+ \jlreq@mainmatter@pagestyle
+ }{%
+ \expandafter\pagestyle\expandafter{\jlreq@frontmatter@savedpagestyle}%
}%
- \@ifundefined{jlreq@heading@chapter@atmain}{}{\jlreq@heading@chapter@atmain}%
- \setcounter{chapter}{0}%
- \pagenumbering{arabic}}
- \newcommand*{\backmatter}{%
- \if@openright
- \cleardoublepage
- \else
- \clearpage
- \fi
- \ifthenelse{\equal{\jlreq@article@type}{article}}{}{%book, report
- \SaveHeading{chapter}{\jlreq@heading@chapter@atmain}%
- \ModifyHeading{chapter}{label_format={},after_label_space=0pt}%
+ \@for\jlreq@tempa:=\jlreq@frontmatter@restorecounters\do{%
+ \setcounter{\jlreq@tempa}{\csname jlreq@frontmatter@savedcounter@value@\jlreq@tempa\endcsname}%
+ \expandafter\let\csname the\jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcounter@the@\jlreq@tempa\endcsname
+ }%
+ \jlreq@mainmatter@counter
+ \@for\jlreq@tempa:=\jlreq@frontmatter@restoreheadings\do{\csname jlreq@frontmatter@savedheading@\jlreq@tempa\endcsname}
+ \jlreq@mainmatter@heading
+ \@for\jlreq@tempa:=\jlreq@frontmatter@restorecommands\do{%
+ \expandafter\let\csname \jlreq@tempa\expandafter\endcsname\csname jlreq@frontmatter@savedcommand@\jlreq@tempa\endcsname
+ }%
+ \expandafter\jlreq@pagination@mainmatterpagecommand\expandafter{\jlreq@pagination@mainmatterstyle}%
+ \jlreq@mainmatter@postcode
+ }
+ \jlreq@jlreqsetup@add{backmatter_pagebreak}{%
+ \edef\jlreq@backmatter@pagebreak{\jlreq@ifempty{#1}{}{\expandonce{\csname #1\endcsname}}}%
+ }
+ \jlreq@jlreqsetup@add{backmatter_pagestyle}{%
+ \edef\jlreq@backmatter@pagestyle{\jlreq@ifempty{#1}{}{\unexpanded{\pagestyle{#1}}}}%
+ }
+ \jlreq@jlreqsetup@add{backmatter_counter}{\jlreq@matter@counter@norestore{\jlreq@backmatter@counter}{#1}}%
+ \jlreq@jlreqsetup@add{backmatter_heading}{\jlreq@matter@heading{\jlreq@backmatter@heading}{#1}}
+ \jlreq@jlreqsetup@add{backmatter_precode}{\edef\jlreq@backmatter@precode{\unexpanded{#1}}}
+ \jlreq@jlreqsetup@add{backmatter_postcode}{\edef\jlreq@backmatter@postcode{\unexpanded{#1}}}
+ \jlreq@jlreqsetup@add{backmatter_pagination}{
+ \let\jlreq@pagination@backmatterpagecommand=\pagenumbering
+ \def\jlreq@pagination@backmatterstyle{arabic}%
+ \@for\jlreq@tempa:=#1\do{%
+ \jlreq@switch{\jlreq@tempa}{
+ {continuous}{%
+ \def\jlreq@pagination@backmatterpagecommand##1{\gdef\thepage{\csname @##1\endcsname\c@page}}%
+ }
+ {independent}{\let\jlreq@pagination@backmatterpagecommand=\pagenumbering}
+ {\edef\jlreq@pagination@backmatterstyle{\jlreq@tempa}}
+ }%
}%
- \pagestyle{plain}%
+ }
+ \newcommand*{\backmatter}{%
+ \jlreq@backmatter@precode
+ \jlreq@backmatter@pagebreak
+ \jlreq@backmatter@pagestyle
\@mainmatterfalse
- \setcounter{chapter}{0}}
+ \jlreq@backmatter@counter
+ \jlreq@backmatter@heading
+ \expandafter\jlreq@pagination@backmatterpagecommand\expandafter{\jlreq@pagination@backmatterstyle}%
+ \jlreq@backmatter@postcode
+ }
+ \jlreqsetup{
+ frontmatter_pagebreak = cleardoublepage,
+ frontmatter_pagestyle = {plain,restore = true},
+ frontmatter_heading = {chapter={number=false, restore = true}},
+ frontmatter_counter = {
+ figure = {the = \arabic{figure},restore = true},
+ table = {the = \arabic{table},restore = true},
+ },
+ frontmatter_precode = {},
+ frontmatter_postcode = {},
+ }
+ \jlreqsetup{
+ mainmatter_pagebreak = cleardoublepage,
+ mainmatter_counter = {
+ chapter = {value = 0},
+ },
+ mainmatter_pagestyle = {},
+ mainmatter_heading = {},
+ mainmatter_precode = {},
+ mainmatter_postcode = {},
+ }
+ \if@openright
+ \jlreqsetup{backmatter_pagebreak=cleardoublepage}
+ \else
+ \jlreqsetup{backmatter_pagebreak=clearpage}
+ \fi
+ \jlreqsetup{
+ backmatter_pagestyle = plain,
+ backmatter_counter = {
+ chapter={value = 0, the = {}},
+ figure = {value = 0, the = {\arabic{figure}}},
+ table = {value = 0, the = {\arabic{table}}}
+ },
+ backmatter_heading = {chapter = {number = false}},
+ backmatter_precode = {},
+ backmatter_postcode = {}
+ }
+ \jlreqsetup{
+ frontmatter_pagination = {independent,roman},
+ mainmatter_pagination = {arabic},
+ backmatter_pagination = {continuous,arabic},
+ }
}{}
-\newcommand*{\appendix}{\par
- \setcounter{section}{0}%
+
+\jlreq@jlreqsetup@add{appendix_counter}{\jlreq@matter@counter@norestore{\jlreq@appendix@counter}{#1}}
+\jlreq@jlreqsetup@add{appendix_heading}{\jlreq@matter@heading{\jlreq@appendix@heading}{#1}}
+\jlreq@jlreqsetup@add{appendix_precode}{\edef\jlreq@appendix@precode{\unexpanded{#1}}}
+\jlreq@jlreqsetup@add{appendix_postcode}{\edef\jlreq@appendix@postcode{\unexpanded{#1}}}
+\newcommand*{\appendix}{%
+ \par
+ \jlreq@appendix@precode
+ \jlreq@appendix@counter
+ \jlreq@appendix@heading
+ \jlreq@appendix@postcode
}
\ifthenelse{\equal{\jlreq@article@type}{article}}{
- \appto\appendix{%
- \setcounter{subsection}{0}%
- \if@tate
- \def\thesection{\jlreq@rensuji{\Alph{section}}}%
- \else
- \def\thesection{\Alph{section}}%
- \fi
- }
+ \if@tate
+ \jlreqsetup{
+ appendix_counter = {
+ section = {value = 0, the = {\jlreq@rensuji{\Alph{section}}}},
+ subsection = {value = 0},
+ }
+ }
+ \else
+ \jlreqsetup{
+ appendix_counter = {
+ section = {value = 0, the = {\Alph{chapter}}},
+ subsection = {value = 0},
+ }
+ }
+ \fi
+ \jlreqsetup{appendix_heading = {},appendix_precode = {},appendix_postcode = {}}
}{%book, report
- \appto\appendix{%
- \setcounter{chapter}{0}%
- \if@tate
- \def\thechapter{\jlreq@rensuji{\Alph{chapter}}}%
- \else
- \def\thechapter{\Alph{chapter}}%
- \fi
- \ModifyHeading{chapter}{label_format={付録\thechapter}}%
- \ifx\jlreq@current@pagestyle\@undefined\else
- \ifthenelse{\equal{\jlreq@current@pagestyle}{headings}}{%
- \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}%
- \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}%
- }{}%
- \fi
- }
+ \if@tate
+ \jlreqsetup{
+ appendix_counter = {
+ chapter = {value = 0, the = {\jlreq@rensuji{\Alph{chapter}}}},
+ }
+ }
+ \else
+ \jlreqsetup{
+ appendix_counter = {
+ chapter = {value = 0, the = {\Alph{chapter}}},
+ }
+ }
+ \fi
+ \jlreqsetup{
+ appendix_heading = {
+ chapter = {label_format = {付録\thechapter}}
+ },
+ appendix_postcode = {%
+ \ifthenelse{\equal{\jlreq@current@pagestyle}{headings}}{%
+ \def\chaptermark#1{\markboth{付録\thechapter\quad #1}{}}%
+ \ModifyPageStyle{headings}{mark_format={_chapter={付録\thechapter\quad #1}}}%
+ }{}%
+ },
+ appendix_precode = {}
+ }
}
%. その他諸々