texlive[56854] Master/texmf-dist: fgruler (4nov20)

commits+karl at tug.org commits+karl at tug.org
Wed Nov 4 22:36:11 CET 2020


Revision: 56854
          http://tug.org/svn/texlive?view=revision&revision=56854
Author:   karl
Date:     2020-11-04 22:36:11 +0100 (Wed, 04 Nov 2020)
Log Message:
-----------
fgruler (4nov20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/fgruler/fgruler.pdf
    trunk/Master/texmf-dist/source/latex/fgruler/fgruler.dtx
    trunk/Master/texmf-dist/tex/latex/fgruler/fgruler.sty

Modified: trunk/Master/texmf-dist/doc/latex/fgruler/fgruler.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/fgruler/fgruler.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fgruler/fgruler.dtx	2020-11-04 21:35:59 UTC (rev 56853)
+++ trunk/Master/texmf-dist/source/latex/fgruler/fgruler.dtx	2020-11-04 21:36:11 UTC (rev 56854)
@@ -21,7 +21,7 @@
 \ProvidesFile{fgruler.dtx}
 %</driver>
 %<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
-%<package>\ProvidesPackage{fgruler}[2020/10/26 v1.2 Package for drawing rulers on the foreground or in the text]
+%<package>\ProvidesPackage{fgruler}[2020/11/04 v1.3 Package for drawing rulers on the foreground or in the text]
 %
 %<*driver>
 \documentclass{ltxdoc}
@@ -28,6 +28,8 @@
 \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}
@@ -64,7 +66,7 @@
 %
 % \GetFileInfo{fgruler.sty}
 %
-% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.2 (2020/10/26)}}
+% \title{The {\bfseries\sffamily fgruler} package\\{\large v1.3 (2020/11/04)}}
 % \author{Tibor T\'{o}m\'{a}cs\\{\normalsize\url{tomacs.tibor at uni-eszterhazy.hu}}}
 % \date{}
 % \maketitle
@@ -102,57 +104,59 @@
 % 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=!<unit>!|\\
-% Ruler unit.
+% Ruler unit. The \commandinline|!<unit>!| legal values:
 % \begin{description}
-% \item\commandinline|!<unit>!| values:\\
-% \commandinline|cm| Metric ruler (centimeter). Default value.\\
-% \commandinline|in| English ruler (inch).
+% \item\commandinline|cm| Metric ruler (centimeter). Default value.
+% \item\commandinline|in| English ruler (inch).
 % \end{description}
 % 
 % \item\commandinline|type=!<type name>!|\\
-% Origin and directions.
+% Origin, directions and lengths of the ruler. The \commandinline|!<type name>!| legal values:
 % \begin{description}
-% \item\commandinline|!<type name>!| values:\\
-% \commandinline|upperleft | Origin: upper left corner. Directions: down and right. Default value.\\
-% \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.\\
-% \commandinline|none      | Not drawing ruler.\\
-% \commandinline|user      | Each \commandinline|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command. You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user at fg| commands, which are empty in the default case. (See \ref{example:user1}, \ref{example:user2} and \ref{example:user3} examples.)
+% \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|!<unit>!|--\commandinline|!<type name>!| pair activates an \commandinline|\fgruler@!<unit>!@!<type name>!@fg| command, which is equivalent to \commandinline|\fgrulertype{!<unit>!}{!<type name>!}|.\\
+% You can control the effect of this option by redefining the \commandinline|\fgruler@!<unit>!@user at fg| commands, which are empty in the default case.\\
+% \commandinline|\def\fgruler at cm@user at fg{!<code>!}| is equivalent to \commandinline|\fgrulerdefusercm{!<code>!}|.\\
+% Similarly, \commandinline|\def\fgruler at in@user at fg{!<code>!}| is equivalent to \commandinline|\fgrulerdefuserin{!<code>!}|.\\
+% See \ref{example:user-first}--\ref{example:user-last} examples.
 % \end{description}
 % 
 % \item\commandinline|hshift=!<length>!|\\
-% Horizontal shift.
-% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|, otherwise it is left.\\
-% Default: \verb|hshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler at hshift|.
+% Horizontal shift of the ruler, if the \commandinline|!<type name>!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|.
+% The shift direction is right, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|lowerleft|.
+% The shift direction is left, if the \commandinline|!<type name>!| is \verb|upperright| or \verb|lowerright|.
+% Default: \verb|hshift=0cm|.
 % 
 % \item\commandinline|vshift=!<length>!|\\
-% Vertical shift.
-% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|, otherwise it is up.\\
-% Default: \verb|vshift=0cm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler at vshift|.
+% Vertical shift of the ruler, if the \commandinline|!<type name>!| is \verb|upperleft|, \verb|lowerleft|, \verb|upperright| or \verb|lowerright|.
+% The shift direction is down, if the \commandinline|!<type name>!| is \verb|upperleft| or \verb|upperright|.
+% The shift direction is up, if the \commandinline|!<type name>!| is \verb|lowerleft| or \verb|lowerright|.
+% Default: \verb|vshift=0cm|.
 % 
 % \item\commandinline|color=!<color name>!|\\
-% Ruler color (see \texttt{xcolor} package).\\
-% Default: \verb|color=black|.\\ The \commandinline|!<color name>!| is saved in \commandinline|\fgruler at color|.
+% Ruler color (see \texttt{xcolor} package). Default: \verb|color=black|.
 % 
 % \item\commandinline|numsep=!<length>!|\\
-% Separation between number and ruler.\\
-% Default: \verb|numsep=3pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler at numsep|.
+% Separation between number and ruler. Default: \verb|numsep=3pt|.
 % 
 % \item\commandinline|markthick=!<length>!|\\
-% Mark thickness.\\
-% Default: \verb|markthick=0.4pt|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler at markthick|.
+% Mark thickness. Default: \verb|markthick=0.4pt|.
 % 
 % \item\commandinline|marklength=!<length>!|\\
-% Mark length at integer units:
-% {\fgrulernoborderline\fgrulercaptioncm{}\fgrulerthickcm{}{}{1pt}\fgrulercolorcm{}{}{red}\ruler{rightup}{3cm}}\\
-% Default: \verb|marklength=2mm|.\\ The \commandinline|!<length>!| is saved in \commandinline|\fgruler at marklength|.\\
-% See the length of the other marks in Section \ref{sec:additional}.
+% 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=!<font type>!|\\
-% Number font type.\\
-% You can use this option only in \verb|\setfgruler| command.\\
-% Default: \verb|numfont=\scriptsize\sffamily|.\\ The \commandinline|!<font type>!| is saved in \commandinline|\fgruler at 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.
@@ -297,15 +301,15 @@
 % \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|\ruler{upright}{1cm}| \ruler{upright}{1cm}\\
-% but
-% \verb|{\rulernorotatenum\ruler{upright}{1cm}}|
-% {\rulernorotatenum\ruler{upright}{1cm}}
+% Example: \verb|{\rulernorotatenum\ruler{upright}{1cm}}| {\rulernorotatenum\ruler{upright}{1cm}}
 % 
 % \item\commandinline|\rulerrotatenum|\\
 % After \verb|\rulernorotatenum|, it reactivates the number rotating.
@@ -316,19 +320,28 @@
 % The following commands can work on all of the rulers, which are drawn by \texttt{fgruler} package.
 % \begin{description}
 % \item\commandinline|\fgrulerstartnum{!<num>!}|\\
-% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the ruler.
+% The \commandinline|!<num>!| is a nonnegative integer, which will be the starting number on the horizontal and vertical rulers.
 % Default: \verb|\fgrulerstartnum{0}|
 % 
-% Example: \verb|{\fgrulerstartnum{5}\ruler{rightup}{3cm}}| {\fgrulerstartnum{5}\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}}| {\fgrulerstartnum{5}\squareruler{lowerleft}{3cm}{1cm}}
 % 
