% \iffalse meta-comment
%
% Copyright (C) 1993-2026
% The LaTeX Project and any individual authors listed elsewhere
% in this file.
%
% This file is part of the LaTeX base system.
% -------------------------------------------
%
% It may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
%    https://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2008 or later.
%
% This file has the LPPL maintenance status "maintained".
%
% The list of all files belonging to the LaTeX base distribution is
% given in the file `manifest.txt'. See also `legal.txt' for additional
% information.
%
% The list of derived (unpacked) files belonging to the distribution
% and covered by LPPL is defined by the unpacking scripts (with
% extension .ins) which are part of the distribution.
%
% \fi
% testpage.tex - created 21 January 1994.
% Copyright (C) 1994 by Rainer Schoepf
%
% Test of how accurately printer reproduces dimensions specified
% by LaTeX output.

\typeout{}
\typeout{*****************************************************}
\typeout{*  Type paper type in form of document class option,}
\typeout{*  e.g., `a4paper' or `letterpaper' (without the quotes).}
\typein[\papertype]{*************************************%
**************}

\typeout{}
\typeout{*****************************************************}
\typeout{*  Do you want to produce two test pages for use with}
\typeout{*  a double sided printer? (y/n)}
\typein[\doublesided]{*************************************%
**************}

\documentclass[\papertype]{article}

\usepackage{ifthen}

\pagestyle{empty}

\nofiles

\setlength{\oddsidemargin}{0pt}
\setlength{\evensidemargin}{0pt}
\setlength{\marginparwidth}{1in}
\setlength{\marginparsep}{0pt}

\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\topskip}{0pt}

\setlength{\footskip}{0pt}

\setlength{\textwidth}{\paperwidth}
\addtolength{\textwidth}{-2in}
\setlength{\textheight}{\paperheight}
\addtolength{\textheight}{-2in}

\setlength{\parindent}{0pt}

\setlength{\unitlength}{1sp}


\newcounter{textheight}
\newcounter{textwidth}

\setcounter{textheight}{\textheight}
\setcounter{textwidth}{\textwidth}

\newlength{\help}
\newcounter{help}

