
%% testflow.tex 
%% V1.1
%% 2009/01/10
%% Copyright (c) 2002-2009 by Michael Shell and The LaTeX3 Project
%% See: http://www.michaelshell.org/
%% for current contact information.
%% 
%% A test page based on Rainer Schoepf's testpage.tex which is part of the
%% LaTeX2e system with added modifications to add tests to verify PS/PDF
%% output by Michael Shell.
%%
%% For complete usage documentation, see the file testflow_doc.pdf
%%
%% Support sites:
%% http://www.michaelshell.org/tex/testflow/
%% http://www.ctan.org/pkg/testflow
%%
%%*************************************************************************
%% Legal Notice:
%% This code is offered as-is without any warranty either expressed or
%% implied; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE! 
%% User assumes all risk.
%% In no event shall the IEEE or any contributor to this code be liable for
%% any damages or losses, including, but not limited to, incidental,
%% consequential, or any other damages, resulting from the use or misuse
%% of any information contained here.
%%
%% All comments are the opinions of their respective authors and are not
%% necessarily endorsed by the IEEE.
%%
%% This work is distributed under the LaTeX Project Public License (LPPL)
%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used,
%% distributed and modified. A copy of the LPPL, version 1.3, is included
%% in the base LaTeX documentation of all distributions of LaTeX released
%% 2003/12/01 or later.
%% Retain all contribution notices and credits.
%% ** Modified files should be clearly indicated as such, including  **
%% ** renaming them and changing author support contact information. **
%%
%% File list of work: testflow.tex, testflow_ctl_A4.ps, testflow_ctl_A4.pdf,
%%                    testflow_ctl_LTR.ps, testflow_ctl_LTR.pdf, 
%%                    testflow_doc.pdf
%%*************************************************************************
%
% Changelog:
%
% 1.1 (2007/01/10)
%  1. new duplex test
%  2. tests for Palladio hinting
%
% 1.0 (2002/04/08) Initial release




% ***** To prevent testflow from prompting user on the console, *****
% ***** uncomment one each of the two pairs below:              *****
%
% *** paper size (choose one) ***
%\def\papertype{letterpaper}
%\def\papertype{a4paper}
%
% *** duplex page test (choose one) ***
%\def\makeduplexpage{yes}
%\def\makeduplexpage{no}




\def\docversion{1.1}
\def\docbuildcode{0000}

\newif\ifmakeduplextest
\makeduplextestfalse
\newif\ifneeduserresponse
\needuserresponsetrue

\def\useryesstring{yes}
\def\usernostring{no}
\def\userystring{y}
\def\usernstring{n}

\ifx\papertype\TESTFLOWundefined
\typeout{}
\typeout{ This is the testflow.tex (V\docversion) test page generator.}
\typeout{ See the testflow_doc.pdf file for full documentation.}

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

\ifx\makeduplexpage\TESTFLOWundefined
\loop
\typeout{}
\typeout{**************************************************************}
\typeout{*  Do you wish to make a second page to test duplex printing?%
\space*}
\typeout{*  Enter `yes' or `no' (without the quotes).%
\space\space\space\space\space\space\space\space\space\space\space\space\space
\space\space\space\space\space*}
\typein[\makeduplexpage]{******************************************%
********************}
\ifx\makeduplexpage\useryesstring\makeduplextesttrue\needuserresponsefalse\fi
\ifx\makeduplexpage\usernostring\makeduplextestfalse\needuserresponsefalse\fi
\ifx\makeduplexpage\userystring\makeduplextesttrue\needuserresponsefalse\fi
\ifx\makeduplexpage\usernstring\makeduplextestfalse\needuserresponsefalse\fi
\ifneeduserresponse
\repeat
\else
\ifx\makeduplexpage\useryesstring\makeduplextesttrue\fi
\ifx\makeduplexpage\userystring\makeduplextesttrue\fi
\fi



