/usr/share/texmf-texlive/tex/generic/genmisc/cropmark.sty is in texlive-generic-recommended 2009-15.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Cropmark.tex
% version 1.0
%
% This will put crop marks on everythings that's \shipout'ed.
% It will work with any format, since it relies on redefinition
% of \shipout. Exception: if you declare \output{} you will
% not get crop marks.
%
% Cut along the center of the rules to get exactly the shipped
% out box. To get padding around this box, use the parameters below.
%
% User adjustable parameters:
% \croplength length of the crop rules
% \cropwidth width of the crop rules
% \cropsep separation between rule and page box
% \croppadtop padding in case page box looks bigger than it is
% \croppadbot (for instance with plain TeX head/footline)
% \croppadlr
%
% Date: 17 March 1992
%
% Author:
% Victor Eijkhout
% Department of Computer Science
% University Tennessee at Knoxville
% 104 Ayres Hall
% Knoxville, TN 37996
% USA
%
% eijkhout@cs.utk.edu
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% save the old \shipout command
\let\xshipout\shipout
% define a new one: investigate what's being shipped
\def\shipout{\futurelet\SomeBox\yshipout}
% if its a box register, do postprocessing with \afterassignment,
% otherwise do \afterassignment which will do \aftergroup
\def\yshipout
{\ifx\SomeBox\box \let\next\shipAfterRegister
\else \ifx\SomeBox\copy \let\next\shipAfterRegister
\else \let\next\shipAfterBox \fi\fi
\afterassignment\next\setbox0=
}
\def\shipAfterBox{\aftergroup\shipAfterRegister}
% now we have whatever is being shipped in box0,
% so we can insert crop marks
\newdimen\croplength \croplength=20pt
\newdimen\cropsep \cropsep=10pt
\newdimen\cropwidth \cropwidth=2pt
\newdimen\croppadtop \croppadtop=0pt
\newdimen\croppadbot \croppadbot=0pt
\newdimen\croppadlr \croppadlr=0pt
\def\crophrule{\vrule height\cropwidth depth0pt width\croplength}
\def\cropvrule{\vrule width\cropwidth depth0pt height\croplength}
\def\shipAfterRegister
{\setbox0\vbox
{\offinterlineskip
\dimen0\cropsep\advance\dimen0\croplength
\setbox2\hbox to \wd0
{\kern-\croppadlr\kern-.5\cropwidth
\cropvrule\hfil\cropvrule
\kern-.5\cropwidth\kern-\croppadlr}
\setbox4\hbox to \wd0{\llap{\crophrule\kern\cropsep\kern\croppadlr}
\hfil
\rlap{\kern\croppadlr\kern\cropsep\crophrule}}
% go a bit up, put vertical rules, put horizontal rules
\kern-\dimen0
\copy2
\kern\cropsep\kern-.5\cropwidth
\copy4
\kern-.5\cropwidth
% padding
\kern\croppadtop
% the box to be shipped
\box0
% padding
\kern\croppadbot
% and now the top in reverse
\kern-.5\cropwidth
\box4
\kern-.5\cropwidth\kern\cropsep
\box2
}
\xshipout\box0\relax}
\endinput
|