\newcommand{\sethelpcounter}[2]{%
   \setlength{\help}{#2}\setcounter{#1}{\help}}

\newcounter{in}
\newcounter{halfin}
\newcounter{fifthin}
\newcounter{tenthin}
\newcounter{twtin}

\setlength{\help}{1in}
\setcounter{in}{\help}

\setlength{\help}{0.5in}
\setcounter{halfin}{\help}

\setlength{\help}{0.2in}
\setcounter{fifthin}{\help}

\setlength{\help}{0.1in}
\setcounter{tenthin}{\help}

\setlength{\help}{0.05in}
\setcounter{twtin}{\help}


\newcounter{mm}
\newcounter{tmm}
\newcounter{frmm}
\newcounter{fvmm}
\newcounter{tenmm}

\setlength{\help}{1mm}
\setcounter{mm}{\help}

\setlength{\help}{2mm}
\setcounter{tmm}{\help}

\setlength{\help}{4mm}
\setcounter{frmm}{\help}

\setlength{\help}{5mm}
\setcounter{fvmm}{\help}

\setlength{\help}{10mm}
\setcounter{tenmm}{\help}

\newcounter{foo}

\newcounter{x}
\newcounter{y}

\newcommand{\addtox}{\addtocounter{x}}
\newcommand{\addtoy}{\addtocounter{y}}

\newcommand{\putxy}{\put(\value{x},\value{y})}
\newcommand{\multiputxy}{\multiput(\value{x},\value{y})}

\begin{document}

\begin{picture}(0,0)
\scriptsize

\put(0,-\value{textheight}){%
     \framebox(\value{textwidth},\value{textheight}){}}

% left mm ruler
\setcounter{x}{0}
\sethelpcounter{y}{-0.45\textheight}
\putxy{\line(-1,0){\value{in}}}

\addtox{-\value{fvmm}}
\addtoy{-\value{tmm}}
\multiputxy(-\value{fvmm},0){5}{\line(0,1){\value{frmm}}}

\addtoy{\value{mm}}
\multiput(-\value{mm},\value{y})(-\value{mm},0){25}%
          {\line(0,1){\value{tmm}}}

\addtoy{\value{frmm}}
\setcounter{foo}{1}
\multiput(-\value{tenmm},\value{y})(-\value{tenmm},0){2}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% left in ruler
\setcounter{x}{0}
\sethelpcounter{y}{-0.55\textheight}
\putxy{\line(-1,0){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(-\value{tenthin},0){10}{\line(0,1){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(-\value{tenthin},0){10}{\line(0,1){\value{tenthin}}}

\setcounter{foo}{1}

\addtox{-\value{twtin}}
\addtoy{\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(-\value{tenthin},0){9}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% right mm ruler
\sethelpcounter{x}{\textwidth}
\sethelpcounter{y}{-0.45\textheight}
\putxy{\line(1,0){\value{in}}}

\addtox{\value{mm}}
\addtoy{-\value{mm}}
\multiputxy(\value{mm},0){25}{\line(0,1){\value{tmm}}}

\addtox{\value{frmm}}
\addtoy{-\value{mm}}
\multiputxy(\value{fvmm},0){5}{\line(0,1){\value{frmm}}}

\addtox{\value{fvmm}}
\addtoy{\value{fvmm}}
\setcounter{foo}{1}
\multiputxy(\value{tenmm},0){2}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% right in ruler
\sethelpcounter{x}{\textwidth}
\sethelpcounter{y}{-0.55\textheight}
\putxy{\line(1,0){\value{in}}}

\addtox{\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(\value{tenthin},0){10}{%
   \line(0,1){\value{fifthin}}}

\addtox{-\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(\value{tenthin},0){10}{%
   \line(0,1){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{twtin}}
\addtoy{\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(\value{tenthin},0){9}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


% top mm ruler
\sethelpcounter{x}{0.45\textwidth}
\setcounter{y}{0}
\putxy{\line(0,1){\value{in}}}

\addtox{-\value{tmm}}
\addtoy{\value{fvmm}}
\multiputxy(0,\value{fvmm}){5}{\line(1,0){\value{frmm}}}

\addtox{\value{mm}}
\addtoy{-\value{frmm}}
\multiputxy(0,\value{mm}){25}{\line(1,0){\value{tmm}}}

\setcounter{foo}{1}
\addtox{-\value{tmm}}
\addtoy{-\value{mm}}
\addtoy{\value{tenmm}}
\multiputxy(0,\value{tenmm}){2}{%
  \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% top in ruler
\sethelpcounter{x}{0.55\textwidth}
\setcounter{y}{0}
\putxy{\line(0,1){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(0,\value{tenthin}){10}{\line(1,0){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{-\value{twtin}}
\multiputxy(0,\value{tenthin}){10}{\line(1,0){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{fifthin}}
\addtoy{\value{twtin}}
\multiputxy(0,\value{tenthin}){9}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% bottom mm ruler
\sethelpcounter{x}{0.45\textwidth}
\setcounter{y}{-\textheight}
\putxy{\line(0,-1){\value{in}}}

\addtox{-\value{tmm}}
\addtoy{-\value{fvmm}}
\multiputxy(0,-\value{fvmm}){5}{\line(1,0){\value{frmm}}}

\addtox{\value{mm}}
\addtoy{\value{frmm}}
\multiputxy(0,-\value{mm}){25}{\line(1,0){\value{tmm}}}

\setcounter{foo}{1}
\addtox{-\value{tmm}}
\addtoy{\value{mm}}
\addtoy{-\value{tenmm}}
\multiputxy(0,-\value{tenmm}){2}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


% bottom in ruler
\sethelpcounter{x}{0.55\textwidth}
\setcounter{y}{-\textheight}
\putxy{\line(0,-1){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(0,-\value{tenthin}){10}{\line(1,0){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(0,-\value{tenthin}){10}{\line(1,0){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{fifthin}}
\addtoy{-\value{twtin}}
\multiputxy(0,-\value{tenthin}){9}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


\end{picture}

\setlength{\help}{\textwidth}
\addtolength{\help}{-2in}

\vfill
\mbox{}\hfill
\begin{minipage}{\help}
The frame on this page should be one
inch from each edge of the paper.\\[10pt]
The rulers at the four edges will indicate how much of the page is
useable.  The ticks of the left and top rulers are $1 {\rm mm}$ apart.
The large ticks are $.1''$ apart.
\end{minipage}
\hfill\mbox{}

\vfill
\mbox{}

\ifthenelse{\equal{\doublesided}{y}}{\newpage}{\end{document}}

\begin{picture}(0,0)
\scriptsize

\put(0,-\value{textheight}){%
     \framebox(\value{textwidth},\value{textheight}){}}

% left mm ruler
\setcounter{x}{0}
\sethelpcounter{y}{-0.45\textheight}
\putxy{\line(-1,0){\value{in}}}

\addtox{-\value{fvmm}}
\addtoy{-\value{tmm}}
\multiputxy(-\value{fvmm},0){5}{\line(0,1){\value{frmm}}}

\addtoy{\value{mm}}
\multiput(-\value{mm},\value{y})(-\value{mm},0){25}%
          {\line(0,1){\value{tmm}}}

\addtoy{\value{frmm}}
\setcounter{foo}{1}
\multiput(-\value{tenmm},\value{y})(-\value{tenmm},0){2}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% left in ruler
\setcounter{x}{0}
\sethelpcounter{y}{-0.55\textheight}
\putxy{\line(-1,0){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(-\value{tenthin},0){10}{\line(0,1){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(-\value{tenthin},0){10}{\line(0,1){\value{tenthin}}}

\setcounter{foo}{1}

\addtox{-\value{twtin}}
\addtoy{\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(-\value{tenthin},0){9}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% right mm ruler
\sethelpcounter{x}{\textwidth}
\sethelpcounter{y}{-0.45\textheight}
\putxy{\line(1,0){\value{in}}}

\addtox{\value{mm}}
\addtoy{-\value{mm}}
\multiputxy(\value{mm},0){25}{\line(0,1){\value{tmm}}}

\addtox{\value{frmm}}
\addtoy{-\value{mm}}
\multiputxy(\value{fvmm},0){5}{\line(0,1){\value{frmm}}}

\addtox{\value{fvmm}}
\addtoy{\value{fvmm}}
\setcounter{foo}{1}
\multiputxy(\value{tenmm},0){2}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% right in ruler
\sethelpcounter{x}{\textwidth}
\sethelpcounter{y}{-0.55\textheight}
\putxy{\line(1,0){\value{in}}}

\addtox{\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(\value{tenthin},0){10}{%
   \line(0,1){\value{fifthin}}}

\addtox{-\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(\value{tenthin},0){10}{%
   \line(0,1){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{twtin}}
\addtoy{\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(\value{tenthin},0){9}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


% top mm ruler
\sethelpcounter{x}{0.45\textwidth}
\setcounter{y}{0}
\putxy{\line(0,1){\value{in}}}

\addtox{-\value{tmm}}
\addtoy{\value{fvmm}}
\multiputxy(0,\value{fvmm}){5}{\line(1,0){\value{frmm}}}

\addtox{\value{mm}}
\addtoy{-\value{frmm}}
\multiputxy(0,\value{mm}){25}{\line(1,0){\value{tmm}}}

\setcounter{foo}{1}
\addtox{-\value{tmm}}
\addtoy{-\value{mm}}
\addtoy{\value{tenmm}}
\multiputxy(0,\value{tenmm}){2}{%
  \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% top in ruler
\sethelpcounter{x}{0.55\textwidth}
\setcounter{y}{0}
\putxy{\line(0,1){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{\value{tenthin}}
\multiputxy(0,\value{tenthin}){10}{\line(1,0){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{-\value{twtin}}
\multiputxy(0,\value{tenthin}){10}{\line(1,0){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{fifthin}}
\addtoy{\value{twtin}}
\multiputxy(0,\value{tenthin}){9}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}

% bottom mm ruler
\sethelpcounter{x}{0.45\textwidth}
\setcounter{y}{-\textheight}
\putxy{\line(0,-1){\value{in}}}

\addtox{-\value{tmm}}
\addtoy{-\value{fvmm}}
\multiputxy(0,-\value{fvmm}){5}{\line(1,0){\value{frmm}}}

\addtox{\value{mm}}
\addtoy{\value{frmm}}
\multiputxy(0,-\value{mm}){25}{\line(1,0){\value{tmm}}}

\setcounter{foo}{1}
\addtox{-\value{tmm}}
\addtoy{\value{mm}}
\addtoy{-\value{tenmm}}
\multiputxy(0,-\value{tenmm}){2}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


% bottom in ruler
\sethelpcounter{x}{0.55\textwidth}
\setcounter{y}{-\textheight}
\putxy{\line(0,-1){\value{in}}}

\addtox{-\value{tenthin}}
\addtoy{-\value{tenthin}}
\multiputxy(0,-\value{tenthin}){10}{\line(1,0){\value{fifthin}}}

\addtox{\value{twtin}}
\addtoy{\value{twtin}}
\multiputxy(0,-\value{tenthin}){10}{\line(1,0){\value{tenthin}}}

\setcounter{foo}{1}
\addtox{\value{fifthin}}
\addtoy{-\value{twtin}}
\multiputxy(0,-\value{tenthin}){9}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


\end{picture}

\setlength{\help}{\textwidth}
\addtolength{\help}{-2in}

\vfill
\mbox{}\hfill
\begin{minipage}{\help}
The frame on this page should be one
inch from each edge of the paper.\\[10pt]
The rulers at the four edges will indicate how much of the page is
useable.  The ticks of the left and top rulers are $1 {\rm mm}$ apart.
The large ticks are $.1''$ apart.
\end{minipage}
\hfill\mbox{}

\vfill
\mbox{}

\end{document}
