# Print two sheets per page, with crop marks

I have a 124 mm x 164 mm pdf document that I want to print, two sheets per page, on letter paper (in landscape orientation). Arranging the two sheets per page is easy with the pdfpages package:

\documentclass[letterpaper,landscape]{article}

\usepackage[margin=0cm]{geometry}
\usepackage{pdfpages}

\begin{document}

\includepdf[nup=2x1,pages=-,noautoscale]{test_124x164.pdf}

\end{document}


However, I would also like to draw crop marks to aid with the cutting. I understand the crop package should do the job, but I can't figure out how to use it. The package documentation wasn't really helpful.

There are similar questions on StackExchange, but they're either unsolved or do not deal exactly with the same issue.

• Can you be a bit more specific about what output you expect, and what is wrong with the output from the crop package? I just tried adding \usepackage[a4,frame,axes,cross,pdftex,center]{crop} (see tex.stackexchange.com/questions/181078/crop-and-bleed-marks) and it seems to give a reasonable first solution.
– yori
Dec 16 '14 at 7:55
• That's the problem: I get absolutely no output from the crop package. I added \usepackage[letter,frame,axes,cross,pdftex,center]{crop} to the preamble of my document and nothing happened. Am I missing something? Dec 16 '14 at 14:26
• Maybe what is happening is that the crop marks appear under your pdf pages? So they are actually there, but they are hidden by the pdf?
– yori
Dec 16 '14 at 17:35
• I needed to pass the dimensions of the logical page as options to the geometry package for crop to know where to print the crop marks; see my answer below. Dec 16 '14 at 17:40

If you are very keen on doing it yourself, here is a sample. Adjust the lengths as suitable.

\documentclass[letterpaper,landscape]{article}

\usepackage[margin=0cm]{geometry}
\usepackage{pdfpages}
\usepackage{background}
\backgroundsetup{%
angle=0,
scale=1,
opacity=1,
contents={%
\begin{tikzpicture}[remember picture, overlay,thick]
%% lower left
\draw ([yshift=1cm]current page.south west) -- +(1.5,0);
\draw ([xshift=1cm]current page.south west) -- +(0,1.5);
%% lower right
\draw ([yshift=1cm]current page.south east) -- +(-1.5,0);
\draw ([xshift=-1cm]current page.south east) -- +(0,1.5);
%% lower middle
\draw (current page.south) -- +(0,1.5);
\draw ([shift={(-1cm,1cm)}]current page.south) -- +(2,0);
%% upper left
\draw ([yshift=-1cm]current page.north west) -- +(1.5,0);
\draw ([xshift=1cm]current page.north west) -- +(0,-1.5);
%% upper right
\draw ([yshift=-1cm]current page.north east) -- +(-1.5,0);
\draw ([xshift=-1cm]current page.north east) -- +(0,-1.5);
%% lower middle
\draw (current page.north) -- +(0,-1.5);
\draw ([shift={(-1cm,-1cm)}]current page.north) -- +(2,0);
\end{tikzpicture}
}%
}
\begin{document}
\includepdf[nup=2x1,pages=3-6]{pgfmanual.pdf}
\end{document}


Here is a plain TeX solution. Use the command pdftex file, don't use LaTeX.

\def\document {test_124x164.pdf} % The name of PDF file

\newdimen\pageswidth
\nopagenumbers % use pdfTeX
\pdfpagewidth=297mm \pdfpageheight=210mm % A4
\pdfhorigin=5mm \pdfvorigin=5mm
\pdfximage {\document}
\mathchardef\firstpage=\pdflastximage
\def\putpage#1{%
\ifnum#1>\pdflastximagepages \hbox to\pageswidth{}\else % vacat
\ifnum#1=1 \setbox0=\hbox{\pdfrefximage\firstpage}%
\global\pageswidth=\wd0 \box0
\else \pdfximage page#1 {\document}%
\hbox{\pdfrefximage\pdflastximage}%
\fi\fi
}
\def\cropbox#1{\setbox0=\hbox{#1}\dimen0=\wd0
\vbox{\offinterlineskip \def\kr{\kern-.2pt}
\hbox to\width{\ltcrop\hfil\vrule height\cropw depth-.2\cropw\hfil\rtcrop}\kr
\hbox{\kern\cropw \box0}\kr
\hbox to\width{\lbcrop\hfil\vrule height.8\cropw\hfil\rbcrop}}
}
\def\ltcrop{\vbox{\hbox to\cropw{\hfil\vrule height\cropw depth-.2\cropw}
\nointerlineskip
\hbox to\cropw{\vrule height.4pt width.8\cropw \hfil}}}
\def\rtcrop{\vbox{\hbox to\cropw{\vrule height\cropw depth-.2\cropw\hfil}
\nointerlineskip
\hbox to\cropw{\hfil\vrule height.4pt width.8\cropw}}}
\def\lbcrop{\vbox{\hbox to\cropw{\vrule height.4pt width.8\cropw \hfil}
\nointerlineskip \kern.2\cropw
\hbox to\cropw{\hfil\vrule height.8\cropw}}}
\def\rbcrop{\vbox{\hbox to\cropw{\hfil\vrule height.4pt width.8\cropw}
\nointerlineskip \kern.2\cropw
\hbox to\cropw{\vrule height.8\cropw\hfil}}}
\newdimen\cropw \cropw=10mm

\newcount\aL \newcount\aR \newcount\bL \newcount\bR
\aL=1 \aR=2
\loop
\cropbox{\putpage\aL \putpage\aR}\vfil\break
\ifnum \aR<\pdflastximagepages
\repeat
\end


Of course, this is clear example of the "reinventing of the wheel". But this reinventing is more comfortable for me than reading huge pages of obscured manuals. The knowledge of TeX itself is sufficient.

• This is such a great answer. Thank you very much. It is so hard to find examples that don't import packages that import others, and so on. Thanks! Sep 9 '19 at 5:24

The crop package reads page dimensions from, e.g., the options given to geometry. I found that the following works:

\documentclass[letterpaper,landscape]{article}

\usepackage{pdfpages}
\usepackage[paperheight=248mm,paperwidth=164mm]{geometry}
\usepackage[axes,letter,cam,pdftex,center]{crop}

\begin{document}

\includepdf[nup=2x1,pages=-,noautoscale]{test_124x164.pdf}

\end{document}


Notice that the logical page dimensions are given in a way that's far from ideal. First, width and height are interchanged, due to the physical page being in landscape orientation. Second, height (i.e., width) is quoted as twice the real height, since I want two logical sheets per physical page.

In particular, this means that there are in principle no crop marks that signal where to cut one logical sheet from the other (since, as fas as crop is concerned, there is only one logical sheet per physical page). Fortunately, the axes option draws a small mark in the middle of the page, which more or less solves the issue.

I tried the mount2 option from crop, but found that it does exactly the opposite thing as I would expect; instead of doubling the number of crop marks, it prints marks only on one side of the page.