diff options
author | Karl Berry <karl@freefriends.org> | 2023-05-20 20:18:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-05-20 20:18:42 +0000 |
commit | 721e96a22424e206b471c72487670267a9614b94 (patch) | |
tree | 80d3cddf06caaaa9ff6333d1183f1939ec9b61de /Master | |
parent | a168f9de40e23fc338912cffa2a7ee9fb4441e5f (diff) |
lineno (20may23)
git-svn-id: svn://tug.org/texlive/trunk@67171 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/CHANGEs.txt | 10 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/README.md | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/fnlineno.pdf | bin | 198521 -> 198310 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/lineno.pdf | bin | 371227 -> 372679 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/lineno.tex | 144 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf | bin | 102915 -> 102740 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf | bin | 161540 -> 161428 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/lineno/ulineno.pdf | bin | 127130 -> 127130 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/latex/lineno/lineno.sty | 152 |
11 files changed, 197 insertions, 121 deletions
diff --git a/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt b/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt index 0612c8ffc43..b61ae6560d4 100644 --- a/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt +++ b/Master/texmf-dist/doc/latex/lineno/CHANGEs.txt @@ -1,3 +1,13 @@ +CHANGES for lineno pkg v5.3 2023/05/20: + +1. Handle special value of \prevdepth=-1000pt; + thanks to Yukai Chou and Frank Mittelbach. +2. Add package options `sep' and `width' for + setting line number separation and width. +3. Add `twocolumn` support for `bframe` env; + thanks to Yukai Chou. + + CHANGES for lineno pkg v5.2 2023/05/19: 1. Support `amsmath` option `\allowdisplaybreaks`. diff --git a/Master/texmf-dist/doc/latex/lineno/README.md b/Master/texmf-dist/doc/latex/lineno/README.md index 085d59f2475..ea4747ea133 100644 --- a/Master/texmf-dist/doc/latex/lineno/README.md +++ b/Master/texmf-dist/doc/latex/lineno/README.md @@ -1,6 +1,6 @@ -# lineno.sty v5.2, fnlineno.sty v0.55 +# lineno.sty v5.3, fnlineno.sty v0.55 -2023-05-19 +2023-05-20 The LaTeX package lineno.sty provides line numbers on paragraphs. After TeX has broken a paragraph into lines there will be line numbers attached to them, with diff --git a/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt b/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt index ead01626f43..d25688616e7 100644 --- a/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt +++ b/Master/texmf-dist/doc/latex/lineno/SRCFILEs.txt @@ -1,10 +1,10 @@ ednmath0.sty 2005/01/10 v0.2b math support for lineno/ednotes (ul) edtable.sty 2005/10/03 v1.3c arrays with lineno + ednotes (ul) fnlineno.sty 2011/01/07 v0.55 numbers to footnote lines (UL) -lineno.sty 2023/05/19 line numbers on paragraphs v5.2 +lineno.sty 2023/05/20 line numbers on paragraphs v5.3 vplref.sty 2005/04/25 v0.2a page-line cross-refs fnlineno.tex 2011/02/14 documenting fnlineno.sty (UL) -lineno.tex 2023/05/19 line numbers on paragraphs v5.2 +lineno.tex 2023/05/20 line numbers on paragraphs v5.3 lnosuppl.tex 2011/02/16 documenting supplementary files ulineno.tex 2001/08/03 lineno.sty users manual linenoamsmathdemo.tex 2021/09/30 Make amsmath work with lineno diff --git a/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf b/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf Binary files differindex 0760d0ecc0b..b875e16366b 100644 --- a/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf +++ b/Master/texmf-dist/doc/latex/lineno/fnlineno.pdf diff --git a/Master/texmf-dist/doc/latex/lineno/lineno.pdf b/Master/texmf-dist/doc/latex/lineno/lineno.pdf Binary files differindex 7cbf50f5b49..3c1178359dc 100644 --- a/Master/texmf-dist/doc/latex/lineno/lineno.pdf +++ b/Master/texmf-dist/doc/latex/lineno/lineno.pdf diff --git a/Master/texmf-dist/doc/latex/lineno/lineno.tex b/Master/texmf-dist/doc/latex/lineno/lineno.tex index 1e2457202c7..0957f1e5f08 100644 --- a/Master/texmf-dist/doc/latex/lineno/lineno.tex +++ b/Master/texmf-dist/doc/latex/lineno/lineno.tex @@ -1,4 +1,4 @@ -\def\fileversion{v5.2} \def\filedate{2023/05/19} +\def\fileversion{v5.3} \def\filedate{2023/05/20} \title{\texttt{\itshape lineno.sty \ \fileversion\ \filedate @@ -214,6 +214,8 @@ available since December 1994. \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{lineno} [\filedate\space line numbers on paragraphs \fileversion] +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} \end{verbatim} \end{code} @@ -414,7 +416,7 @@ we get doubled line numbers on every float placed in horizontal mode, e.g, from ~\linelabel~. Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should -insert a penalty, else the following linenumber +insert a penalty, else the following line number could go to the next page. Nor should any other float. So let us suppress the ~\interlinepenalty~ altogether with the ~\@nobreak~ switch. @@ -718,10 +720,18 @@ For reason, see use above. (/New v4.00) (New v4.4) The depth preserving trick is drawn here from ~\MakeLineNo~ because it will be used again in section_\ref{ss:calls}. +(v5.3) Handle special value of ~\prevdepth=-1000pt~. (/v5.3) \begin{code}\begin{verbatim} \def\@LN@depthbox{% - \dp\@tempboxa=\@tempdima - \nointerlineskip \kern-\@tempdima \box\@tempboxa} + \ifdim\@tempdima=-1000pt + % \nointerlineskip is already set so we don't need set it again + % (and we shouldn't back up) + \else + \dp\@tempboxa=\@tempdima + \nointerlineskip + \kern-\@tempdima + \fi + \box\@tempboxa} \end{verbatim} \end{code} (/New v4.4) @@ -1347,8 +1357,8 @@ right of the text, or . . . \newdimen\linenumbersep \newdimen\linenumberwidth -\linenumberwidth=10pt \linenumbersep=10pt +\linenumberwidth=10pt \end{verbatim} \end{code} Margin switching requires ~pagewise~ numbering mode, but @@ -1588,7 +1598,7 @@ themselves in an ~\xdef~ \begin{code}\begin{verbatim} \let\lastLN\relax % compare to last line on this page \let\firstLN\relax % compare to first line on this page -\let\pageLN\relax % get the page number, compute the linenumber +\let\pageLN\relax % get the page number, compute the line number \let\nextLN\relax % move to the next page \end{verbatim} \end{code} @@ -1707,8 +1717,7 @@ If there is another page, we iterate the search. \def\testNextNumberedPage#1{\ifx#1\relax \global\def\NumberedPageCache{\gotNumberedPage0000}% \PackageWarningNoLine{lineno}% - {Linenumber reference failed, - \MessageBreak rerun to get it right}% + {Line number reference failed, re-run to get it right}% \else \global\let\NumberedPageCache#1% \fi @@ -2125,7 +2134,7 @@ this case. ~addpageno~ is due to a suggestion by Sergei Mariev. \begin{code}\begin{verbatim} -\DeclareOption{addpageno}{% +\DeclareVoidOption{addpageno}{% \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}} \end{verbatim} \end{code} @@ -2149,7 +2158,7 @@ allowing ~ednotes.sty~ commands in math mode. Loading the package is postponed to ~\AtBeginDocument~ when we know whether these adjustments are needed. \begin{code}\begin{verbatim} -\DeclareOption{mathrefs}{\AtBeginDocument +\DeclareVoidOption{mathrefs}{\AtBeginDocument {\RequirePackage{ednmath0}[2004/08/20]}} \end{verbatim} \end{code} @@ -2216,12 +2225,12 @@ at one place only.) \begin{code}\begin{verbatim} \let\if@LN@edtable\iffalse -\DeclareOption{edtable}{\let\if@LN@edtable\iftrue} +\DeclareVoidOption{edtable}{\let\if@LN@edtable\iftrue} -\DeclareOption{longtable}{\let\if@LN@edtable\iftrue +\DeclareVoidOption{longtable}{\let\if@LN@edtable\iftrue \PassOptionsToPackage{longtable}{edtable}} -\DeclareOption{nolongtablepatch}{% +\DeclareVoidOption{nolongtablepatch}{% \PassOptionsToPackage{nolongtablepatch}{edtable}} \end{verbatim} \end{code} @@ -2238,9 +2247,9 @@ Options ~left~ (~right~) put the line numbers on the left (right) margin. This works in all modes. ~left~ is the default. \begin{code}\begin{verbatim} -\DeclareOption{left}{\leftlinenumbers*} +\DeclareVoidOption{left}{\leftlinenumbers*} -\DeclareOption{right}{\rightlinenumbers*} +\DeclareVoidOption{right}{\rightlinenumbers*} \end{verbatim} \end{code} Option ~switch~ (~switch*~) puts the line numbers on the @@ -2249,13 +2258,13 @@ the pagewise mode, but we turn off the page offset subtraction, getting sort of running numbers again. The ~pagewise~ option may restore true pagewise mode later. \begin{code}\begin{verbatim} -\DeclareOption{switch}{\setpagewiselinenumbers - \switchlinenumbers - \runningpagewiselinenumbers} +\DeclareVoidOption{switch}{\setpagewiselinenumbers + \switchlinenumbers + \runningpagewiselinenumbers} -\DeclareOption{switch*}{\setpagewiselinenumbers - \switchlinenumbers*% - \runningpagewiselinenumbers} +\DeclareVoidOption{switch*}{\setpagewiselinenumbers + \switchlinenumbers*% + \runningpagewiselinenumbers} \end{verbatim} \end{code} In twocolumn mode, we can switch the line numbers to @@ -2263,13 +2272,13 @@ the outer margin, and/or start with number 1 in each column. Margin switching is covered by the ~switch~ options. \begin{code}\begin{verbatim} -\DeclareOption{columnwise}{\setpagewiselinenumbers - \columnwiselinenumberstrue - \realpagewiselinenumbers} +\DeclareVoidOption{columnwise}{\setpagewiselinenumbers + \columnwiselinenumberstrue + \realpagewiselinenumbers} \end{verbatim} \end{code} The options ~pagewise~ and ~running~ select the major -linenumber mechanism. ~running~ line numbers refer to a real +line number mechanism. ~running~ line numbers refer to a real counter value, which can be reset for any paragraph, even getting multiple paragraphs on one page starting with line number one. ~pagewise~ line numbers get a @@ -2291,22 +2300,22 @@ result is almost nothing, but if you later say real pagewise line numbers. \begin{code}\begin{verbatim} -\DeclareOption{pagewise}{\setpagewiselinenumbers - \realpagewiselinenumbers} +\DeclareVoidOption{pagewise}{\setpagewiselinenumbers + \realpagewiselinenumbers} -\DeclareOption{running}{\setrunninglinenumbers} +\DeclareVoidOption{running}{\setrunninglinenumbers} \end{verbatim} \end{code} The option ~modulo~ causes only those linenumbers to be printed which are multiples of five. \begin{code}\begin{verbatim} -\DeclareOption{modulo}{\modulolinenumbers\relax} +\DeclareVoidOption{modulo}{\modulolinenumbers\relax} \end{verbatim} \end{code} Option ~modulo*~ modifies ~modulo~ in working like ~\modulolinenumbers*~---see section_\ref{s:UserCmds}. \begin{code}\begin{verbatim} -\DeclareOption{modulo*}{\modulolinenumbers*\relax} +\DeclareVoidOption{modulo*}{\modulolinenumbers*\relax} \end{verbatim} \end{code} The package option ~mathlines~ switches the behavior of @@ -2316,7 +2325,7 @@ not number the lines of the display, while the star-form does. With this option, its just the opposite. \begin{code}\begin{verbatim} -\DeclareOption{mathlines}{\linenumberdisplaymath} +\DeclareVoidOption{mathlines}{\linenumberdisplaymath} \end{verbatim} \end{code} ~displaymath~ now calls for wrappers of the standard @@ -2330,12 +2339,26 @@ number above ~\begin{linenomath}~ (subsection_\ref{ss:DM}). ~\endlinenomath~ provides ~\ignorespaces~, so what could go wrong now? \begin{code}\begin{verbatim} -\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{% - Option [displaymath] is obsolete -- default now!}} +\DeclareVoidOption{displaymath}{% + \PackageWarningNoLine{lineno}{Option [displaymath] is obsolete}} \end{verbatim} \end{code} (/New v4.3) +(New v5.3) Options `sep' and `width' set ~\linenumbersep~ (the separation of +the line number to the text) and ~\linenumberwidth~ (the width of the line +number box on the right margin) respectively; see section_\ref{s:CustHooks}. +\begin{code}\begin{verbatim} +\DeclareStringOption[\linenumbersep]{sep} +\DeclareStringOption[\linenumberwidth]{width} +\AtBeginDocument{% + \linenumbersep=\lineno@sep% + \linenumberwidth=\lineno@width% +} +\end{verbatim} +\end{code} +(/New v5.3) + \subsection{% Compatibility with \texttt{hyperref} %% own subsec. v4.3. \unskip} @@ -2356,9 +2379,8 @@ now, since ~\@LN@linelabel~ may change its meaning after the first ~\linenumbers~ and before a next one (if there is some). (/New v4.3) \begin{code}\begin{verbatim} -\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{% - Option [hyperref] is obsolete. - \MessageBreak The hyperref package is detected automatically.}} +\DeclareVoidOption{hyperref}{% + \PackageWarningNoLine{lineno}{Option [hyperref] is obsolete}} \AtBeginDocument{% \@ifpackageloaded{nameref}{% @@ -2413,7 +2435,7 @@ Execute options We stop declaring options and execute the ones that are called by the user. (/New v4.1) \begin{code}\begin{verbatim} -\ProcessOptions +\ProcessKeyvalOptions* \end{verbatim} \end{code} (New v4.1) Now we know whether ~edtable.sty~ is wanted @@ -2538,10 +2560,16 @@ And I use ~\newcommand~.) (v4.22) \begingroup \c@internallinenumbers\prevgraf \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}% - \dp\@tempboxa\prevdepth \ht\@tempboxa\z@ - \nobreak\vskip-\prevdepth - \nointerlineskip\box\@tempboxa + \ifdim\prevdepth=-1000pt + % \nointerlineskip is already set so we don't need set it again + % (and we shouldn't back up) + \else + \dp\@tempboxa\prevdepth + \nobreak\vskip-\prevdepth + \nointerlineskip + \fi + \box\@tempboxa \endgroup \fi\fi } @@ -2662,9 +2690,9 @@ without special height lines. All lines must be \begin{code}\begin{verbatim} \newenvironment{bframe} {\par - \@tempdima\textwidth + \@tempdima\columnwidth \advance\@tempdima 2\bframesep - \setbox\bframebox\hb@xt@\textwidth{% + \setbox\bframebox\hb@xt@\columnwidth{% \hskip-\bframesep \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep \advance\@tempdima-2\bframerule @@ -2682,10 +2710,12 @@ without special height lines. All lines must be \def\makeLineNumber{\copy\bframebox\hss}% } {\par - \kern-\prevdepth + \ifdim\prevdepth=-1000pt \else + \kern-\prevdepth + \fi \kern\bframesep \nointerlineskip - \@tempdima\textwidth + \@tempdima\columnwidth \advance\@tempdima 2\bframesep \hbox{\hskip-\bframesep \vrule\@width\@tempdima\@height\bframerule\@depth\z@}% @@ -2710,7 +2740,7 @@ supplied by the ~linenoamsmath~ package. See ~linenoamsmathdemo.pdf~ for a demonstration. (/New v5.0) -(/New v5.1) ~lineno~ tries to use \LaTeX's hook management system to patch +(New v5.1) ~lineno~ tries to use \LaTeX's hook management system to patch ~amsmath~, so that the two packages may be loaded independently. This requires the October 2020 release of \LaTeX. As a fallback for older releases, ~lineno~ tests whether ~amsmath~ had already been loaded (by testing for the presence @@ -2718,7 +2748,7 @@ of the ~gather~ command) and if so applies the patches; otherwise if ~amsmath~ has not been loaded, no patches are applied, and a warning is issued. (/New v5.1) -(/New v5.2) Fix ~lineno~ to work with ~amsmath~'s ~\allowdisplaybreaks~ +(New v5.2) Fix ~lineno~ to work with ~amsmath~'s ~\allowdisplaybreaks~ option. A side effect is that now ~\\*~ suppresses a line number on that line. This is because ~\\*~ prohibits a page break after a given line, and ~lineno~ basically works by hijacking page breaks. It's probably not possible @@ -2726,16 +2756,14 @@ to fix this without losing the behaviour of ~\\*~. (/New v5.2) \begin{code}\begin{verbatim} -\RequirePackage{etoolbox} - \ifdefined\AddToHook \def\linenoamsmath@patches#1{\AddToHook{package/amsmath/after}{#1}} \else \ifdefined\endgather \def\linenoamsmath@patches#1{#1} \else - \PackageWarning{lineno}{% - `amsmath' must be loaded before `lineno' for patches to be applied} + \PackageWarningNoLine{lineno}% + {`amsmath' must be loaded before `lineno' for patches to be applied} \def\linenoamsmath@patches#1{\relax} \fi \fi @@ -3000,8 +3028,8 @@ Reminder on obsoleteness \unskip} (New v4.1) We have completed inclusion of the earlier -extension packages ~linenox0.sty~, ~linenox1.sty~, and -~lnopatch.sty~. If one of them is loaded, though, +extension packages ~linenox0.sty~, ~linenox1.sty~, ~lnopatch.sty~, +and ~linenoamsmath~. If one of them is loaded, though, we produce an error message before something weird happens. We avoid ~\newif~ because the switchings occur so rarely. \begin{code}\begin{verbatim} @@ -3010,10 +3038,12 @@ We avoid ~\newif~ because the switchings occur so rarely. \@ifpackageloaded{linenox0}{\let\if@LN@obsolete\iftrue}\relax \@ifpackageloaded{linenox1}{\let\if@LN@obsolete\iftrue}\relax \@ifpackageloaded{lnopatch}{\let\if@LN@obsolete\iftrue}\relax + \@ifpackageloaded{linenoamsmath}{\let\if@LN@obsolete\iftrue}\relax \if@LN@obsolete \PackageError{lineno}{Obsolete extension package(s)}{% - With lineno.sty version 4.00 or later,\MessageBreak - linenox0/linenox1/lnopatch.sty must no longer be loaded.}% + As of \fileversion, `lineno' includes the functionality of \MessageBreak + `linenox0', `linenox1', `lnopatch', and `linenoamsmath'; \MessageBreak + these packages are therefore obsolete and must not be loaded.}% \fi } \end{verbatim} @@ -3191,7 +3221,7 @@ and ~{linenomath*}~. \subsection{% Customization hooks -\unskip} +\unskip}\label{s:CustHooks} There are several hooks to customize the appearance of the line numbers, and some low level hooks for special @@ -3219,7 +3249,7 @@ Like ~\makeLineNumberLeft~, but for line numbers on the right margin. The default definition is \par$\qquad$ -~\linenumberfont\hskip\linenumbersep\hskip\textwidth~ \par$\qquad$ +~\linenumberfont\hskip\linenumbersep\hskip\columnwidth~ \par$\qquad$ ~\hbox to\linenumberwidth{\hss\LineNumber}\hss~ \item [|\linenumberfont] \ \par @@ -3228,7 +3258,7 @@ This macro is initialized to \par$\qquad$ \item [|\linenumbersep] \ \par This dimension register sets the separation of the -linenumber to the text. Default value is ~10pt~. +line number to the text. Default value is ~10pt~. \item [|\linenumberwidth] \ \par This dimension register sets the width of the line diff --git a/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf b/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf Binary files differindex 68e32b823ea..e311cec61a6 100644 --- a/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf +++ b/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.pdf diff --git a/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex b/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex index 045e251a62b..f3c51ba1c62 100644 --- a/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex +++ b/Master/texmf-dist/doc/latex/lineno/linenoamsmathdemo.tex @@ -19,12 +19,12 @@ \ifdefined\AddToHook \newcommand{\loadorder}{\textsf{lineno} is loaded first, and then patches \textsf{amsmath} using \texttt{\textbackslash AddToHook}} - \usepackage[mathlines]{lineno} + \usepackage[mathlines,sep=11pt,width=11pt]{lineno} \usepackage[leqno]{amsmath} \else \newcommand{\loadorder}{\textsf{amsmath} is loaded first, and then patched directly by \textsf{lineno}} \usepackage[leqno]{amsmath} - \usepackage[mathlines]{lineno} + \usepackage[mathlines,sep=11pt,width=11pt]{lineno} \fi \usepackage{lipsum} \usepackage{hyperref} diff --git a/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf b/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf Binary files differindex c2f5c3fd6d0..2d04f767b44 100644 --- a/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf +++ b/Master/texmf-dist/doc/latex/lineno/lnosuppl.pdf diff --git a/Master/texmf-dist/doc/latex/lineno/ulineno.pdf b/Master/texmf-dist/doc/latex/lineno/ulineno.pdf Binary files differindex efe87de8aba..6db5ce14d56 100644 --- a/Master/texmf-dist/doc/latex/lineno/ulineno.pdf +++ b/Master/texmf-dist/doc/latex/lineno/ulineno.pdf diff --git a/Master/texmf-dist/tex/latex/lineno/lineno.sty b/Master/texmf-dist/tex/latex/lineno/lineno.sty index 03958a8589b..440cd7bf868 100644 --- a/Master/texmf-dist/tex/latex/lineno/lineno.sty +++ b/Master/texmf-dist/tex/latex/lineno/lineno.sty @@ -3,7 +3,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \fi -\def\fileversion{v5.2} \def\filedate{2023/05/19} %VERSION +\def\fileversion{v5.3} \def\filedate{2023/05/20} %VERSION %%% Copyright 1995--2003 Stephan I. Böttcher %%% Copyright 2002--2005 Uwe Lück for versions 4.x and code from former Ednotes @@ -262,6 +262,8 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \ProvidesPackage{lineno} [\filedate\space line numbers on paragraphs \fileversion] %% +\RequirePackage{etoolbox} +\RequirePackage{kvoptions} %% History of versions: %% v1.00 1995/03/31 SIB: first release for Petra's interview transcriptions %% v1.01 1995/10/28 SIB: added ~pagewise~ mode @@ -388,6 +390,10 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. %% v5.0 2022/07/30 KW: Merge in `linenoamsmath' patches %% v5.1 2023/01/19 KW: Patch `amsmath` with \AddToHook if possible. %% v5.2 2023/05/19 KW: Support `amsmath` option `\allowdisplaybreaks`. +%% v5.3 2023/05/20 KW: Handle special value of \prevdepth=-1000pt. +%% Add package options `sep' and `width' for +%% setting line number separation and width. +%% Add `twocolumn` support for `bframe` env. %% %% Acknowledgements: %% v3.06: Donald Arseneau, pointed to mparhack.sty. @@ -404,6 +410,9 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. %% Saravanan M.'s and David Josef Dev. %% v4.4: David Josef Dev points out that \kern\z@ after a paragraph %% tends to place its final baseline wrongly. +%% v5.3: Yukai Chou and Frank Mittelbach for patches to handle special +%% value of \prevdepth=-1000pt, and add `twocolumn` support for +%% `bframe` env. % % % \section{% @@ -602,7 +611,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % horizontal mode, e.g, from ~\linelabel~. % % Sorry, neither a ~\linelabel~ nor a ~\marginpar~ should -% insert a penalty, else the following linenumber +% insert a penalty, else the following line number % could go to the next page. Nor should any other % float. So let us suppress the ~\interlinepenalty~ % altogether with the ~\@nobreak~ switch. @@ -914,10 +923,18 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % (New v4.4) The depth preserving trick is drawn here from % ~\MakeLineNo~ because it will be used again in % section_\ref{ss:calls}. +% (v5.3) Handle special value of ~\prevdepth=-1000pt~. (/v5.3) \def\@LN@depthbox{% - \dp\@tempboxa=\@tempdima - \nointerlineskip \kern-\@tempdima \box\@tempboxa} + \ifdim\@tempdima=-1000pt + % \nointerlineskip is already set so we don't need set it again + % (and we shouldn't back up) + \else + \dp\@tempboxa=\@tempdima + \nointerlineskip + \kern-\@tempdima + \fi + \box\@tempboxa} % (/New v4.4) % @@ -1531,8 +1548,8 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \newdimen\linenumbersep \newdimen\linenumberwidth -\linenumberwidth=10pt \linenumbersep=10pt +\linenumberwidth=10pt % Margin switching requires ~pagewise~ numbering mode, but % choosing the left or right margin for the numbers always @@ -1778,7 +1795,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \let\lastLN\relax % compare to last line on this page \let\firstLN\relax % compare to first line on this page -\let\pageLN\relax % get the page number, compute the linenumber +\let\pageLN\relax % get the page number, compute the line number \let\nextLN\relax % move to the next page % During the end-document run through the aux-files, we @@ -1889,8 +1906,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \def\testNextNumberedPage#1{\ifx#1\relax \global\def\NumberedPageCache{\gotNumberedPage0000}% \PackageWarningNoLine{lineno}% - {Linenumber reference failed, - \MessageBreak rerun to get it right}% + {Line number reference failed, re-run to get it right}% \else \global\let\NumberedPageCache#1% \fi @@ -2312,7 +2328,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % % ~addpageno~ is due to a suggestion by Sergei Mariev. -\DeclareOption{addpageno}{% +\DeclareVoidOption{addpageno}{% \AtEndOfPackage{\RequirePackage{vplref}[2005/04/25]}} % \subsection{% @@ -2335,7 +2351,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % is postponed to ~\AtBeginDocument~ when we know whether these % adjustments are needed. -\DeclareOption{mathrefs}{\AtBeginDocument +\DeclareVoidOption{mathrefs}{\AtBeginDocument {\RequirePackage{ednmath0}[2004/08/20]}} % @@ -2401,12 +2417,12 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \let\if@LN@edtable\iffalse -\DeclareOption{edtable}{\let\if@LN@edtable\iftrue} +\DeclareVoidOption{edtable}{\let\if@LN@edtable\iftrue} -\DeclareOption{longtable}{\let\if@LN@edtable\iftrue +\DeclareVoidOption{longtable}{\let\if@LN@edtable\iftrue \PassOptionsToPackage{longtable}{edtable}} -\DeclareOption{nolongtablepatch}{% +\DeclareVoidOption{nolongtablepatch}{% \PassOptionsToPackage{nolongtablepatch}{edtable}} % (/New v4.1) @@ -2424,9 +2440,9 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % (right) margin. This works in all modes. ~left~ is the % default. -\DeclareOption{left}{\leftlinenumbers*} +\DeclareVoidOption{left}{\leftlinenumbers*} -\DeclareOption{right}{\rightlinenumbers*} +\DeclareVoidOption{right}{\rightlinenumbers*} % Option ~switch~ (~switch*~) puts the line numbers on the % outer (inner) margin of the text. This requires running @@ -2434,25 +2450,25 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % subtraction, getting sort of running numbers again. The % ~pagewise~ option may restore true pagewise mode later. -\DeclareOption{switch}{\setpagewiselinenumbers - \switchlinenumbers - \runningpagewiselinenumbers} +\DeclareVoidOption{switch}{\setpagewiselinenumbers + \switchlinenumbers + \runningpagewiselinenumbers} -\DeclareOption{switch*}{\setpagewiselinenumbers - \switchlinenumbers*% - \runningpagewiselinenumbers} +\DeclareVoidOption{switch*}{\setpagewiselinenumbers + \switchlinenumbers*% + \runningpagewiselinenumbers} % In twocolumn mode, we can switch the line numbers to % the outer margin, and/or start with number 1 in each % column. Margin switching is covered by the ~switch~ % options. -\DeclareOption{columnwise}{\setpagewiselinenumbers - \columnwiselinenumberstrue - \realpagewiselinenumbers} +\DeclareVoidOption{columnwise}{\setpagewiselinenumbers + \columnwiselinenumberstrue + \realpagewiselinenumbers} % The options ~pagewise~ and ~running~ select the major -% linenumber mechanism. ~running~ line numbers refer to a real +% line number mechanism. ~running~ line numbers refer to a real % counter value, which can be reset for any paragraph, % even getting multiple paragraphs on one page starting % with line number one. ~pagewise~ line numbers get a @@ -2473,20 +2489,20 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % ~\pagewiselinenumbers~, you get margin switching, with % real pagewise line numbers. % -\DeclareOption{pagewise}{\setpagewiselinenumbers - \realpagewiselinenumbers} +\DeclareVoidOption{pagewise}{\setpagewiselinenumbers + \realpagewiselinenumbers} -\DeclareOption{running}{\setrunninglinenumbers} +\DeclareVoidOption{running}{\setrunninglinenumbers} % The option ~modulo~ causes only those linenumbers to be % printed which are multiples of five. -\DeclareOption{modulo}{\modulolinenumbers\relax} +\DeclareVoidOption{modulo}{\modulolinenumbers\relax} % Option ~modulo*~ modifies ~modulo~ in working like % ~\modulolinenumbers*~---see section_\ref{s:UserCmds}. -\DeclareOption{modulo*}{\modulolinenumbers*\relax} +\DeclareVoidOption{modulo*}{\modulolinenumbers*\relax} % The package option ~mathlines~ switches the behavior of % the ~{linenomath}~ environment with its star-form. @@ -2496,7 +2512,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % %%% 1999-06-10: renamed ~displaymath~ to ~mathlines~. -\DeclareOption{mathlines}{\linenumberdisplaymath} +\DeclareVoidOption{mathlines}{\linenumberdisplaymath} % ~displaymath~ now calls for wrappers of the standard % \LaTeX\ display math environment. This was previously @@ -2509,13 +2525,26 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % ~\endlinenomath~ provides ~\ignorespaces~, so what could go % wrong now? -\DeclareOption{displaymath}{\PackageWarningNoLine{lineno}{% - Option [displaymath] is obsolete -- default now!}} -%% +\DeclareVoidOption{displaymath}{% + \PackageWarningNoLine{lineno}{Option [displaymath] is obsolete}} + %%\let\do@mlineno\relax %%\DeclareOption{displaymath}{\let\do@mlineno\@empty} % (/New v4.3) % +% (New v5.3) Options `sep' and `width' set ~\linenumbersep~ (the separation of +% the line number to the text) and ~\linenumberwidth~ (the width of the line +% number box on the right margin) respectively; see section_\ref{s:CustHooks}. + +\DeclareStringOption[\linenumbersep]{sep} +\DeclareStringOption[\linenumberwidth]{width} +\AtBeginDocument{% + \linenumbersep=\lineno@sep% + \linenumberwidth=\lineno@width% +} + +% (/New v5.3) +% % \subsection{% % Compatibility with \texttt{hyperref} %% own subsec. v4.3. % \unskip} @@ -2536,9 +2565,8 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % first ~\linenumbers~ and before a next one (if there is some). % (/New v4.3) -\DeclareOption{hyperref}{\PackageWarningNoLine{lineno}{% - Option [hyperref] is obsolete. - \MessageBreak The hyperref package is detected automatically.}} +\DeclareVoidOption{hyperref}{% + \PackageWarningNoLine{lineno}{Option [hyperref] is obsolete}} \AtBeginDocument{% \@ifpackageloaded{nameref}{% @@ -2589,7 +2617,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % We stop declaring options and execute the ones that are % called by the user. (/New v4.1) -\ProcessOptions +\ProcessKeyvalOptions* % (New v4.1) Now we know whether ~edtable.sty~ is wanted % and (if it is) with which options it is to be called. @@ -2717,10 +2745,16 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \begingroup \c@internallinenumbers\prevgraf \setbox\@tempboxa\hbox{\vbox{\makeinternalLinenumbers}}% - \dp\@tempboxa\prevdepth \ht\@tempboxa\z@ - \nobreak\vskip-\prevdepth - \nointerlineskip\box\@tempboxa + \ifdim\prevdepth=-1000pt + % \nointerlineskip is already set so we don't need set it again + % (and we shouldn't back up) + \else + \dp\@tempboxa\prevdepth + \nobreak\vskip-\prevdepth + \nointerlineskip + \fi + \box\@tempboxa \endgroup \fi\fi } @@ -2838,9 +2872,9 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \newenvironment{bframe} {\par - \@tempdima\textwidth + \@tempdima\columnwidth \advance\@tempdima 2\bframesep - \setbox\bframebox\hb@xt@\textwidth{% + \setbox\bframebox\hb@xt@\columnwidth{% \hskip-\bframesep \vrule\@width\bframerule\@height\baselineskip\@depth\bframesep \advance\@tempdima-2\bframerule @@ -2858,10 +2892,12 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \def\makeLineNumber{\copy\bframebox\hss}% } {\par - \kern-\prevdepth + \ifdim\prevdepth=-1000pt \else + \kern-\prevdepth + \fi \kern\bframesep \nointerlineskip - \@tempdima\textwidth + \@tempdima\columnwidth \advance\@tempdima 2\bframesep \hbox{\hskip-\bframesep \vrule\@width\@tempdima\@height\bframerule\@depth\z@}% @@ -2885,7 +2921,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % demonstration. % (/New v5.0) % -% (/New v5.1) ~lineno~ tries to use \LaTeX's hook management system to patch +% (New v5.1) ~lineno~ tries to use \LaTeX's hook management system to patch % ~amsmath~, so that the two packages may be loaded independently. This requires % the October 2020 release of \LaTeX. As a fallback for older releases, ~lineno~ % tests whether ~amsmath~ had already been loaded (by testing for the presence @@ -2893,7 +2929,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % has not been loaded, no patches are applied, and a warning is issued. % (/New v5.1) % -% (/New v5.2) Fix ~lineno~ to work with ~amsmath~'s ~\allowdisplaybreaks~ +% (New v5.2) Fix ~lineno~ to work with ~amsmath~'s ~\allowdisplaybreaks~ % option. A side effect is that now ~\\*~ suppresses a line number on that % line. This is because ~\\*~ prohibits a page break after a given line, and % ~lineno~ basically works by hijacking page breaks. It's probably not possible @@ -2901,16 +2937,14 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % (/New v5.2) % -\RequirePackage{etoolbox} - \ifdefined\AddToHook \def\linenoamsmath@patches#1{\AddToHook{package/amsmath/after}{#1}} \else \ifdefined\endgather \def\linenoamsmath@patches#1{#1} \else - \PackageWarning{lineno}{% - `amsmath' must be loaded before `lineno' for patches to be applied} + \PackageWarningNoLine{lineno}% + {`amsmath' must be loaded before `lineno' for patches to be applied} \def\linenoamsmath@patches#1{\relax} \fi \fi @@ -3181,8 +3215,8 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % \unskip} % % (New v4.1) We have completed inclusion of the earlier -% extension packages ~linenox0.sty~, ~linenox1.sty~, and -% ~lnopatch.sty~. If one of them is loaded, though, +% extension packages ~linenox0.sty~, ~linenox1.sty~, ~lnopatch.sty~, +% and ~linenoamsmath~. If one of them is loaded, though, % we produce an error message before something weird happens. % We avoid ~\newif~ because the switchings occur so rarely. @@ -3191,10 +3225,12 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. \@ifpackageloaded{linenox0}{\let\if@LN@obsolete\iftrue}\relax \@ifpackageloaded{linenox1}{\let\if@LN@obsolete\iftrue}\relax \@ifpackageloaded{lnopatch}{\let\if@LN@obsolete\iftrue}\relax + \@ifpackageloaded{linenoamsmath}{\let\if@LN@obsolete\iftrue}\relax \if@LN@obsolete \PackageError{lineno}{Obsolete extension package(s)}{% - With lineno.sty version 4.00 or later,\MessageBreak - linenox0/linenox1/lnopatch.sty must no longer be loaded.}% + As of \fileversion, `lineno' includes the functionality of \MessageBreak + `linenox0', `linenox1', `lnopatch', and `linenoamsmath'; \MessageBreak + these packages are therefore obsolete and must not be loaded.}% \fi } @@ -3384,7 +3420,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % % \subsection{% % Customization hooks -% \unskip} +% \unskip}\label{s:CustHooks} % % There are several hooks to customize the appearance of the % line numbers, and some low level hooks for special @@ -3412,7 +3448,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % the right margin. % % The default definition is \par$\qquad$ -% ~\linenumberfont\hskip\linenumbersep\hskip\textwidth~ \par$\qquad$ +% ~\linenumberfont\hskip\linenumbersep\hskip\columnwidth~ \par$\qquad$ % ~\hbox to\linenumberwidth{\hss\LineNumber}\hss~ % \item % [|\linenumberfont] \ \par @@ -3421,7 +3457,7 @@ Macro file lineno.sty for LaTeX: attach line numbers, refer to them. % \item % [|\linenumbersep] \ \par % This dimension register sets the separation of the -% linenumber to the text. Default value is ~10pt~. +% line number to the text. Default value is ~10pt~. % \item % [|\linenumberwidth] \ \par % This dimension register sets the width of the line |