\documentclass[a4paper]{article} \usepackage[T1]{fontenc} \usepackage{underscore,amstext} \usepackage[a4paper]{geometry} \usepackage{miscdoc} \usepackage[scaled=0.85]{luximono} \newcommand\nl{\par\noindent} \begin{document} \title{The \Package{vruler} package~---\\ Vertical rulers in \LaTeX{}, Plain \TeX{} and ams\TeX{}} \author{Zhuhan Jiang\thanks{University of New England, Australia NSW 2351}} \date{October 1996, version v2.3\thanks{% This documentation created 2010-03-21, by Robin Fairbairns}} \maketitle \section{What's the package for?} Make a vertical ruler, numbering consecutively so that any part of an article can be pinpointed immediately. The vruler may be moved freely up and down, left and right. There are no formally released packages that number lines in general text one by one without missing certain lines, particularly when there are many maths equations in the text. So \Package{vruler} is a good alternative for people writing text of versatile format or lots of maths formulas. \section{The commands} \cmdinvoke*{setvruler}[scale][initial_count][step][digits][mode]% [odd_hshift][even_hshift][vshift][height]\nl defines the start of vertical rulers, where: \par\addvspace{1ex} \noindent \meta{scale} is the distance between two consecutive markings on the vruler\nl \meta{initial_count} is the value on the first mark on the ruler\nl \meta{step} is the mark increment\nl \meta{digits} is the number of digits needed for ruler markings\nl $\text{\meta{mode}}=0$ if each page has the same ruler marking, $=1$ otherwise\nl \meta{odd_hshift} is the horizontal shift for odd pages, from the default\nl \meta{even_hshift} is the horizontal shift for even pages, from the default\nl \meta{vshift} is the the vertical shift, from the default value, and\nl \meta{height} is the height of the vertical ruler. \par\addvspace{1ex} \noindent\cs{unsetvruler} stops vrulers. \par\addvspace{1ex} \noindent\cmdinvoke*{setdefault}{cmdname}{n}{default_1}{\dots{}}{default_n}\nl (re)sets macro \meta{n} defaults for \cmdinvoke{cmdname}[\#1][\dots{}][\#n] to take \meta{default_1} to \meta{default_n} respectively, so that \cmdinvoke*{cmdname}[][xy] is the same as \cmdinvoke{cmdname}*[\meta{default_1}][xy][\meta{default\dots{}}]. You don't need to use \cs{setdefault} unless you would like to change the default setting for macros in \Package{vruler} or elsewhere. \par\addvspace{1ex} \noindent\cs{vrulecount} holds the next mark value to be used on the vertical rules. \subsection*{Defaults} The parameters of \cs{setvruler} admit defaults. With no arguments, the command is equivalent to:\nl \leavevmode\quad\cmdinvoke{setvruler}[10pt][1][1][4][1][0pt][0pt][0pt][\cs{textheight}]\nl and\nl \leavevmode\quad\cmdinvoke{setvruler}[][20] has the same effect as:\nl \leavevmode\quad\cmdinvoke{setvruler}[10pt][20] \section{Notes} \begin{enumerate} \item If you are using the \Package{multicol} package, then you might want to move the vruler into the center to separate the columns. \item If you use a value of \cs{topskip} other than the default, then you will have to alter \meta{vshift} and \meta{height} parameters in \cs{setvruler} accordingly (which is simple). \item It is best to choose the value \cs{baselineskip} \meta{scale} so that line synchronisation is often optimal. Use (e.g.\@) ``5+'' to denote the line immediately after marking number ``5'' if necessary. \item In twosided \Package{book} class in \LaTeXe{}, the initial numbering of title page via \cmdinvoke{begin}{titlepage} is actually one page away. To overcome this, either do not include the title page in the region covered by vruler, or set the initial count (\texttt{\#2}) to a number (a page ahead) so that the resulting initial number is what one needs. \item The file \texttt{vruler-example.sty} in the distribution offers an example of use. \end{enumerate} \end{document}