summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lineno
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-05-21 03:01:40 +0000
committerNorbert Preining <norbert@preining.info>2023-05-21 03:01:40 +0000
commitacbf029eb7f81c05b715461ab1ce2ab7e4f6ce09 (patch)
tree1b2e5899af7b651ddc4cb4ff54c08b182cd344e7 /macros/latex/contrib/lineno
parent9cdcfcf8d9333b1d9b34b61ddc21910bbcc04491 (diff)
CTAN sync 202305210301
Diffstat (limited to 'macros/latex/contrib/lineno')
-rw-r--r--macros/latex/contrib/lineno/README.md4
-rw-r--r--macros/latex/contrib/lineno/doc/CHANGEs.txt10
-rw-r--r--macros/latex/contrib/lineno/doc/SRCFILEs.txt4
-rw-r--r--macros/latex/contrib/lineno/doc/fnlineno.pdfbin198521 -> 198310 bytes
-rw-r--r--macros/latex/contrib/lineno/doc/lineno.pdfbin371227 -> 372679 bytes
-rw-r--r--macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdfbin102915 -> 102740 bytes
-rw-r--r--macros/latex/contrib/lineno/doc/lnosuppl.pdfbin161540 -> 161428 bytes
-rw-r--r--macros/latex/contrib/lineno/doc/ulineno.pdfbin127130 -> 127130 bytes
-rw-r--r--macros/latex/contrib/lineno/source/lineno.tex144
-rw-r--r--macros/latex/contrib/lineno/source/linenoamsmathdemo.tex4
-rw-r--r--macros/latex/contrib/lineno/tex/lineno.sty152
11 files changed, 197 insertions, 121 deletions
diff --git a/macros/latex/contrib/lineno/README.md b/macros/latex/contrib/lineno/README.md
index 085d59f247..ea4747ea13 100644
--- a/macros/latex/contrib/lineno/README.md
+++ b/macros/latex/contrib/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/macros/latex/contrib/lineno/doc/CHANGEs.txt b/macros/latex/contrib/lineno/doc/CHANGEs.txt
index 0612c8ffc4..b61ae6560d 100644
--- a/macros/latex/contrib/lineno/doc/CHANGEs.txt
+++ b/macros/latex/contrib/lineno/doc/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/macros/latex/contrib/lineno/doc/SRCFILEs.txt b/macros/latex/contrib/lineno/doc/SRCFILEs.txt
index ead01626f4..d25688616e 100644
--- a/macros/latex/contrib/lineno/doc/SRCFILEs.txt
+++ b/macros/latex/contrib/lineno/doc/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/macros/latex/contrib/lineno/doc/fnlineno.pdf b/macros/latex/contrib/lineno/doc/fnlineno.pdf
index 0760d0ecc0..b875e16366 100644
--- a/macros/latex/contrib/lineno/doc/fnlineno.pdf
+++ b/macros/latex/contrib/lineno/doc/fnlineno.pdf
Binary files differ
diff --git a/macros/latex/contrib/lineno/doc/lineno.pdf b/macros/latex/contrib/lineno/doc/lineno.pdf
index 7cbf50f5b4..3c1178359d 100644
--- a/macros/latex/contrib/lineno/doc/lineno.pdf
+++ b/macros/latex/contrib/lineno/doc/lineno.pdf
Binary files differ
diff --git a/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf b/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf
index 68e32b823e..e311cec61a 100644
--- a/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf
+++ b/macros/latex/contrib/lineno/doc/linenoamsmathdemo.pdf
Binary files differ
diff --git a/macros/latex/contrib/lineno/doc/lnosuppl.pdf b/macros/latex/contrib/lineno/doc/lnosuppl.pdf
index c2f5c3fd6d..2d04f767b4 100644
--- a/macros/latex/contrib/lineno/doc/lnosuppl.pdf
+++ b/macros/latex/contrib/lineno/doc/lnosuppl.pdf
Binary files differ
diff --git a/macros/latex/contrib/lineno/doc/ulineno.pdf b/macros/latex/contrib/lineno/doc/ulineno.pdf
index efe87de8ab..6db5ce14d5 100644
--- a/macros/latex/contrib/lineno/doc/ulineno.pdf
+++ b/macros/latex/contrib/lineno/doc/ulineno.pdf
Binary files differ
diff --git a/macros/latex/contrib/lineno/source/lineno.tex b/macros/latex/contrib/lineno/source/lineno.tex
index 1e2457202c..0957f1e5f0 100644
--- a/macros/latex/contrib/lineno/source/lineno.tex
+++ b/macros/latex/contrib/lineno/source/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/macros/latex/contrib/lineno/source/linenoamsmathdemo.tex b/macros/latex/contrib/lineno/source/linenoamsmathdemo.tex
index 045e251a62..f3c51ba1c6 100644
--- a/macros/latex/contrib/lineno/source/linenoamsmathdemo.tex
+++ b/macros/latex/contrib/lineno/source/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/macros/latex/contrib/lineno/tex/lineno.sty b/macros/latex/contrib/lineno/tex/lineno.sty
index 03958a8589..440cd7bf86 100644
--- a/macros/latex/contrib/lineno/tex/lineno.sty
+++ b/macros/latex/contrib/lineno/tex/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