+% \item\commandinline|\fgrulerstartnumh{!<num>!}|\\
+% The \commandinline|!<num>!| 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{!<num>!}|\\
+% The \commandinline|!<num>!| 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|\ruler{rightup}{3cm}| \ruler{rightup}{3cm}\\
-% but
-% \verb|{\fgrulernoborderline\ruler{rightup}{3cm}}|
-% {\fgrulernoborderline\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulernoborderline\ruler{rightup}{3cm}}| {\fgrulernoborderline\ruler{rightup}{3cm}}
 % 
 % \item\commandinline|\fgrulerborderline|\\
 % After \verb|\fgrulernoborderline|, it reactivates the previous default effect.
@@ -337,10 +350,7 @@
 % Unit caption in metric ruler.
 % Default: \verb|\fgrulercaptioncm{cm}|
 % 
-% Example: \verb|\ruler{rightup}{3cm}| \ruler{rightup}{3cm}\\ 
-% but
-% \verb|{\fgrulercaptioncm{}\ruler{rightup}{3cm}}|
-% {\fgrulercaptioncm{}\ruler{rightup}{3cm}}
+% Example: \verb|{\fgrulercaptioncm{}\ruler{rightup}{3cm}}| {\fgrulercaptioncm{}\ruler{rightup}{3cm}}
 % 
 % \item\commandinline|\fgrulercaptionin{!<caption>!}|\\
 % Unit caption in English ruler.
@@ -351,9 +361,7 @@
 % 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}}
+% Example: \verb|{\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}| {\fgrulerdefnum{}\fgrulercaptioncm{}\ruler{rightdown}{2cm}}
 % 
 % \item\commandinline|\fgrulerratiocm{!<ratio1>!}{!<ratio2>!}|\\
 % Mark length ratios in metric rulers.
@@ -516,12 +524,12 @@
 % \end{description}
 % 
 % \medskip\noindent\textcolor{red}{\faWarning}
-% All setting commands\footnote{Namely \verb|\setfgruler|, \verb|\rulerparams|, \verb|\rulernorotatenum|, \verb|\rulerrotatenum|, furthermore all commands in this section.} 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.
+% 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 code is the ruler in this page. It is the default case.
+% The output of the following example is the ruler in this page. It is the default case.
 % \begin{examplelst}
 % \documentclass{article}
 % \usepackage{fgruler}
