diff options
Diffstat (limited to 'language/japanese/jlreq/jlreq-trimmarks.sty')
-rw-r--r-- | language/japanese/jlreq/jlreq-trimmarks.sty | 392 |
1 files changed, 194 insertions, 198 deletions
diff --git a/language/japanese/jlreq/jlreq-trimmarks.sty b/language/japanese/jlreq/jlreq-trimmarks.sty index 03c31e521a..d7eb46fa49 100644 --- a/language/japanese/jlreq/jlreq-trimmarks.sty +++ b/language/japanese/jlreq/jlreq-trimmarks.sty @@ -1,14 +1,16 @@ \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jlreq-trimmarks}[2020/05/01 jlreq-trimmarks] -\RequirePackage{xkeyval,etoolbox} +\ProvidesPackage{jlreq-trimmarks}[2021/07/22 jlreq-trimmarks] +\RequirePackage{l3keys2e,etoolbox} \RequirePackage{jlreq-helpers} +\ExplSyntaxOn + % check \tombowdatetrue \ifx\tombowdatetrue\@undefined - \PackageError{jlreq-trimmarks}{This package only works with pLaTeX, upLaTeX or LuaTeX-ja}{\@ehc} + \PackageError{jlreq-trimmarks}{This~package~only~works~with~pLaTeX,~upLaTeX~or~LuaTeX-ja}{\@ehc} \fi -\newcommand*{\jlreq@trimmarks@undeferr}[1]{\PackageError{jlreq-trimmarks}{Trying to delete \string#1 even though it is not defined, may be a bug}{\@ehc}} +\newcommand*{\jlreq@trimmarks@undeferr}[1]{\PackageError{jlreq-trimmarks}{Trying~to~delete~\string#1~even~though~it~is~not~defined,~may~be~a~bug}{\@ehc}} \newcommand*{\jlreq@trimmarks@afterpkg@addtodeletecs}[1]{% \appto\jlreq@trimmarks@afterpkg@deletecslist{\jlreq@helper@undefcs{#1}{\jlreq@trimmarks@undeferr}}% } @@ -23,31 +25,22 @@ \undef{\jlreq@trimmarks@undeferr}% } -\newcommand*{\jlreq@trimmarks@DeclareOption}[2]{% - \DeclareOptionX{#1}{% - \jlreq@ifempty{##1}{}{\PackageError{jlreq-trimmarks}{The option #1 should have no value}{\@ehc}}% - #2% - }% -} -\jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@DeclareOption} - \@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@}% + \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 -\jlreq@trimmarks@DeclareOption{dvipdfmx}{\let\jlreq@trimmarks@driver=f} -\jlreq@trimmarks@DeclareOption{dvips}{\let\jlreq@trimmarks@driver=s} -\jlreq@trimmarks@DeclareOption{dviout}{\let\jlreq@trimmarks@driver=o} +\keys_define:nn { jlreq-trimmarks } { dvipdfmx .code:n = {\let\jlreq@trimmarks@driver=f}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { dvips .code:n = {\let\jlreq@trimmarks@driver=s}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { dviout .code:n = {\let\jlreq@trimmarks@driver=o}, .value_forbidden:n = true } \let\jlreq@trimmarks@engine=\jlreq@engine -\jlreq@trimmarks@DeclareOption{lualatex}{\let\jlreq@trimmarks@engine=l} -\jlreq@trimmarks@DeclareOption{uplatex}{\let\jlreq@trimmarks@engine=u} -\jlreq@trimmarks@DeclareOption{platex}{\let\jlreq@trimmarks@engine=p} +\keys_define:nn { jlreq-trimmarks } { lualatex .code:n = {\let\jlreq@trimmarks@engine=l}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { uplatex .code:n = {\let\jlreq@trimmarks@engine=u}, .value_forbidden:n = true } +\keys_define:nn { jlreq-trimmarks } { platex .code:n = {\let\jlreq@trimmarks@engine=p}, .value_forbidden:n = true } \def\jlreq@trimmarks@switchpapersize{} \def\jlreq@trimmarks@addpapersize#1{% @@ -58,7 +51,7 @@ \@tempa } \newcommand*{\jlreq@trimmarks@addpapersize@@}[3]{% - \@for\@tempa:=#1\do{% + \clist_map_variable:nNn {#1} \@tempa { \eappto\jlreq@trimmarks@switchpapersize{{\expandonce{\@tempa}}{\unexpanded{\def\jlreq@resulta{#2}\def\jlreq@resultb{#3}}}}% }% } @@ -122,8 +115,7 @@ } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@analyzepapersize} -\def\jlreq@trimmarks@option@papersize{+2in} -\DeclareOptionX{trimmarks_paper}{\def\jlreq@trimmarks@option@papersize{#1}} +\keys_define:nn { jlreq-trimmarks } { trimmarks_paper .tl_set:N = \jlreq@trimmarks@option@papersize } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@option@papersize} \newif\ifjlreq@trimmarks@digital \jlreq@trimmarks@digitaltrue @@ -133,60 +125,64 @@ % flag: `show` is specified or not \newif\ifjlreq@trimmarks@option@show \jlreq@trimmarks@option@showfalse -\DeclareOptionX{show}{% - \jlreq@trimmarks@option@showtrue - \jlreq@ifempty{#1}{ - \jlreq@trimmarks@showtrue\tombowdatetrue\jlreq@trimmarks@digitaltrue - }{ - \jlreq@trimmarks@showfalse\tombowdatefalse\jlreq@trimmarks@digitalfalse - \@for\jlreq@trimmarks@tempa:=#1\do{% - \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 } { + 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}] + } } } } -\@for\jlreq@tempa:=top,bottom,gutter,fore-edge\do{% - \expandafter\def\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname{3mm} -} -\DeclareOptionX{bleed_margin}{% - \begingroup - \def\jlreq@do{}% - \jlreq@parsekeyval@nokey{ - \ifjlreq@parsekeyval@nokey@novalue{% - \@for\jlreq@tempa:=top,bottom,gutter,fore-edge\do{% - \epreto\jlreq@do{% - \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}% - }% - }% - }{% - \ifthenelse{\equal{##1}{top} \OR \equal{##1}{bottom} \OR \equal{##1}{gutter} \OR \equal{##1}{fore-edge}}{% - \eappto\jlreq@do{% - \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}% +\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\expandonce{\csname jlreq@trimmarks@bleed@\jlreq@tempa\endcsname}{##1}% + }% }% }{% - \PackageError{jlreq-trimmarks}{Unknown position `##1' in bleed_margin}{\@ehc} + \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} + }{ + \eappto\jlreq@do{% + \noexpand\def\expandonce{\csname jlreq@trimmarks@bleed@##1\endcsname}{##2}% + }% + }{% + \PackageError{jlreq-trimmarks}{Unknown~position~`##1'~in~bleed_margin}{\@ehc} + }% }% - }% - }{#1}% - \expandafter\endgroup - \jlreq@do + }{#1}% + \expandafter\endgroup + \jlreq@do + } } \newif\ifjlreq@trimmarks@landscape \jlreq@trimmarks@landscapefalse -\jlreq@trimmarks@DeclareOption{landscape}{\jlreq@trimmarks@landscapetrue} +\keys_define:nn { jlreq-trimmarks } { landscape .code:n = {\jlreq@trimmarks@landscapetrue}, .value_forbidden:n = true } \jlreq@trimmarks@afterpkg@addtodeleteif{\ifjlreq@trimmarks@landscape} -\let\jlreq@temporary@original@@removeelement=\@removeelement -\let\@removeelement=\jlreq@helper@removeelement -\ProcessOptionsX*\relax -\let\@removeelement=\jlreq@temporary@original@@removeelement -\let\jlreq@temporary@original@@removeelement=\@undefined +\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 @@ -228,7 +224,7 @@ \ifx o\jlreq@trimmarks@driver \ifjlreq@trimmarks@digital - \PackageError{jlreq-trimmarks}{`show=digital' can't be used with the driver `dviout'}{\@ehc} + \PackageError{jlreq-trimmarks}{`show=digital'~can't~be~used~with~the~driver~`dviout'}{\@ehc} \fi \fi @@ -300,114 +296,115 @@ \jlreq@do } -\newcommand{\jlreqtrimmarkssetup}[1]{% - \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}{}% +\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}{}% }% }% }% - \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}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}} - {left-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{####2}}} - {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}} - {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{####2}}} - {top-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{####2}}} - {gutter-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{####2}}} - {top-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{####2}}} - {fore-edge-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{####2}}} - {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{####2}}} - {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{####2}}} - {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{####2}}} - {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{####2}}} - {bottom-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{####2}}} - {gutter-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{####2}}} - {bottom-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{####2}}} - {fore-edge-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{####2}}} - {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{####2}}} - {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{####2}}} - {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{####2}}} - {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{####2}}} - {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{####2}}} - {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{####2}}} - {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{####2}}} - {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{####2}}} - {center-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{####2}}} - {gutter-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{####2}}} - {center-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}} - {fore-edge-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{####2}}} - }% + \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}{}% }% - }{##1}% - \jlreq@if{\ifx\jlreq@do\@empty\fi}{ - \appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##1}}% - }{}% - \jlreq@do - } - {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}% + \clist_map_variable:nNn {left,right,in} \jlreq@tempb { + \@namedef{jlreq@trimmarks@banner@\@tempa @\jlreq@tempa @center@\jlreq@tempb}{}% }% - \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 - }% + }% + }% + \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}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {left-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@left}{top@left}{##2}}} + {top-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {right-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@right}{top@right}{##2}}} + {top-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {gutter-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@gutterodd}{top@\jlreq@guttereven}{##2}}} + {top-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {fore-edge-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{top@\jlreq@guttereven}{top@\jlreq@gutterodd}{##2}}} + {bottom-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {left-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@left}{bottom@left}{##2}}} + {bottom-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {right-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@right}{bottom@right}{##2}}} + {bottom-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {gutter-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@gutterodd}{bottom@\jlreq@guttereven}{##2}}} + {bottom-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {fore-edge-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner{bottom@\jlreq@guttereven}{bottom@\jlreq@gutterodd}{##2}}} + {top-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {center-top}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{top@center}{top@center}{##2}}} + {bottom-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-bottom}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{bottom@center}{bottom@center}{##2}}} + {center-right}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {right-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@right}{center@right}{##2}}} + {center-left}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {left-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@left}{center@left}{##2}}} + {center-gutter}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {gutter-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@gutterodd}{center@\jlreq@guttereven}{##2}}} + {center-fore-edge}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + {fore-edge-center}{\appto\jlreq@do{\jlreq@trimmarks@setbanner@{center@\jlreq@guttereven}{center@\jlreq@gutterodd}{##2}}} + }% + }% + }{#1}% + \jlreq@if{\ifx\jlreq@do\@empty\fi}{ + \appto\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 }% }% }% - }{#1}% + }% +} +\newcommand{\jlreqtrimmarkssetup}[1]{% + \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)% + \space\two@digits\hour :\two@digits\minute)% } \jlreqtrimmarkssetup{ banner={\the\@bannertoken}, @@ -483,11 +480,10 @@ \def\jlreq@trimmarks@bleed{3mm} % left=gutter? \def\ifjlreq@trimmarks@leftisgutter{% - \ifjlreq@trimmarks@tate{% - \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@secondoftwo}{\@firstoftwo}% - }{% - \jlreq@if{\ifnum 0\ifodd\c@page 1\fi\if@twoside\else 1\fi>0 \fi}{\@firstoftwo}{\@secondoftwo}% - }% + \bool_if:nTF { + ( \legacy_if_p:n { jlreq@trimmarks@tate } && ( ! ( \int_if_odd_p:n { \c@page } || ! \legacy_if_p:n { @twoside } ) ) ) || + ( ! \legacy_if_p:n { jlreq@trimmarks@tate } && ( \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}} @@ -842,18 +838,18 @@ \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@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@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}% ] } @@ -863,14 +859,14 @@ \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 + /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 + /TrimBox~\jlreq@trimmarks@trimboxsize + \ifjlreq@trimmarks@show@artbox /ArtBox~\jlreq@trimmarks@trimboxsize\fi + /BleedBox~\jlreq@trimmarks@bleedboxsize@even } \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@pttobp} \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@trimboxsize} @@ -880,9 +876,9 @@ \jlreq@trimmarks@afterpkg@addtodeletecs{\jlreq@trimmarks@pdfattribute@even} \begingroup - \c@page=1 + \c@page=1\relax \jlreq@tempdima=\jlreq@trimmarks@bleed@left - \c@page=2 + \c@page=2\relax \ifdim\jlreq@trimmarks@bleed@left=\jlreq@tempdima \global\let\jlreq@tempa\@firstoftwo \else @@ -896,13 +892,13 @@ \@tempa \fi \ifx f\jlreq@trimmarks@driver - \epreto\@outputtombow{\noexpand\special{pdf: put @thispage <<\jlreq@trimmarks@pdfattribute@odd>>}} + \epreto\@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 + \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 @@ -916,20 +912,20 @@ \fi \ifx f\jlreq@trimmarks@driver \epreto\@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 + \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 \epreto\@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 + \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 @@ -939,5 +935,5 @@ % always true \tombowtrue - +\ExplSyntaxOff \endinput |