% declare symbols for lasy test
\DeclareSymbolFont{lasy}{U}{lasy}{m}{n}
\SetSymbolFont{lasy}{bold}{U}{lasy}{b}{n}
\DeclareMathSymbol\lasymho     {\mathord}{lasy}{"30}
\DeclareMathSymbol\lasyJoin    {\mathrel}{lasy}{"31}
\DeclareMathSymbol\lasyBox     {\mathord}{lasy}{"32}
\DeclareMathSymbol\lasyDiamond {\mathord}{lasy}{"33}
\DeclareMathSymbol\lasyleadsto {\mathrel}{lasy}{"3B}
\DeclareMathSymbol\lasysqsubset{\mathrel}{lasy}{"3C}
\DeclareMathSymbol\lasysqsupset{\mathrel}{lasy}{"3D}
\DeclareMathSymbol\lasylhd     {\mathbin}{lasy}{"01}
\DeclareMathSymbol\lasyunlhd   {\mathbin}{lasy}{"02}
\DeclareMathSymbol\lasyrhd     {\mathbin}{lasy}{"03}
\DeclareMathSymbol\lasyunrhd   {\mathbin}{lasy}{"04}



\documentclass[\papertype, 10pt]{article}

\typeout{-- Option summary:}
\typeout{-- Paper size: \papertype}
\ifmakeduplextest
\typeout{-- With duplex test page}
\else
\typeout{-- No duplex test page}
\fi

% enable Times fonts
\renewcommand{\sfdefault}{phv}
\renewcommand{\rmdefault}{ptm}
\renewcommand{\ttdefault}{pcr}

\def\fontsubfuzz{.9pt}

\def\tenptsize{\fontsize{10}{12pt}\selectfont}
\def\nineptsize{\fontsize{9}{11pt}\selectfont}
\def\eightptsize{\fontsize{8}{10pt}\selectfont}
\def\sevenptsize{\fontsize{7}{9pt}\selectfont}
\def\sixptsize{\fontsize{6}{8pt}\selectfont}
\def\fiveptsize{\fontsize{5}{7pt}\selectfont}


\pagestyle{empty}
\thispagestyle{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{\parskip}{0pt}

\setlength{\unitlength}{1sp}


\newcounter{textheight}
\newcounter{textwidth}

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



\newlength{\help}

\newcounter{help}

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

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

\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})}

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


\newenvironment{testflowpage}{\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}


\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}


\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}{5}
\multiput(-\value{fvmm},\value{y})(-\value{fvmm},0){4}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{5}}


% 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}}}

\addtoy{\value{fvmm}}
\setcounter{foo}{5}
\multiputxy(\value{fvmm},0){4}{%
    \makebox(0,0){\arabic{foo}}\addtocounter{foo}{5}}

% 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}{5}
\addtox{-\value{tmm}}
\addtoy{-\value{mm}}
\addtoy{\value{fvmm}}
\multiputxy(0,\value{fvmm}){4}{%
  \makebox(0,0){\arabic{foo}\rule{5pt}{0pt}}\addtocounter{foo}{5}}

% 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{tenthin}}
\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}{5}
\addtox{-\value{tmm}}
\addtoy{\value{mm}}
\addtoy{-\value{fvmm}}
\multiputxy(0,-\value{fvmm}){4}{%
   \makebox(0,0){\arabic{foo}\rule{5pt}{0pt}}\addtocounter{foo}{5}}


% 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{tenthin}}
\addtoy{-\value{twtin}}
\multiputxy(0,-\value{tenthin}){9}{%
   \makebox(0,0){\arabic{foo}}\addtocounter{foo}{1}}


\end{picture}

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

\vspace*{\baselineskip}
\mbox{}\hfill
\begin{minipage}{\help}\relax}
% end of testpage environment
{\end{minipage}\hfill\mbox{}\vfill\mbox{}}


\begin{document}


