summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lineno/ulineno.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/lineno/ulineno.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/lineno/ulineno.tex')
-rw-r--r--macros/latex/contrib/lineno/ulineno.tex986
1 files changed, 986 insertions, 0 deletions
diff --git a/macros/latex/contrib/lineno/ulineno.tex b/macros/latex/contrib/lineno/ulineno.tex
new file mode 100644
index 0000000000..25d20bcaec
--- /dev/null
+++ b/macros/latex/contrib/lineno/ulineno.tex
@@ -0,0 +1,986 @@
+% Copyright 1995--1999 Stephan I. B"ottcher <stephan@nevis1.columbia.edu>
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% $Id: ulineno.tex,v 3.1 2001/08/03 03:29:19 stephan Exp $
+%
+% 1999-06-11 SiB: updated for lineno.sty v3.00
+\ProvidesFile{ulineno.tex}[2001/08/03 lineno.sty users manual]
+ %% <- UL 2011/02/13 for readprov.sty
+
+\documentclass[12pt,a4paper,titlepage]{article}
+
+ \date{\def\$##1: ##2 ##3${##2}%$
+ Version
+ \$Revision: 3.1 $,
+ \$Date: 2001/08/03 03:29:19 $
+ }
+ \def\lineno.sty{\texttt{\itshape lineno.sty}}
+
+
+\title{ \lineno.sty
+\\ Users Manual
+}
+\author{ Stephan I. B\"ottcher
+}
+
+\usepackage{lineno}
+\usepackage{url}
+
+\def~{\verb~}
+\catcode`\<\catcode`\~
+\def<#1>{$\langle${\itshape#1}\/$\rangle$}
+\catcode`\|\catcode`\~
+\def|#1{{\ttfamily\string#1}}
+\def\NL{<number>]}
+
+\begin{document}
+\begin{runninglinenumbers}
+\renewcommand\linenumberfont{\normalfont\small\bfseries}
+\setlength\linenumbersep{1cm}
+\maketitle
+\thispagestyle{empty}
+\resetlinenumber
+\tableofcontents
+\clearpage
+\setcounter{page}{1}
+\pagewiselinenumbers
+
+\section{When to use \lineno.sty}
+
+The primary use of \lineno.sty is to get line numbers in your LaTeX
+document. \lineno.sty directly supports line numbers in various
+modes, and if you have any wishes that are not directly supported,
+chances are good that \lineno.sty can be adapted to do it. And if it
+turns out to be difficult with \lineno.sty, then it will be even more
+difficult without.
+
+There is one class of cases however, where \lineno.sty is not the most
+appropriate tool. When your text already comes in lines, like source
+listings, tables, poetry, then \lineno.sty will propably do the job,
+but other tools could do it much more efficiently.
+
+\lineno.sty can only number lines in the main text. Lines in any kind
+of boxes cannot be numbered. But see section \ref{sec:ilineno} below.
+
+\lineno.sty is especially useful when the text is broken into lines by
+\TeX\ itself. In this case, the task to attach line numbers is not
+easy, and a tool like \lineno.sty has good chances to break when used
+together with other packages.
+
+On the other hand, \lineno.sty proved to be quite stable, and I did
+not get any reports of complete failure yet.
+
+With \lineno.sty, you can refer to the line numbers via \LaTeX s
+~\ref~ and ~\pageref~ macros.
+
+There are other applications, not directly related to line numbering.
+Whenever you want to attach something to your text, after a paragraph
+was broken into lines, across pagebreaks, lineno may do the job.
+
+\begin{bframe}
+ Say, you need a frame around some text, but the text should be able
+ to break across pages, \lineno.sty can be used to draw rules on both
+ margins, which can be completed at the top and bottom by some
+ special environment, see section\,\,\ref{sec:bframe}.
+\end{bframe}
+
+There may be cases, where other packages do a better job, e.g.,
+\url{CTAN:macros/latex/contrib/supported/numline}.
+
+
+\section{Where to get \lineno.sty}
+
+\lineno.sty is available on the \emph{Comprehensive TeX Archive
+ Network} (CTAN), e.g, \url{ftp:// ftp.tex.ac.uk/ tex-archive/
+ macros/ latex/ contrib/ supported/ lineno/ lineno.sty}.
+
+The home of \lineno.sty is \url{http:// www.nevis.columbia.edu/
+ ~stephan/ tex/ #lineno}. Here you can get the latest version.
+
+\end{runninglinenumbers}
+
+\section{How to use \lineno.sty}
+
+As any other \LaTeXe\ package, you need to load it with
+\begin{quote}
+ ~\usepackage[~<options>~]{lineno}~
+\end{quote}
+
+\subsection{Package options}
+
+The available <options> are:
+\begin{description}
+
+\item[\texttt{[left]}:] Put the line numbers into the left margin
+ (default).
+
+\item[\texttt{[right]}:] Put the line numbers into the right margin.
+
+\item[\texttt{[switch]}:] Put the line numbers into the outer margin
+ (left on even numbered pager, right on odd numbered pages).
+
+\item[\texttt{[switch*]}:] Put the line numbers into the inner
+ margin.
+
+\item[\texttt{[pagewise]}:] Number the lines from 1 on each page.
+
+\item[\texttt{[running]}:] Continuously number the lines (default).
+
+\item[\texttt{[modulo]}:] Print line numbers only if they are
+ multiples of five.
+
+\item[\texttt{[mathlines]}:] When using the ~{linenomath}~
+ environment for display math, put line numbers also on the lines of
+ the display.
+
+\item[\texttt{[displaymath]}:] Automatically wrap the standard LaTeX
+ display math environments in ~{linenomath}~.
+
+ \begin{itshape}
+ Change from v2 to v3: ~[mathlines]~ was called ~[displaymath]~
+ before, and ~[displaymath]~ was ~\usepacke{mlineno}~.
+ \end{itshape}
+
+\end{description}
+All effects of these option can also be obtained by calling certain
+macros later in the document, except for ~[displaymath]~.
+
+\subsection{How to turn on line numbering}
+
+The line numbering is not activated by default. If you want line
+numbers, you have to turn it on. The simplest way is to say
+\begin{quote}
+ ~\linenumbers~
+\end{quote}
+This will turn on line numbers within the current group, according to
+the currently selected mode. If you do it right at the beginning, the
+whole document will be numbered.
+
+~\linenumbers~ takes effect only when a paragraph is finished. This
+is important if you use ~\linenumbers~ for a single paragraph only.
+This will \emph{not} work:
+\begin{quote}\obeylines
+ ~\begingroup~\\%
+ ~\linenumbers~
+ Text of your paragraph.
+ ~\endgroup~
+\end{quote}
+because the ~\endgroup~ terminates the effect of ~\linenumbers~ before
+the paragraph is finished. The solution is to insert an empty line,
+or an explicit ~\par~ before the ~\endgroup~.
+
+The prefered solution is to use an enviroment:
+\begin{quote}\obeylines
+ ~\begin{linenumbers}~
+ Text of your paragraph.
+ ~\end{linenumbers}~
+\end{quote}
+~\end{linenumbers}~ terminates the paragraph for you. It will also
+make sure that the next paragraph is not indented, if there is no
+empty line in between.
+
+This form will not finish any preceeding paragraph. If you do not
+leave an empty line before ~\begin{linenumbers}~, the previous
+ paragraph may also get line numbers (this is not true after a list
+ environment).
+
+A quite esoteric form to number a single paragraph is:
+\begin{quote}\obeylines
+ Text of your paragraph.
+ ~{\linenumbers\par}~
+\end{quote}
+Here, the ~\linenumbers~ is turned on in a group that just executes
+the ~\par~ to terminate the previous paragraph. Only this paragraph
+will have line numbers. (~\par~ is exactly equivalent to an empty
+line).
+
+
+\subsection{How to turn off line numbering}
+
+You do not usualy turn of line numbering explicitly, but rather
+restrict line numbering to a group or an environment. However, you
+can turn it off with the command
+\begin{quote}
+ ~\nolinenumbers~
+\end{quote}
+This macro can also be used as an environment. The same restrictions
+apply as for ~\linenumbers~.
+
+
+\section{Numbering modes}
+
+Attaching line numbers after \TeX\ has broken the paragraph into lines
+is already quite a difficult job for \TeX. Why? Because \TeX\ does
+not normally give you any control after line breaking. \lineno.sty
+does it by pretending that the current page ends after each and every
+line. This keeps \TeX\ quite busy, but works.
+
+Often, you want the line numbers to depend on the page they finally end
+up. E.g., you want the numbers to start with~ ~1 one each new page,
+or you want them to appear on the outer margins in twoside mode. This
+is an almost impossible demand, but \lineno.sty can do it, at some
+cost, in terms of computing time, memory, and disk space. \lineno.sty
+needs to write a note into the auxiliary file for each line in the
+numbered part of the text, and \TeX\ keeps some memory for each page,
+and all that takes some computation time to figure out on which page
+the line was in the last \LaTeX\ run.
+
+Thus, there are two basic numbering modes
+\begin{enumerate}
+
+\item \emph{Running} line numbers. The numbers run continuously along
+ the document, without considering page breaks.
+
+ The line numbers can be reset, or preset at any point in the
+ document (except within a paragraph). Margin switching (or any
+ other dependence on the page breaks) is not possible.
+
+\item \emph{Pagewise} line numbers. The lines on each page are
+ numbered from one. Automatic margin switching is possible.
+
+ \emph{Running} mode can be simulated in pagewise mode, to get
+ automatic margin switching with continuous line numbers, but without
+ the ability to reset/preset the line numbers anywhere in the
+ document.
+
+ Any feature that depends on the page breaks must use this mode.
+
+\end{enumerate}
+
+\begin{runninglinenumbers*}
+
+\subsection{\emph{Running} line numbers}
+
+This is the default mode of operation. The lines of your text are
+numbered continuously across page breaks.
+
+You cannot get automatic margin switching in this mode, because at the
+time when the line numbers are attached, it is not yet decided on
+which page the line will end up. However, you can simulate continuous
+line numbers in \emph{pagewise} mode (see below), where margin
+switching becomes possible.
+
+You get this mode by
+\begin{itemize}\raggedright
+\item \emph{not} specifying any of the package options
+ ~[switch,pagewise]~,
+\item specifying the package option ~[running]~,
+\item give the command ~\setrunninglinenumbers~ in the document, or
+\item turn on line numbering with ~\runninglinenumbers~ or
+ ~\begin{runninglinenumbers}~.
+\end{itemize}
+
+\subsubsection{Reseting or setting the line number}
+
+You can reset the line number with
+\begin{quote}
+ ~\resetlinenumber[~<number>~]~
+\end{quote}
+where the default is to reset the line number to one.
+
+Alternatively, you can give the line number in an optional argument to
+any command that turns on the line numbering in this mode:
+\begin{quote}\obeylines
+ ~\linenumbers[~<number>~]~
+ ~\runninglinenumbers[~<number>~]~
+ ~\begin{linenumbers}[~<number>~]~
+ ~\begin{runninglinenumbers}[~<number>~]~
+\end{quote}
+or reset the line number to 1 with any of the following:
+\begin{quote}\obeylines
+ ~\linenumbers*~
+ ~\runninglinenumbers*~
+ ~\begin{linenumbers*}~
+ ~\begin{linenumbers}*~
+ ~\begin{runninglinenumbers*}~
+ ~\begin{runninglinenumbers}*~
+\end{quote}
+This section of the manual is enclosed in
+\begin{quote}\obeylines
+ ~\begin{runninglinenumbers*}~
+ ~\end{runninglinenumbers*}~
+\end{quote}
+\end{runninglinenumbers*}
+
+
+\begin{pagewiselinenumbers}
+
+\subsection{\emph{Pagewise} line numbers}
+
+Basically, this mode prints line numbers starting with 1 on top of
+each page, counting only lines where this mode is active. If you
+turn on this mode in the middle of a page, the numbers start with 1
+at that point.
+
+The \emph{pagewise} mode of operation is quite a bit more work for
+\TeX. When the line numbers are printed, \TeX\ does not know on which
+page the current line will go. To get \emph{pagewise} mode working,
+\LaTeX\ has to remember on which page the line went in a previous run.
+This information is written into the ~.aux~ file, and like a table of
+contents, you will not see the numbers until you run \LaTeX\ at least
+twice on the document. Sometimes the information in the ~.aux~ file
+becomes invalid in a way that causes \lineno.sty to hang. In such a
+case you'll have to delete all ~.aux~ files of the document to get it
+going again.
+
+You get this mode by
+\begin{itemize}\raggedright
+\item specifying the package option
+ ~[pagewise]~, but not ~[running]~,
+\item give the command ~\setpagewiselinenumbers~ in the document, or
+\item turn on line numbering with ~\pagewiselinenumbers~ or
+ ~\begin{pagewiselinenumbers}~.
+\end{itemize}
+
+You cannot reset or preset the line numbers in \emph{pagewise} mode.
+This mode uses a different counter than \emph{running} mode. You can
+switch between the mode, and the \emph{running} numbers will continue
+where they left of, unless you reset the counter.
+
+\subsubsection{Margin switching}
+
+As a side effect of all the business to find out on which page the lines
+end up, margin switching becomes possible. It is now possible to
+print the line number differently on odd and even pages. The command
+\begin{quote}
+ ~\switchlinenumbers~
+\end{quote}
+will cause the line numbers to be printed on the outer margins, on the
+right side for odd pages, and on the left side for even numbered
+pages. If you add a star, the numbers go on the inner margins
+\begin{quote}
+ ~\switchlinenumbers*~
+\end{quote}
+You can achieve the same effect by specifying the package
+option ~[switch]~ or ~[switch*]~ together with ~[pagewise]~.
+
+Margin switching is independent of any ~[twoside]~ option of the
+document class.
+
+\subsubsection{\emph{Running} mode with margin switching}
+
+Margin switching is not possible in \emph{running} mode, but you can
+abuse the pagewise mode to produce continuous line numbers. This mode
+is activated with the command
+\begin{quote}
+ ~\runningpagewiselinenumbers~
+\end{quote}
+It is not possible to reset the line number counter for this mode, the
+lines will be numbered starting from one at the beginning of the
+document, and continue. You can switch back to real pagewise mode with
+\begin{quote}
+ ~\realpagewiselinenumbers~
+\end{quote}
+but when you resume \emph{running-pagewise}, the numbers will not
+continue where they left off, but jump by the number of lines that
+were numbered \emph{real-pagewise}.
+
+The package options ~[switch]~ and ~[switch*]~ will turn on
+\emph{running pagewise} mode with margin switching, unless you also
+specify ~[pagewise]~.
+
+Finally, if you give these options together with ~[running]~, like
+\begin{quote}
+ ~\usepackage[switch,pagewise,running]{lineno}~
+\end{quote}
+the mode is set to plain \emph{running} line numbers, but later in
+your document, if you say ~\pagewiselinenumbers~, the setings of the
+~[switch]~ and ~[pagewise]~ options will take effect.
+
+\subsubsection{Page numbers}
+
+Any pages that contain \emph{pagewise} numbered lines must have a
+different page number. This may cause trouble with titlepages or
+simmilar fudging with the page number counter in the document. (I am
+talking about ~\c@page~ or ~\count 0~ here, not ~\thepage~).
+
+If you get strange errors, like \emph{``the use of} ~\nextLN~
+\emph{does not match its definition''}, you should first delete all
+~.aux~ files, and rerun \LaTeX\ several times. If the error does not
+reappear, fine, else check your page numbers, including those that are
+not printed. You may use \emph{running} line numbers on your
+titlepages, since the page boundaries are predefined, usually.
+
+\end{pagewiselinenumbers}
+
+\begin{linenumbers*}
+
+\subsection{Margin selection}
+
+In any mode you can select a fixed margin on which the numbers shall
+be printed. You can either give a package option ~[left]~ or
+~[right]~, or change the margin within the document with
+\begin{quote}\obeylines
+ ~\leftlinenumbers~
+\rightlinenumbers
+ ~\rightlinenumbers~
+\end{quote}
+\rightlinenumbers
+Neither of these commands actually turns on line numbering. The
+margin setting is changed for the currently selected mode
+\emph{running} or \emph{pagewise}. If you want to set the margin for
+both modes, append a star
+\begin{quote}\obeylines
+ ~\leftlinenumbers*~
+ ~\rightlinenumbers*~
+\end{quote}
+The default is ~\leftlinenumbers*~.
+
+\end{linenumbers*}
+
+
+\subsection{Summary of mode selection commands}
+
+The following commands change the major line numbering mode.
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\setrunninglinenumbers]
+\item [|\setpagewiselinenumbers] \leavevmode\\
+ set the current mode, without activating or deactivating line
+ numbering.
+\item [|\runninglinenumbers\texttt{*[\NL}]
+\item [|\pagewiselinenumbers] \leavevmode\\
+ set the current mode and activate line numbering, optionally reset
+ (~*~), or set the line number for \emph{running} mode.
+\end{description}
+The following commands do not change the major mode, but modify the
+the behaviour of \emph{pagewise} mode
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\realpagewiselinenumbers]
+\item [|\runningpagewiselinenumbers] \leavevmode\\
+ select if \emph{pagewise} mode should number continuously, or really
+ pagewise.
+\end{description}
+
+
+\subsection{Summary of margin selection commands}
+
+The following command select into which margin the numbers should be
+printed
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\leftlinenumbers\texttt*]
+\item [|\rightlinenumbers\texttt*] \leavevmode\\
+ put the line numbers in the left/right margin in both modes.
+\item [|\leftlinenumbers]
+\item [|\rightlinenumbers] \leavevmode\\
+ put the line number into the left/right margin in the currently
+ selected mode.
+\item [|\switchlinenumbers] \leavevmode\\
+ put the line numbers into the outer margin, when using
+ \emph{pagewise} mode.
+\item [|\switchlinenumbers\texttt*] \leavevmode\\
+ put the line numbers into the inner margin, when using
+ \emph{pagewise} mode.
+\end{description}
+
+\begin{linenumbers*}
+\modulolinenumbers[2]
+
+\subsection{Numbering only one in five lines}
+
+You can ask lineno to print the line numbers only if they devide by
+<n>, by saying
+\begin{quote}
+ ~\modulolinenumbers[~<n>~]~
+\end{quote}
+If you omit the optional argument, it will be every fifth line, or
+whatever you used last (the current value of the counter
+~linenumbermodulo~). You get the same effect by giving the package
+option ~[modulo]~.
+
+If you set <n> to 1, the modulo value is not changed, but modulo
+numbering is turned off.
+
+Changing the counter ~linenumbermodulo~ does not turn on modulo
+numbering, it just changes the modulo, if it is turned on without the
+optional argument.
+
+This section of the manual is enclosed in
+\begin{quote}
+ ~\begin{linenumbers*}~ \\
+ ~\modulolinenumbers[2]~
+
+ ~\end{linenumbers*}~
+\end{quote}
+
+\end{linenumbers*}
+
+\begin{pagewiselinenumbers}
+\switchlinenumbers
+
+\subsection{How the line numbers look like}
+
+This section of the manual is enclosed in
+\begin{quote}
+ ~\begin{pagewiselinenumbers}~ \\
+ ~\switchlinenumbers~
+
+ ~\end{pagewiselinenumbers}~
+\end{quote}
+By default, the line numbers are set in
+\begin{quote}
+ ~\normalfont\tiny\sffamily~
+\end{quote}
+right justified to 10\,pt left of the nominal left edge of the text.
+If the number is to appear on the right margin, it is right justified
+to 20\,pt right of the nominal right edge of the text.
+
+You can easily change that, of course. The font is defined by the
+macro
+\begin{quote}
+ ~\linenumberfont~
+\end{quote}
+You can redefine it to make the numbers appear in a differnt font
+(with ~\renewcommand~). I'll say right here in this manual
+\renewcommand\linenumberfont{\normalfont\bfseries\small}
+\begin{quote}
+ ~\renewcommand\linenumberfont{\normalfont\bfseries\small}~
+\end{quote}
+The distance on the left margin can be changed with
+\begin{quote}
+ ~\setlength\linenumbersep{~<distance>~}~
+\end{quote}
+The distance on the right margin is ~\linenumbersep~ plus
+~\linenumberwidth~, both are set to 10\,pt by default.
+Let's do right here
+\setlength\linenumberwidth{1cm}
+\begin{quote}
+ ~\setlength\linenumbersep{1cm}~
+\end{quote}
+I put the command at the end of the paragraph, but it effects the
+whole paragraph, because that is where everything happens: at the end
+of the paragraphs.
+
+The line numbers are printed as arabic numerals, as defined in the
+macro
+\begin{quote}
+ ~\thelinenumber~
+\end{quote}
+for the \LaTeX\ counter ~{linenumber}~. You can redefine that, as
+for any other \LaTeX\ counter. E.g.,
+\renewcommand\thelinenumber{\roman{linenumber}}
+\begin{quote}
+ ~\renewcommand\thelinenumber{\roman{linenumber}}~
+\end{quote}
+(For heavy duty line numbering, you should use \LaTeX s internal
+format, e.g., ~\@roman\c@linenumber~.)
+
+\subsubsection{Deeper customization}
+
+The line number is attached to the line by the macro
+\begin{quote}
+ ~\makeLineNumber~
+\end{quote}
+which is expanded inside a zero width ~\hbox~ alligned to the
+origin of the current line (left edge, baselines alligned). You can
+do anything in this macro. Let's assume you do not want line numbers
+at all, but just attach something else to each line of text: this is
+the macro to modify. You can refer to the line number by the macro
+~\LineNumber~, which prints the current value of the counter
+~{linenumber}~, or nothing if \emph{modulo} mode is active, and the
+number does not divide by ~{linenumbermodulo}~. You should not modify
+this macro when using any form of \emph{pagewise} mode. At the end of
+this paragraph I put the following
+\begin{runninglinenumbers}
+\renewcommand\makeLineNumber
+ {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}
+\end{runninglinenumbers}
+\begin{quote}
+ ~\begin{runninglinenumbers}~\\
+ ~\renewcommand\makeLineNumber~\\
+ ~ {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}~\\
+ ~\end{runninglinenumbers}~
+\end{quote}
+
+Redefining ~\makeLineNumber~ cuts deep into the linenumber mode
+setting. If you still want to use the basic modes \emph{running} and
+\emph{pagewise} you should go one level up and modify one of the
+following macros, which are called by (or assigned to)
+~\makeLineNumber~ depending on the current mode, and with the counter
+~{linenumber}~ allready adjusted for the current page when using
+\emph{pagewise} mode.
+\begin{quote}\obeylines
+ ~\makeLineNumberRunning~
+ ~\makeLineNumberOdd~
+ ~\makeLineNumberEven~
+\end{quote}
+The first is used in \emph{running} mode, the other two in
+\emph{pagewise} mode. If you modify those, you cut into the
+margin selection mechanism as advertised above. You will have to call
+a mode selection command after changing these macros, to make them take
+effect (at least for ~\makeLineNumberRunning~).
+
+You can go up one more step. The margin selection commands redefine
+the above macros by making them equivalent (~\let~) to one of the
+following macros
+\begin{quote}\obeylines
+ ~\makeLineNumberLeft~
+ ~\makeLineNumberRight~
+\end{quote}
+You may redefine these, and afterwards issue a margin selection
+command followed by a mode selection command. The default definitions
+are
+\begin{quote}
+ ~\def\makeLineNumberLeft~\\
+ ~ {\hss\linenumberfont\LineNumber\hskip\linenumbersep}~
+\end{quote}
+and
+\begin{quote}
+ ~\def\makeLineNumberRight~\\
+ ~ {\linenumberfont\hskip\linenumbersep\hskip\textwidth~\\
+ ~ \hbox to\linenumberwidth{\hss\LineNumber}\hss}~
+\end{quote}
+Whatever you do, use ~\LineNumber~ to print the digits. This ensures
+that the modulo mode setting is acknowledged. If you want to
+customize that as well, this is the macro to change. ~\LineNumber~
+eventually refers to ~\thelinenumber~, which is the place to customize
+the numerals themselves. At the end of this paragraph I said
+\renewcommand\LineNumber{\ifodd\value{linenumber} \thelinenumber)\fi}
+\begin{quote}
+ ~\renewcommand\LineNumber~\\
+ ~ {\ifodd\value{linenumber} \thelinenumber)\fi}~
+\end{quote}
+Line number references are not affected by ~\LineNumber~, but you
+should keep track of ~\thelinenumber~. Look at the following
+reference
+\begin{quote}
+ The setion title of the next section is on page \pageref{ll1}, line
+ \ref{ll1}.
+\end{quote}
+There is a mismatch in the definition of ~\thelinenumber~, from the
+point of the refered line to the reference here.
+\end{pagewiselinenumbers}
+
+\begin{pagewiselinenumbers}
+
+\section[Line number references]
+ {Line number references\linelabel{ll1}}
+
+\lineno.sty allows to refer to a line number with ~\ref{~<label>~}~.
+The label is set by ~\linelabel{~<label>~}~, anywhere in a paragraph
+that gets line numbers. If you put a ~\linelabel~ somewhere else, the
+line number it refers to is pretty meaningless, but no error message
+is issued. (This section begins on line \ref{ll1}, page
+\pageref{ll1} and ends on line \ref{ll2}, page \pageref{ll2}.)
+
+References work both in \emph{running} and \emph{pagewise} modes.
+However, you have to be very careful when using both \emph{real
+ pagewise} mode and \emph{running pagewise} mode: The mode setting
+must be the same during reference as during labeling.
+
+The restrictions on placing a ~\linelabel~ are the same as for a
+~\marginpar~. (In fact, they are implemented as fake ~\marginpar~s.)
+E.g., the linelabel on the section header of this chapter could not be
+placed in the straight forward way, because it would cause an error in
+the table of contents. (It should be disabled during \emph{toc}
+processing.) Instead, I typed
+\begin{quote}
+ ~\section[Line number references]~\\
+ ~ {Line number references\linelabel{ll1}}~
+\end{quote}
+This works fine, with the standard \LaTeX\ ~{article}~ document
+style. If more generic markup is required, you should avoid things
+like this (you should avoid \lineno.sty altogether, in that case).
+
+~\linelabel~ does not work in display math. (Why, you do not use
+equation numbers?)
+
+The ~\linelabel~ command starts a new paragraph if it is issued after
+an empty line. It will properly ignore further whitespace before the
+first word of text. Thus you can easily get a label to the first line
+of a paragraph.
+
+Furthermore, ~\linelabel~ uses \LaTeX s standart tricks to avoid
+unnecessary spaces if you place is between two words with spaces
+around, but you should not do that anyway, if you want to make sure
+that the label applies to a certain word in the text. You should
+attach the line label to the word in question without intervening
+spaces, either before of after the word. If you leave spaces both
+before and after the ~\linelabel~ command, the current implemenation
+attaches the line label to the following word (by ignoring the
+trailing space).
+
+Special care should be taken at the end of a paragraph. You better
+put the line label without intervening spaces behind the period, like
+this
+\begin{quote}
+ ~This is the end of this section.%~\\
+ ~\linelabel{ll2}~
+\end{quote}
+This is the end of this section.%
+\linelabel{ll2}
+
+\end{pagewiselinenumbers}
+
+\begin{linenumbers*}
+
+
+\section{Known incompatibilities}
+
+This section will expand whenever somebody discovers problems when
+using \lineno.sty together with other \LaTeX\ packages.
+
+\subsection{\texttt{wrapfig.sty}}
+
+\lineno.sty used to have problems with \texttt{wrapfig.sty}, but this
+is solved but \lineno.sty, version 2.05.
+
+
+\section{Extension packages}
+
+The extension packages were abolished with version v3.00 of
+\lineno.sty. One package, ~itemrule.sty~, was dropped, the others
+were put directly into the the main \lineno.sty package file.
+
+\subsection{Display math, \texttt{\itshape mlineno}}
+
+\lineno.sty does not work well with display math. The parts of a
+paragraph preceeding a display math will not get line numbers. The
+reason is that the paragraph is not finished, but the part above the
+display is broken into lines anyway.
+
+Let me demonstrate the effect. This paragraph contains a
+~{displaymath}~ environment. The part before the Formula does not get
+line numbers. Here comes the Formula
+\begin{displaymath}
+ \mathrm{6\,H_2O + 6\,CO_2 \ \rightarrow\ C_6H_{12}O_6 + 6\,O_2}
+\end{displaymath}
+which makes the line numbers disappear. The trailing part of the
+paragraph does get line numbers.
+
+There are several means to solve the problem, but none of them is
+fully satisfactory. \lineno.sty defines a ~{linenomath}~ environment,
+which can be wrapped around a display math to make the line numbering
+work. This will work with any kind of display math, even if you use
+explicit ~$$~ pairs. There is a ~*~-form ~{linenomath*}~ which also
+numbers the lines of the display itself, as good as it can. Here
+comes an example use of ~{linenomath*}~
+\begin{linenomath*}
+\begin{eqnarray*}
+ b_1 &=& a_{11}x_1 + a_{12}x_2 \\
+ b_2 &=& a_{21}x_1 + a_{22}x_2
+\end{eqnarray*}
+\end{linenomath*}
+wrapping an ~{egnarray*}~ like this
+\begin{quote}
+ ~\begin{linenomath*}~\\
+ ~ \begin{eqnarray*}~\\
+ ~ b_1 &=& a_{11}x_1 + a_{12}x_2 \\~\\
+ ~ b_2 &=& a_{21}x_1 + a_{22}x_2~\\
+ ~ \end{eqnarray*}~\\
+ ~\end{linenomath*}~
+\end{quote}
+Specifying the package option ~[mathlines]~, causes the
+~{linenomath}~ environment to switch its function with its *-form.
+This allows you to later decide if you want the numbers on the formulas
+or not, without putting in stars everywhere (as long as you have been
+consistent).
+
+The ~{linenomath}~ wrapper does nothing if line numbering is not
+activated. You do not need to remove them if you decide to omit the
+line numbering later (although you still have to load \lineno.sty).
+
+The \texttt{\itshape mlineno} extension redefines the standard \LaTeX\
+display math environments to wrap themselves automatically into
+~{linenomath}~:
+\begin{quote}\obeylines
+ ~\[~ ~\]~
+ ~{displaymath}~
+ ~{equation}~
+ ~{eqnarray}~
+ ~{eqnarray*}~
+\end{quote}
+As of version 3.00 you can activate this by the package option
+~[displaymath]~. You can keep existing explicit ~{linenomath}~
+wrappers without harm.
+
+This will probably not work with AMSmath.
+
+Other solutions to make \lineno.sty work with display math are either
+ugly or less stable. The ugly possibility is to precede every display
+math with an empty line, or better with
+\begin{quote}
+ ~{\par\nobreak\noindent}~
+\end{quote}
+but this gains you nothing compared to using the ~{linenomath}~
+environment, since you still have to modify your document.
+
+\end{linenumbers*}
+
+
+\subsection{\texttt{\itshape rlineno}}
+
+\begin{runninglinenumbers}
+It is currently not possible to put a ~\linelabel~ into math mode.
+This should not impose problems with inline math, since you can attach
+the label just outside the math shift, like\linelabel{rll1}
+\begin{quote}
+ ~... \linelabel{~<label>~}$x=f(y)$ ...~
+\end{quote}
+but to refer to a line in display math, you cannot label it directly.
+\end{runninglinenumbers}
+
+\begin{pagewiselinenumbers}
+The extension \texttt{\itshape rlineno} offers a solution,
+allowing to refer to a line number with an offset.
+
+This extension is now available with plain \lineno.sty v3.00.
+
+You put the ~\linelabel~ at the end of the preceeding line, and refer
+to that number, plus 1 or, in case of multiline displays, by any other
+offset.\linelabel{rll2}
+\begin{quote}
+ ~...\linelabel{~<label>~}~ \\
+ ~\begin{equation}~ \\
+ ~ y=f'(x)~ \\
+ ~\end{equation}~ \\
+ ~... the formula in line \lineref[+1]{~<label>~}~
+\end{quote}
+The offset calculation is different for pagewise or running line
+numbers, and you will have to make sure the right method is used.
+\end{pagewiselinenumbers}
+
+The macro ~\lineref[~<offset>~]{~<label>~}~ uses the method of the
+currently selected mode (line numbering need not be activated). To
+specify the mode explicitly, use ~\linerefr~ or ~\linerefp~ for
+running or pagewise mode respectively.
+
+For example, the manual sets a ~\linelabel{rll1}~ at the end of the
+line preceeding the single line quote environment at
+line\,\linerefr[+1]{rll1} in the first paragraph of this chapter, and
+refered to it via
+\begin{quote}
+ ~\linerefr[+1]{rll1}~
+\end{quote}
+and another one preceeding the quote environment in the second
+paragraph of this chapter, with the central line
+numbered\,\linerefp[+3]{rll2}, which I just refered to via
+\begin{quote}
+ ~\linerefp[+3]{rll2}~
+\end{quote}
+\begin{runninglinenumbers}
+If the correct mode is selected (e.g., ~\setrunninglinenumbers~),
+you can use ~\lineref[+1]{rll1}~ to refer to
+line\,\lineref[+1]{rll1}.
+\end{runninglinenumbers}
+
+
+\subsection{\texttt{\itshape numquote}}
+
+This extension defines two environments, each of them with a *-form or
+alternatively an optional argument.
+\begin{quote}\obeylines
+ ~\begin{numquote}~
+ ~\end{numquote}~
+\end{quote}
+is like ~{quote}~,
+\begin{quote}\obeylines
+ ~\begin{numquotation}~
+ ~\end{numquotation}~
+\end{quote}
+is like ~{quotation}~, but with the lines numbered. Numbering
+restarts with 1 each time it is used, except you use the *-form, or
+specify the line number to start with in an optional argument.
+\begin{numquote}
+The line numbers set to the left of the text, indented by the same
+amount as the quote or quotation. This works as expected even if the
+quote appears in a nested list.
+\end{numquote}
+To customize the distance from the text or the shape of the
+numbers, you can modify the macros ~\quotelinenumbersep~ and
+~\quotelinenumberfont~ respectively.
+
+As of version 3.00, this is available directly with \lineno.sty.
+
+\clearpage
+
+\subsection{\texttt{\itshape ilineno}}
+\label{sec:ilineno}
+
+\begin{center}
+\noindent\fbox{\parbox{0.8\textwidth}{
+ \internallinenumbers \resetlinenumber[13]
+ Sometimes you need line numbers within a |\parbox\ or figure. This
+ extension can do that, if the text is simple enough. It works by
+ drawing a ladder of numbers next to the paragraph, each number
+ vertically separated by |\baselineskip\ from the other. This
+ obviously dose not work nicely with anything but straight text.
+ Extra high lines (like this: $\displaystyle x=\frac AB$) will
+ disturb the alignment. The power of \lineno.sty is not necessary to
+ achieve this, but you may need both in one document with a somewhat
+ coherent interface, and some of the necessary infrastructure from
+ \lineno.sty is actually useful.
+}}\end{center}
+% Why is the v-spacing wrong here?
+
+The preceding paragraph was set like this:
+\begin{quote}
+ ~\begin{center}\fbox{\parbox{0.8\textwidth}{~ \\
+ ~\internallinenumbers~ \\
+ ~\resetlinenumber[13]~ \\
+ ~ ~ Sometimes you need \dots \\
+ ~}}\end{center}~
+\end{quote}
+
+\subsection{\texttt{\itshape itemrule.sty}}
+
+Somebody asked me if he can get a rule next to an itemized item, from
+the bullet downwards. This style did that. It was unstable and of
+little interest, so it is gone from the \lineno.sty distribution.
+
+\subsection{\texttt{\itshape bframe}}
+\label{sec:bframe}
+
+\setlength\bframesep{10pt}
+\begin{bframe}
+\lineno.sty can be used for unexpected purposes. The environment
+\begin{quote}\obeylines
+ ~\begin{bframe}~
+ ~\end{bframe}~
+\end{quote}
+draws boxes around some text, even across page breaks. At a page
+break, the box is open (it is difficult to fix that). There are two
+parameters:
+\begin{description}\itemsep=0pt\parskip=0pt
+\item [|\bframesep] \leavevmode\\
+ defines the separation of the box from the text.
+\item [|\bframerule] \leavevmode\\
+ defines the thickness of the lines around the text.
+\end{description}
+
+It works by asking \lineno.sty to draw small rules left and right to
+the lines. The total height of the rules is ~\baselineskip~ plus
+~\bframesep~. This leaves some extra space for extra high lines.
+
+The current version is very preliminary. In a future version there
+may be a possibility to move the vertical lines inwards for indented
+text. The box may optionally be closed at page breaks. It will not
+likely be possible to have a colored background in the box, at least
+not with a graphics driver that cannot put a background behind
+existing foreground (Postscript cannot, I've been told). Tell me how
+to make a gray background, like block dots on transparent, and I can
+do shaded boxes.
+
+\end{bframe}
+
+\section{How to print the documented source}
+
+\begin{bframe}
+\lineno.sty is written in three programming languages: \TeX, sh,
+and awk.
+
+The file can be loaded as a \LaTeXe\ package as it is. However, if
+you feed it into a Unix shell, like
+\begin{quote}
+ ~csh> source ./lineno.sty~
+\end{quote}
+it will produce the files ~lineno.tex~ and ~lineno.dvi~, which is the
+documented source of \lineno.sty. If you want to learn how it works,
+or you need to adapt \lineno.sty for some special requirements, you
+should read that document.
+\end{bframe}
+
+\end{document}