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>