\begin{testflowpage}

\centerline{\Huge A Test for \LaTeX\ PS/PDF Printing}
\vspace{0.75\baselineskip}
\centerline{\large Version \docversion\hspace{0.2in} Build Code: \docbuildcode}
\vspace{0.75\baselineskip}
\centerline{\large See the testflow home page for the latest news and FAQ:}
\centerline{\texttt{\footnotesize http://www.michaelshell.org/tex/testflow/}} 
\vspace{1.5\baselineskip}
\centerline{\large\bfseries\scshape Notes}
\vspace{0.5\baselineskip}

Document paper type selected under \LaTeX: \mbox{\ttfamily\papertype}\\
Depends only on the base article.cls --- no other external packages are loaded.\\
The main text font is Times Roman, the math font is Computer Modern.\\
Imperial (0.1in) and metric (mm) rulers are provided to measure centering.\\
The frame on this page should be centered on the paper and 1in (25.4mm) from the edges.\\
To maintain accurate dimensions, do not scale page when printing.\\
(i.e., deselect any ``fit to page" or ``shrink/expand page" options.)\\
For complete usage information, read the \texttt{testflow\_doc.pdf} file.

\vspace{1.0\baselineskip}
\centerline{\large\bfseries\scshape Palladio Font Hinting Test}
\vspace{0.5\baselineskip}

\centerline{\renewcommand{\rmdefault}{ppl}\rmfamily\bfseries This is in bold Palatino/Palladio.}


\vspace{1.0\baselineskip}
\centerline{\large\bfseries\scshape Ligature Test}
\vspace{0.5\baselineskip}

\makebox[0.85in][l]{\textbf{Ligatures}} ---~~~The office was affected by the five flawed mufflers.

\makebox[0.85in][l]{\textbf{No Ligatures}} ---~~~The of\/f\/ice was a\/f\/fected by the f\/ive f\/lawed muf\/f\/lers.


\vspace{1.0\baselineskip}
\centerline{\large\bfseries\scshape Math Tests}
\vspace{0.5\baselineskip}

\centerline{\normalsize\bfseries Large Delimiter and Operator Test}
\begin{center}
\begin{math}
I = \left[ 
    \begin{array}{cc}
    1 & 0\\
    0 & 1
   \end{array}
   \right]\quad \mbox{and}   
\quad\Bigg(\sum\limits_{i=0}^{2} 2^i = 7 \Bigg)
\end{math}
\end{center}

\vspace{0.25\baselineskip}

\centerline{\normalsize\bfseries Minus Sign Test}
\begin{center}
\begin{math}
\mbox{If } a = 4\mbox{, then: } 2^{-a + 7} - 2^{a-3} = 2^{3} - 2^{1} = 6
\end{math}
\end{center}

\vspace{0.1\baselineskip}
\centerline{\normalsize\bfseries Problem Character, Times Roman and Font Kerning Tests}
\vspace{0.5\baselineskip}
% here is how we would directly access them within cmmi10
%{\fontencoding{OML}\fontfamily{cmm}\fontshape{it}\selectfont
%\symbol{0}\hspace{1ex}\symbol{9}\hspace{1ex}\symbol{10}\hspace{1ex}\symbol{13}
%\hspace{1ex}\symbol{32}\hspace{1ex}\symbol{127}}
\centerline{\normalfont Math italic glyphs: $\mathnormal{\Gamma,~\Psi,~\Omega,~\gamma,~\psi,~\mbox{\t{\mbox{}\mbox{}}}}$}
\vspace{0.25\baselineskip}
\centerline{Large Times Roman italic: {\LARGE \textit{z}}\qquad GS kerning test: {\footnotesize The ``Problematic" little quotes.}} 

\vspace{0.25\baselineskip}
{\footnotesize\textbf{Note:} The math italic glyphs are in the control character positions 
0, 9, 10, 13, 32 and 127.\hfill\\
i.e., \texttt{\string\Gamma}, \texttt{\string\Psi}, \texttt{\string\Omega}, 
\texttt{\string\gamma}, \texttt{\string\psi}, and the \texttt{\string\t\{xx\}} tie-after accent, respectively.} 


\vspace{1.0\baselineskip}
\centerline{\large\bfseries\scshape Picture and Lasy Fonts Test}
\vspace{0.5\baselineskip}

\def\lasyglyphs{\lasymho, \lasyJoin, \lasyBox,
\lasyDiamond, \lasyleadsto, \lasysqsubset, \lasysqsupset, 
\lasylhd, \lasyunlhd, \lasyrhd, \lasyunrhd}

\setlength{\unitlength}{1cm}

\begin{center}

\begin{picture}(12,2.4)
\qbezier(0,2.4)(2.25,2.8)(4.5,2.4)
\put(1,1.8){\oval(1,1)[tl]}
\put(3.5,1.8){\oval(1,1)[tr]}
\put(2.25,1.9){\oval(4,1)[t]}
\put(.2,1.5){\oval(1,2.2)[l]}
\put(1.5,1.5){\circle*{0.1}}
\put(1.5,1.5){\circle{1.2}}
\put(1.5,1.5){\vector(0,1){0.6}}
\put(1.5,1.5){\vector(1,0){0.6}}
\put(1.5,1.5){\vector(0,-1){0.6}}
\put(1.5,1.5){\vector(-1,0){0.6}}
\thicklines
\qbezier(0,0.6)(2.25,0.2)(4.5,0.6)
\put(0,0){\vector(1,0){11.5}}
\put(3,1.5){\circle*{0.1}}
\put(3,1.5){\circle{1.2}}
\put(3,1.5){\vector(0,1){0.6}}
\put(3,1.5){\vector(1,0){0.6}}
\put(3,1.5){\vector(0,-1){0.6}}
\put(3,1.5){\vector(-1,0){0.6}}
\put(1,1.2){\oval(1,1)[bl]}
\put(3.5,1.2){\oval(1,1)[br]}
\put(2.25,1.1){\oval(4,1)[b]}
\put(4.3,1.5){\oval(1,2.2)[r]}
\put(4.9,2.4){\makebox[0.75in][r]{10pt bold:\hspace{0.1in}}\tenptsize\boldmath$\lasyglyphs$}
\put(4.9,2.0){\makebox[0.75in][r]{10pt:\hspace{0.1in}}\tenptsize$\lasyglyphs$}
\put(4.9,1.65){\makebox[0.75in][r]{\nineptsize9pt:\hspace{0.1in}}\nineptsize$\lasyglyphs$}
\put(4.9,1.35){\makebox[0.75in][r]{\eightptsize8pt:\hspace{0.1in}}\eightptsize$\lasyglyphs$}
\put(4.9,1.1){\makebox[0.75in][r]{\sevenptsize7pt:\hspace{0.1in}}\sevenptsize$\lasyglyphs$}
\put(4.9,0.875){\makebox[0.75in][r]{\sixptsize6pt:\hspace{0.1in}}\sixptsize$\lasyglyphs$}
\put(4.9,0.675){\makebox[0.75in][r]{\fiveptsize5pt:\hspace{0.1in}}\fiveptsize$\lasyglyphs$}
\end{picture}
\end{center}
\end{testflowpage}


% Optional duplex test page
\ifmakeduplextest
\newpage
\begin{testflowpage}
\centerline{\Huge A Test for \LaTeX\ PS/PDF Printing}
\vspace{0.75\baselineskip}
\centerline{\large Version \docversion\hspace{0.2in} Build Code: \docbuildcode}
\vspace{1.0\baselineskip}
\centerline{\large\bfseries\scshape Duplex Alignment Test Side}
\mbox{}\vfill\mbox{}
\end{testflowpage}
\fi

\end{document}

