% \iffalse meta-comment % % Copyright 2017-2020 by Tibor Tomacs % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work is Tibor Tomacs. % % \fi % % \iffalse %<*driver> \ProvidesFile{fgruler.dtx} % %\NeedsTeXFormat{LaTeX2e}[2020/10/01] %\ProvidesPackage{fgruler}[2020/11/04 v1.3 Package for drawing rulers on the foreground or in the text] % %<*driver> \documentclass{ltxdoc} \OnlyDescription \usepackage[a4paper,margin=25mm,marginparwidth=19mm,marginparsep=5mm,headsep=5mm,headheight=4mm,footskip=10mm]{geometry} \usepackage[pdfstartview=FitH,colorlinks,allcolors=black,bookmarksnumbered,hyperfootnotes=false]{hyperref} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage[english]{babel} \usepackage{listings,fontawesome,fancyvrb} \usepackage[type=none,color=red!80!black]{fgruler} \flushbottom \VerbatimFootnotes \setlength{\labelsep}{0pt} \lstnewenvironment{examplelst}{\lstset{ gobble=2, belowskip=\bigskipamount, basicstyle=\ttfamily, backgroundcolor=\color{black!10}, frame=trbl, framesep=3pt, columns=fullflexible, xleftmargin=3.4pt, xrightmargin=3.4pt, keepspaces}}{} \newcommand{\commandinline}{\lstinline[ literate={<}{{$\langle$}}1{>}{{$\rangle$}}1, delim={[is][\color{green!50!black}\normalfont\itshape]{!}{!}}, basicstyle=\color{blue!80!black}\ttfamily, columns=fullflexible, keepspaces]} \begin{document} \DocInput{./fgruler.dtx} \end{document} % % \fi % % \GetFileInfo{fgruler.sty} % % \title{The {\bfseries\sffamily fgruler} package\\{\large v1.3 (2020/11/04)}} % \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\url{tomacs.tibor@uni-eszterhazy.hu}}} % \date{} % \maketitle % % \fgruler{upperleft}{0cm}{0cm} % \noindent % {\rulerparams{}{\scriptsize\sffamily\color{teal}}{blue}{}{} % {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{\textwidth}}\\[2pt] % \ruler{rightup}{\textwidth}} % % \section{Introduction} % The \texttt{fgruler} is an abbreviation for the \emph{foreground ruler}. % This package draws a horizontal and a vertical ruler on the foreground of every (or a given) page at absolute position. % In this way, you can check the page layout dimensions. % % \medskip\noindent % Besides, you can draw various rulers in the text, too. % % \medskip\noindent % The \texttt{fgruler} package requires the services of the following packages: \texttt{kvoptions}, \texttt{etoolbox}, \texttt{xcolor}, \texttt{graphicx}, \texttt{eso-pic}. % % \section{Loading package} % Load the package with % \begin{flushleft} % \commandinline|\usepackage[!!]{fgruler}| % \end{flushleft} % or % \begin{flushleft} % \commandinline|\usepackage{fgruler}|\\ % \commandinline|\setfgruler{!!}| % \end{flushleft} % The \verb|\setfgruler| command is usable in the \texttt{document} environment, too. % % \section{Options}\label{sec:options} % By default, the \texttt{fgruler} package draws a square ruler on the foreground of every page. The following package options set the parameters of these rulers. % \begin{description} % \item\commandinline|unit=!!|\\ % Ruler unit. The \commandinline|!!| legal values: % \begin{description} % \item\commandinline|cm| Metric ruler (centimeter). Default value. % \item\commandinline|in| English ruler (inch). % \end{description} % % \item\commandinline|type=!!|\\ % Origin, directions and lengths of the ruler. The \commandinline|!!| legal values: % \begin{description} % \item\commandinline|upperleft | Default value. Origin: upper left corner of the paper. Directions: down and right. Lengths: paper sizes. % \item\commandinline|upperright | Origin: upper right corner of the paper. Directions: down and left. Lengths: paper sizes. % \item\commandinline|lowerleft | Origin: lower left corner of the paper. Directions: up and right. Lengths: paper sizes. % \item\commandinline|lowerright | Origin: lower right corner of the paper. Directions: up and left. Lengths: paper sizes. % \item\commandinline|upperleftT | Origin: upper left corner of the text area. Directions: down and right. Lengths: text area sizes. % \item\commandinline|upperrightT| Origin: upper right corner of the text area. Directions: down and left. Lengths: text area sizes. % \item\commandinline|lowerleftT | Origin: lower left corner of the text area. Directions: up and right. Lengths: text area sizes. % \item\commandinline|lowerrightT| Origin: lower right corner of the text area. Directions: up and left. Lengths: text area sizes. % \item\commandinline|none| Not drawing ruler. % \item\commandinline|user| Each \commandinline|!!|--\commandinline|!!| pair activates an \commandinline|\fgruler@!!@!!@fg| command, which is equivalent to \commandinline|\fgrulertype{!!}{!!}|.\\ % You can control the effect of this option by redefining the \commandinline|\fgruler@!!@user@fg| commands, which are empty in the default case.\\ % \commandinline|\def\fgruler@cm@user@fg{!!}| is equivalent to \commandinline|\fgrulerdefusercm{!!}|.\\ % Similarly, \commandinline|\def\fgruler@in@user@fg{!!}| is equivalent to \commandinline|\fgrulerdefuserin{!!}|.\\ % See \ref{example:user-first}--\ref{example:user-last} examples. % \end{description} % % \item\commandinline|hshift=!!|\\ % Horizontal shift of the ruler, if the \commandinline|!!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|. % The shift direction is right, if the \commandinline|!!| is \verb|upperleft| or \verb|lowerleft|. % The shift direction is left, if the \commandinline|!!| is \verb|upperright| or \verb|lowerright|. % Default: \verb|hshift=0cm|. % % \item\commandinline|vshift=!!|\\ % Vertical shift of the ruler, if the \commandinline|!!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|. % The shift direction is down, if the \commandinline|!!| is \verb|upperleft| or \verb|upperright|. % The shift direction is up, if the \commandinline|!!| is \verb|lowerleft| or \verb|lowerright|. % Default: \verb|vshift=0cm|. % % \item\commandinline|color=!!|\\ % Ruler color (see \texttt{xcolor} package). Default: \verb|color=black|. % % \item\commandinline|numsep=!!|\\ % Separation between number and ruler. Default: \verb|numsep=3pt|. % % \item\commandinline|markthick=!!|\\ % Mark thickness. Default: \verb|markthick=0.4pt|. % % \item\commandinline|marklength=!!|\\ % Mark length at integer units (see the red marks): % {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}} % Default: \verb|marklength=2mm|. See the length of the other marks in Section \ref{sec:additional}. % % \item\commandinline|numfont=!!|\\ % Number font type. Default: \verb|numfont=\scriptsize\sffamily|. You can use this option only in \verb|\setfgruler| command. % % \item\commandinline|showframe| or \commandinline|showframe=true|\\ % It draws visible frames for the text and margin area, and lines for the head and foot. % Their color and thickness are determined by the \texttt{color} and the \texttt{markthick} options. % % \item\commandinline|showframe=false|\\ % It deactivates the \texttt{showframe} option. % % \item\commandinline|nonefgrulers|\\ % It kills all of the rulers on the foreground, including also those, which are generated by \verb|\fgruler| (see Section \ref{sec:givenpage}). % But the rulers, which were drawn by \verb|\ruler| and \verb|\squareruler| (see Section \ref{sec:intext}), do not disappear. % Furthermore it deactivates the \texttt{showframe} option, too. % In this case the \texttt{fgruler} package does not load the \texttt{eso-pic} package. % This option works only in preamble. % % It is recommended to use in two cases: % \begin{itemize} % \item To draw rulers only in text, there is no need for the checking function. % \item To halt the checking function temporarily. % \end{itemize} % % The \texttt{type=none} is not identical with \texttt{nonefgrulers} option. The differences: % \begin{itemize} % \item \texttt{type=none} does not kill the \verb|\fgruler| command and the \texttt{showframe} option. % \item \texttt{type=none} is alterable in any point of the document. % \item \texttt{type=none} works in document environment, too. % \item The \texttt{fgruler} package loads the \texttt{eso-pic} package, if you use the \texttt{type=none} option without \texttt{nonefgrulers}. % \end{itemize} % \end{description} % % \section{Drawing square rulers on the foreground of a given page}\label{sec:givenpage} % \begin{description} % \item\commandinline|\fgruler[!]{!!}{!!}{!!}|\\ % It draws a square ruler on the foreground of that page, where this command is expanded. % You can use more \verb|\fgruler| commands in the same page. % % The package options (see Section \ref{sec:options}) also work on this command, except for \texttt{unit}, \texttt{type}, \texttt{hshift} and \texttt{vshift}, since these are the parameters of the \verb|\fgruler|. % % If you use \texttt{nonefgrulers} option in preamble, then this command is effectless. % \begin{description} % \item\commandinline|!| options:\\ % \commandinline|cm| Metric ruler (centimeter). Default option.\\ % \commandinline|in| English ruler (inch). % % \item\commandinline|!| parameters:\\ % \commandinline|upperleft | Origin: upper left corner. Directions: down and right.\\ % \commandinline|upperright| Origin: upper right corner. Directions: down and left.\\ % \commandinline|lowerleft | Origin: lower left corner. Directions: up and right.\\ % \commandinline|lowerright| Origin: lower right corner. Directions: up and left. % % \item\commandinline|!!| % Horizontal shift. % The shift direction is right, if the \commandinline|!!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left. % % \item\commandinline|!!| % Vertical shift. % The shift direction is down, if the \commandinline|!!| is \verb|upperleft| or \verb|upperright|, otherwise it is up. % % \item Example: % \verb|\fgruler[in]{upperright}{1in}{2.5in}| % \end{description} % \end{description} % % \section{Drawing rulers in the text}\label{sec:intext} % \begin{description} % \item\commandinline|\ruler[!]{!!}{!!}|\\ % It draws a horizontal or a vertical ruler. % The bottom of the ruler is aligned to the baseline of the surrounding text. % The package options (see Section \ref{sec:options}) do not work on this command. % \begin{description} % \item\commandinline|!| options:\\ % \commandinline|cm| Metric ruler (centimeter). Default option.\\ % \commandinline|in| English ruler (inch). % % \item\commandinline|!| parameters:\\ % \commandinline|downright | Direction: down. The numbers are on the right side.\\ % \commandinline|downleft | Direction: down. The numbers are on the left side.\\ % \commandinline|upright | Direction: up. The numbers are on the right side.\\ % \commandinline|upleft | Direction: up. The numbers are on the left side.\\ % \commandinline|rightdown | Direction: right. The numbers are on the down side.\\ % \commandinline|rightup | Direction: right. The numbers are on the up side.\\ % \commandinline|leftdown | Direction: left. The numbers are on the down side.\\ % \commandinline|leftup | Direction: left. The numbers are on the up side. % % \item\commandinline|!!| % Ruler length. % % \item Example: % \verb|\ruler{rightdown}{5cm}| % \ruler{rightdown}{5cm} % \end{description} % % \item\commandinline|\ruler*[!]{!!}{!!}|\\ % It works like \verb|\ruler|, but the top of the ruler is aligned to the baseline of the surrounding text. % % Example: % \verb|\ruler*{rightdown}{5cm}| % \ruler*{rightdown}{5cm} % % \item\commandinline|\squareruler[!]{!!}{!!}{!!}|\\ % It draws a square ruler. % The bottom of the square ruler is aligned to the baseline of the surrounding text. % The package options (see Section \ref{sec:options}) do not work on this command. % \begin{description} % \item\commandinline|!| options:\\ % \commandinline|cm| Metric ruler (centimeter). Default option.\\ % \commandinline|in| English ruler (inch). % % \item\commandinline|!| parameters:\\ % \commandinline|upperleft | Directions: down and right.\\ % \commandinline|upperright| Directions: down and left.\\ % \commandinline|lowerleft | Directions: up and right.\\ % \commandinline|lowerright| Directions: up and left. % % \item\commandinline|!!| % Square ruler width. % % \item\commandinline|!!| % Square ruler height. % % \item Example: % \verb|\squareruler{upperleft}{5cm}{1cm}| % \squareruler{upperleft}{5cm}{1cm} % \end{description} % % \item\commandinline|\squareruler*[!]{!!}{!!}{!!}|\\ % It works like \verb|\squareruler|, but the top of the square ruler is aligned to the baseline of the surrounding text. % % Example: % \verb|\squareruler*{upperleft}{5cm}{1cm}| % \squareruler*{upperleft}{5cm}{1cm} % % \item\commandinline|\rulerparams{!!}{!!}{!!}{!!}{!!}|\\ % It sets the parameters of the rulers, which are drawn by \verb|\ruler| or \verb|\squareruler|. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| Mark thickness. Default: \verb|0.4pt| % \item\commandinline|!!| Number font type. Default: \verb|\scriptsize\sffamily| % \item\commandinline|!!| Ruler line color. Default: \verb|black| % \item\commandinline|!!| Mark length at integer units. Default: \verb|2mm| % \item\commandinline|!!| Separation between number and ruler. Default: \verb|3pt| % \item For example, \verb|\rulerparams{}{}{red}{}{}| changes the ruler color to red. % \end{description} % % \item\commandinline|\rulerparamsfromfg|\\ % It sets the ruler parameters from the actual foreground ruler parameters. % % \item\commandinline|\rulernorotatenum|\\ % By default, the numbers of the vertical rulers (which were generated by \verb|\ruler| or \verb|\squareruler|) are rotated by 90$^\circ$. % It kills this action. % This command is usable only in \texttt{document} environment. % % Example: \verb|{\rulernorotatenum\ruler{upright}{1cm}}| {\rulernorotatenum\ruler{upright}{1cm}} % % \item\commandinline|\rulerrotatenum|\\ % After \verb|\rulernorotatenum|, it reactivates the number rotating. % This command is usable only in \texttt{document} environment. % \end{description} % % \section{Additional setting commands}\label{sec:additional} % The following commands can work on all of the rulers, which are drawn by \texttt{fgruler} package. % \begin{description} % \item\commandinline|\fgrulerstartnum{!!}|\\ % The \commandinline|!!| is a nonnegative integer, which will be the starting number on the horizontal and vertical rulers. % Default: \verb|\fgrulerstartnum{0}| % % Example: \verb|{\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}} % % \item\commandinline|\fgrulerstartnumh{!!}|\\ % The \commandinline|!!| is a nonnegative integer, which will be the starting number on the horizontal rulers. % Default: \verb|\fgrulerstartnumh{0}| % % Example: \verb|{\fgrulerstartnumh{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnumh{5}\squareruler{lowerleft}{3cm}{1cm}} % % \item\commandinline|\fgrulerstartnumv{!!}|\\ % The \commandinline|!!| is a nonnegative integer, which will be the starting number on the vertical rulers. % Default: \verb|\fgrulerstartnumv{0}| % % Example: \verb|{\fgrulerstartnumv{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnumv{5}\squareruler{lowerleft}{3cm}{1cm}} % % \item\commandinline|\fgrulernoborderline|\\ % By default, there is a borderline on one side of the ruler. % It disappears by this command. % % Example: \verb|{\fgrulernoborderline\ruler{rightup}{3cm}}| {\fgrulernoborderline\ruler{rightup}{3cm}} % % \item\commandinline|\fgrulerborderline|\\ % After \verb|\fgrulernoborderline|, it reactivates the previous default effect. % % \item\commandinline|\fgrulercaptioncm{!!}|\\ % Unit caption in metric ruler. % Default: \verb|\fgrulercaptioncm{cm}| % % Example: \verb|{\fgrulercaptioncm{}\ruler{rightup}{3cm}}| {\fgrulercaptioncm{}\ruler{rightup}{3cm}} % % \item\commandinline|\fgrulercaptionin{!!}|\\ % Unit caption in English ruler. % Default: \verb|\fgrulercaptionin{inch}| % % \item\commandinline|\fgrulerdefnum{!!}|\\ % The ruler numbers are determined by the \commandinline|fgrulernum| counter. % Its current value is printed by the \commandinline|\thefgrulernum|. % Its default definition is \verb|\def\thefgrulernum{\arabic{fgrulernum}}|, which is equivalent to \verb|\fgrulerdefnum{\arabic{fgrulernum}}|. % % Example: \verb|{\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}| {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}} % % \item\commandinline|\fgrulerratiocm{!!}{!!}|\\ % Mark length ratios in metric rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark length ratio at $k/10$\,cm, where $k$ is positive integer and not divisible by 5.\\ % {\fgrulerthickcm{1pt}{}{}\fgrulercolorcm{red}{}{}\ruler{rightup}{3cm}}\\ % For example, if this ratio is 0.5 and the mark length at integer unit is 2\,mm, then this mark length will be $0.5\cdot 2\,\mathrm{mm}=1\,\mathrm{mm}$. % % \item\commandinline|!!| % Mark length ratio at $k/2$\,cm, where $k$ is positive odd integer.\\ % {\fgrulerthickcm{}{1pt}{}\fgrulercolorcm{}{red}{}\ruler{rightup}{3cm}} % % \item Default: \verb|\fgrulerratiocm{0.5}{0.75}| % \end{description} % % \item\commandinline|\fgrulerratioin{!!}{!!}{!!}{!!}|\\ % Mark length ratios in English rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark length ratio at $k/16$\,inch, where $k$ is positive odd integer.\\ % {\fgrulerthickin{1pt}{}{}{}{}\fgrulercolorin{red}{}{}{}{}\ruler[in]{rightup}{2in}} % % \item\commandinline|!!| % Mark length ratio at $k/8$\,inch, where $k$ is positive odd integer.\\ % {\fgrulerthickin{}{1pt}{}{}{}\fgrulercolorin{}{red}{}{}{}\ruler[in]{rightup}{2in}} % % \item\commandinline|!!| % Mark length ratio at $k/4$\,inch, where $k$ is positive odd integer.\\ % {\fgrulerthickin{}{}{1pt}{}{}\fgrulercolorin{}{}{red}{}{}\ruler[in]{rightup}{2in}} % % \item\commandinline|!!| % Mark length ratio at $k/2$\,inch, where $k$ is positive odd integer.\\ % {\fgrulerthickin{}{}{}{1pt}{}\fgrulercolorin{}{}{}{red}{}\ruler[in]{rightup}{2in}} % % \item Default: \verb|\fgrulerratioin{0.25}{0.375}{0.625}{0.75}| % \end{description} % % \item\commandinline|\fgrulerthickcm{!!}{!!}{!!}|\\ % Mark thicknesses in metric rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark thickness at $k/10$\,cm, where $k$ is positive integer and not divisible by 5. % % \item\commandinline|!!| % Mark thickness at $k/2$\,cm, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark thickness at integer units. % % \item The default values are given by \commandinline|!!| of \verb|\rulerparams|, respectively by \texttt{markthick} option. % % \item Example:\\ % \verb|{\fgrulerthickcm{}{}{2pt}|\\ % \verb|\rulerparams{}{}{}{5mm}{}|\\ % \verb|\fgrulernoborderline|\\ % \verb|\ruler{rightdown}{3cm}}|\\[2mm] % {\fgrulerthickcm{}{}{2pt} % \rulerparams{}{}{}{5mm}{} % \fgrulernoborderline % \ruler{rightdown}{3cm}} % \end{description} % % \item\commandinline|\fgrulerthickin{!!}{!!}{!!}{!!}{!!}|\\ % Mark thicknesses in English rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark thickness at $k/16$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark thickness at $k/8$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark thickness at $k/4$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark thickness at $k/2$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark thickness at integer units. % % \item The default values are given by \commandinline|!!| of \verb|\rulerparams|, respectively by \texttt{markthick} option. % % \item Example:\\ % \verb|{\fgrulerthickin{}{}{}{}{2pt}|\\ % \verb|\rulerparams{}{}{}{5mm}{}|\\ % \verb|\fgrulernoborderline|\\ % \verb|\ruler[in]{rightdown}{3in}}|\\[2mm] % {\fgrulerthickin{}{}{}{}{2pt} % \rulerparams{}{}{}{5mm}{} % \fgrulernoborderline % \ruler[in]{rightdown}{3in}} % \end{description} % % \item\commandinline|\fgrulercolorcm{!!}{!!}{!!}|\\ % Mark colors in metric rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark color at $k/10$\,cm, where $k$ is positive integer and not divisible by 5. % % \item\commandinline|!!| % Mark color at $k/2$\,cm, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark color at integer units. % % \item The default values are given by \commandinline|!!| of \verb|\rulerparams|, respectively by \texttt{color} option. % % \item Example:\\ % \verb|{\fgrulercolorcm{green}{blue}{red}|\\ % \verb|\rulerparams{1pt}{}{}{5mm}{}|\\ % \verb|\fgrulernoborderline|\\ % \verb|\ruler{rightdown}{3cm}}|\\[2mm] % {\fgrulernoborderline % \fgrulercolorcm{green}{blue}{red} % \rulerparams{1pt}{}{}{5mm}{} % \ruler{rightdown}{3cm}} % \end{description} % % \item\commandinline|\fgrulercolorin{!!}{!!}{!!}{!!}{!!}|\\ % Mark color in English rulers. % If an argument is empty, then that parameter will not be changed. % \begin{description} % \item\commandinline|!!| % Mark color at $k/16$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark color at $k/8$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark color at $k/4$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark color at $k/2$\,inch, where $k$ is positive odd integer. % % \item\commandinline|!!| % Mark color at integer units. % % \item The default values are given by \commandinline|!!| of \verb|\rulerparams|, respectively by \texttt{color} option. % % \item Example:\\ % \verb|{\fgrulercolorin{yellow}{orange}{green}{blue}{red}|\\ % \verb|\rulerparams{1pt}{}{}{5mm}{}|\\ % \verb|\fgrulernoborderline|\\ % \verb|\ruler[in]{rightdown}{3in}}|\\[2mm] % {\fgrulernoborderline % \fgrulercolorin{yellow}{orange}{green}{blue}{red} % \rulerparams{1pt}{}{}{5mm}{} % \ruler[in]{rightdown}{3in}} % \end{description} % % \item\commandinline|\fgrulerreset|\\ % It sets all options and parameters to default values. % This command is usable only in \texttt{document} environment. % \end{description} % % \medskip\noindent\textcolor{red}{\faWarning} % All setting commands obey the normal scoping rules, i.e.\ if you use them inside a group, then the changing of the parameters is not valid outside the group. % % \newpage\fgrulerreset % \section{Examples} % \subsection{Deafult case} % The output of the following example is the ruler in this page. It is the default case. % \begin{examplelst} % \documentclass{article} % \usepackage{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{The \texttt{showframe} and \texttt{color} options} % \setfgruler{color=red,showframe} % \begin{examplelst} % \documentclass{article} % \usepackage[color=red,showframe]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Shift in default case} % \setfgruler{hshift=1cm,vshift=2cm} % \begin{examplelst} % \documentclass{article} % \usepackage[hshift=1cm,vshift=2cm]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Shift in case \texttt{type=upperright} option} % \setfgruler{type=upperright,hshift=1cm,vshift=2cm} % \begin{examplelst} % \documentclass{article} % \usepackage[type=upperright,hshift=1cm,vshift=2cm]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Shift in case \texttt{type=lowerleft} option} % \setfgruler{type=lowerleft,hshift=1cm,vshift=2cm} % \begin{examplelst} % \documentclass{article} % \usepackage[type=lowerleft,hshift=1cm,vshift=2cm]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Shift in case \texttt{type=lowerright} option} % \setfgruler{type=lowerright,hshift=1cm,vshift=2cm} % \begin{examplelst} % \documentclass{article} % \usepackage[type=lowerright,hshift=1cm,vshift=2cm]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{The \texttt{type=upperleftT} option} % \setfgruler{type=upperleftT} % \begin{examplelst} % \documentclass{article} % \usepackage[type=upperleftT]{fgruler} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option}\label{example:user-first} % In the next example the \texttt{type=user} option activates \texttt{type=upperright} or \texttt{type=upperleft}, depending on the page number is odd or even. % \setfgruler{type=none} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \fgrulerdefusercm{% % \ifodd\value{page}\fgrulertype{cm}{upperright}% % \else\fgrulertype{cm}{upperleft}\fi} % \fgrulerdefuserin{% % \ifodd\value{page}\fgrulertype{in}{upperright}% % \else\fgrulertype{in}{upperleft}\fi} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option} % In the next example the \texttt{type=user} option combines the effect of \texttt{type=upperleft} and \texttt{type=upperleftT}. % \setfgruler{type=user} % \fgrulerdefusercm{\fgrulertype{cm}{upperleft}\fgrulertype{cm}{upperleftT}} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \fgrulerdefusercm{\fgrulertype{cm}{upperleft}\fgrulertype{cm}{upperleftT}} % \fgrulerdefuserin{\fgrulertype{in}{upperleft}\fgrulertype{in}{upperleftT}} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option} % In this example the \texttt{type=user} option combines the effect of \texttt{type=upperleftT} and \texttt{type=lowerrightT}. % \setfgruler{type=user} % \fgrulerdefusercm{\fgrulertype{cm}{upperleftT}\fgrulertype{cm}{lowerrightT}} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \fgrulerdefusercm{\fgrulertype{cm}{upperleftT}\fgrulertype{cm}{lowerrightT}} % \fgrulerdefuserin{\fgrulertype{in}{upperleftT}\fgrulertype{in}{lowerrightT}} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option} % In the next example the \texttt{type=user} option places a vertical ruler at the left border of the text area. % \setfgruler{type=user} %\fgrulerdefusercm{\AtTextLowerLeft{\ignorespaces\rulerparamsfromfg\llap{\ruler{downleft}{\textheight}}}} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \newcommand{\fgruleruser}[1]{% % \AtTextLowerLeft{% See eso-pic package! % \rulerparamsfromfg% % \llap{\ruler[#1]{downleft}{\textheight}}% % }% % } % \fgrulerdefusercm{\fgruleruser{cm}} % \fgrulerdefuserin{\fgruleruser{in}} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option} % In the next example the \texttt{type=user} option places rulers at the right and bottom borders of the text area. % \setfgruler{type=user} %\fgrulerdefusercm{\AtTextLowerLeft{\ignorespaces\rulerparamsfromfg\rulernorotatenum\llap{\ruler{downleft}{\textheight}}\ruler*{rightdown}{\textwidth}}} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \newcommand{\fgruleruser}[1]{% % \AtTextLowerLeft{% See eso-pic package! % \rulerparamsfromfg% % \rulernorotatenum% % \llap{\ruler[#1]{downleft}{\textheight}}% % \ruler*[#1]{rightdown}{\textwidth}% % }% % } % \fgrulerdefusercm{\fgruleruser{cm}} % \fgrulerdefuserin{\fgruleruser{in}} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Setting the \texttt{type=user} option}\label{example:user-last} % In the next example the \texttt{type=user} option places rulers at the right and top borders of the text area. % \setfgruler{type=user} %\fgrulerdefusercm{\AtTextUpperLeft{\ignorespaces% %\rulerparamsfromfg\ruler{rightup}{\textwidth}\ignorespaces% %\rulernorotatenum\fgrulercaptioncm{}\ignorespaces\ruler*{downright}{\textheight}}} % \begin{examplelst} % \documentclass{article} % \usepackage[type=user]{fgruler} % \newcommand{\fgruleruser}[1]{% % \AtTextUpperLeft{% See eso-pic package! % \rulerparamsfromfg% % \ruler[#1]{rightup}{\textwidth}% % \rulernorotatenum\fgrulercaptioncm{}\fgrulercaptionin{}% % \ruler*[#1]{downright}{\textheight}% % }% % } % \fgrulerdefusercm{\fgruleruser{cm}} % \fgrulerdefuserin{\fgruleruser{in}} % \begin{document} % ... % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Rulers on the foreground of a given page, and in text} % \setfgruler{color=blue} % \fgruler{upperleft}{1cm}{1.5cm} % \noindent % text % \rulerparams{}{\color{red}\tiny\ttfamily}{green}{}{} % {\fgrulernoborderline\ruler{rightdown}{3cm}} % text % \ruler*{rightdown}{3cm} % text % \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[color=blue]{fgruler} % \begin{document} % \fgruler{upperleft}{1cm}{1.5cm} % \noindent % text % \rulerparams{}{\color{red}\tiny\ttfamily}{green}{}{} % {\fgrulernoborderline\ruler{rightdown}{3cm}} % text % \ruler*{rightdown}{3cm} % text % \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}} % % \rotatebox is defined in graphicx package % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Ruler types in text} % \setfgruler{type=none} % \noindent % \rulerparams{}{}{red}{}{1pt} % \ruler{rightdown}{3cm} % \hfill % \ruler{rightup}{3cm} % \hfill % \ruler{leftup}{3cm} % \hfill % \ruler{leftdown}{3cm} % % \bigskip\noindent % \rulerparams{}{}{green}{}{} % {\rulernorotatenum\ruler{upright}{3cm}} % \hfill % \ruler{downright}{3cm} % \hfill % \ruler{upleft}{3cm} % \hfill % \ruler{downleft}{3cm} % % \bigskip\noindent % \rulerparams{}{}{blue!50!black}{}{} % {\rulernorotatenum\fgrulercaptioncm{}\squareruler{upperleft}{2cm}{3cm}} % \hfill % \squareruler{lowerright}{2cm}{3cm} % \hfill % \squareruler{lowerleft}{2cm}{3cm} % \hfill % \squareruler{upperright}{2cm}{3cm} % \hfill % {\rulerparams{}{\footnotesize\bfseries\color{red}}{}{5mm}{-8pt}\squareruler[in]{lowerleft}{2in}{3cm}} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[nonefgrulers]{fgruler} % \begin{document} % \noindent % \rulerparams{}{}{red}{}{1pt} % \ruler{rightdown}{3cm} % \hfill % \ruler{rightup}{3cm} % \hfill % \ruler{leftup}{3cm} % \hfill % \ruler{leftdown}{3cm} % % \bigskip\noindent % \rulerparams{}{}{green}{}{} % {\rulernorotatenum\ruler{upright}{3cm}} % \hfill % \ruler{downright}{3cm} % \hfill % \ruler{upleft}{3cm} % \hfill % \ruler{downleft}{3cm} % % \bigskip\noindent % \rulerparams{}{}{blue!50!black}{}{} % {\rulernorotatenum\fgrulercaptioncm{}\squareruler{upperleft}{2cm}{3cm}} % \hfill % \squareruler{lowerright}{2cm}{3cm} % \hfill % \squareruler{lowerleft}{2cm}{3cm} % \hfill % \squareruler{upperright}{2cm}{3cm} % \hfill % {\rulerparams{}{\footnotesize\bfseries\color{red}}{}{5mm}{-8pt} % \squareruler[in]{lowerleft}{2in}{3cm}} % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Mark length and rotating} % \setfgruler{type=none} % \noindent % {\fgrulerdefnum{\rotatebox{45}{\arabic{fgrulernum}\,cm}} % \fgrulercaptioncm{} % \rulerparams{}{\tiny\color{red}}{blue}{8mm}{} % \fgrulercolorcm{}{}{black} % \rotatebox{-45}{\ruler{rightup}{10cm}}\\ % \ruler{rightup}{5cm}} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[nonefgrulers]{fgruler} % \begin{document} % \noindent % {\fgrulerdefnum{\rotatebox{45}{\arabic{fgrulernum}\,cm}} % \fgrulercaptioncm{} % \rulerparams{}{\tiny\color{red}}{blue}{8mm}{} % \fgrulercolorcm{}{}{black} % \rotatebox{-45}{\ruler{rightup}{10cm}}\\ % \ruler{rightup}{5cm}} % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Coordinate system} % \setfgruler{type=none} % \noindent % \rulernorotatenum % \fgrulercaptioncm{} % \fgrulercolorcm{}{}{red} % \rulerparams{}{\scriptsize\color{red}}{}{}{} % {\fgrulerdefnum{$-\arabic{fgrulernum}$}\squareruler*{upperright}{3cm}{3cm}}\ignorespaces % \squareruler{lowerleft}{13cm}{6cm} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[nonefgrulers]{fgruler} % \begin{document} % \noindent % \rulernorotatenum % \fgrulercaptioncm{} % \fgrulercolorcm{}{}{red} % \rulerparams{}{\scriptsize\color{red}}{}{}{} % {\fgrulerdefnum{$-\arabic{fgrulernum}$}\squareruler*{upperright}{3cm}{3cm}}% % \squareruler{lowerleft}{13cm}{6cm} % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{Tape measure} % \setfgruler{type=none} % % \newcommand{\tapemeasure}[1]{% % \parbox{#1}{% % {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{#1}}\\[2pt] % \ruler{rightup}{#1}}} % \noindent\ignorespaces % \tapemeasure{\textwidth}\\[2pt] % \rotatebox[origin=br]{-90}{\tapemeasure{3cm}} % \tapemeasure{10cm} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[a4paper,margin=25mm]{geometry} % \usepackage[nonefgrulers]{fgruler} % \newcommand{\tapemeasure}[1]{% % \parbox{#1}{% % {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{#1}}\\[2pt] % \ruler{rightup}{#1}}} % \begin{document} % \noindent % \tapemeasure{\textwidth}\\[2pt] % \rotatebox[origin=br]{-90}{\tapemeasure{3cm}} % \tapemeasure{10cm} % \end{document} % \end{examplelst} % % \newpage\fgrulerreset % \subsection{A new square ruler type} % \setfgruler{type=none} % {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{5cm}}\ruler{rightup}{3cm} % % \bigskip % \begin{examplelst} % \documentclass{article} % \usepackage[type=none]{fgruler} % \newcommand{\usersquareruler}[2]{% % {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{#2}}% % \ruler{rightup}{#1}% % } % \begin{document} % \usersquareruler{3cm}{5cm} % \end{document} % \end{examplelst} % % \StopEventually % % \begin{macrocode} %% \@ifpackageloaded{kvoptions}{}{\RequirePackage{kvoptions}} \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}} \SetupKeyvalOptions{family=fgruler,prefix=fgruler@} \DeclareStringOption[.4pt]{markthick} \DeclareStringOption[\scriptsize\sffamily]{numfont} \DeclareStringOption[black]{color} \DeclareStringOption[2mm]{marklength} \DeclareStringOption[3pt]{numsep} \DeclareStringOption[0pt]{hshift} \DeclareStringOption[0pt]{vshift} \DeclareStringOption[upperleft]{type} \DeclareStringOption[cm]{unit} \DeclareBoolOption{nonefgrulers} \DeclareBoolOption{showframe} \ProcessKeyvalOptions{fgruler} \newlength{\fgruler@marklth} \newlength{\fgruler@sep} \newlength{\fgruler@width} \newlength{\fgruler@fg@width} \newlength{\fgruler@fg@height} \def\fgruler@set#1#2#3#4#5{% \def\fgruler@markthickness{\linethickness{#1}}% \def\fgruler@font{#2}% \def\fgruler@rulercolor{\color{#3}}% \setlength{\fgruler@marklth}{#4}% \setlength{\fgruler@sep}{#5}% \def\fgruler@font@{\normalfont\normalsize\fgruler@font}% \addtolength{\fgruler@sep}{\fgruler@marklth}% \ifx\thefgrulernum\@empty\setlength{\fgruler@width}{\fgruler@marklth}\else% \settoheight{\fgruler@width}{\fgruler@font@\thefgrulernum}% \addtolength{\fgruler@width}{\fgruler@sep}\fi} \def\rulerparams#1#2#3#4#5{% \ifx#1\@empty\else\def\fgruler@markthick@{#1}\fi% \ifx#2\@empty\else\def\fgruler@numfont@{#2}\fi% \ifx#3\@empty\else\def\fgruler@color@{#3}\fi% \ifx#4\@empty\else\def\fgruler@marklength@{#4}\fi% \ifx#5\@empty\else\def\fgruler@numsep@{#5}\fi% \ignorespaces} \rulerparams{.4pt}{\scriptsize\sffamily}{black}{2mm}{3pt} \def\rulerparamsfromfg{\rulerparams{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}{\fgruler@marklength}{\fgruler@numsep}} \def\fgruler@fgsetting{% \fgruler@set{\fgruler@markthick}{\fgruler@numfont}{\fgruler@color}{\fgruler@marklength}{\fgruler@numsep}% \rulernorotatenum} \def\fgruler@intextsetting{% \fgruler@set{\fgruler@markthick@}{\fgruler@numfont@}{\fgruler@color@}{\fgruler@marklength@}{\fgruler@numsep@}} \def\fgruler@activate@type{% \def\fgruler@check{cm}\ifx\fgruler@unit\fgruler@check\else% \def\fgruler@check{in}\ifx\fgruler@unit\fgruler@check\else% \PackageError{fgruler}{\fgruler@unit\space is invalid unit}{Valid units: cm, in}% \fi\fi% \def\fgruler@check{upperleft}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{upperright}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{lowerleft}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{lowerright}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{upperleftT}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{upperrightT}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{lowerleftT}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{lowerrightT}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{none}\ifx\fgruler@type\fgruler@check\else% \def\fgruler@check{user}\ifx\fgruler@type\fgruler@check\else% \PackageError{fgruler}{\fgruler@type\space is invalid type}% {Valid types:\MessageBreak upperleft, upperright, lowerleft, lowerright,\MessageBreak upperleftT, upperrightT, lowerleftT, lowerrightT,\MessageBreak user, none}% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% \def\fgruler@output{\csname fgruler@\fgruler@unit @\fgruler@type @fg\endcsname}} \def\fgrulerratiocm#1#2{% \ifx#1\@empty\else\def\fgruler@cm@ratio@i{#1}\fi% \ifx#2\@empty\else\def\fgruler@cm@ratio@ii{#2}\fi% \ignorespaces} \fgrulerratiocm{.5}{.75} \def\fgrulerratioin#1#2#3#4{% \ifx#1\@empty\else\def\fgruler@in@ratio@i{#1}\fi% \ifx#2\@empty\else\def\fgruler@in@ratio@ii{#2}\fi% \ifx#3\@empty\else\def\fgruler@in@ratio@iii{#3}\fi% \ifx#4\@empty\else\def\fgruler@in@ratio@iv{#4}\fi% \ignorespaces} \fgrulerratioin{.25}{.375}{.625}{.75} \def\fgrulerthickcm#1#2#3{% \ifx#1\@empty\else\def\fgruler@cm@thick@i{\linethickness{#1}}\fi% \ifx#2\@empty\else\def\fgruler@cm@thick@ii{\linethickness{#2}}\fi% \ifx#3\@empty\else\def\fgruler@cm@thick@iii{\linethickness{#3}}\fi% \ignorespaces} \def\fgruler@cm@thick@i{} \def\fgruler@cm@thick@ii{} \def\fgruler@cm@thick@iii{} \def\fgrulerthickin#1#2#3#4#5{% \ifx#1\@empty\else\def\fgruler@in@thick@i{\linethickness{#1}}\fi% \ifx#2\@empty\else\def\fgruler@in@thick@ii{\linethickness{#2}}\fi% \ifx#3\@empty\else\def\fgruler@in@thick@iii{\linethickness{#3}}\fi% \ifx#4\@empty\else\def\fgruler@in@thick@iv{\linethickness{#4}}\fi% \ifx#5\@empty\else\def\fgruler@in@thick@v{\linethickness{#5}}\fi% \ignorespaces} \def\fgruler@in@thick@i{} \def\fgruler@in@thick@ii{} \def\fgruler@in@thick@iii{} \def\fgruler@in@thick@iv{} \def\fgruler@in@thick@v{} \def\fgrulercolorcm#1#2#3{% \ifx#1\@empty\else\def\fgruler@cm@color@i{\color{#1}}\fi% \ifx#2\@empty\else\def\fgruler@cm@color@ii{\color{#2}}\fi% \ifx#3\@empty\else\def\fgruler@cm@color@iii{\color{#3}}\fi% \ignorespaces} \def\fgruler@cm@color@i{} \def\fgruler@cm@color@ii{} \def\fgruler@cm@color@iii{} \def\fgrulercolorin#1#2#3#4#5{% \ifx#1\@empty\else\def\fgruler@in@color@i{\color{#1}}\fi% \ifx#2\@empty\else\def\fgruler@in@color@ii{\color{#2}}\fi% \ifx#3\@empty\else\def\fgruler@in@color@iii{\color{#3}}\fi% \ifx#4\@empty\else\def\fgruler@in@color@iv{\color{#4}}\fi% \ifx#5\@empty\else\def\fgruler@in@color@v{\color{#5}}\fi% \ignorespaces} \def\fgruler@in@color@i{} \def\fgruler@in@color@ii{} \def\fgruler@in@color@iii{} \def\fgruler@in@color@iv{} \def\fgruler@in@color@v{} \def\setfgruler#1{\setkeys{fgruler}{#1}\fgruler@activate@type\ignorespaces} \newdimen\fgruler@tempdima \newdimen\fgruler@tempdimb \newcommand\fgruler@div[2]{% \fgruler@tempdima=#1\relax\fgruler@tempdimb=\unitlength\relax \fgruler@tempdimb=#2\fgruler@tempdimb\divide\fgruler@tempdima by \fgruler@tempdimb \@tempcnta\fgruler@tempdima\advance\@tempcnta\@ne} \def\fgruler@check@param#1#2{% \def\fgruler@param{#1}% \def\fgruler@check{cm}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{in}\ifx\fgruler@param\fgruler@check\else% \PackageError{fgruler}{\fgruler@param\space is invalid parameter}{Valid parameters: cm, in}% \fi\fi% \def\fgruler@param{#2}% \def\fgruler@check{rightdown}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{rightup}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{leftdown}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{leftup}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{downright}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{downleft}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{upright}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{upleft}\ifx\fgruler@param\fgruler@check\else% \PackageError{fgruler}{\fgruler@param\space is invalid parameter}% {Valid parameters:\MessageBreak rightdown, rightup, leftdown, leftup,\MessageBreak downright, downleft, upright, upleft}% \fi\fi\fi\fi\fi\fi\fi\fi} \def\fgruler@check@param@#1#2{% \def\fgruler@param{#1}% \def\fgruler@check{cm}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{in}\ifx\fgruler@param\fgruler@check\else% \PackageError{fgruler}{\fgruler@param\space is invalid parameter}{Valid parameters: cm, in}% \fi\fi% \def\fgruler@param{#2}% \def\fgruler@check{upperleft}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{upperright}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{lowerleft}\ifx\fgruler@param\fgruler@check\else% \def\fgruler@check{lowerright}\ifx\fgruler@param\fgruler@check\else% \PackageError{fgruler}{\fgruler@param\space is invalid parameter}% {Valid parameters:\MessageBreak upperleft, upperright, lowerleft, lowerright}% \fi\fi\fi\fi} \newcommand{\fgruler@ruler}[3][cm]{\fgruler@check@param{#1}{#2}\fgruler@intextsetting\csname fgruler@#1@#2@\endcsname{#3}} \newcommand{\fgruler@ruler@}[3][cm]{\fgruler@check@param{#1}{#2}\fgruler@intextsetting\csname fgruler@#1@#2@@\endcsname{#3}} \def\ruler{\@ifstar{\fgruler@ruler@}{\fgruler@ruler}} \newcommand{\fgruler@squareruler}[4][cm]{\fgruler@check@param@{#1}{#2}\fgruler@intextsetting\csname fgruler@#1@#2@\endcsname{#3}{#4}} \newcommand{\fgruler@squareruler@}[4][cm]{\fgruler@check@param@{#1}{#2}\fgruler@intextsetting\csname fgruler@#1@#2@@\endcsname{#3}{#4}} \def\squareruler{\@ifstar{\fgruler@squareruler@}{\fgruler@squareruler}} \newcommand{\fgruler}[4][cm]{\fgruler@check@param@{#1}{#2}\g@addto@macro\fgruler@output@{\csname fgruler@#1@#2@fg@\endcsname{#3}{#4}}} \def\fgrulercaptioncm#1{\def\fgruler@caption@cm{#1}\ignorespaces} \def\fgruler@caption@cm{cm} \def\fgrulercaptionin#1{\def\fgruler@caption@in{#1}\ignorespaces} \def\fgruler@caption@in{inch} \newif\iffgruler@borderline \def\fgrulernoborderline{\fgruler@borderlinefalse\ignorespaces} \def\fgrulerborderline{\fgruler@borderlinetrue\ignorespaces} \fgruler@borderlinetrue \newcounter{fgrulernum} \newcounter{fgruler@check} \def\fgruler@ifnot@divisible@five#1{% \setcounter{fgruler@check}{\value{fgrulernum}}% \divide\value{fgruler@check}by5\relax% \multiply\value{fgruler@check}by5\relax% \ifnum\value{fgruler@check}=\value{fgrulernum}\else#1\fi\stepcounter{fgrulernum}} \def\fgruler@ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}} \def\fgrulerstartnum#1{\def\fgruler@startnumh{#1}\def\fgruler@startnumv{#1}\ignorespaces} \def\fgrulerstartnumh#1{\def\fgruler@startnumh{#1}\ignorespaces} \def\fgrulerstartnumv#1{\def\fgruler@startnumv{#1}\ignorespaces} \def\fgruler@startnumh{0} \def\fgruler@startnumv{0} \def\fgrulerdefnum#1{\def\thefgrulernum{#1}\ignorespaces} \def\fgruler@rotatebox#1#2{#2}% \def\rulernorotatenum{% \ifx\@onlypreamble\@notprerr% \def\fgruler@rotatebox##1##2{##2}% \else\PackageError{fgruler}{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi% \ignorespaces} \def\rulerrotatenum{% \ifx\@onlypreamble\@notprerr% \def\fgruler@rotatebox##1##2{\rotatebox{##1}{##2}}% \else\PackageError{fgruler}{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi% \ignorespaces} \def\fgrulerreset{% \ifx\@onlypreamble\@notprerr% \def\fgruler@cm@ratio@i{.5}% \def\fgruler@cm@ratio@ii{.75}% \def\fgruler@in@ratio@i{.25}% \def\fgruler@in@ratio@ii{.375}% \def\fgruler@in@ratio@iii{.625}% \def\fgruler@in@ratio@iv{.75}% \def\fgruler@cm@thick@i{}% \def\fgruler@cm@thick@ii{}% \def\fgruler@cm@thick@iii{}% \def\fgruler@in@thick@i{}% \def\fgruler@in@thick@ii{}% \def\fgruler@in@thick@iii{}% \def\fgruler@in@thick@iv{}% \def\fgruler@in@thick@v{}% \def\fgruler@cm@color@i{}% \def\fgruler@cm@color@ii{}% \def\fgruler@cm@color@iii{}% \def\fgruler@in@color@i{}% \def\fgruler@in@color@ii{}% \def\fgruler@in@color@iii{}% \def\fgruler@in@color@iv{}% \def\fgruler@in@color@v{}% \def\fgruler@rotatebox##1##2{\rotatebox{##1}{##2}}% \def\fgruler@markthick@{.4pt}% \def\fgruler@numfont@{\scriptsize\sffamily}% \def\fgruler@color@{black}% \def\fgruler@marklength@{2mm}% \def\fgruler@numsep@{3pt}% \def\fgruler@type{upperleft}% \def\fgruler@unit{cm}% \def\fgruler@markthick{.4pt}% \def\fgruler@numfont{\scriptsize\sffamily}% \def\fgruler@color{black}% \def\fgruler@marklength{2mm}% \def\fgruler@hshift{0pt}% \def\fgruler@vshift{0pt}% \def\fgruler@numsep{3pt}% \def\thefgrulernum{\arabic{fgrulernum}}% \def\fgruler@caption@cm{cm}% \def\fgruler@caption@in{inch}% \def\fgruler@startnumh{0}% \def\fgruler@startnumv{0}% \fgruler@borderlinetrue% \fgruler@showframefalse% \else\PackageError{fgruler}{Don't use \protect\fgrulerreset\space in preamble!}{}\fi% \ignorespaces} \AtEndPreamble{ \@ifpackageloaded{xcolor}{}{\RequirePackage{xcolor}} \@ifpackageloaded{graphicx}{}{\RequirePackage{graphicx}} \def\fgruler@rotatebox#1#2{\rotatebox{#1}{#2}} \iffgruler@nonefgrulers \renewcommand{\fgruler}[4][]{} \else \@ifpackageloaded{eso-pic}{}{\RequirePackage{eso-pic}[2020/10/14]} \def\fgruler@frame{% \begingroup \fgruler@fgsetting \fgruler@rulercolor% \fgruler@markthickness% \AtPageLowerLeft{% \framebox(\paperwidth,\paperheight){}}% \AtTextLowerLeft{% \framebox(\textwidth,\textheight){}}% \AtTextUpperLeft{% \put(0,\headsep){% \framebox(\textwidth,\headheight){}}}% \AtTextLowerLeft{% \put(0,-\footskip){% \line(1,0){\textwidth}}}% \AtTextLowerLeft{% \fgruler@tempdima=\textwidth\advance\fgruler@tempdima\marginparsep% \if@twoside \ifodd\c@page\else \if@mparswitch \fgruler@tempdima=-\marginparsep\advance\fgruler@tempdima-\marginparwidth \fi \fi \fi \put(\fgruler@tempdima,0)% {\framebox(\marginparwidth,\textheight){}}% }% \endgroup } \def\fgruler@output@{} \ESO@isMEMOIR{% \AddToHook{shipout/foreground}{% \ESO@MEMOIR@corr \put(\ESO@tempdima,\ESO@tempdimb){% \iffgruler@showframe\fgruler@frame\fi% \fgruler@output\fgruler@output@% \global\let\fgruler@output@\@empty% }% }% }{% \AddToHook{shipout/foreground}{% \put(0,\ESO@yoffsetI){% \iffgruler@showframe\fgruler@frame\fi% \fgruler@output\fgruler@output@% \global\let\fgruler@output@\@empty% }% }% } \fgruler@activate@type \fi } %% RIGHTDOWN CM \def\fgruler@cm@rightdown#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(10,-\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@cm@rightdown@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)% \fgruler@cm@rightdown{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightdown@{#1}}} %% RIGHTDOWN IN \def\fgruler@in@rightdown#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(16,-\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@in@rightdown@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,\fgruler@width)(0,-\fgruler@width)% \fgruler@in@rightdown{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@rightdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightdown@{#1}}} %% RIGHTUP CM \def\fgruler@cm@rightup#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(10,\fgruler@sep)(10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@cm@rightup@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,\fgruler@width)% \fgruler@cm@rightup{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@rightup@{#1}}} %% RIGHTUP IN \def\fgruler@in@rightup#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(16,\fgruler@sep)(16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@in@rightup@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,\fgruler@width)% \fgruler@in@rightup{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@rightup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@rightup@{#1}}} %% LEFTDOWN CM \def\fgruler@cm@leftdown#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,-1){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,-1){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,-1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(-10,-\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@cm@leftdown@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)% \fgruler@cm@leftdown{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftdown@{#1}}} %% LEFTDOWN IN \def\fgruler@in@leftdown#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,-1){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,-1){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,-1){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,-1){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,-1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(-16,-\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[t]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@in@leftdown@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,\fgruler@width)(-#1,-\fgruler@width)% \fgruler@in@leftdown{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@leftdown@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftdown@{#1}}} %% LEFTUP CM \def\fgruler@cm@leftup#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(0,1){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-5,0){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(0,1){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(-10,0){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(0,1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(-10,\fgruler@sep)(-10,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@cm@leftup@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,\fgruler@width)(-#1,0)% \fgruler@cm@leftup{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@cm@leftup@{#1}}} %% LEFTUP IN \def\fgruler@in@leftup#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-1,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(0,1){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-2,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(0,1){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-4,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(0,1){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(-8,0){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(0,1){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(-16,0){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(0,1){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(-1,0){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumh}\stepcounter{fgrulernum}% \multiput(-16,\fgruler@sep)(-16,0){\fgruler@tempdima}{\makebox(0,0)[b]{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}} \def\fgruler@in@leftup@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,\fgruler@width)(-#1,0)% \fgruler@in@leftup{#1}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@leftup@@#1{\leavevmode\hbox{}\lower\fgruler@width\hbox{\fgruler@in@leftup@{#1}}} %% DOWNRIGHT CM \def\fgruler@cm@downright#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@cm@downright@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(\fgruler@width,#1)(0,-#1)% \fgruler@cm@downright{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5cm\put(\fgruler@sep,-5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi% \end{picture}} \def\fgruler@cm@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downright@{#1}}} %% DOWNRIGHT IN \def\fgruler@in@downright#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@in@downright@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(\fgruler@width,#1)(0,-#1)% \fgruler@in@downright{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5in\put(\fgruler@sep,-8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi% \end{picture}} \def\fgruler@in@downright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downright@{#1}}} %% DOWNLEFT CM \def\fgruler@cm@downleft#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(0,-10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(-\fgruler@sep,-10)(0,-10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@cm@downleft@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)% \fgruler@cm@downleft{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5cm\put(-\fgruler@sep,-5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi% \end{picture}} \def\fgruler@cm@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@downleft@{#1}}} %% DOWNLEFT IN \def\fgruler@in@downleft#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,-8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(0,-16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,-1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(-\fgruler@sep,-16)(0,-16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@in@downleft@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(\fgruler@width,#1)(-\fgruler@width,-#1)% \fgruler@in@downleft{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5in\put(-\fgruler@sep,-8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi% \end{picture}} \def\fgruler@in@downleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@downleft@{#1}}} %% UPRIGHT CM \def\fgruler@cm@upright#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@cm@upright@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(\fgruler@width,#1)% \fgruler@cm@upright{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5cm\put(\fgruler@sep,5){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@cm}}}\fi% \end{picture}} \def\fgruler@cm@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upright@{#1}}} %% UPRIGHT IN \def\fgruler@in@upright#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(1,0){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@in@upright@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(\fgruler@width,#1)% \fgruler@in@upright{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5in\put(\fgruler@sep,8){\makebox(0,0)[l]{\fgruler@rotatebox{90}{\fgruler@font@\fgruler@caption@in}}}\fi% \end{picture}} \def\fgruler@in@upright@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upright@{#1}}} %% UPLEFT CM \def\fgruler@cm@upleft#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifnot@divisible@five{\fgruler@cm@thick@i\fgruler@cm@color@i\line(-1,0){\fgruler@cm@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{5}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,5){\@tempcnta}{\fgruler@ifodd{\fgruler@cm@thick@ii\fgruler@cm@color@ii\line(-1,0){\fgruler@cm@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{10}% \multiput(0,0)(0,10){\@tempcnta}{\fgruler@cm@thick@iii\fgruler@cm@color@iii\line(-1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(-\fgruler@sep,10)(0,10){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@cm@upleft@#1{% \setlength{\unitlength}{1mm}% \begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)% \fgruler@cm@upleft{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5cm\put(-\fgruler@sep,5){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@cm}}}\fi% \end{picture}} \def\fgruler@cm@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@cm@upleft@{#1}}} %% UPLEFT IN \def\fgruler@in@upleft#1{% \fgruler@rulercolor% \fgruler@markthickness% \fgruler@div{#1}{1}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,1){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@i\fgruler@in@color@i\line(-1,0){\fgruler@in@ratio@i\fgruler@marklth}}}% \fgruler@div{#1}{2}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,2){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@ii\fgruler@in@color@ii\line(-1,0){\fgruler@in@ratio@ii\fgruler@marklth}}}% \fgruler@div{#1}{4}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,4){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iii\fgruler@in@color@iii\line(-1,0){\fgruler@in@ratio@iii\fgruler@marklth}}}% \fgruler@div{#1}{8}% \setcounter{fgrulernum}{0}% \multiput(0,0)(0,8){\@tempcnta}{\fgruler@ifodd{\fgruler@in@thick@iv\fgruler@in@color@iv\line(-1,0){\fgruler@in@ratio@iv\fgruler@marklth}}}% \fgruler@div{#1}{16}% \multiput(0,0)(0,16){\@tempcnta}{\fgruler@in@thick@v\fgruler@in@color@v\line(-1,0){\fgruler@marklth}}% \iffgruler@borderline\put(0,0){\line(0,1){#1}}\fi% \setcounter{fgrulernum}{\fgruler@startnumv}\stepcounter{fgrulernum}% \multiput(-\fgruler@sep,16)(0,16){\fgruler@tempdima}{\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum\stepcounter{fgrulernum}}}}} \def\fgruler@in@upleft@#1{% \setlength{\unitlength}{.0625in}% \begin{picture}(\fgruler@width,#1)(-\fgruler@width,0)% \fgruler@in@upleft{#1}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\thefgrulernum}}}% \ifdim#1>.5in\put(-\fgruler@sep,8){\makebox(0,0)[r]{\fgruler@rotatebox{-90}{\fgruler@font@\fgruler@caption@in}}}\fi% \end{picture}} \def\fgruler@in@upleft@@#1{\leavevmode\hbox{}\lower#1\hbox{\fgruler@in@upleft@{#1}}} %% UPPERLEFT CM \def\fgruler@cm@upperleft@#1#2{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,#2)(0,-#2)% \fgruler@cm@rightdown{#1}% \fgruler@cm@downright{#2}% \ifdim#1>.5cm\put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperleft@{#1}{#2}}} \def\fgruler@cm@upperleft@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(#1,0){% \fgruler@cm@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@cm@upperleft@fg{\fgruler@cm@upperleft@fg@{\fgruler@hshift}{\fgruler@vshift}} %% UPPERLEFT IN \def\fgruler@in@upperleft@#1#2{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,#2)(0,-#2)% \fgruler@in@rightdown{#1}% \fgruler@in@downright{#2}% \ifdim#1>.5in\put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@upperleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperleft@{#1}{#2}}} \def\fgruler@in@upperleft@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(#1,0){% \fgruler@in@upperleft@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@in@upperleft@fg{\fgruler@in@upperleft@fg@{\fgruler@hshift}{\fgruler@vshift}} %% UPPERRIGHT CM \def\fgruler@cm@upperright@#1#2{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,#2)(-#1,-#2)% \fgruler@cm@leftdown{#1}% \fgruler@cm@downleft{#2}% \ifdim#1>.5cm\put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@upperright@{#1}{#2}}} \def\fgruler@cm@upperright@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\fgruler@cm@upperright@{\fgruler@fg@width}{\fgruler@fg@height}}% \endgroup} \def\fgruler@cm@upperright@fg{\fgruler@cm@upperright@fg@{\fgruler@hshift}{\fgruler@vshift}} %% UPPERRIGHT IN \def\fgruler@in@upperright@#1#2{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,#2)(-#1,-#2)% \fgruler@in@leftdown{#1}% \fgruler@in@downleft{#2}% \ifdim#1>.5in\put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@upperright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@upperright@{#1}{#2}}} \def\fgruler@in@upperright@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\fgruler@in@upperright@{\fgruler@fg@width}{\fgruler@fg@height}}% \endgroup} \def\fgruler@in@upperright@fg{\fgruler@in@upperright@fg@{\fgruler@hshift}{\fgruler@vshift}} %% LOWERLEFT CM \def\fgruler@cm@lowerleft@#1#2{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,#2)% \fgruler@cm@rightup{#1}% \fgruler@cm@upright{#2}% \ifdim#1>.5cm\put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerleft@{#1}{#2}}} \def\fgruler@cm@lowerleft@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(#1,#2){% \fgruler@cm@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@cm@lowerleft@fg{\fgruler@cm@lowerleft@fg@{\fgruler@hshift}{\fgruler@vshift}} %% LOWERLEFT IN \def\fgruler@in@lowerleft@#1#2{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,#2)% \fgruler@in@rightup{#1}% \fgruler@in@upright{#2}% \ifdim#1>.5in\put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@lowerleft@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerleft@{#1}{#2}}} \def\fgruler@in@lowerleft@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(#1,#2){% \fgruler@in@lowerleft@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@in@lowerleft@fg{\fgruler@in@lowerleft@fg@{\fgruler@hshift}{\fgruler@vshift}} %% LOWERRIGHT CM \def\fgruler@cm@lowerright@#1#2{% \setlength{\unitlength}{1mm}% \begin{picture}(#1,#2)(-#1,0)% \fgruler@cm@leftup{#1}% \fgruler@cm@upleft{#2}% \ifdim#1>.5cm\put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}\fi% \end{picture}} \def\fgruler@cm@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@cm@lowerright@{#1}{#2}}} \def\fgruler@cm@lowerright@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(0,#2){% \fgruler@cm@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@cm@lowerright@fg{\fgruler@cm@lowerright@fg@{\fgruler@hshift}{\fgruler@vshift}} %% LOWERRIGHT IN \def\fgruler@in@lowerright@#1#2{% \setlength{\unitlength}{.0625in}% \begin{picture}(#1,#2)(-#1,0)% \fgruler@in@leftup{#1}% \fgruler@in@upleft{#2}% \ifdim#1>.5in\put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}\fi% \end{picture}} \def\fgruler@in@lowerright@@#1#2{\leavevmode\hbox{}\lower#2\hbox{\fgruler@in@lowerright@{#1}{#2}}} \def\fgruler@in@lowerright@fg@#1#2{% \begingroup% \setlength{\fgruler@fg@width}{\paperwidth}% \addtolength{\fgruler@fg@width}{-#1}% \setlength{\fgruler@fg@height}{\paperheight}% \addtolength{\fgruler@fg@height}{-#2}% \fgruler@fgsetting% \AtPageLowerLeft{\put(0,#2){% \fgruler@in@lowerright@{\fgruler@fg@width}{\fgruler@fg@height}}}% \endgroup} \def\fgruler@in@lowerright@fg{\fgruler@in@lowerright@fg@{\fgruler@hshift}{\fgruler@vshift}} %% UPPERLEFTT CM \def\fgruler@cm@upperleftT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{1mm}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(0,-\textheight)% \fgruler@cm@rightup{\textwidth}% \fgruler@cm@downleft{\textheight}% \put(5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% UPPERLEFTT IN \def\fgruler@in@upperleftT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{.0625in}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(0,-\textheight)% \fgruler@in@rightup{\textwidth}% \fgruler@in@downleft{\textheight}% \put(8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% UPPERRIGHTT CM \def\fgruler@cm@upperrightT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{1mm}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)% \fgruler@cm@leftup{\textwidth}% \fgruler@cm@downright{\textheight}% \put(-5,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@cm}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% UPPERRIGHTT IN \def\fgruler@in@upperrightT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{.0625in}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)% \fgruler@in@leftup{\textwidth}% \fgruler@in@downright{\textheight}% \put(-8,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\fgruler@caption@in}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,\fgruler@sep){\makebox(0,0)[b]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% LOWERLEFTT CM \def\fgruler@cm@lowerleftT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{1mm}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(0,0)% \fgruler@cm@rightdown{\textwidth}% \fgruler@cm@upleft{\textheight}% \put(5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% LOWERLEFTT IN \def\fgruler@in@lowerleftT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{.0625in}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(0,0)% \fgruler@in@rightdown{\textwidth}% \fgruler@in@upleft{\textheight}% \put(8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(-\fgruler@sep,0){\makebox(0,0)[r]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% LOWERRIGHTT CM \def\fgruler@cm@lowerrightT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{1mm}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(-\textwidth,0)% \fgruler@cm@leftdown{\textwidth}% \fgruler@cm@upright{\textheight}% \put(-5,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@cm}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% LOWERRIGHTT IN \def\fgruler@in@lowerrightT@fg{% \AtTextLowerLeft{% \setlength{\unitlength}{.0625in}% \fgruler@fgsetting% \begin{picture}(\textwidth,\textheight)(-\textwidth,0)% \fgruler@in@leftdown{\textwidth}% \fgruler@in@upright{\textheight}% \put(-8,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\fgruler@caption@in}}% \setcounter{fgrulernum}{\fgruler@startnumh}% \put(0,-\fgruler@sep){\makebox(0,0)[t]{\fgruler@font@\thefgrulernum}}% \setcounter{fgrulernum}{\fgruler@startnumv}% \put(\fgruler@sep,0){\makebox(0,0)[l]{\fgruler@font@\thefgrulernum}}% \end{picture}}} %% USER \def\fgruler@cm@user@fg{} \def\fgruler@in@user@fg{} \def\fgrulertype#1#2{\csname fgruler@#1@#2@fg\endcsname} \def\fgrulerdefusercm#1{\def\fgruler@cm@user@fg{#1}} \def\fgrulerdefuserin#1{\def\fgruler@in@user@fg{#1}} % \end{macrocode} % \Finale \endinput