Annotation of ttbar/p20_taujets_note/ulineno.tex, revision 1.1

1.1     ! uid12904    1: % Copyright 1995--1999 Stephan I. B"ottcher <stephan@nevis1.columbia.edu>
        !             2: %
        !             3: % This program can be redistributed and/or modified under the terms
        !             4: % of the LaTeX Project Public License Distributed from CTAN
        !             5: % archives in directory macros/latex/base/lppl.txt; either
        !             6: % version 1 of the License, or any later version.
        !             7: %
        !             8: % $Id: ulineno.tex,v 3.1 2001/08/03 03:29:19 stephan Exp $
        !             9: %
        !            10: % 1999-06-11 SiB: updated for lineno.sty v3.00
        !            11: 
        !            12: \documentclass[12pt,a4paper,titlepage]{article}
        !            13: 
        !            14:                                               \date{\def\$##1: ##2 ##3${##2}%$
        !            15:                                                                       Version 
        !            16:    \$Revision: 3.1 $, 
        !            17:    \$Date: 2001/08/03 03:29:19 $
        !            18:                                                                              }
        !            19:                                  \def\lineno.sty{\texttt{\itshape lineno.sty}}
        !            20: 
        !            21: 
        !            22: \title{           \lineno.sty
        !            23: \\                Users Manual
        !            24: }
        !            25: \author{      Stephan I. B\"ottcher
        !            26: }
        !            27: 
        !            28: \usepackage{lineno}
        !            29: \usepackage{url}
        !            30: 
        !            31: \def~{\verb~}
        !            32: \catcode`\<\catcode`\~
        !            33: \def<#1>{$\langle${\itshape#1}\/$\rangle$}
        !            34: \catcode`\|\catcode`\~
        !            35: \def|#1{{\ttfamily\string#1}}
        !            36: \def\NL{<number>]}
        !            37: 
        !            38: \begin{document}
        !            39: \begin{runninglinenumbers}
        !            40: \renewcommand\linenumberfont{\normalfont\small\bfseries}
        !            41: \setlength\linenumbersep{1cm}
        !            42: \maketitle
        !            43: \thispagestyle{empty}
        !            44: \resetlinenumber
        !            45: \tableofcontents
        !            46: \clearpage
        !            47: \setcounter{page}{1}
        !            48: \pagewiselinenumbers
        !            49: 
        !            50: \section{When to use \lineno.sty}
        !            51: 
        !            52: The primary use of \lineno.sty is to get line numbers in your LaTeX
        !            53: document.  \lineno.sty directly supports line numbers in various
        !            54: modes, and if you have any wishes that are not directly supported,
        !            55: chances are good that \lineno.sty can be adapted to do it.  And if it
        !            56: turns out to be difficult with \lineno.sty, then it will be even more
        !            57: difficult without.
        !            58: 
        !            59: There is one class of cases however, where \lineno.sty is not the most
        !            60: appropriate tool.  When your text already comes in lines, like source
        !            61: listings, tables, poetry,  then \lineno.sty will propably do the job,
        !            62: but other tools could do it much more efficiently.
        !            63: 
        !            64: \lineno.sty can only number lines in the main text.  Lines in any kind
        !            65: of boxes cannot be numbered.  But see section \ref{sec:ilineno} below.
        !            66: 
        !            67: \lineno.sty is especially useful when the text is broken into lines by
        !            68: \TeX\ itself.  In this case, the task to attach line numbers is not
        !            69: easy, and a tool like \lineno.sty has good chances to break when used
        !            70: together with other packages.
        !            71: 
        !            72: On the other hand, \lineno.sty proved to be quite stable, and I did
        !            73: not get any reports of complete failure yet.
        !            74: 
        !            75: With \lineno.sty, you can refer to the line numbers via \LaTeX s
        !            76: ~\ref~ and ~\pageref~ macros.
        !            77: 
        !            78: There are other applications, not directly related to line numbering.
        !            79: Whenever you want to attach something to your text, after a paragraph
        !            80: was broken into lines, across pagebreaks, lineno may do the job.
        !            81: 
        !            82: \begin{bframe}
        !            83:   Say, you need a frame around some text, but the text should be able
        !            84:   to break across pages, \lineno.sty can be used to draw rules on both
        !            85:   margins, which can be completed at the top and bottom by some
        !            86:   special environment, see section\,\,\ref{sec:bframe}.
        !            87: \end{bframe}
        !            88: 
        !            89: There may be cases, where other packages do a better job, e.g.,
        !            90: \url{CTAN:macros/latex/contrib/supported/numline}.
        !            91: 
        !            92: 
        !            93: \section{Where to get \lineno.sty}
        !            94: 
        !            95: \lineno.sty is available on the \emph{Comprehensive TeX Archive
        !            96:   Network} (CTAN), e.g, \url{ftp:// ftp.tex.ac.uk/ tex-archive/
        !            97:   macros/ latex/ contrib/ supported/ lineno/ lineno.sty}.
        !            98: 
        !            99: The home of \lineno.sty is \url{http:// www.nevis.columbia.edu/
        !           100:   ~stephan/ tex/ #lineno}.  Here you can get the latest version.
        !           101: 
        !           102: \end{runninglinenumbers}
        !           103: 
        !           104: \section{How to use \lineno.sty}
        !           105: 
        !           106: As any other \LaTeXe\ package, you need to load it with
        !           107: \begin{quote}
        !           108:    ~\usepackage[~<options>~]{lineno}~
        !           109: \end{quote}
        !           110: 
        !           111: \subsection{Package options}
        !           112: 
        !           113: The available <options> are:
        !           114: \begin{description}
        !           115: 
        !           116: \item[\texttt{[left]}:]  Put the line numbers into the left margin
        !           117:   (default). 
        !           118: 
        !           119: \item[\texttt{[right]}:]  Put the line numbers into the right margin.
        !           120: 
        !           121: \item[\texttt{[switch]}:]  Put the line numbers into the outer margin
        !           122:   (left on even numbered pager, right on odd numbered pages).
        !           123: 
        !           124: \item[\texttt{[switch*]}:]  Put the line numbers into the inner
        !           125:   margin.
        !           126:   
        !           127: \item[\texttt{[pagewise]}:] Number the lines from 1 on each page.
        !           128: 
        !           129: \item[\texttt{[running]}:]  Continuously number the lines (default).
        !           130:   
        !           131: \item[\texttt{[modulo]}:] Print line numbers only if they are
        !           132:   multiples of five.
        !           133: 
        !           134: \item[\texttt{[mathlines]}:]  When using the ~{linenomath}~
        !           135:   environment for display math, put line numbers also on the lines of
        !           136:   the display.
        !           137: 
        !           138: \item[\texttt{[displaymath]}:]  Automatically wrap the standard LaTeX
        !           139:   display math environments in ~{linenomath}~.
        !           140: 
        !           141:   \begin{itshape}
        !           142:     Change from v2 to v3:  ~[mathlines]~ was called ~[displaymath]~
        !           143:     before, and ~[displaymath]~ was ~\usepacke{mlineno}~.
        !           144:   \end{itshape}
        !           145:   
        !           146: \end{description}
        !           147: All effects of these option can also be obtained by calling certain
        !           148: macros later in the document, except for ~[displaymath]~.
        !           149: 
        !           150: \subsection{How to turn on line numbering}
        !           151: 
        !           152: The line numbering is not activated by default.  If you want line
        !           153: numbers, you have to turn it on.  The simplest way is to say
        !           154: \begin{quote}
        !           155:     ~\linenumbers~
        !           156: \end{quote}
        !           157: This will turn on line numbers within the current group, according to
        !           158: the currently selected mode.  If you do it right at the beginning, the
        !           159: whole document will be numbered.
        !           160: 
        !           161: ~\linenumbers~ takes effect only when a paragraph is finished.  This
        !           162: is important if you use ~\linenumbers~ for a single paragraph only.
        !           163: This will \emph{not} work:
        !           164: \begin{quote}\obeylines
        !           165:    ~\begingroup~\\%
        !           166:    ~\linenumbers~
        !           167:      Text of your paragraph.
        !           168:    ~\endgroup~
        !           169: \end{quote}
        !           170: because the ~\endgroup~ terminates the effect of ~\linenumbers~ before
        !           171: the paragraph is finished.  The solution is to insert an empty line,
        !           172: or an explicit ~\par~ before the ~\endgroup~.
        !           173: 
        !           174: The prefered solution is to use an enviroment:
        !           175: \begin{quote}\obeylines
        !           176:    ~\begin{linenumbers}~ 
        !           177:      Text of your paragraph. 
        !           178:    ~\end{linenumbers}~
        !           179: \end{quote}
        !           180: ~\end{linenumbers}~ terminates the paragraph for you.  It will also
        !           181: make sure that the next paragraph is not indented, if there is no
        !           182: empty line in between.
        !           183: 
        !           184: This form will not finish any preceeding paragraph.  If you do not
        !           185: leave an empty line before ~\begin{linenumbers}~, the previous
        !           186:   paragraph may also get line numbers (this is not true after a list
        !           187:   environment).
        !           188: 
        !           189: A quite esoteric form to number a single paragraph is:
        !           190: \begin{quote}\obeylines
        !           191:      Text of your paragraph.
        !           192:      ~{\linenumbers\par}~
        !           193: \end{quote}
        !           194: Here, the ~\linenumbers~ is turned on in a group that just executes
        !           195: the ~\par~ to terminate the previous paragraph.  Only this paragraph
        !           196: will have line numbers. (~\par~ is exactly equivalent to an empty
        !           197: line).
        !           198: 
        !           199: 
        !           200: \subsection{How to turn off line numbering}
        !           201: 
        !           202: You do not usualy turn of line numbering explicitly, but rather
        !           203: restrict line numbering to a group or an environment.  However, you
        !           204: can turn it off with the command
        !           205: \begin{quote}
        !           206:    ~\nolinenumbers~
        !           207: \end{quote}
        !           208: This macro can also be used as an environment.  The same restrictions
        !           209: apply as for ~\linenumbers~.
        !           210: 
        !           211: 
        !           212: \section{Numbering modes}
        !           213: 
        !           214: Attaching line numbers after \TeX\ has broken the paragraph into lines
        !           215: is already quite a difficult job for \TeX.  Why?  Because \TeX\ does
        !           216: not normally give you any control after line breaking.  \lineno.sty
        !           217: does it by pretending that the current page ends after each and every
        !           218: line.  This keeps \TeX\ quite busy, but works.
        !           219: 
        !           220: Often, you want the line numbers to depend on the page they finally end
        !           221: up.  E.g., you want the numbers to start with~ ~1 one each new page,
        !           222: or you want them to appear on the outer margins in twoside mode.  This
        !           223: is an almost impossible demand, but \lineno.sty can do it, at some
        !           224: cost, in terms of computing time, memory, and disk space.  \lineno.sty
        !           225: needs to write a note into the auxiliary file for each line in the
        !           226: numbered part of the text, and \TeX\ keeps some memory for each page,
        !           227: and all that takes some computation time to figure out on which page
        !           228: the line was in the last \LaTeX\ run.
        !           229: 
        !           230: Thus, there are two basic numbering modes
        !           231: \begin{enumerate}
        !           232:   
        !           233: \item \emph{Running} line numbers.  The numbers run continuously along
        !           234:   the document, without considering page breaks.  
        !           235:   
        !           236:   The line numbers can be reset, or preset at any point in the
        !           237:   document (except within a paragraph).  Margin switching (or any
        !           238:   other dependence on the page breaks) is not possible.
        !           239:   
        !           240: \item \emph{Pagewise} line numbers.  The lines on each page are
        !           241:   numbered from one.  Automatic margin switching is possible.
        !           242: 
        !           243:   \emph{Running} mode can be simulated in pagewise mode, to get
        !           244:   automatic margin switching with continuous line numbers, but without
        !           245:   the ability to reset/preset the line numbers anywhere in the
        !           246:   document.  
        !           247:   
        !           248:   Any feature that depends on the page breaks must use this mode.
        !           249: 
        !           250: \end{enumerate}
        !           251: 
        !           252: \begin{runninglinenumbers*}
        !           253: 
        !           254: \subsection{\emph{Running} line numbers}
        !           255: 
        !           256: This is the default mode of operation.  The lines of your text are
        !           257: numbered continuously across page breaks.  
        !           258: 
        !           259: You cannot get automatic margin switching in this mode, because at the
        !           260: time when the line numbers are attached, it is not yet decided on
        !           261: which page the line will end up.  However, you can simulate continuous
        !           262: line numbers in \emph{pagewise} mode (see below), where margin
        !           263: switching becomes possible.
        !           264: 
        !           265: You get this mode by
        !           266: \begin{itemize}\raggedright
        !           267: \item \emph{not} specifying any of the package options
        !           268:   ~[switch,pagewise]~,
        !           269: \item specifying the package option ~[running]~,
        !           270: \item give the command ~\setrunninglinenumbers~ in the document, or
        !           271: \item turn on line numbering with ~\runninglinenumbers~ or
        !           272:   ~\begin{runninglinenumbers}~. 
        !           273: \end{itemize}
        !           274: 
        !           275: \subsubsection{Reseting or setting the line number}
        !           276: 
        !           277: You can reset the line number with
        !           278: \begin{quote}
        !           279:   ~\resetlinenumber[~<number>~]~
        !           280: \end{quote}
        !           281: where the default is to reset the line number to one.
        !           282: 
        !           283: Alternatively, you can give the line number in an optional argument to
        !           284: any command that turns on the line numbering in this mode:
        !           285: \begin{quote}\obeylines
        !           286:   ~\linenumbers[~<number>~]~ 
        !           287:   ~\runninglinenumbers[~<number>~]~ 
        !           288:   ~\begin{linenumbers}[~<number>~]~
        !           289:   ~\begin{runninglinenumbers}[~<number>~]~
        !           290: \end{quote}
        !           291: or reset the line number to 1 with any of the following:
        !           292: \begin{quote}\obeylines
        !           293:   ~\linenumbers*~ 
        !           294:   ~\runninglinenumbers*~ 
        !           295:   ~\begin{linenumbers*}~
        !           296:   ~\begin{linenumbers}*~
        !           297:   ~\begin{runninglinenumbers*}~
        !           298:   ~\begin{runninglinenumbers}*~
        !           299: \end{quote}
        !           300: This section of the manual is enclosed in
        !           301: \begin{quote}\obeylines
        !           302:   ~\begin{runninglinenumbers*}~
        !           303:   ~\end{runninglinenumbers*}~
        !           304: \end{quote}
        !           305: \end{runninglinenumbers*}
        !           306: 
        !           307: 
        !           308: \begin{pagewiselinenumbers}
        !           309: 
        !           310: \subsection{\emph{Pagewise} line numbers}
        !           311: 
        !           312: Basically, this mode prints line numbers starting with 1 on top of
        !           313: each page, counting only lines where this mode is active.  If you
        !           314: turn on this mode in the middle of a page, the numbers start with 1
        !           315: at that point.
        !           316: 
        !           317: The \emph{pagewise} mode of operation is quite a bit more work for
        !           318: \TeX.  When the line numbers are printed, \TeX\ does not know on which
        !           319: page the current line will go.  To get \emph{pagewise} mode working,
        !           320: \LaTeX\ has to remember on which page the line went in a previous run.
        !           321: This information is written into the ~.aux~ file, and like a table of
        !           322: contents, you will not see the numbers until you run \LaTeX\ at least
        !           323: twice on the document.  Sometimes the information in the ~.aux~ file
        !           324: becomes invalid in a way that causes \lineno.sty to hang.  In such a
        !           325: case you'll have to delete all ~.aux~ files of the document to get it
        !           326: going again.
        !           327: 
        !           328: You get this mode by
        !           329: \begin{itemize}\raggedright
        !           330: \item specifying the package option
        !           331:   ~[pagewise]~, but not ~[running]~,
        !           332: \item give the command ~\setpagewiselinenumbers~ in the document, or
        !           333: \item turn on line numbering with ~\pagewiselinenumbers~ or
        !           334:   ~\begin{pagewiselinenumbers}~. 
        !           335: \end{itemize}
        !           336: 
        !           337: You cannot reset or preset the line numbers in \emph{pagewise} mode.
        !           338: This mode uses a different counter than \emph{running} mode.  You can
        !           339: switch between the mode, and the \emph{running} numbers will continue
        !           340: where they left of, unless you reset the counter.
        !           341: 
        !           342: \subsubsection{Margin switching}
        !           343: 
        !           344: As a side effect of all the business to find out on which page the lines
        !           345: end up, margin switching becomes possible.  It is now possible to
        !           346: print the line number differently on odd and even pages.  The command
        !           347: \begin{quote}
        !           348:   ~\switchlinenumbers~
        !           349: \end{quote}
        !           350: will cause the line numbers to be printed on the outer margins, on the
        !           351: right side for odd pages, and on the left side for even numbered
        !           352: pages.  If you add a star, the numbers go on the inner margins
        !           353: \begin{quote}
        !           354:   ~\switchlinenumbers*~
        !           355: \end{quote}
        !           356: You can achieve the same effect by specifying the package
        !           357: option ~[switch]~ or ~[switch*]~ together with ~[pagewise]~. 
        !           358: 
        !           359: Margin switching is independent of any ~[twoside]~ option of the
        !           360: document class.
        !           361: 
        !           362: \subsubsection{\emph{Running} mode with margin switching}
        !           363: 
        !           364: Margin switching is not possible in \emph{running} mode, but you can
        !           365: abuse the pagewise mode to produce continuous line numbers.  This mode
        !           366: is activated with the command
        !           367: \begin{quote}
        !           368:   ~\runningpagewiselinenumbers~
        !           369: \end{quote}
        !           370: It is not possible to reset the line number counter for this mode, the
        !           371: lines will be numbered starting from one at the beginning of the
        !           372: document, and continue.  You can switch back to real pagewise mode with
        !           373: \begin{quote}
        !           374:   ~\realpagewiselinenumbers~
        !           375: \end{quote}
        !           376: but when you resume \emph{running-pagewise}, the numbers will not
        !           377: continue where they left off, but jump by the number of lines that
        !           378: were numbered \emph{real-pagewise}.
        !           379: 
        !           380: The package options ~[switch]~ and ~[switch*]~ will turn on
        !           381: \emph{running pagewise} mode with margin switching, unless you also
        !           382: specify ~[pagewise]~.
        !           383: 
        !           384: Finally, if you give these options together with ~[running]~, like
        !           385: \begin{quote}
        !           386:   ~\usepackage[switch,pagewise,running]{lineno}~
        !           387: \end{quote}
        !           388: the mode is set to plain \emph{running} line numbers, but later in
        !           389: your document, if you say ~\pagewiselinenumbers~, the setings of the
        !           390: ~[switch]~ and ~[pagewise]~ options will take effect.
        !           391: 
        !           392: \subsubsection{Page numbers}
        !           393: 
        !           394: Any pages that contain \emph{pagewise} numbered lines must have a
        !           395: different page number.  This may cause trouble with titlepages or
        !           396: simmilar fudging with the page number counter in the document.  (I am
        !           397: talking about ~\c@page~ or ~\count 0~ here, not ~\thepage~).
        !           398: 
        !           399: If you get strange errors, like \emph{``the use of} ~\nextLN~
        !           400: \emph{does not match its definition''}, you should first delete all
        !           401: ~.aux~ files, and rerun \LaTeX\ several times.  If the error does not
        !           402: reappear, fine, else check your page numbers, including those that are
        !           403: not printed.  You may use \emph{running} line numbers on your
        !           404: titlepages, since the page boundaries are predefined, usually.
        !           405: 
        !           406: \end{pagewiselinenumbers}
        !           407: 
        !           408: \begin{linenumbers*}
        !           409: 
        !           410: \subsection{Margin selection}
        !           411: 
        !           412: In any mode you can select a fixed margin on which the numbers shall
        !           413: be printed.  You can either give a package option ~[left]~ or
        !           414: ~[right]~, or change the margin within the document with
        !           415: \begin{quote}\obeylines
        !           416:   ~\leftlinenumbers~
        !           417: \rightlinenumbers
        !           418:   ~\rightlinenumbers~
        !           419: \end{quote}
        !           420: \rightlinenumbers
        !           421: Neither of these commands actually turns on line numbering.  The
        !           422: margin setting is changed for the currently selected mode
        !           423: \emph{running} or \emph{pagewise}.  If you want to set the margin for
        !           424: both modes, append a star
        !           425: \begin{quote}\obeylines
        !           426:   ~\leftlinenumbers*~
        !           427:   ~\rightlinenumbers*~
        !           428: \end{quote}
        !           429: The default is ~\leftlinenumbers*~.
        !           430: 
        !           431: \end{linenumbers*}
        !           432: 
        !           433: 
        !           434: \subsection{Summary of mode selection commands}
        !           435: 
        !           436: The following commands change the major line numbering mode.
        !           437: \begin{description}\itemsep=0pt\parskip=0pt
        !           438: \item [|\setrunninglinenumbers]
        !           439: \item [|\setpagewiselinenumbers] \leavevmode\\
        !           440:   set the current mode, without activating or deactivating line
        !           441:   numbering. 
        !           442: \item [|\runninglinenumbers\texttt{*[\NL}]
        !           443: \item [|\pagewiselinenumbers] \leavevmode\\
        !           444:   set the current mode and activate line numbering, optionally reset
        !           445:   (~*~), or set the line number for \emph{running} mode. 
        !           446: \end{description}
        !           447: The following commands do not change the major mode, but modify the
        !           448: the behaviour of \emph{pagewise} mode
        !           449: \begin{description}\itemsep=0pt\parskip=0pt
        !           450: \item [|\realpagewiselinenumbers]
        !           451: \item [|\runningpagewiselinenumbers] \leavevmode\\
        !           452:   select if \emph{pagewise} mode should number continuously, or really
        !           453:   pagewise.
        !           454: \end{description}
        !           455: 
        !           456: 
        !           457: \subsection{Summary of margin selection commands}
        !           458: 
        !           459: The following command select into which margin the numbers should be
        !           460: printed 
        !           461: \begin{description}\itemsep=0pt\parskip=0pt
        !           462: \item [|\leftlinenumbers\texttt*]
        !           463: \item [|\rightlinenumbers\texttt*] \leavevmode\\
        !           464:   put the line numbers in the left/right margin in both modes.
        !           465: \item [|\leftlinenumbers]
        !           466: \item [|\rightlinenumbers] \leavevmode\\
        !           467:   put the line number into the left/right margin in the currently
        !           468:   selected mode.
        !           469: \item [|\switchlinenumbers] \leavevmode\\
        !           470:   put the line numbers into the outer margin, when using
        !           471:   \emph{pagewise} mode.
        !           472: \item [|\switchlinenumbers\texttt*] \leavevmode\\
        !           473:   put the line numbers into the inner margin, when using
        !           474:   \emph{pagewise} mode.
        !           475: \end{description}
        !           476: 
        !           477: \begin{linenumbers*}
        !           478: \modulolinenumbers[2]
        !           479: 
        !           480: \subsection{Numbering only one in five lines}
        !           481: 
        !           482: You can ask lineno to print the line numbers only if they devide by
        !           483: <n>, by saying
        !           484: \begin{quote}
        !           485:   ~\modulolinenumbers[~<n>~]~
        !           486: \end{quote}
        !           487: If you omit the optional argument, it will be every fifth line, or
        !           488: whatever you used last (the current value of the counter
        !           489: ~linenumbermodulo~).  You get the same effect by giving the package
        !           490: option ~[modulo]~.
        !           491: 
        !           492: If you set <n> to 1, the modulo value is not changed, but modulo
        !           493: numbering is turned off.  
        !           494: 
        !           495: Changing the counter ~linenumbermodulo~ does not turn on modulo
        !           496: numbering, it just changes the modulo, if it is turned on without the
        !           497: optional argument.
        !           498: 
        !           499: This section of the manual is enclosed in
        !           500: \begin{quote}
        !           501:   ~\begin{linenumbers*}~ \\ 
        !           502:   ~\modulolinenumbers[2]~
        !           503: 
        !           504:   ~\end{linenumbers*}~
        !           505: \end{quote}
        !           506: 
        !           507: \end{linenumbers*}
        !           508: 
        !           509: \begin{pagewiselinenumbers}
        !           510: \switchlinenumbers
        !           511: 
        !           512: \subsection{How the line numbers look like}
        !           513: 
        !           514: This section of the manual is enclosed in
        !           515: \begin{quote}
        !           516:  ~\begin{pagewiselinenumbers}~ \\
        !           517:  ~\switchlinenumbers~
        !           518: 
        !           519:  ~\end{pagewiselinenumbers}~
        !           520: \end{quote}
        !           521: By default, the line numbers are set in
        !           522: \begin{quote}
        !           523:   ~\normalfont\tiny\sffamily~
        !           524: \end{quote}
        !           525: right justified to 10\,pt left of the nominal left edge of the text.
        !           526: If the number is to appear on the right margin, it is right justified
        !           527: to 20\,pt right of the nominal right edge of the text.
        !           528: 
        !           529: You can easily change that, of course.  The font is defined by the
        !           530: macro
        !           531: \begin{quote}
        !           532:   ~\linenumberfont~
        !           533: \end{quote}
        !           534: You can redefine it to make the numbers appear in a differnt font
        !           535: (with ~\renewcommand~).  I'll say right here in this manual
        !           536: \renewcommand\linenumberfont{\normalfont\bfseries\small}
        !           537: \begin{quote}
        !           538:   ~\renewcommand\linenumberfont{\normalfont\bfseries\small}~
        !           539: \end{quote}
        !           540: The distance on the left margin can be changed with
        !           541: \begin{quote}
        !           542:   ~\setlength\linenumbersep{~<distance>~}~
        !           543: \end{quote}
        !           544: The distance on the right margin is ~\linenumbersep~ plus
        !           545: ~\linenumberwidth~, both are set to 10\,pt by default.
        !           546: Let's do right here
        !           547: \setlength\linenumberwidth{1cm}
        !           548: \begin{quote}
        !           549:   ~\setlength\linenumbersep{1cm}~
        !           550: \end{quote}
        !           551: I put the command at the end of the paragraph, but it effects the
        !           552: whole paragraph, because that is where everything happens: at the end
        !           553: of the paragraphs.
        !           554: 
        !           555: The line numbers are printed as arabic numerals, as defined in the
        !           556: macro
        !           557: \begin{quote}
        !           558:   ~\thelinenumber~
        !           559: \end{quote}
        !           560: for the \LaTeX\ counter ~{linenumber}~.  You can redefine that, as
        !           561: for any other \LaTeX\ counter.  E.g.,
        !           562: \renewcommand\thelinenumber{\roman{linenumber}}
        !           563: \begin{quote}
        !           564:   ~\renewcommand\thelinenumber{\roman{linenumber}}~
        !           565: \end{quote}
        !           566: (For heavy duty line numbering, you should use \LaTeX s internal
        !           567: format, e.g., ~\@roman\c@linenumber~.)
        !           568: 
        !           569: \subsubsection{Deeper customization}
        !           570: 
        !           571: The line number is attached to the line by the macro
        !           572: \begin{quote}
        !           573:   ~\makeLineNumber~
        !           574: \end{quote}
        !           575: which is expanded inside a zero width ~\hbox~ alligned to the
        !           576: origin of the current line (left edge, baselines alligned).  You can
        !           577: do anything in this macro.  Let's assume you do not want line numbers
        !           578: at all, but just attach something else to each line of text: this is
        !           579: the macro to modify.  You can refer to the line number by the macro
        !           580: ~\LineNumber~, which prints the current value of the counter
        !           581: ~{linenumber}~, or nothing if \emph{modulo} mode is active, and the
        !           582: number does not divide by ~{linenumbermodulo}~.  You should not modify
        !           583: this macro when using any form of \emph{pagewise} mode.  At the end of
        !           584: this paragraph I put the following
        !           585: \begin{runninglinenumbers}
        !           586: \renewcommand\makeLineNumber
        !           587:    {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}
        !           588: \end{runninglinenumbers}
        !           589: \begin{quote}
        !           590:   ~\begin{runninglinenumbers}~\\
        !           591:   ~\renewcommand\makeLineNumber~\\
        !           592:   ~ {\hss$\rightarrow$\ \rlap{\hskip\textwidth\ $\leftarrow$}}~\\
        !           593:   ~\end{runninglinenumbers}~
        !           594: \end{quote}
        !           595: 
        !           596: Redefining ~\makeLineNumber~ cuts deep into the linenumber mode
        !           597: setting.  If you still want to use the basic modes \emph{running} and
        !           598: \emph{pagewise} you should go one level up and modify one of the
        !           599: following macros, which are called by (or assigned to)
        !           600: ~\makeLineNumber~ depending on the current mode, and with the counter
        !           601: ~{linenumber}~ allready adjusted for the current page when using
        !           602: \emph{pagewise} mode.
        !           603: \begin{quote}\obeylines
        !           604:   ~\makeLineNumberRunning~
        !           605:   ~\makeLineNumberOdd~
        !           606:   ~\makeLineNumberEven~
        !           607: \end{quote}
        !           608: The first is used in \emph{running} mode, the other two in
        !           609: \emph{pagewise} mode.  If you modify those, you cut into the
        !           610: margin selection mechanism as advertised above.  You will have to call
        !           611: a mode selection command after changing these macros, to make them take
        !           612: effect (at least for ~\makeLineNumberRunning~).  
        !           613: 
        !           614: You can go up one more step.  The margin selection commands redefine
        !           615: the above macros by making them equivalent (~\let~) to one of the
        !           616: following macros
        !           617: \begin{quote}\obeylines
        !           618:   ~\makeLineNumberLeft~
        !           619:   ~\makeLineNumberRight~
        !           620: \end{quote}
        !           621: You may redefine these, and afterwards issue a margin selection
        !           622: command followed by a mode selection command.  The default definitions
        !           623: are
        !           624: \begin{quote}
        !           625:   ~\def\makeLineNumberLeft~\\
        !           626:   ~  {\hss\linenumberfont\LineNumber\hskip\linenumbersep}~
        !           627: \end{quote}
        !           628: and
        !           629: \begin{quote}
        !           630:   ~\def\makeLineNumberRight~\\
        !           631:   ~  {\linenumberfont\hskip\linenumbersep\hskip\textwidth~\\
        !           632:   ~    \hbox to\linenumberwidth{\hss\LineNumber}\hss}~
        !           633: \end{quote}
        !           634: Whatever you do, use ~\LineNumber~ to print the digits.  This ensures
        !           635: that the modulo mode setting is acknowledged.  If you want to
        !           636: customize that as well, this is the macro to change.  ~\LineNumber~
        !           637: eventually refers to ~\thelinenumber~, which is the place to customize
        !           638: the numerals themselves.  At the end of this paragraph I said
        !           639: \renewcommand\LineNumber{\ifodd\value{linenumber} \thelinenumber)\fi}
        !           640: \begin{quote}
        !           641:    ~\renewcommand\LineNumber~\\
        !           642:    ~   {\ifodd\value{linenumber} \thelinenumber)\fi}~
        !           643: \end{quote}
        !           644: Line number references are not affected by ~\LineNumber~, but you
        !           645: should keep track of ~\thelinenumber~.  Look at the following
        !           646: reference
        !           647: \begin{quote}
        !           648:   The setion title of the next section is on page \pageref{ll1}, line
        !           649:   \ref{ll1}.
        !           650: \end{quote}
        !           651: There is a mismatch in the definition of ~\thelinenumber~, from the
        !           652: point of the refered line to the reference here.
        !           653: \end{pagewiselinenumbers}
        !           654: 
        !           655: \begin{pagewiselinenumbers}
        !           656: 
        !           657: \section[Line number references]
        !           658:         {Line number references\linelabel{ll1}}
        !           659: 
        !           660: \lineno.sty allows to refer to a line number with ~\ref{~<label>~}~.
        !           661: The label is set by ~\linelabel{~<label>~}~, anywhere in a paragraph
        !           662: that gets line numbers.  If you put a ~\linelabel~ somewhere else, the
        !           663: line number it refers to is pretty meaningless, but no error message
        !           664: is issued.  (This section begins on line \ref{ll1}, page
        !           665: \pageref{ll1} and ends on line \ref{ll2}, page \pageref{ll2}.)
        !           666: 
        !           667: References work both in \emph{running} and \emph{pagewise} modes.
        !           668: However, you have to be very careful when using both \emph{real
        !           669:   pagewise} mode and \emph{running pagewise} mode: The mode setting
        !           670: must be the same during reference as during labeling.
        !           671: 
        !           672: The restrictions on placing a ~\linelabel~ are the same as for a
        !           673: ~\marginpar~.  (In fact, they are implemented as fake ~\marginpar~s.)
        !           674: E.g., the linelabel on the section header of this chapter could not be
        !           675: placed in the straight forward way, because it would cause an error in
        !           676: the table of contents.  (It should be disabled during \emph{toc}
        !           677: processing.)  Instead, I typed
        !           678: \begin{quote}
        !           679:   ~\section[Line number references]~\\
        !           680:   ~        {Line number references\linelabel{ll1}}~
        !           681: \end{quote}
        !           682: This works fine, with the standard \LaTeX\ ~{article}~ document
        !           683: style.  If more generic markup is required, you should avoid things
        !           684: like this (you should avoid \lineno.sty altogether, in that case).
        !           685: 
        !           686: ~\linelabel~ does not work in display math.  (Why,  you do not use
        !           687: equation numbers?)
        !           688: 
        !           689: The ~\linelabel~ command starts a new paragraph if it is issued after
        !           690: an empty line.  It will properly ignore further whitespace before the
        !           691: first word of text. Thus you can easily get a label to the first line
        !           692: of a paragraph.  
        !           693: 
        !           694: Furthermore, ~\linelabel~ uses \LaTeX s standart tricks to avoid
        !           695: unnecessary spaces if you place is between two words with spaces
        !           696: around, but you should not do that anyway, if you want to make sure
        !           697: that the label applies to a certain word in the text.  You should
        !           698: attach the line label to the word in question without intervening
        !           699: spaces, either before of after the word.  If you leave spaces both
        !           700: before and after the ~\linelabel~ command, the current implemenation
        !           701: attaches the line label to the following word (by ignoring the
        !           702: trailing space).
        !           703: 
        !           704: Special care should be taken at the end of a paragraph.  You better
        !           705: put the line label without intervening spaces behind the period, like
        !           706: this 
        !           707: \begin{quote}
        !           708:   ~This is the end of this section.%~\\
        !           709:   ~\linelabel{ll2}~
        !           710: \end{quote}
        !           711: This is the end of this section.%
        !           712: \linelabel{ll2}
        !           713: 
        !           714: \end{pagewiselinenumbers}
        !           715: 
        !           716: \begin{linenumbers*}
        !           717: 
        !           718: 
        !           719: \section{Known incompatibilities}
        !           720: 
        !           721: This section will expand whenever somebody discovers problems when
        !           722: using \lineno.sty together with other \LaTeX\ packages.
        !           723: 
        !           724: \subsection{\texttt{wrapfig.sty}}
        !           725: 
        !           726: \lineno.sty used to have problems with \texttt{wrapfig.sty}, but this
        !           727: is solved but \lineno.sty, version 2.05.
        !           728: 
        !           729: 
        !           730: \section{Extension packages}
        !           731: 
        !           732: The extension packages were abolished with version v3.00 of
        !           733: \lineno.sty.  One package, ~itemrule.sty~, was dropped, the others
        !           734: were put directly into the the main \lineno.sty package file.
        !           735: 
        !           736: \subsection{Display math, \texttt{\itshape mlineno}}
        !           737: 
        !           738: \lineno.sty does not work well with display math.  The parts of a
        !           739: paragraph preceeding a display math will not get line numbers.  The
        !           740: reason is that the paragraph is not finished, but the part above the
        !           741: display is broken into lines anyway.
        !           742: 
        !           743: Let me demonstrate the effect.  This paragraph contains a
        !           744: ~{displaymath}~ environment.  The part before the Formula does not get
        !           745: line numbers.  Here comes the Formula
        !           746: \begin{displaymath}
        !           747:     \mathrm{6\,H_2O + 6\,CO_2 \ \rightarrow\  C_6H_{12}O_6 + 6\,O_2}
        !           748: \end{displaymath}
        !           749: which makes the line numbers disappear.  The trailing part of the
        !           750: paragraph does get line numbers.  
        !           751: 
        !           752: There are several means to solve the problem, but none of them is
        !           753: fully satisfactory.  \lineno.sty defines a ~{linenomath}~ environment,
        !           754: which can be wrapped around a display math to make the line numbering
        !           755: work.  This will work with any kind of display math, even if you use
        !           756: explicit ~$$~ pairs.  There is a ~*~-form ~{linenomath*}~ which also
        !           757: numbers the lines of the display itself, as good as it can.  Here
        !           758: comes an example use of ~{linenomath*}~
        !           759: \begin{linenomath*}
        !           760: \begin{eqnarray*}
        !           761:   b_1 &=& a_{11}x_1 + a_{12}x_2 \\
        !           762:   b_2 &=& a_{21}x_1 + a_{22}x_2   
        !           763: \end{eqnarray*}
        !           764: \end{linenomath*}
        !           765: wrapping an ~{egnarray*}~ like this
        !           766: \begin{quote}
        !           767:   ~\begin{linenomath*}~\\
        !           768:   ~  \begin{eqnarray*}~\\
        !           769:   ~    b_1 &=& a_{11}x_1 + a_{12}x_2 \\~\\
        !           770:   ~    b_2 &=& a_{21}x_1 + a_{22}x_2~\\   
        !           771:   ~  \end{eqnarray*}~\\
        !           772:   ~\end{linenomath*}~
        !           773: \end{quote}
        !           774: Specifying the package option ~[mathlines]~, causes the
        !           775: ~{linenomath}~ environment to switch its function with its *-form.
        !           776: This allows you to later decide if you want the numbers on the formulas
        !           777: or not, without putting in stars everywhere (as long as you have been
        !           778: consistent).
        !           779: 
        !           780: The ~{linenomath}~ wrapper does nothing if line numbering is not
        !           781: activated.  You do not need to remove them if you decide to omit the
        !           782: line numbering later (although you still have to load \lineno.sty).
        !           783: 
        !           784: The \texttt{\itshape mlineno} extension redefines the standard \LaTeX\ 
        !           785: display math environments to wrap themselves automatically into
        !           786: ~{linenomath}~:
        !           787: \begin{quote}\obeylines
        !           788:    ~\[~ ~\]~
        !           789:    ~{displaymath}~
        !           790:    ~{equation}~
        !           791:    ~{eqnarray}~
        !           792:    ~{eqnarray*}~
        !           793: \end{quote}
        !           794: As of version 3.00 you can activate this by the package option
        !           795: ~[displaymath]~.  You can keep existing explicit ~{linenomath}~
        !           796: wrappers without harm.  
        !           797: 
        !           798: This will probably not work with AMSmath.
        !           799: 
        !           800: Other solutions to make \lineno.sty work with display math are either
        !           801: ugly or less stable.  The ugly possibility is to precede every display
        !           802: math with an empty line, or better with
        !           803: \begin{quote}
        !           804:   ~{\par\nobreak\noindent}~
        !           805: \end{quote}
        !           806: but this gains you nothing compared to using the ~{linenomath}~
        !           807: environment, since you still have to modify your document.
        !           808: 
        !           809: \end{linenumbers*}
        !           810: 
        !           811: 
        !           812: \subsection{\texttt{\itshape rlineno}}
        !           813: 
        !           814: \begin{runninglinenumbers}
        !           815: It is currently not possible to put a ~\linelabel~ into math mode.
        !           816: This should not impose problems with inline math, since you can attach
        !           817: the label just outside the math shift, like\linelabel{rll1} 
        !           818: \begin{quote}
        !           819:   ~... \linelabel{~<label>~}$x=f(y)$ ...~
        !           820: \end{quote}
        !           821: but to refer to a line in display math, you cannot label it directly. 
        !           822: \end{runninglinenumbers}
        !           823: 
        !           824: \begin{pagewiselinenumbers}
        !           825: The extension \texttt{\itshape rlineno} offers a solution,
        !           826: allowing to refer to a line number with an offset.  
        !           827: 
        !           828: This extension is now available with plain \lineno.sty v3.00.
        !           829: 
        !           830: You put the ~\linelabel~ at the end of the preceeding line, and refer
        !           831: to that number, plus 1 or, in case of multiline displays, by any other
        !           832: offset.\linelabel{rll2}
        !           833: \begin{quote}
        !           834:   ~...\linelabel{~<label>~}~ \\
        !           835:   ~\begin{equation}~ \\
        !           836:   ~     y=f'(x)~ \\
        !           837:   ~\end{equation}~ \\
        !           838:   ~... the formula in line \lineref[+1]{~<label>~}~ 
        !           839: \end{quote}
        !           840: The offset calculation is different for pagewise or running line
        !           841: numbers, and you will have to make sure the right method is used. 
        !           842: \end{pagewiselinenumbers}
        !           843: 
        !           844: The macro ~\lineref[~<offset>~]{~<label>~}~ uses the method of the
        !           845: currently selected mode (line numbering need not be activated).  To
        !           846: specify the mode explicitly, use ~\linerefr~ or ~\linerefp~ for
        !           847: running or pagewise mode respectively.
        !           848: 
        !           849: For example, the manual sets a ~\linelabel{rll1}~ at the end of the
        !           850: line preceeding the single line quote environment at
        !           851: line\,\linerefr[+1]{rll1} in the first paragraph of this chapter, and
        !           852: refered to it via
        !           853: \begin{quote}
        !           854:   ~\linerefr[+1]{rll1}~
        !           855: \end{quote}
        !           856: and another one preceeding the quote environment in the second
        !           857: paragraph of this chapter, with the central line
        !           858: numbered\,\linerefp[+3]{rll2}, which I just refered to via
        !           859: \begin{quote}
        !           860:   ~\linerefp[+3]{rll2}~
        !           861: \end{quote}
        !           862: \begin{runninglinenumbers}
        !           863: If the correct mode is selected (e.g., ~\setrunninglinenumbers~),
        !           864: you can use ~\lineref[+1]{rll1}~ to refer to
        !           865: line\,\lineref[+1]{rll1}.
        !           866: \end{runninglinenumbers}
        !           867: 
        !           868: 
        !           869: \subsection{\texttt{\itshape numquote}}
        !           870: 
        !           871: This extension defines two environments, each of them with a *-form or
        !           872: alternatively an optional argument.
        !           873: \begin{quote}\obeylines
        !           874:   ~\begin{numquote}~
        !           875:   ~\end{numquote}~
        !           876: \end{quote}
        !           877: is like ~{quote}~,
        !           878: \begin{quote}\obeylines
        !           879:   ~\begin{numquotation}~
        !           880:   ~\end{numquotation}~
        !           881: \end{quote}
        !           882: is like ~{quotation}~, but with the lines numbered.  Numbering
        !           883: restarts with 1 each time it is used, except you use the *-form, or
        !           884: specify the line number to start with in an optional argument.
        !           885: \begin{numquote}
        !           886: The line numbers set to the left of the text, indented by the same
        !           887: amount as the quote or quotation.  This works as expected even if the
        !           888: quote appears in a nested list. 
        !           889: \end{numquote}
        !           890: To customize the distance from the text or the shape of the
        !           891: numbers, you can modify the macros ~\quotelinenumbersep~ and
        !           892: ~\quotelinenumberfont~ respectively.
        !           893: 
        !           894: As of version 3.00, this is available directly with \lineno.sty.
        !           895: 
        !           896: \clearpage
        !           897: 
        !           898: \subsection{\texttt{\itshape ilineno}}
        !           899: \label{sec:ilineno}
        !           900: 
        !           901: \begin{center}
        !           902: \noindent\fbox{\parbox{0.8\textwidth}{
        !           903:   \internallinenumbers \resetlinenumber[13]
        !           904:   Sometimes you need line numbers within a |\parbox\ or figure.  This
        !           905:   extension can do that, if the text is simple enough.  It works by
        !           906:   drawing a ladder of numbers next to the paragraph, each number
        !           907:   vertically separated by |\baselineskip\ from the other.  This
        !           908:   obviously dose not work nicely with anything but straight text.
        !           909:   Extra high lines (like this: $\displaystyle x=\frac AB$) will
        !           910:   disturb the alignment.  The power of \lineno.sty is not necessary to
        !           911:   achieve this, but you may need both in one document with a somewhat
        !           912:   coherent interface, and some of the necessary infrastructure from
        !           913:   \lineno.sty is actually useful.
        !           914: }}\end{center}
        !           915: % Why is the v-spacing wrong here?
        !           916: 
        !           917: The preceding paragraph was set like this:
        !           918: \begin{quote}
        !           919:   ~\begin{center}\fbox{\parbox{0.8\textwidth}{~ \\
        !           920:     ~\internallinenumbers~ \\
        !           921:     ~\resetlinenumber[13]~ \\
        !           922:     ~ ~ Sometimes you need \dots \\
        !           923:   ~}}\end{center}~
        !           924: \end{quote}
        !           925: 
        !           926: \subsection{\texttt{\itshape itemrule.sty}}
        !           927: 
        !           928: Somebody asked me if he can get a rule next to an itemized item, from
        !           929: the bullet downwards.  This style did that.  It was unstable and of
        !           930: little interest, so it is gone from the \lineno.sty distribution.
        !           931: 
        !           932: \subsection{\texttt{\itshape bframe}}
        !           933: \label{sec:bframe}
        !           934: 
        !           935: \setlength\bframesep{10pt}
        !           936: \begin{bframe}
        !           937: \lineno.sty can be used for unexpected purposes.  The environment 
        !           938: \begin{quote}\obeylines
        !           939:   ~\begin{bframe}~
        !           940:   ~\end{bframe}~
        !           941: \end{quote}
        !           942: draws boxes around some text, even across page breaks.  At a page
        !           943: break, the box is open (it is difficult to fix that).  There are two
        !           944: parameters:
        !           945: \begin{description}\itemsep=0pt\parskip=0pt
        !           946: \item [|\bframesep] \leavevmode\\
        !           947:   defines the separation of the box from the text.
        !           948: \item [|\bframerule] \leavevmode\\
        !           949:   defines the thickness of the lines around the text.
        !           950: \end{description}
        !           951: 
        !           952: It works by asking \lineno.sty to draw small rules left and right to
        !           953: the lines.  The total height of the rules is ~\baselineskip~ plus
        !           954: ~\bframesep~. This leaves some extra space for extra high lines.
        !           955: 
        !           956: The current version is very preliminary.  In a future version there
        !           957: may be a possibility to move the vertical lines inwards for indented
        !           958: text.  The box may optionally be closed at page breaks.  It will not
        !           959: likely be possible to have a colored background in the box, at least
        !           960: not with a graphics driver that cannot put a background behind
        !           961: existing foreground (Postscript cannot, I've been told).  Tell me how
        !           962: to make a gray background, like block dots on transparent, and I can
        !           963: do shaded boxes.
        !           964: 
        !           965: \end{bframe}
        !           966: 
        !           967: \section{How to print the documented source}
        !           968: 
        !           969: \begin{bframe}
        !           970: \lineno.sty is written in three programming languages: \TeX, sh,
        !           971: and awk.
        !           972: 
        !           973: The file can be loaded as a \LaTeXe\ package as it is.  However, if
        !           974: you feed it into a Unix shell, like
        !           975: \begin{quote}
        !           976:    ~csh>  source ./lineno.sty~
        !           977: \end{quote}
        !           978: it will produce the files ~lineno.tex~ and ~lineno.dvi~, which is the
        !           979: documented source of \lineno.sty.  If you want to learn how it works,
        !           980: or you need to adapt \lineno.sty for some special requirements, you
        !           981: should read that document.
        !           982: \end{bframe}
        !           983: 
        !           984: \end{document}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>