@@ -531,7 +539,7 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{The `showframe' option}
+% \subsection{The \texttt{showframe} and \texttt{color} options}
 % \setfgruler{color=red,showframe}
 % \begin{examplelst}
 % \documentclass{article}
@@ -542,7 +550,7 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{Shifting in default case}
+% \subsection{Shift in default case}
 % \setfgruler{hshift=1cm,vshift=2cm}
 % \begin{examplelst}
 % \documentclass{article}
@@ -553,7 +561,7 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{Shifting in case `type=upperright' option}
+% \subsection{Shift in case \texttt{type=upperright} option}
 % \setfgruler{type=upperright,hshift=1cm,vshift=2cm}
 % \begin{examplelst}
 % \documentclass{article}
@@ -564,7 +572,7 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{Shifting in case `type=lowerleft' option}
+% \subsection{Shift in case \texttt{type=lowerleft} option}
 % \setfgruler{type=lowerleft,hshift=1cm,vshift=2cm}
 % \begin{examplelst}
 % \documentclass{article}
@@ -575,7 +583,7 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{Shifting in case `type=lowerright' option}
+% \subsection{Shift in case \texttt{type=lowerright} option}
 % \setfgruler{type=lowerright,hshift=1cm,vshift=2cm}
 % \begin{examplelst}
 % \documentclass{article}
@@ -586,104 +594,132 @@
 % \end{examplelst}
 % 
 % \newpage\fgrulerreset
-% \subsection{An example for the `type=user' option}\label{example:user1}
+% \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}
-% \makeatletter
-% \def\fgruler at cm@user at fg{%
-%     \ifodd\value{page}\fgruler at cm@upperright at fg%
-%       \else\fgruler at cm@upperleft at fg\fi}
-% \def\fgruler at in@user at fg{%
-%     \ifodd\value{page}\fgruler at in@upperright at fg%
-%       \else\fgruler at in@upperleft at fg\fi}
-% \makeatother
+% \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}
-% In this case the \texttt{type=upperright} option will be activated, if the page number is odd. Otherwise \texttt{type=upperleft} will be activated.
 % 
 % \newpage\fgrulerreset
-% \subsection{An other example for the `type=user' option}\label{example:user2}
-% \setfgruler{type=user,color=red}
-%\makeatletter
-%\newlength{\fgruler at tempdim}
-%\renewcommand{\fgruler at cm@user at fg}{\AtTextLowerLeft{\ignorespaces%
-%\settowidth{\fgruler at tempdim}{\ruler{downleft}{\textheight}}%
-%\rulerparams{}{}{\fgruler at color}{}{}%
-%\put(-\fgruler at tempdim,0){\ignorespaces%
-%\rulernorotatenum\fgrulercaptioncm{}\ruler{downleft}{\textheight}}%
-%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
-%\makeatother
+% \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,color=red]{fgruler}
-% \makeatletter
-% \newlength{\fgruler at tempdim}
-% \newcommand{\fgruler at user}[1]{%
-%   \AtTextLowerLeft{% See eso-pic package!
-%     \rulerparams{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}%
-%       {\fgruler at marklength}{\fgruler at numsep}%
-%     \settowidth{\fgruler at tempdim}{\ruler[#1]{downleft}{\textheight}}%
-%     \put(-\fgruler at tempdim,0){%
-%       \rulernorotatenum%
-%       \fgrulercaptioncm{}%
-%       \fgrulercaptionin{}%
-%       \ruler[#1]{downleft}{\textheight}%
+% \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}}%
 %     }%
-%     \put(0,\textheight){%
-%       \ruler[#1]{rightup}{\textwidth}%
+% }
+% \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}%
 %     }%
-%   }%
 % }
-% \renewcommand{\fgruler at cm@user at fg}{\fgruler at user{cm}}
-% \renewcommand{\fgruler at in@user at fg}{\fgruler at user{in}}
-% \makeatother
+% \fgrulerdefusercm{\fgruleruser{cm}}
+% \fgrulerdefuserin{\fgruleruser{in}}
 % \begin{document}
 % ...
 % \end{document}
 % \end{examplelst}
-% This code places rulers at the left and the top border of the body. In this case the \texttt{hshift} and \texttt{vshift} options don't work.
 % 
 % \newpage\fgrulerreset
-% \subsection{The third example for the `type=user' option}\label{example:user3}
-% \setfgruler{type=user,color=blue}
-%\makeatletter
-%\renewcommand{\fgruler at cm@user at fg}{\fgruler at cm@upperleft at fg\AtTextLowerLeft{\ignorespaces%
-%\rulerparams{}{}{\fgruler at color}{}{}%
-%\put(\textwidth,0){\ignorespaces%
-%\rulernorotatenum\fgrulercaptioncm{}\ruler{downright}{\textheight}}%
-%\put(0,\textheight){\ignorespaces\ruler{rightup}{\textwidth}}}}
-%\makeatother
+% \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,color=blue]{fgruler}
-% \makeatletter
-% \newcommand{\fgruler at user}[1]{%
-%   \AtTextLowerLeft{% See eso-pic package!
-%     \rulerparams{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}%
-%       {\fgruler at marklength}{\fgruler at numsep}%
-%     \put(\textwidth,0){%
-%       \rulernorotatenum%
-%       \fgrulercaptioncm{}%
-%       \fgrulercaptionin{}%
-%       \ruler[#1]{downright}{\textheight}%
+% \usepackage[type=user]{fgruler}
+% \newcommand{\fgruleruser}[1]{%
+%     \AtTextUpperLeft{% See eso-pic package!
+%         \rulerparamsfromfg%
+%         \ruler[#1]{rightup}{\textwidth}%
+%         \rulernorotatenum\fgrulercaptioncm{}\fgrulercaptionin{}%
+%         \ruler*[#1]{downright}{\textheight}%
 %     }%
-%     \put(0,\textheight){%
-%       \ruler[#1]{rightup}{\textwidth}%
-%     }%
-%   }%
 % }
-% \renewcommand{\fgruler at cm@user at fg}{\fgruler at cm@upperleft at fg\fgruler at user{cm}}
-% \renewcommand{\fgruler at in@user at fg}{\fgruler at in@upperleft at fg\fgruler at user{in}}
-% \makeatother
+% \fgrulerdefusercm{\fgruleruser{cm}}
+% \fgrulerdefuserin{\fgruleruser{in}}
 % \begin{document}
 % ...
 % \end{document}
 % \end{examplelst}
-% In this code the effect of \texttt{type=user} is similar to \texttt{type=upperleft}, but it places further rulers at the right and the top border of the body.
 %
 % \newpage\fgrulerreset
 % \subsection{Rulers on the foreground of a given page, and in text}
@@ -711,10 +747,10 @@
 %     text
 %     \ruler*{rightdown}{3cm}
 %     text
-%     \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}}
+%     \rotatebox[origin=tl]{30}{\ruler*{rightdown}{3cm}} 
+%     % \rotatebox is defined in graphicx package
 % \end{document}
 % \end{examplelst}
-% \emph{Remark.} The \verb|\rotatebox| command is defined in the \texttt{graphicx} package!
 % 
 % \newpage\fgrulerreset
 % \subsection{Ruler types in text}
@@ -874,31 +910,18 @@
 % \end{examplelst}
 %
 % \newpage\fgrulerreset
-% \subsection{A new square ruler}
+% \subsection{A new square ruler type}
 % \setfgruler{type=none}
+% {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{5cm}}\ruler{rightup}{3cm}
 % 
-% \makeatletter
-% \newcommand{\usersquareruler}[2]{
-% \begin{picture}(#1+1em+\fgruler at marklength,#2+1em+\fgruler at marklength)
-% {\fgrulercaptioncm{}
-% \ruler{downleft}{#2}}
-% \put(0,#2){\ruler{rightup}{#1}}
-% \end{picture}}
-% \makeatother
-% \usersquareruler{3cm}{5cm}
-% 
 % \bigskip
 % \begin{examplelst}
 % \documentclass{article}
 % \usepackage[type=none]{fgruler}
-% \makeatletter
 % \newcommand{\usersquareruler}[2]{%
-%     \begin{picture}(#1+1em+\fgruler at marklength,#2+1em+\fgruler at marklength)%
-%         {\fgrulercaptioncm{}%
-%          \ruler{downleft}{#2}}%
-%         \put(0,#2){\ruler{rightup}{#1}}%
-%     \end{picture}}
-% \makeatother
+%     {\rulernorotatenum\fgrulercaptioncm{}\ruler*{downleft}{#2}}%
+%     \ruler{rightup}{#1}%
+% }
 % \begin{document}
 % \usersquareruler{3cm}{5cm}
 % \end{document}
@@ -953,6 +976,8 @@
 
 \rulerparams{.4pt}{\scriptsize\sffamily}{black}{2mm}{3pt}
 
+\def\rulerparamsfromfg{\rulerparams{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}{\fgruler at marklength}{\fgruler at numsep}}
+
 \def\fgruler at fgsetting{%
 \fgruler at set{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}{\fgruler at marklength}{\fgruler at numsep}%
 \rulernorotatenum}
@@ -963,14 +988,24 @@
 \def\fgruler at activate@type{%
 \def\fgruler at check{cm}\ifx\fgruler at unit\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at unit\fgruler at check\else%
-\@latexerr{Undefined unit: \fgruler at unit\space(Defined units: cm, in)}{}\fi\fi%
+\PackageError{fgruler}{\fgruler at unit\space is invalid unit}{Valid units: cm, in}%
+\fi\fi%
 \def\fgruler at check{upperleft}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{upperright}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{lowerleft}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{lowerright}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{upperleftT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{upperrightT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{lowerleftT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{lowerrightT}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{none}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{user}\ifx\fgruler at type\fgruler at check\else%
-\@latexerr{Undefined type: \fgruler at type\space(Defined types: upperleft, upperright, lowerleft, lowerright, user, none)}{}\fi\fi\fi\fi\fi\fi%
+\PackageError{fgruler}{\fgruler at 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 at output{\csname fgruler@\fgruler at unit @\fgruler at type @fg\endcsname}}
 
 \def\fgrulerratiocm#1#2{%
@@ -1051,7 +1086,7 @@
 \def\fgruler at param{#1}%
 \def\fgruler at check{cm}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}{Valid parameters: cm, in}%
 \fi\fi%
 \def\fgruler at param{#2}%
 \def\fgruler at check{rightdown}\ifx\fgruler at param\fgruler at check\else%
@@ -1062,7 +1097,10 @@
 \def\fgruler at check{downleft}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{upright}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{upleft}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: rightdown, rightup, leftdown, leftup, downright, downleft, upright, upleft)}{}%
+\PackageError{fgruler}{\fgruler at 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 at check@param@#1#2{%
@@ -1069,7 +1107,7 @@
 \def\fgruler at param{#1}%
 \def\fgruler at check{cm}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}{Valid parameters: cm, in}%
 \fi\fi%
 \def\fgruler at param{#2}%
 \def\fgruler at check{upperleft}\ifx\fgruler at param\fgruler at check\else%
@@ -1076,7 +1114,9 @@
 \def\fgruler at check{upperright}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{lowerleft}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{lowerright}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: upperleft, upperright, lowerleft, lowerright)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}%
+{Valid parameters:\MessageBreak
+upperleft, upperright, lowerleft, lowerright}%
 \fi\fi\fi\fi}
 
 \newcommand{\fgruler at ruler}[3][cm]{\fgruler at check@param{#1}{#2}\fgruler at intextsetting\csname fgruler@#1@#2@\endcsname{#3}}
@@ -1110,8 +1150,11 @@
 
 \def\fgruler at ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}}
 
-\def\fgrulerstartnum#1{\def\fgruler at startnum{#1}\ignorespaces}
-\def\fgruler at startnum{0}
+\def\fgrulerstartnum#1{\def\fgruler at startnumh{#1}\def\fgruler at startnumv{#1}\ignorespaces}
+\def\fgrulerstartnumh#1{\def\fgruler at startnumh{#1}\ignorespaces}
+\def\fgrulerstartnumv#1{\def\fgruler at startnumv{#1}\ignorespaces}
+\def\fgruler at startnumh{0}
+\def\fgruler at startnumv{0}
 
 \def\fgrulerdefnum#1{\def\thefgrulernum{#1}\ignorespaces}
 
@@ -1120,13 +1163,13 @@
 \def\rulernorotatenum{%
 \ifx\@onlypreamble\@notprerr%
 \def\fgruler at rotatebox##1##2{##2}%
-\else\@latexerr{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
 \ignorespaces}
 
 \def\rulerrotatenum{%
 \ifx\@onlypreamble\@notprerr%
 \def\fgruler at rotatebox##1##2{\rotatebox{##1}{##2}}%
-\else\@latexerr{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
 \ignorespaces}
 
 \def\fgrulerreset{%
@@ -1171,10 +1214,11 @@
 \def\thefgrulernum{\arabic{fgrulernum}}%
 \def\fgruler at caption@cm{cm}%
 \def\fgruler at caption@in{inch}%
-\def\fgruler at startnum{0}%
+\def\fgruler at startnumh{0}%
+\def\fgruler at startnumv{0}%
 \fgruler at borderlinetrue%
 \fgruler at showframefalse%
-\else\@latexerr{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
 \ignorespaces}
 
 \AtEndPreamble{
@@ -1261,7 +1305,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(10,-\fgruler at sep)(10,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@rightdown@#1{%
@@ -1268,7 +1312,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(0,-\fgruler at width)%
 \fgruler at cm@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -1294,7 +1338,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(16,-\fgruler at sep)(16,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@rightdown@#1{%
@@ -1301,7 +1345,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(0,-\fgruler at width)%
 \fgruler at in@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -1321,7 +1365,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(10,\fgruler at sep)(10,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@rightup@#1{%
@@ -1328,7 +1372,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)%
 \fgruler at cm@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -1354,7 +1398,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(16,\fgruler at sep)(16,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@rightup@#1{%
@@ -1361,7 +1405,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)%
 \fgruler at in@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -1381,7 +1425,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(-10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-10,-\fgruler at sep)(-10,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@leftdown@#1{%
@@ -1388,7 +1432,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(-#1,-\fgruler at width)%
 \fgruler at cm@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(-5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -1414,7 +1458,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(-16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-16,-\fgruler at sep)(-16,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@leftdown@#1{%
@@ -1421,7 +1465,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(-#1,-\fgruler at width)%
 \fgruler at in@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(-8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -1441,7 +1485,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(-10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-10,\fgruler at sep)(-10,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@leftup@#1{%
@@ -1448,7 +1492,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(-#1,0)%
 \fgruler at cm@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(-5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -1474,7 +1518,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(-16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-16,\fgruler at sep)(-16,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@leftup@#1{%
@@ -1481,7 +1525,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(-#1,0)%
 \fgruler at in@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(-8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -1501,7 +1545,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,-10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,-10)(0,-10){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@downright@#1{%
@@ -1508,7 +1552,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(0,-#1)%
 \fgruler at cm@downright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(\fgruler at sep,-5){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -1534,7 +1578,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,-16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,-16)(0,-16){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@downright@#1{%
@@ -1541,7 +1585,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(0,-#1)%
 \fgruler at in@downright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(\fgruler at sep,-8){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -1561,7 +1605,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,-10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,-10)(0,-10){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@downleft@#1{%
@@ -1568,7 +1612,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,-#1)%
 \fgruler at cm@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(-\fgruler at sep,-5){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -1594,7 +1638,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,-16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,-16)(0,-16){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@downleft@#1{%
@@ -1601,7 +1645,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,-#1)%
 \fgruler at in@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(-\fgruler at sep,-8){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -1621,7 +1665,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,10)(0,10){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@upright@#1{%
@@ -1628,7 +1672,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)%
 \fgruler at cm@upright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(\fgruler at sep,5){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -1654,7 +1698,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,16)(0,16){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@upright@#1{%
@@ -1661,7 +1705,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)%
 \fgruler at in@upright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(\fgruler at sep,8){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -1681,7 +1725,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,10)(0,10){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@upleft@#1{%
@@ -1688,7 +1732,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,0)%
 \fgruler at cm@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(-\fgruler at sep,5){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -1714,7 +1758,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,16)(0,16){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@upleft@#1{%
@@ -1721,7 +1765,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,0)%
 \fgruler at in@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(-\fgruler at sep,8){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -1918,9 +1962,132 @@
 
 \def\fgruler at in@lowerright at fg{\fgruler at in@lowerright at fg@{\fgruler at hshift}{\fgruler at vshift}}
 
+%% UPPERLEFTT CM
+\def\fgruler at cm@upperleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler at cm@rightup{\textwidth}%
+\fgruler at cm@downleft{\textheight}%
+\put(5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERLEFTT IN
+\def\fgruler at in@upperleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler at in@rightup{\textwidth}%
+\fgruler at in@downleft{\textheight}%
+\put(8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT CM
+\def\fgruler at cm@upperrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler at cm@leftup{\textwidth}%
+\fgruler at cm@downright{\textheight}%
+\put(-5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT IN
+\def\fgruler at in@upperrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler at in@leftup{\textwidth}%
+\fgruler at in@downright{\textheight}%
+\put(-8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT CM
+\def\fgruler at cm@lowerleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler at cm@rightdown{\textwidth}%
+\fgruler at cm@upleft{\textheight}%
+\put(5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT IN
+\def\fgruler at in@lowerleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler at in@rightdown{\textwidth}%
+\fgruler at in@upleft{\textheight}%
+\put(8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT CM
+\def\fgruler at cm@lowerrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler at cm@leftdown{\textwidth}%
+\fgruler at cm@upright{\textheight}%
+\put(-5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT IN
+\def\fgruler at in@lowerrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler at in@leftdown{\textwidth}%
+\fgruler at in@upright{\textheight}%
+\put(-8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
 %% USER
 \def\fgruler at cm@user at fg{}
 \def\fgruler at in@user at fg{}
+\def\fgrulertype#1#2{\csname fgruler@#1@#2 at fg\endcsname}
+\def\fgrulerdefusercm#1{\def\fgruler at cm@user at fg{#1}}
+\def\fgrulerdefuserin#1{\def\fgruler at in@user at fg{#1}}
 %    \end{macrocode}
 % \Finale
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/fgruler/fgruler.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fgruler/fgruler.sty	2020-11-04 21:35:59 UTC (rev 56853)
+++ trunk/Master/texmf-dist/tex/latex/fgruler/fgruler.sty	2020-11-04 21:36:11 UTC (rev 56854)
@@ -22,7 +22,7 @@
 %% The Current Maintainer of this work is Tibor Tomacs.
 %% 
 \NeedsTeXFormat{LaTeX2e}[2020/10/01]
-\ProvidesPackage{fgruler}[2020/10/26 v1.2 Package for drawing rulers on the foreground or in the text]
+\ProvidesPackage{fgruler}[2020/11/04 v1.3 Package for drawing rulers on the foreground or in the text]
 %%
 \@ifpackageloaded{kvoptions}{}{\RequirePackage{kvoptions}}
 \@ifpackageloaded{etoolbox}{}{\RequirePackage{etoolbox}}
@@ -69,6 +69,8 @@
 
 \rulerparams{.4pt}{\scriptsize\sffamily}{black}{2mm}{3pt}
 
+\def\rulerparamsfromfg{\rulerparams{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}{\fgruler at marklength}{\fgruler at numsep}}
+
 \def\fgruler at fgsetting{%
 \fgruler at set{\fgruler at markthick}{\fgruler at numfont}{\fgruler at color}{\fgruler at marklength}{\fgruler at numsep}%
 \rulernorotatenum}
@@ -79,14 +81,24 @@
 \def\fgruler at activate@type{%
 \def\fgruler at check{cm}\ifx\fgruler at unit\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at unit\fgruler at check\else%
-\@latexerr{Undefined unit: \fgruler at unit\space(Defined units: cm, in)}{}\fi\fi%
+\PackageError{fgruler}{\fgruler at unit\space is invalid unit}{Valid units: cm, in}%
+\fi\fi%
 \def\fgruler at check{upperleft}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{upperright}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{lowerleft}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{lowerright}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{upperleftT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{upperrightT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{lowerleftT}\ifx\fgruler at type\fgruler at check\else%
+\def\fgruler at check{lowerrightT}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{none}\ifx\fgruler at type\fgruler at check\else%
 \def\fgruler at check{user}\ifx\fgruler at type\fgruler at check\else%
-\@latexerr{Undefined type: \fgruler at type\space(Defined types: upperleft, upperright, lowerleft, lowerright, user, none)}{}\fi\fi\fi\fi\fi\fi%
+\PackageError{fgruler}{\fgruler at 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 at output{\csname fgruler@\fgruler at unit @\fgruler at type @fg\endcsname}}
 
 \def\fgrulerratiocm#1#2{%
@@ -167,7 +179,7 @@
 \def\fgruler at param{#1}%
 \def\fgruler at check{cm}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}{Valid parameters: cm, in}%
 \fi\fi%
 \def\fgruler at param{#2}%
 \def\fgruler at check{rightdown}\ifx\fgruler at param\fgruler at check\else%
@@ -178,7 +190,10 @@
 \def\fgruler at check{downleft}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{upright}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{upleft}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: rightdown, rightup, leftdown, leftup, downright, downleft, upright, upleft)}{}%
+\PackageError{fgruler}{\fgruler at 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 at check@param@#1#2{%
@@ -185,7 +200,7 @@
 \def\fgruler at param{#1}%
 \def\fgruler at check{cm}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{in}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: cm, in)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}{Valid parameters: cm, in}%
 \fi\fi%
 \def\fgruler at param{#2}%
 \def\fgruler at check{upperleft}\ifx\fgruler at param\fgruler at check\else%
@@ -192,7 +207,9 @@
 \def\fgruler at check{upperright}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{lowerleft}\ifx\fgruler at param\fgruler at check\else%
 \def\fgruler at check{lowerright}\ifx\fgruler at param\fgruler at check\else%
-\@latexerr{Invalid parameter: \fgruler at param\space(Defined parameters: upperleft, upperright, lowerleft, lowerright)}{}%
+\PackageError{fgruler}{\fgruler at param\space is invalid parameter}%
+{Valid parameters:\MessageBreak
+upperleft, upperright, lowerleft, lowerright}%
 \fi\fi\fi\fi}
 
 \newcommand{\fgruler at ruler}[3][cm]{\fgruler at check@param{#1}{#2}\fgruler at intextsetting\csname fgruler@#1@#2@\endcsname{#3}}
@@ -226,8 +243,11 @@
 
 \def\fgruler at ifodd#1{\ifodd\value{fgrulernum}#1\fi\stepcounter{fgrulernum}}
 
-\def\fgrulerstartnum#1{\def\fgruler at startnum{#1}\ignorespaces}
-\def\fgruler at startnum{0}
+\def\fgrulerstartnum#1{\def\fgruler at startnumh{#1}\def\fgruler at startnumv{#1}\ignorespaces}
+\def\fgrulerstartnumh#1{\def\fgruler at startnumh{#1}\ignorespaces}
+\def\fgrulerstartnumv#1{\def\fgruler at startnumv{#1}\ignorespaces}
+\def\fgruler at startnumh{0}
+\def\fgruler at startnumv{0}
 
 \def\fgrulerdefnum#1{\def\thefgrulernum{#1}\ignorespaces}
 
@@ -236,13 +256,13 @@
 \def\rulernorotatenum{%
 \ifx\@onlypreamble\@notprerr%
 \def\fgruler at rotatebox##1##2{##2}%
-\else\@latexerr{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulernorotatenum\space in preamble!}{}\fi%
 \ignorespaces}
 
 \def\rulerrotatenum{%
 \ifx\@onlypreamble\@notprerr%
 \def\fgruler at rotatebox##1##2{\rotatebox{##1}{##2}}%
-\else\@latexerr{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\rulerrotatenum\space in preamble!}{}\fi%
 \ignorespaces}
 
 \def\fgrulerreset{%
@@ -287,10 +307,11 @@
 \def\thefgrulernum{\arabic{fgrulernum}}%
 \def\fgruler at caption@cm{cm}%
 \def\fgruler at caption@in{inch}%
-\def\fgruler at startnum{0}%
+\def\fgruler at startnumh{0}%
+\def\fgruler at startnumv{0}%
 \fgruler at borderlinetrue%
 \fgruler at showframefalse%
-\else\@latexerr{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
+\else\PackageError{fgruler}{Don't use \protect\fgrulerreset\space in preamble!}{}\fi%
 \ignorespaces}
 
 \AtEndPreamble{
@@ -377,7 +398,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(10,-\fgruler at sep)(10,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@rightdown@#1{%
@@ -384,7 +405,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(0,-\fgruler at width)%
 \fgruler at cm@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -410,7 +431,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(16,-\fgruler at sep)(16,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@rightdown@#1{%
@@ -417,7 +438,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(0,-\fgruler at width)%
 \fgruler at in@rightdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -437,7 +458,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(10,\fgruler at sep)(10,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@rightup@#1{%
@@ -444,7 +465,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)%
 \fgruler at cm@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -470,7 +491,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(16,\fgruler at sep)(16,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@rightup@#1{%
@@ -477,7 +498,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)%
 \fgruler at in@rightup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -497,7 +518,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(-10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-10,-\fgruler at sep)(-10,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@leftdown@#1{%
@@ -504,7 +525,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(-#1,-\fgruler at width)%
 \fgruler at cm@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(-5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -530,7 +551,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(-16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,-1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-16,-\fgruler at sep)(-16,0){\fgruler at tempdima}{\makebox(0,0)[t]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@leftdown@#1{%
@@ -537,7 +558,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(-#1,-\fgruler at width)%
 \fgruler at in@leftdown{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(-8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -557,7 +578,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(-10,0){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-10,\fgruler at sep)(-10,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at cm@leftup@#1{%
@@ -564,7 +585,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(#1,\fgruler at width)(-#1,0)%
 \fgruler at cm@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5cm\put(-5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}\fi%
 \end{picture}}
@@ -590,7 +611,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(-16,0){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(0,1){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(-1,0){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}\stepcounter{fgrulernum}%
 \multiput(-16,\fgruler at sep)(-16,0){\fgruler at tempdima}{\makebox(0,0)[b]{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}
 
 \def\fgruler at in@leftup@#1{%
@@ -597,7 +618,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(#1,\fgruler at width)(-#1,0)%
 \fgruler at in@leftup{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
 \put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
 \ifdim#1>.5in\put(-8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}\fi%
 \end{picture}}
@@ -617,7 +638,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,-10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,-10)(0,-10){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@downright@#1{%
@@ -624,7 +645,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(0,-#1)%
 \fgruler at cm@downright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(\fgruler at sep,-5){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -650,7 +671,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,-16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,-16)(0,-16){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@downright@#1{%
@@ -657,7 +678,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(0,-#1)%
 \fgruler at in@downright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(\fgruler at sep,-8){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -677,7 +698,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,-10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,-10)(0,-10){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@downleft@#1{%
@@ -684,7 +705,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,-#1)%
 \fgruler at cm@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(-\fgruler at sep,-5){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -710,7 +731,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,-16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,-1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,-16)(0,-16){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@downleft@#1{%
@@ -717,7 +738,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,-#1)%
 \fgruler at in@downleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(-\fgruler at sep,-8){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -737,7 +758,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,10)(0,10){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@upright@#1{%
@@ -744,7 +765,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)%
 \fgruler at cm@upright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(\fgruler at sep,5){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -770,7 +791,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(\fgruler at sep,16)(0,16){\fgruler at tempdima}{\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@upright@#1{%
@@ -777,7 +798,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)%
 \fgruler at in@upright{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(\fgruler at sep,8){\makebox(0,0)[l]{\fgruler at rotatebox{90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -797,7 +818,7 @@
 \fgruler at div{#1}{10}%
 \multiput(0,0)(0,10){\@tempcnta}{\fgruler at cm@thick at iii\fgruler at cm@color at iii\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,10)(0,10){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at cm@upleft@#1{%
@@ -804,7 +825,7 @@
 \setlength{\unitlength}{1mm}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,0)%
 \fgruler at cm@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5cm\put(-\fgruler at sep,5){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@cm}}}\fi%
 \end{picture}}
@@ -830,7 +851,7 @@
 \fgruler at div{#1}{16}%
 \multiput(0,0)(0,16){\@tempcnta}{\fgruler at in@thick at v\fgruler at in@color at v\line(-1,0){\fgruler at marklth}}%
 \iffgruler at borderline\put(0,0){\line(0,1){#1}}\fi%
-\setcounter{fgrulernum}{\fgruler at startnum}\stepcounter{fgrulernum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}\stepcounter{fgrulernum}%
 \multiput(-\fgruler at sep,16)(0,16){\fgruler at tempdima}{\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum\stepcounter{fgrulernum}}}}}
 
 \def\fgruler at in@upleft@#1{%
@@ -837,7 +858,7 @@
 \setlength{\unitlength}{.0625in}%
 \begin{picture}(\fgruler at width,#1)(-\fgruler at width,0)%
 \fgruler at in@upleft{#1}%
-\setcounter{fgrulernum}{\fgruler at startnum}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
 \put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\thefgrulernum}}}%
 \ifdim#1>.5in\put(-\fgruler at sep,8){\makebox(0,0)[r]{\fgruler at rotatebox{-90}{\fgruler at font@\fgruler at caption@in}}}\fi%
 \end{picture}}
@@ -1034,9 +1055,132 @@
 
 \def\fgruler at in@lowerright at fg{\fgruler at in@lowerright at fg@{\fgruler at hshift}{\fgruler at vshift}}
 
+%% UPPERLEFTT CM
+\def\fgruler at cm@upperleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler at cm@rightup{\textwidth}%
+\fgruler at cm@downleft{\textheight}%
+\put(5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERLEFTT IN
+\def\fgruler at in@upperleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,-\textheight)%
+\fgruler at in@rightup{\textwidth}%
+\fgruler at in@downleft{\textheight}%
+\put(8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT CM
+\def\fgruler at cm@upperrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler at cm@leftup{\textwidth}%
+\fgruler at cm@downright{\textheight}%
+\put(-5,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% UPPERRIGHTT IN
+\def\fgruler at in@upperrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,-\textheight)%
+\fgruler at in@leftup{\textwidth}%
+\fgruler at in@downright{\textheight}%
+\put(-8,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,\fgruler at sep){\makebox(0,0)[b]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT CM
+\def\fgruler at cm@lowerleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler at cm@rightdown{\textwidth}%
+\fgruler at cm@upleft{\textheight}%
+\put(5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERLEFTT IN
+\def\fgruler at in@lowerleftT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(0,0)%
+\fgruler at in@rightdown{\textwidth}%
+\fgruler at in@upleft{\textheight}%
+\put(8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(-\fgruler at sep,0){\makebox(0,0)[r]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT CM
+\def\fgruler at cm@lowerrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{1mm}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler at cm@leftdown{\textwidth}%
+\fgruler at cm@upright{\textheight}%
+\put(-5,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@cm}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
+%% LOWERRIGHTT IN
+\def\fgruler at in@lowerrightT at fg{%
+\AtTextLowerLeft{%
+\setlength{\unitlength}{.0625in}%
+\fgruler at fgsetting%
+\begin{picture}(\textwidth,\textheight)(-\textwidth,0)%
+\fgruler at in@leftdown{\textwidth}%
+\fgruler at in@upright{\textheight}%
+\put(-8,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\fgruler at caption@in}}%
+\setcounter{fgrulernum}{\fgruler at startnumh}%
+\put(0,-\fgruler at sep){\makebox(0,0)[t]{\fgruler at font@\thefgrulernum}}%
+\setcounter{fgrulernum}{\fgruler at startnumv}%
+\put(\fgruler at sep,0){\makebox(0,0)[l]{\fgruler at font@\thefgrulernum}}%
+\end{picture}}}
+
 %% USER
 \def\fgruler at cm@user at fg{}
 \def\fgruler at in@user at fg{}
+\def\fgrulertype#1#2{\csname fgruler@#1@#2 at fg\endcsname}
+\def\fgrulerdefusercm#1{\def\fgruler at cm@user at fg{#1}}
+\def\fgrulerdefuserin#1{\def\fgruler at in@user at fg{#1}}
 \endinput
 %%
 %% End of file `fgruler.sty'.



More information about the tex-live-commits mailing list.