%% %% This is file `crop.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% crop.dtx (with options: `package') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from crop.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file crop.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% File: crop.dtx Copyright (C) 1998--2017 Melchior FRANZ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{crop}[2017/11/19 1.10 crop marks (mf)] \RequirePackage{ifluatex} \expandafter\ifx\csname stockwidth\endcsname\relax \newdimen\stockwidth \stockwidth\paperwidth \fi \expandafter\ifx\csname stockheight\endcsname\relax \newdimen\stockheight \stockheight\paperheight \fi \newcount\CROP@index \CROP@index\z@ \newcommand*\CROP@font{} \let\CROP@stockcolor\@empty \let\CROP@pagecolor\@empty \IfFileExists{color.sty}{% \RequirePackage{color}% \let\CROP@needscolor\@empty }{% \newcommand*\CROP@needscolor{% \PackageError{crop}{% The `invert' and `notext' options require the\MessageBreak `color' package, which doesn't seem to be installed% }{% Install the `color' package or don't use the `invert' \MessageBreak or `notext' option. }% \let\CROP@needscolor\relax }% \let\current@color\relax } \let\CROP@detdriver\@empty \IfFileExists{graphics.sty}{% \RequirePackage{graphics}% \let\CROP@Ginclude@graphics\Ginclude@graphics \ifx\Gin@driver\@empty\else \filename@parse{\Gin@driver}% \edef\CROP@detdriver{\filename@base}% \fi \let\CROP@ps\Gin@PS@raw }{% \PackageWarning{crop}{I couldn't find the `graphics' package, so I'll use\MessageBreak my internal PostScript interface% }% \newcommand*\CROP@ps[1]{\special{ps: ##1}}% } \let\CROP@reqdriver\@empty \DeclareOption{vtex}{\def\CROP@reqdriver{vtex}} \DeclareOption{pdftex}{\def\CROP@reqdriver{pdftex}} \DeclareOption{pdflatex}{\def\CROP@reqdriver{pdftex}} \DeclareOption{luatex}{\def\CROP@reqdriver{luatex}} \DeclareOption{lualatex}{\def\CROP@reqdriver{luatex}} \DeclareOption{dvips}{\def\CROP@reqdriver{dvips}} \let\CROP@driver\@empty \DeclareOption{vtex!}{\def\CROP@driver{vtex}} \DeclareOption{pdftex!}{\def\CROP@driver{pdftex}} \DeclareOption{pdflatex!}{\def\CROP@driver{pdftex}} \DeclareOption{luatex!}{\def\CROP@driver{luatex}} \DeclareOption{lualatex!}{\def\CROP@driver{luatex}} \DeclareOption{dvips!}{\def\CROP@driver{dvips}} \DeclareOption{nodriver}{\def\CROP@driver{none}} \DeclareOption{!}{\def\CROP@driver{none}} \newcommand*\CROP@evaldriver{% \ifx\CROP@driver\@empty \PackageInfo{crop}{requested driver: `\CROP@reqdriver'}% \ifluatex \def\CROP@detdriver{luatex}% \else \ifx\pdfoutput\@undefined\else \ifx\pdfoutput\relax\else \ifcase\pdfoutput\else \def\CROP@detdriver{pdftex}% \fi \fi \fi \fi \ifx\VTeXversion\@undefined\else \ifx\VTeXversion\relax\else \def\CROP@detdriver{vtex}% \fi \fi \PackageInfo{crop}{detected driver: `\CROP@detdriver'}% \ifx\CROP@reqdriver\@empty\else \ifx\CROP@reqdriver\@empty\else \ifx\CROP@reqdriver\CROP@detdriver\else \PackageWarningNoLine{crop}{% You requested the `\CROP@reqdriver' driver but I think that\MessageBreak the `\CROP@detdriver' driver works better in the current\MessageBreak context. You can force me to respect your decision\MessageBreak by adding an exclamation point as in [\CROP@reqdriver!]% }% \fi \fi \fi \ifx\CROP@detdriver\@empty \let\CROP@driver\CROP@reqdriver \else \let\CROP@driver\CROP@detdriver \fi \fi \let\CROP@evaldriver\relax } \AtBeginDocument{\CROP@evaldriver} \newcommand*\CROP@init@dvips{% \PackageInfo{crop}{using `dvips' graphics driver}% \AtBeginDvi{% \special{papersize=\the\stockwidth,\the\stockheight}% }% } \newcommand*\CROP@init@pdftex{% \PackageInfo{crop}{using `pdftex' graphics driver}% \let\CROP@reflect\CROP@genreflect \let\CROP@rotate\CROP@genrotate \newcommand*\CROP@shiphook{% \pdfpagewidth\stockwidth \pdfpageheight\stockheight }% } \newcommand*\CROP@init@luatex{% \PackageInfo{crop}{using `luatex' graphics driver}% \pagewidth\stockwidth \pageheight\stockheight \let\CROP@reflect\CROP@genreflect \let\CROP@rotate\CROP@genrotate } \newcommand*\CROP@init@vtex{% \PackageInfo{crop}{using `vtex' graphics driver}% \mediawidth\stockwidth \mediaheight\stockheight \let\CROP@reflect\CROP@genreflect \let\CROP@rotate\CROP@genrotate } \newcommand*\CROP@init@none{% \PackageInfo{crop}{not using any graphics driver}% } \newcommand*\CROP@size[2]{\stockwidth#1 \stockheight#2 } \DeclareOption{landscape}{% \def\CROP@size#1#2{\stockheight#1 \stockwidth#2 }% } \DeclareOption{a0}{\CROP@size{841truemm}{1189truemm}} \DeclareOption{a1}{\CROP@size{594truemm}{841truemm}} \DeclareOption{a2}{\CROP@size{420truemm}{594truemm}} \DeclareOption{a3}{\CROP@size{297truemm}{420truemm}} \DeclareOption{a4}{\CROP@size{210truemm}{297truemm}} \DeclareOption{a5}{\CROP@size{148truemm}{210truemm}} \DeclareOption{a6}{\CROP@size{105truemm}{148truemm}} \DeclareOption{b0}{\CROP@size{1000truemm}{1414truemm}} \DeclareOption{b1}{\CROP@size{707truemm}{1000truemm}} \DeclareOption{b2}{\CROP@size{500truemm}{707truemm}} \DeclareOption{b3}{\CROP@size{353truemm}{500truemm}} \DeclareOption{b4}{\CROP@size{250truemm}{353truemm}} \DeclareOption{b5}{\CROP@size{176truemm}{250truemm}} \DeclareOption{b6}{\CROP@size{125truemm}{176truemm}} \DeclareOption{letter}{\CROP@size{8.5truein}{11truein}} \DeclareOption{legal}{\CROP@size{8.5truein}{14truein}} \DeclareOption{executive}{\CROP@size{7.25truein}{10.5truein}} \newcommand\CROP@opt@width{\stockwidth\CROP@@} \newcommand\CROP@opt@height{\stockheight\CROP@@} \DeclareOption{center}{\AtBeginDocument{\CROP@center}} \newcommand*\CROP@center{% \voffset\stockheight \advance\voffset-\paperheight \voffset.5\voffset \hoffset\stockwidth \advance\hoffset-\paperwidth \hoffset.5\hoffset } \DeclareOption*{\CROP@execopt\CurrentOption} \newcommand*\crop[1][cam,noaxes]{% \@for\CROP@@:=#1\do{\CROP@execopt\CROP@@}% } \newcommand*\CROP@execopt[1]{% \def\CROP@##1=##2=##3\@nil{\def\CROP@{##1}\def\CROP@@{##2}}% \expandafter\CROP@#1==\@nil% \@ifundefined{CROP@opt@\CROP@}{% \PackageError{crop}{% Requested option `#1' not provided% }{% Note that the `*center' options are obsolete. You have to request\MessageBreak e.g. [a4,center] instead of [a4center]. }% }{% \@nameuse{CROP@opt@\CROP@}% }% } \newcommand*\cropdef[6][\CROP@@info]{% \@namedef{CROP@opt@#6}{% \def\CROP@info{#1}% \let\CROP@ulc#2 \let\CROP@urc#3 \let\CROP@llc#4 \let\CROP@lrc#5 \let\CROP@@@marks\CROP@marks }% } \newcommand*\CROP@@laxis{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(-2,0){\line(-1,0){11}} \end{picture}% } \newcommand*\CROP@@raxis{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(2,0){\line(1,0){11}} \end{picture}% } \newcommand*\CROP@@upaxis{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(0,2){\line(0,1){11}} \end{picture}% } \newcommand*\CROP@@loaxis{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(0,-2){\line(0,-1){11}} \end{picture}% } \newcommand*\CROP@time{} \bgroup \count@\time \divide\time60 \count\@ne\time \multiply\time60 \advance\count@-\time \xdef\CROP@time{\the\count\@ne:\two@digits{\count@}} \egroup \newcommand*\CROP@@info{{% \global\advance\CROP@index\@ne \def\x{\discretionary{}{}{\hbox{\kern.5em---\kern.5em}}}% \advance\paperwidth-20\p@ \dimen@4pt \ifx\CROP@pagecolor\@empty \else \advance\dimen@\CROP@overlap \fi \hb@xt@\z@{% \hss \vbox to\z@{% \centering \hsize\paperwidth \vss \normalfont \normalsize \expandafter\csname\CROP@font\endcsname{% ``\jobname''\x \the\year/\the\month/\the\day\x \CROP@time\x page\kern.5em\thepage\x \#\the\CROP@index \strut }% \vskip\dimen@ }% \hss }% }} \newcommand*\CROP@opt@font{\let\CROP@font\CROP@@} \newcommand*\CROP@@ulc{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(-30,0){\circle{10}} \put(-30,-5){\line(0,1){10}} \put(-35,0){\line(1,0){30}} \put(0,30){\circle{10}} \put(-5,30){\line(1,0){10}} \put(0,35){\line(0,-1){30}} \end{picture}% } \newcommand*\CROP@@urc{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(30,0){\circle{10}} \put(30,-5){\line(0,1){10}} \put(35,0){\line(-1,0){30}} \put(0,30){\circle{10}} \put(-5,30){\line(1,0){10}} \put(0,35){\line(0,-1){30}} \end{picture}% } \newcommand*\CROP@@llc{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(-30,0){\circle{10}} \put(-30,-5){\line(0,1){10}} \put(-35,0){\line(1,0){30}} \put(0,-30){\circle{10}} \put(-5,-30){\line(1,0){10}} \put(0,-35){\line(0,1){30}} \end{picture}% } \newcommand*\CROP@@lrc{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(30,0){\circle{10}} \put(30,-5){\line(0,1){10}} \put(35,0){\line(-1,0){30}} \put(0,-30){\circle{10}} \put(-5,-30){\line(1,0){10}} \put(0,-35){\line(0,1){30}} \end{picture}% } \cropdef\CROP@@ulc\CROP@@urc\CROP@@llc\CROP@@lrc{cam} \newcommand*\CROP@@cross{% \begin{picture}(0,0) \unitlength1cm\thinlines \put(-2,0){\line(1,0){4}} \put(0,-2){\line(0,1){4}} \end{picture}% } \cropdef\CROP@@cross\CROP@@cross\CROP@@cross\CROP@@cross{cross} \newcommand*\CROP@@frame{% \begin{picture}(0,0) \unitlength\p@\thinlines \put(0,0){\line(1,0){\strip@pt\paperwidth}} \put(0,0){\line(0,-1){\strip@pt\paperheight}} \put(\strip@pt\paperwidth,0){\line(0,-1){\strip@pt\paperheight}} \put(0,-\strip@pt\paperheight){\line(1,0){\strip@pt\paperwidth}} \end{picture}% } \cropdef\CROP@@frame\relax\relax\relax{frame} \let\CROP@shipout\shipout \renewcommand*\shipout{% \afterassignment\CROP@ship \setbox\@cclv=% } \newcommand*\CROP@ship{% \ifvoid\@cclv \expandafter\aftergroup \fi \CROP@@ship } \newcommand*\CROP@shiplist{% \lineskip\z@ \lineskiplimit\z@ \baselineskip\z@ \CROP@kernel \box\@cclv } \newcommand*\CROP@@ship{% \csname CROP@shiphook\endcsname \CROP@shipout\vbox{\CROP@shiplist}% } \newcommand*\CROP@shipadd[1]{% \bgroup \toks@\expandafter{\expandafter#1\expandafter{\CROP@shiplist}}% \xdef\CROP@shiplist{\the\toks@}% \egroup } \newcommand*\CROP@kernel{% \vbox to\z@{% \vskip\CROP@vorigin \hb@xt@\z@{% \hskip\CROP@horigin \vbox to\paperheight{% \let\protect\relax \hsize\paperwidth \CROP@hook \CROP@user@a \CROP@drawstockcolor \CROP@drawpagecolor \CROP@@@marks }% \hss }% \vss }% } \newcommand*\CROP@marks{% \CROP@setmarkcolor \CROP@user@b \CROP@ulc\null\hfill\CROP@@@info\CROP@upedge\hfill\null\CROP@urc \vfill \CROP@ledge\hfill\CROP@redge \vfill \CROP@llc\null\hfill\CROP@loedge\hfill\null\CROP@lrc } \let\CROP@@@marks\CROP@marks \newcommand*\CROP@setmarkcolor{% \let\current@color\CROP@markcolor \set@color } \let\CROP@user@a\relax \let\CROP@user@b\relax \newcommand*\CROP@opt@horigin{\let\CROP@horigin\CROP@@} \newcommand*\CROP@opt@vorigin{\let\CROP@vorigin\CROP@@} \newcommand*\CROP@opt@off{% \let\CROP@@@marks\vfil } \newcommand*\CROP@opt@odd{% \def\CROP@@@marks{\ifodd\c@page\CROP@marks\else\vfil\fi}% } \newcommand*\CROP@opt@even{% \def\CROP@@@marks{\ifodd\c@page\vfil\else\CROP@marks\fi}% } \newcommand*\CROP@@@info{} \newcommand*\CROP@opt@info{\def\CROP@@@info{\CROP@info}} \newcommand*\CROP@opt@noinfo{\let\CROP@@@info\relax} \newcommand*\CROP@opt@axes{% \let\CROP@ledge\CROP@@laxis \let\CROP@redge\CROP@@raxis \let\CROP@upedge\CROP@@upaxis \let\CROP@loedge\CROP@@loaxis } \newcommand*\CROP@opt@noaxes{% \let\CROP@ledge\relax \let\CROP@redge\relax \let\CROP@upedge\relax \let\CROP@loedge\relax } \expandafter\newcommand\expandafter*\csname CROP@opt@mount1\endcsname{% \let\CROP@hook\relax } \newcount\CROP@offset \expandafter\newcommand\expandafter*\csname CROP@opt@mount2\endcsname{% \CROP@offset=\ifx\CROP@@\@empty\z@\else\CROP@@\fi \def\CROP@hook{% \count@\c@page \advance\count@\CROP@offset \ifodd\count@ \let\CROP@ulc\relax \let\CROP@llc\relax \let\CROP@ledge\relax \else \let\CROP@urc\relax \let\CROP@lrc\relax \let\CROP@redge\relax \fi }% } \DeclareOption{mirror}{% \AtBeginDocument{\CROP@shipadd\CROP@reflect} } \newcommand*\CROP@reflect[1]{% \vbox to\z@{% \vskip\CROP@vorigin \hb@xt@\z@{% \hskip\CROP@horigin \CROP@ps{gsave currentpoint}% \kern\paperwidth \CROP@ps{currentpoint}% \hss }% \vss }% \CROP@ps{translate -1 1 scale neg exch neg exch translate}% \vbox{#1}% \CROP@ps{grestore}% } \newcommand*\CROP@genreflect[1]{% \leavevmode \dimen0\CROP@horigin \kern2\dimen0 \reflectbox{% \hb@xt@\paperwidth{% \vbox to\paperheight{% #1% \vss }% \hss }% }% } \DeclareOption{rotate}{% \AtBeginDocument{\CROP@shipadd\CROP@rotate} } \newcommand*\CROP@rotate[1]{% \hb@xt@\z@{% \hskip\CROP@horigin \vbox to\z@{% \vskip\CROP@vorigin \CROP@ps{gsave currentpoint}% \kern\paperheight \hb@xt@\z@{% \kern\paperwidth \CROP@ps{currentpoint}% \hss }% \vss }% \hss }% \CROP@ps{translate 180 rotate neg exch neg exch translate}% \vbox{#1}% \CROP@ps{grestore}% } \newcommand*\CROP@genrotate[1]{% \dimen0\CROP@vorigin \kern2\dimen0 \leavevmode \dimen0\CROP@horigin \kern2\dimen0 \rotatebox{180}{% \hb@xt@\paperwidth{% \vbox to\paperheight{% #1% \vss }% \hss }% }% } \newcommand*\CROP@defmarkcolor[1]{{% \def\set@color{\global\let\CROP@markcolor\current@color}% \@declaredcolor{#1}% }} \ifx\CROP@needscolor\@empty \renewcommand*\set@page@color{% \global\let\CROP@stockcolor\current@color }% \AtBeginDocument{% \def\set@page@color{% \global\let\CROP@pagecolor\current@color }% }% \CROP@defmarkcolor{black}% \let\CROP@needscolor\relax \fi \newcommand*\CROP@opt@color{% \CROP@needscolor \expandafter\CROP@defmarkcolor\expandafter{\CROP@@}% } \newcommand*\CROP@drawstockcolor{% \ifx\CROP@stockcolor\@empty \else \rlap{% \smash{% \raise\voffset\hbox{% \let\current@color\CROP@stockcolor \set@color \hskip-\hoffset \vrule width\stockwidth height\z@ depth\stockheight }% }% }% \fi } \newcommand*\CROP@drawpagecolor{% \ifx\CROP@pagecolor\@empty \else \rlap{% \smash{% \dimen@\CROP@overlap \advance\paperwidth2\dimen@ \advance\paperheight2\dimen@ \raise\dimen@\hbox{% \let\current@color\CROP@pagecolor \set@color \hskip-\dimen@ \vrule width\paperwidth height\z@ depth\paperheight }% }% }% \fi } \def\CROP@overlap{3truemm} \newcommand*\CROP@opt@overlap{\let\CROP@overlap\CROP@@} \newcommand*\CROP@invert[1]{% \CROP@needscolor \AtBeginDvi{% \pagecolor{#1}% \global\let\set@page@color\relax \global\let\CROP@setpagecolor\relax }% \color{white}% \DeclareRobustCommand*\color[2][]{}% \let\pagecolor\color \let\textcolor\color \let\CROP@invert\@gobble } \DeclareOption{invert}{% \CROP@invert{black}% \let\CROP@setmarkcolor\relax } \DeclareOption{notext}{% \CROP@invert{white}% } \newcommand*\CROP@opt@nographics{% \def\Ginclude@graphics##1{% \phantom{% \CROP@Ginclude@graphics{##1}% }% }% }% \newcommand*\CROP@opt@graphics{% \let\Ginclude@graphics\CROP@Ginclude@graphics } \newcommand*\CROP@horigin{-1truein} \newcommand*\CROP@vorigin{-1truein} \crop[cam,off,noaxes,info,mount1] \InputIfFileExists{crop.cfg}{% \PackageInfo{crop}{Local config file crop.cfg used} }{} \ProcessOptions \AtBeginDocument{\@nameuse{CROP@init@\CROP@driver}} \endinput %% %% End of file `crop.sty'.