diff options
Diffstat (limited to 'macros/jptex/latex/jlreq/jlreq-trimmarks.sty')
-rw-r--r-- | macros/jptex/latex/jlreq/jlreq-trimmarks.sty | 981 |
1 files changed, 981 insertions, 0 deletions
diff --git a/macros/jptex/latex/jlreq/jlreq-trimmarks.sty b/macros/jptex/latex/jlreq/jlreq-trimmarks.sty new file mode 100644 index 0000000000..b21bdcc453 --- /dev/null +++ b/macros/jptex/latex/jlreq/jlreq-trimmarks.sty @@ -0,0 +1,981 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{jlreq-trimmarks}[2022/07/13 jlreq-trimmarks] +\RequirePackage{l3keys2e} +\RequirePackage{jlreq-helpers} + +\ExplSyntaxOn +% check \tombowdatetrue +\ifx\tombowdatetrue\@undefined + \PackageError{jlreq-trimmarks}{This~package~only~works~with~pLaTeX,~upLaTeX~or~LuaTeX-ja}{\@ehc} +\fi + +\cs_set:Nn \__jlreq_trimmarks_undeferr:n {\ClassError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}} +% クラスファイル内でしか使わないマクロをクラスファイル終了時に未定義にする +\seq_new:N \g__jlreq_trimmarks_afterpkg_deletecs_seq +\seq_new:N \g__jlreq_trimmarks_afterpkg_deleteif_seq +\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeletecs:N { + \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq {#1} +} +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeletecs:N +\cs_set:Nn \__jlreq_trimmarks_afterpkg_addtodeleteif:N { + \seq_gput_right:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq {#1} +} +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_afterpkg_addtodeleteif:N +\AtEndOfPackage{% + \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deletecs_seq { + \jlreq@helper@undefcs{#1}{\__jlreq_trimmarks_undeferr:n} + } + \seq_map_inline:Nn \g__jlreq_trimmarks_afterpkg_deleteif_seq { + \jlreq@helper@undefif{#1}{\__jlreq_trimmarks_undeferr:n} + } + \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deletecs_seq + \cs_undefine:N \g__jlreq_trimmarks_afterpkg_deleteif_seq + \cs_undefine:N \__jlreq_trimmarks_undeferr:n +} + +\@ifclassloaded{jlreq}{\let\ifjlreq@trimmarks@jlreqloaded=\@firstoftwo}{\let\ifjlreq@trimmarks@jlreqloaded=\@secondoftwo} + +\def\ifjlreq@trimmarks@tate@{\jlreq@if{\if@tate\fi}}% +% \@firstoftwo when \if@tate is defined and \if@tate=\iftrue +\def\ifjlreq@trimmarks@tate{% + \jlreq@if{\ifnum0\ifx\if@tate\@undefined 1\fi\ifx\if@tate\relax 1\fi>0~\fi}{\@secondoftwo}{\ifjlreq@trimmarks@tate@}% +} + +% dvipdfmx=f,dvips=s,dviout = o, lualatex = l +\keys_define:nn { jlreq-trimmarks } { + dvipdfmx .code:n = {\let\jlreq@trimmarks@driver=f}, .value_forbidden:n = true, + dvips .code:n = {\let\jlreq@trimmarks@driver=s}, .value_forbidden:n = true, + dviout .code:n = {\let\jlreq@trimmarks@driver=o}, .value_forbidden:n = true +} +\let\jlreq@trimmarks@engine=\jlreq@engine +\keys_define:nn { jlreq-trimmarks } { + lualatex .code:n = {\let\jlreq@trimmarks@engine=l}, .value_forbidden:n = true, + uplatex .code:n = {\let\jlreq@trimmarks@engine=u}, .value_forbidden:n = true, + platex .code:n = {\let\jlreq@trimmarks@engine=p}, .value_forbidden:n = true +} + +\tl_new:N \g__jlreq_trimmarks_papersizelist_tl +\cs_set:Nn \__jlreq_trimmarks_addpapersize:nn { + \exp_args:Nnv \__jlreq_trimmarks_addpapersize_aux:nn {#1}{jlreq@helper@papersizelist@#2} +} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_aux:nn { + \__jlreq_trimmarks_addpapersize_auxi:nnn {#1}#2 +} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_auxi:nnn { + \clist_map_inline:nn {#1} { + \tl_gput_right:Nn \g__jlreq_trimmarks_papersizelist_tl { { ##1 } { \def\jlreq@resulta{#2} \def\jlreq@resultb{#3} } } + } +} +\tl_set:Nn \g__jlreq_trimmarks_papersizechangeddate_tl {2021-11-05} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_withjisBwarning:nnn { + \__jlreq_trimmarks_addpapersize_withwarning:nnn {#1}{#2}{ + The~option~`##1'~means~the~papersize~in~the~ISO~B-series,~not~in~the~JIS~B-series.~This~behavior~was~changed~from~jlreq-trimmarks~version~\g__jlreq_trimmarks_papersizechangeddate_tl.~Use~`trimmarks_paper=#3'~for~the~JIS-B-series.~If~you~want~to~specify~the~ISO~B-series~and~if~you~think~this~warning~is~annoying,~use~`trimmarks_paper=#2' + } +} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning:nnn { + \exp_args:Nnv \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn {#1}{jlreq@helper@papersizelist@#2}{#3} +} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn { + \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn {#1}#2{#3} +} +\cs_set:Nn \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn { + \cs_set:Nn \l__jlreq_tmpa:n { + \PackageWarningNoLine{jlreq-trimmarks}{#4} + } + \clist_map_inline:nn {#1} { + \tl_gput_right:Nx \g__jlreq_trimmarks_papersizelist_tl { { ##1 } { + \exp_not:o { \l__jlreq_tmpa:n {##1} } + \exp_not:n { \def\jlreq@resulta{#2} \def\jlreq@resultb{#3} } + } } + } +} +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \g__jlreq_trimmarks_papersizelist_tl +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize:nn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_aux:nn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_auxi:nnn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withjisBwarning:nnn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning:nnn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning_aux:nnn +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \__jlreq_trimmarks_addpapersize_withwarning_auxi:nnnn + +\__jlreq_trimmarks_addpapersize:nn{a0,A0,a0paper}{a0paper} +\__jlreq_trimmarks_addpapersize:nn{a1,A1,a1paper}{a1paper} +\__jlreq_trimmarks_addpapersize:nn{a2,A2,a2paper}{a2paper} +\__jlreq_trimmarks_addpapersize:nn{a3,A3,a3paper}{a3paper} +\__jlreq_trimmarks_addpapersize:nn{a4,A4,a4paper}{a4paper} +\__jlreq_trimmarks_addpapersize:nn{a5,A5,a5paper}{a5paper} +\__jlreq_trimmarks_addpapersize:nn{a6,A6,a6paper}{a6paper} +\__jlreq_trimmarks_addpapersize:nn{a7,A7,a7paper}{a7paper} +\__jlreq_trimmarks_addpapersize:nn{a8,A8,a8paper}{a8paper} +\__jlreq_trimmarks_addpapersize:nn{a9,A9,a9paper}{a9paper} +\__jlreq_trimmarks_addpapersize:nn{a10,A10,a10paper}{a10paper} + +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b0,B0}{b0paper}{b0j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b1,B1}{b1paper}{b1j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b2,B2}{b2paper}{b2j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b3,B3}{b3paper}{b3j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b4,B4}{b4paper}{b4j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b5,B5}{b5paper}{b5j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b6,B6}{b6paper}{b6j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b7,B7}{b7paper}{b7j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b8,B8}{b8paper}{b8j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b9,B9}{b9paper}{b9j} +\__jlreq_trimmarks_addpapersize_withjisBwarning:nnn{b10,B10}{b10paper}{b10j} + +\__jlreq_trimmarks_addpapersize:nn{c2,C2,c2paper}{c2paper} +\__jlreq_trimmarks_addpapersize:nn{c3,C3,c3paper}{c3paper} +\__jlreq_trimmarks_addpapersize:nn{c4,C4,c4paper}{c4paper} +\__jlreq_trimmarks_addpapersize:nn{c5,C5,c5paper}{c5paper} +\__jlreq_trimmarks_addpapersize:nn{c6,C6,c6paper}{c6paper} +\__jlreq_trimmarks_addpapersize:nn{c7,C7,c7paper}{c7paper} +\__jlreq_trimmarks_addpapersize:nn{c8,C8,c8paper}{c8paper} + +\__jlreq_trimmarks_addpapersize:nn{a4var}{a4var} +\__jlreq_trimmarks_addpapersize:nn{b5var}{b5var} + +\__jlreq_trimmarks_addpapersize:nn{letter,letterpaper}{letterpaper} +\__jlreq_trimmarks_addpapersize:nn{legal,legalpaper}{legalpaper} +\__jlreq_trimmarks_addpapersize:nn{executive,executivepaper}{executivepaper} +\__jlreq_trimmarks_addpapersize:nn{ansiapaper}{ansiapaper} +\__jlreq_trimmarks_addpapersize:nn{ansibpaper}{ansibpaper} +\__jlreq_trimmarks_addpapersize:nn{ansicpaper}{ansicpaper} +\__jlreq_trimmarks_addpapersize:nn{ansidpaper}{ansidpaper} +\__jlreq_trimmarks_addpapersize:nn{ansiepaper}{ansiepaper} +\__jlreq_trimmarks_addpapersize:nn{hagaki}{hagaki} + +% width -> \jlreq@resulta, height -> \jlreq@resultb +\def\jlreq@trimmarks@analyzepapersize#1{ + \str_case:nVF {#1} \g__jlreq_trimmarks_papersizelist_tl + { + \jlreq@helper@dividebycomma{#1}% + \ifjlreq@result\else + \def\jlreq@resulta{#1}% + \def\jlreq@resultb{#1}% + \fi + } +} +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@analyzepapersize + +\keys_define:nn { jlreq-trimmarks } { trimmarks_paper .tl_set:N = \jlreq@trimmarks@option@papersize } +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@option@papersize + +\newif\ifjlreq@trimmarks@digital \jlreq@trimmarks@digitaltrue +\newif\ifjlreq@trimmarks@show \jlreq@trimmarks@showtrue +\newif\ifjlreq@trimmarks@show@artbox \jlreq@trimmarks@show@artboxfalse +\tombowdatetrue +% flag: `show` is specified or not +\newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse + +\keys_define:nn { jlreq-trimmarks } { + show .code:n = { + \jlreq@trimmarks@option@showtrue + \jlreq@ifempty{#1}{ + \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue + }{ + \jlreq@trimmarks@showfalse\tombowdatefalse\jlreq@trimmarks@digitalfalse + \clist_map_variable:nNn {#1} \jlreq@trimmarks@tempa { + \expandafter\jlreq@helper@trim\expandafter{\jlreq@trimmarks@tempa}{\jlreq@trimmarks@tempa} + \jlreq@switch{\jlreq@trimmarks@tempa}{ + {trimmarks}{\jlreq@trimmarks@showtrue} + {banner}{\tombowdatetrue} + {digital}{\jlreq@trimmarks@digitaltrue} + {digital*}{\jlreq@trimmarks@digitaltrue\jlreq@trimmarks@show@artboxtrue} + {no}{\tombowdatefalse\jlreq@trimmarks@showfalse\jlreq@trimmarks@digitalfalse} + }[\PackageError{jlreq-trimmarks}{Unknown~value~`##1'~in~the~option~`show'}{\@ehc}] + } + } + } +} +\keys_define:nn { jlreq-trimmarks } { + bleed_margin .code:n = { + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{ + \ifjlreq@parsekeyval@nokey@novalue{% + \clist_map_variable:nNn { top,bottom,gutter,fore-edge } \jlreq@tempa { + \epreto\jlreq@do{% + \noexpand\def\exp_not:o {\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}% + }% + }% + }{% + \bool_if:nTF { + \str_if_eq_p:nn {##1} {top} || \str_if_eq_p:nn {##1} {bottom} || + \str_if_eq_p:nn {##1} {gutter} || \str_if_eq_p:nn {##1} {fore-edge} + }{ + \tl_put_right:Nx \jlreq@do{% + \noexpand\def\exp_not:o {\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}% + }% + }{% + \PackageError{jlreq-trimmarks}{Unknown~position~`##1'~in~bleed_margin}{\@ehc} + }% + }% + }{#1}% + \expandafter\endgroup + \jlreq@do + } +} + +\newif\ifjlreq@trimmarks@landscape \jlreq@trimmarks@landscapefalse +\keys_define:nn { jlreq-trimmarks } { landscape .code:n = {\jlreq@trimmarks@landscapetrue}, .value_forbidden:n = true } +\__jlreq_trimmarks_afterpkg_addtodeleteif:N \ifjlreq@trimmarks@landscape + +\keys_set:nn { jlreq-trimmarks } { + trimmarks_paper = {+2in}, + bleed_margin = { top = 3mm, bottom = 3mm, gutter = 3mm, fore-edge = 3mm }, +} +\ProcessKeysOptions { jlreq-trimmarks } + +\ifjlreq@trimmarks@option@show\else + \ifx o\jlreq@trimmarks@driver + \jlreq@trimmarks@digitalfalse + \jlreq@trimmarks@showtrue + \jlreq@trimmarks@show@artboxfalse + \fi +\fi + +\def\jlreq@trimmarks@setpapersize#1{ + \jlreq@ifcontains{#1}{+}{ + \def\@tempa##1+##2\jlreq@endmark{ + \jlreq@helper@trim{##1}{\jlreq@trimmarks@tempa} + \jlreq@helper@trim{##2}{\jlreq@trimmarks@tempb} + \ifx\jlreq@trimmarks@tempa\@empty + \let\jlreq@tempa=\paperwidth + \let\jlreq@tempb=\paperheight + \else + \expandafter\jlreq@trimmarks@analyzepapersize\expandafter{\jlreq@trimmarks@tempa} + \let\jlreq@tempa=\jlreq@resulta + \let\jlreq@tempb=\jlreq@resultb + \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@tempa}{\jlreq@tempb}\fi + \fi + \expandafter\jlreq@trimmarks@analyzepapersize\expandafter{\jlreq@trimmarks@tempb} + \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@resulta}{\jlreq@resultb}\fi + \edef\jlreq@trimmarks@paperwidth{\the\dimexpr\jlreq@tempa + \jlreq@resulta\relax} + \edef\jlreq@trimmarks@paperheight{\the\dimexpr\jlreq@tempb + \jlreq@resultb\relax} + } + \@tempa#1\jlreq@endmark + }{ + \jlreq@trimmarks@analyzepapersize{#1} + \ifjlreq@trimmarks@landscape\jlreq@helper@swap{\jlreq@resulta}{\jlreq@resultb}\fi + \edef\jlreq@trimmarks@paperwidth{\jlreq@resulta} + \edef\jlreq@trimmarks@paperheight{\jlreq@resultb} + } +} +\__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@setpapersize +\expandafter\jlreq@trimmarks@setpapersize\expandafter{\jlreq@trimmarks@option@papersize} + +\ifx o\jlreq@trimmarks@driver + \ifjlreq@trimmarks@digital + \PackageError{jlreq-trimmarks}{`show=digital'~can't~be~used~with~the~driver~`dviout'}{\@ehc} + \fi +\fi + +\long\def\jlreq@trimmarks@setbanner#1#2#3{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch{##1}{ + {yoko}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}} + {horizontal}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{##2}}} + {tate}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}} + {vertial}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{tate@#1}{tate@#2}{##2}}} + {corner}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{corner@#1}{corner@#2}{##2}}} + {in-yoko}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}} + {in-horizontal}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{inyoko@#1}{inyoko@#2}{##2}}} + {in-tate}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}} + {in-vertial}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{intate@#1}{intate@#2}{##2}}} + }% + }% + }{#3}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{% + \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{yoko@#1}{yoko@#2}{#3}}% + }{}% + \expandafter\endgroup + \jlreq@do +} + +\long\def\jlreq@trimmarks@setbanner@#1#2#3{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch*{##1}{ + {left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{##2}}} + {right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{after@#2}{##2}}} + {above}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{##2}}} + {below}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{after@#1}{after@#2}{##2}}} + {in}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{in@#1}{in@#2}{##2}}} + }% + }% + }{#3}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{ + \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@@{before@#1}{before@#2}{#3}}% + }{}% + \expandafter\endgroup + \jlreq@do +} + +% #1 = odd, #2 = even +\long\def\jlreq@trimmarks@setbanner@@#1#2#3{% + \begingroup + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \jlreq@switch*{##1}{ + {odd}{\tl_put_right:Nn \jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{##2}}}} + {even}{\tl_put_right:Nn \jlreq@do{\expandafter\edef\csname jlreq@trimmarks@banner@even@#2\endcsname{\unexpanded{##2}}}} + }% + }% + }{#3}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{ + \tl_put_right:Nn \jlreq@do{% + \expandafter\edef\csname jlreq@trimmarks@banner@odd@#1\endcsname{\unexpanded{#3}}% + \expandafter\edef\csname jlreq@trimmarks@banner@even@#2\endcsname{\unexpanded{#3}}% + }% + }{}% + \expandafter\endgroup + \jlreq@do +} + +\keys_define:nn { jlreqtrimmarkssetup } { + banner .code:n = { + \clist_map_variable:nNn { odd,even } \@tempa { + \clist_map_variable:nNn { tate,yoko,corner,inyoko,intate } \jlreq@tempa { + \clist_map_variable:nNn {top,bottom} \jlreq@tempb { + \clist_map_variable:nNn {left,right} \jlreq@tempc { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @\jlreq@tempc}{}% + }% + }% + }% + \clist_map_variable:nNn {before,after} \jlreq@tempa { + \clist_map_variable:nNn {top,bottom,in} \jlreq@tempb { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @\jlreq@tempb @center}{}% + }% + \clist_map_variable:nNn {left,right,in} \jlreq@tempb { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}% + }% + }% + }% + \def\jlreq@do{}% + \jlreq@parsekeyval@nokey{% + \ifjlreq@parsekeyval@nokey@novalue{}{% + \edef\jlreq@gutterodd{\ifjlreq@trimmarks@tate{right}{left}}% + \if@twoside + \edef\jlreq@guttereven{\ifjlreq@trimmarks@tate{left}{right}}% + \else + \let\jlreq@guttereven\jlreq@gutterodd + \fi + \jlreq@switch*{##1}{ + {top-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {left-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {top-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {right-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {top-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {gutter-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {top-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {fore-edge-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {bottom-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {left-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {bottom-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {right-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {bottom-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {gutter-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {bottom-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {fore-edge-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {top-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {center-top}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {bottom-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-bottom}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-right}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {right-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {center-left}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {left-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {center-gutter}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {gutter-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {center-fore-edge}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + {fore-edge-center}{\tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + }% + }% + }{#1}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{ + \tl_put_right:Nn \jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{#1}}% + }{}% + \jlreq@do + }, + banner_font .tl_set:N = \jlreq@trimmarks@bannerfont, + trimmarks_width .code:n = {\setlength{\@tombowwidth}{#1}}, + color .code:n = { + \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}}} + {y}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,0}}} + {k}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,0,1}}} + {cm}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,0}}} + {cy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,1,0}}} + {ck}{\def\jlreq@trimmarks@color{\color[cmyk]{1,0,0,1}}} + {my}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,1,0}}} + {mk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,1,0,1}}} + {yk}{\def\jlreq@trimmarks@color{\color[cmyk]{0,0,1,1}}} + {cmy}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,1,0}}} + {cmk}{\def\jlreq@trimmarks@color{\color[cmyk]{1,1,0,1}}} + {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}}}% + }% + \@tempa##1\jlreq@endmark + }% + }% + }% + }% +} +\NewDocumentCommand { \jlreqtrimmarkssetup } { +m } { + \keys_set:nn { jlreqtrimmarkssetup } {#1} +} +\@onlypreamble\jlreqtrimmarkssetup +\@bannertoken{% + \jobname\space(\number\year-\two@digits\month-\two@digits\day + \space\two@digits\hour :\two@digits\minute)% +} +\jlreqtrimmarkssetup{ + banner={\the\@bannertoken}, + banner_font={\@bannerfont}, + color={} +} + +\ifx\jlreq@trimmarks@engine\@undefined + \jlreq@helper@guessengine + \let\jlreq@trimmarks@engine=\jlreq@result +\fi + +\ifx\jlreq@trimmarks@driver\@undefined + \ifx l\jlreq@trimmarks@engine + \let\jlreq@trimmarks@driver=l + \else + % default: dvipdfmx + \let\jlreq@trimmarks@driver=f + \fi +\fi + +\ifx l\jlreq@trimmarks@engine + \setlength{\pagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax} + \setlength{\pageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} +\else + \setlength{\pdfpagewidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax} + \setlength{\pdfpageheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} +\fi + +\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}% + \addtolength{\evensidemargin}{\dimexpr 1truein - 1in\relax}% + \addtolength{\topmargin}{\dimexpr 1truein - 1in\relax}% + } + }{ + \def\@tombowreset@@paper{% + \@@topmargin\topmargin + \jlreq@if{\iftombow\fi}{ + \@@paperwidth\paperwidth + \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax + \@@paperheight\paperheight \advance\@@paperheight 10mm\relax + \advance\@@paperheight 2\dimexpr\@tombowbleed\relax + % 1in -> 1truein + \advance\@@topmargin 1truein\relax \advance\@themargin 1truein\relax + }{}% + } + } +\fi + +\ifx l\jlreq@trimmarks@driver\else + \jlreq@helper@divide{\the\mag pt}{1000pt} + \edef\@tempa{\noexpand\AtBeginDvi{\noexpand\special{papersize=\the\dimexpr\strip@pt\jlreq@resultdimen\dimexpr\jlreq@trimmarks@paperwidth\relax\relax, \the\dimexpr\strip@pt\jlreq@resultdimen\dimexpr\jlreq@trimmarks@paperheight\relax\relax}}} + \@tempa +\fi +\@ifundefined{stockheight}{\newlength{\stockheight}}{} +\@ifundefined{stockwidth}{\newlength{\stockwidth}}{} +\setlength{\stockwidth}{\dimexpr\jlreq@trimmarks@paperwidth\relax} +\setlength{\stockheight}{\dimexpr\jlreq@trimmarks@paperheight\relax} + +\def\jlreq@trimmarks@outputbanner#1#2{% + \jlreq@if{\iftombowdate\fi}{% + \expandafter\let\expandafter\jlreq@tempa\csname jlreq@trimmarks@banner@\ifodd\c@page odd\else even\fi @#1\endcsname + \jlreq@if{\ifx\jlreq@tempa\@empty\fi}{}{% + \def\@tempa##1{#2}% + \expandafter\@tempa\expandafter{\jlreq@tempa}% + }% + }{}% +} +\def\jlreq@trimmarks@bleed{3mm} +% left=gutter? +\def\ifjlreq@trimmarks@leftisgutter{% + \ifjlreq@trimmarks@tate { + \bool_if:nTF { ! ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) ) } + }{ + \bool_if:nTF { ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) } + } +} +\def\jlreq@trimmarks@bleed@left{\ifjlreq@trimmarks@leftisgutter{\jlreq@trimmarks@bleed@gutter}{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}} +\def\jlreq@trimmarks@bleed@right{\ifjlreq@trimmarks@leftisgutter{\expandafter\csname jlreq@trimmarks@bleed@fore-edge\endcsname}{\jlreq@trimmarks@bleed@gutter}} + +\def\jlreq@trimmarks@outputtombow{% + \vbox to\z@{% + \kern-\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax + \boxmaxdepth\maxdimen + \moveleft\jlreq@trimmarks@bleed@left\vbox to\@@paperheight{% + \color@begingroup\jlreq@trimmarks@color + \hbox to\@@paperwidth{% + \hskip\jlreq@trimmarks@bleed@left\relax + \setbox\jlreq@tempboxa=\hbox to\z@{% \@TL + \yoko\hss + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{yoko@top@left}{% + \setbox\jlreq@tempboxa=\hbox to\z@{\hskip5mm\jlreq@trimmarks@bannerfont##1\hss}% + \dp\jlreq@tempboxa=0pt + \raise 4pt\box\jlreq@tempboxa + }% + \jlreq@trimmarks@outputbanner{inyoko@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\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\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{\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@top\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\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\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\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \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@right + 4pt\relax\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@right\relax height\@tombowwidth depth\z@\hss + }% + \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hskip\jlreq@trimmarks@bleed@right + }% + \kern-10mm + \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\jlreq@trimmarks@bannerfont##1\hskip 4pt}% + \dp\jlreq@tempboxa=0pt \ht\jlreq@tempboxa=0pt + \raise\dimexpr \jlreq@trimmarks@bleed@top + 4pt\relax\box\jlreq@tempboxa + }% + \vrule height\dimexpr 10mm + \jlreq@trimmarks@bleed@top\relax width\@tombowwidth depth\z@ + \jlreq@trimmarks@outputbanner{tate@top@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\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\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \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\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\jlreq@trimmarks@bannerfont##1\hss}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@top + \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@top\relax width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@ + \hss + }% + }% + \vfill + \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\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\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\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left + \ht\jlreq@tempboxa\relax + \jlreq@tempdimb=.5\wd\jlreq@tempboxa + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left\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\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax + \jlreq@tempdimb=0.5\wd\jlreq@tempboxa + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \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\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\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{% + \hbox to\z@{% \@Bl + \yoko\hss + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth\dimexpr 10mm + \jlreq@trimmarks@bleed@bottom\relax width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{tate@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\tate\adjustbaseline\hss\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\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@left \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\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\jlreq@trimmarks@bannerfont##1}% + \ifx l\jlreq@trimmarks@engine + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \ht\jlreq@tempboxa\relax + \else + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@right + \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@bottom\relax width\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{corner@bottom@right}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hskip 4pt\relax\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\ht\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom + 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@left\relax + \setbox\jlreq@tempboxa=\hbox to\z@{% \@BL + \yoko\hss + \vrule width\dimexpr 10mm + \jlreq@trimmarks@bleed@left\relax depth\@tombowwidth height\z@ + \jlreq@trimmarks@outputbanner{corner@bottom@left}{% + \setbox\jlreq@tempboxa=\hbox to 0pt{\hss\jlreq@trimmarks@bannerfont##1\hskip\dimexpr\jlreq@trimmarks@bleed@left + 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\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\jlreq@trimmarks@bannerfont##1\hss}% + \jlreq@tempdima=\dimexpr\jlreq@trimmarks@bleed@bottom + \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\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{\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\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\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\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\jlreq@trimmarks@bannerfont##1}% + \jlreq@tempdima=\dimexpr\dp\jlreq@tempboxa + \jlreq@trimmarks@bleed@bottom\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@right\relax depth\@tombowwidth height\z@\hss + }% + \ht\jlreq@tempboxa=0pt \dp\jlreq@tempboxa=0pt + \box\jlreq@tempboxa + \hskip\jlreq@trimmarks@bleed@right + }% + \color@endgroup}\vss + }% +} +\def\@outputtombow{% + % 6mm = \@tombowbleed: from plcore + \@@paperwidth=\dimexpr\@@paperwidth - 6mm + \dimexpr\jlreq@trimmarks@bleed@left + \jlreq@trimmarks@bleed@right\relax\relax + \@@paperheight=\dimexpr\@@paperheight - 6mm + \dimexpr\jlreq@trimmarks@bleed@top + \jlreq@trimmarks@bleed@bottom\relax\relax + \ifjlreq@trimmarks@show\expandafter\jlreq@trimmarks@outputtombow\fi +} + +\ifjlreq@trimmarks@digital + \ifx l\jlreq@trimmarks@engine + \setlength\jlreq@resultdimen{1pt} + \else + \jlreq@helper@divide{\the\mag pt}{1000pt} + \fi + % 0.9963 = 1pt/1bp (almost) + \edef\jlreq@trimmarks@pttobp#1{\noexpand\strip@pt\noexpand\dimexpr\strip@pt\jlreq@resultdimen\noexpand\dimexpr0.9963\noexpand\dimexpr#1\unexpanded{\relax\relax\relax}} + \edef\jlreq@trimmarks@trimboxsize{% + [% + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2}% + ] + } + \jlreq@tempcnta=\c@page + \def\@tempa{% + [% + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth - \paperwidth)/2 - \jlreq@trimmarks@bleed@left}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight - \paperheight)/2 - \jlreq@trimmarks@bleed@bottom}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperwidth + \paperwidth)/2 + \jlreq@trimmarks@bleed@right}~ + \jlreq@trimmarks@pttobp{(\jlreq@trimmarks@paperheight + \paperheight)/2 + \jlreq@trimmarks@bleed@top}% + ] + } + \c@page=1 + \edef\jlreq@trimmarks@bleedboxsize@odd{\@tempa} + \c@page=2 + \edef\jlreq@trimmarks@bleedboxsize@even{\@tempa}% + \c@page=\jlreq@tempcnta + \edef\jlreq@trimmarks@pdfattribute@odd{% + /TrimBox~\jlreq@trimmarks@trimboxsize + \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi + /BleedBox~\jlreq@trimmarks@bleedboxsize@odd + } + \edef\jlreq@trimmarks@pdfattribute@even{% + /TrimBox~\jlreq@trimmarks@trimboxsize + \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi + /BleedBox~\jlreq@trimmarks@bleedboxsize@even + } + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pttobp + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@trimboxsize + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@bleedboxsize@odd + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@bleedboxsize@even + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pdfattribute@odd + \__jlreq_trimmarks_afterpkg_addtodeletecs:N \jlreq@trimmarks@pdfattribute@even + + \begingroup + \c@page=1\relax + \jlreq@tempdima=\jlreq@trimmarks@bleed@left + \c@page=2\relax + \ifdim\jlreq@trimmarks@bleed@left=\jlreq@tempdima + \global\let\jlreq@tempa\@firstoftwo + \else + \global\let\jlreq@tempa\@secondoftwo + \fi + \endgroup + \jlreq@tempa{ + % no difference between odd pages and even pages + \ifx l\jlreq@trimmarks@driver + \edef\@tempa{\noexpand\pdfvariable pageattr{\jlreq@trimmarks@pdfattribute@odd}} + \@tempa + \fi + \ifx f\jlreq@trimmarks@driver + \tl_put_left:Nx \@outputtombow {\noexpand\special{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}} + \fi + \ifx s\jlreq@trimmarks@driver + \edef\@tempa{\noexpand\special{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~ + end}}% + \@tempa + \fi + }{ + \ifx l\jlreq@trimmarks@driver + % in \@outputtombow, it's too late + \tl_put_left:Nx \@outputpage {% + \unexpanded{\ifodd\c@page\pdfvariable} pageattr{\jlreq@trimmarks@pdfattribute@odd}% + \unexpanded{\else\pdfvariable} pageattr{\jlreq@trimmarks@pdfattribute@even}\noexpand\fi + } + \fi + \ifx f\jlreq@trimmarks@driver + \tl_put_left:Nx \@outputtombow {% + \unexpanded{\ifodd\c@page\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@odd>>}% + \unexpanded{\else\special}{pdf:~put~@thispage~<<\jlreq@trimmarks@pdfattribute@even>>}\noexpand\fi + } + \fi + \ifx s\jlreq@trimmarks@driver + \tl_put_left:Nx \@outputtombow {% + \unexpanded{\ifodd\c@page\special}{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@odd /PAGE~pdfmark~ + end}\unexpanded{\else\special}{ps:SDict~begin~ + [~/TrimBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~ + \ifjlreq@trimmarks@show@artbox [~/ArtBox~\jlreq@trimmarks@trimboxsize /PAGE~pdfmark~\fi + [~/BleedBox~\jlreq@trimmarks@bleedboxsize@even /PAGE~pdfmark~ + end}\noexpand\fi + } + \fi + } +\fi + +% always true +\tombowtrue + +\ExplSyntaxOff +\endinput |