summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/technica/txnline.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/technica/txnline.sty')
-rw-r--r--macros/latex/contrib/technica/txnline.sty178
1 files changed, 178 insertions, 0 deletions
diff --git a/macros/latex/contrib/technica/txnline.sty b/macros/latex/contrib/technica/txnline.sty
new file mode 100644
index 0000000000..04f201c145
--- /dev/null
+++ b/macros/latex/contrib/technica/txnline.sty
@@ -0,0 +1,178 @@
+\NeedsTeXFormat{LaTeX2e}[1994/11/04]
+\ProvidesPackage{txnline} [2006/10/15 Technica]
+%
+% Most of the code in this package comes from version 3.10a of the
+% package "lineno" by Stephan I. B\"ottcher. The current version of
+% "lineno" is available on CTAN at tex-archive/macros/latex/contrib/lineno
+%
+% The package is NOT a replacement for "lineno": for one thing, it does
+% not ever print a line number.
+%
+% Copyright Gianfranco Boggio-Togna 2006
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version~1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of the file txnline.sty
+%
+\def \TXNl@linenopenalty {-100000\relax}
+\mathchardef \TXNl@linenopenaltypar = 32000
+
+\newcount \TXNl@linenumber
+\global \TXNl@linenumber = \@ne
+
+\newcount \TXNl@linenumber@par
+\global \TXNl@linenumber@par = \z@
+
+\def \TXNl@lineate #1{%
+ \ifx #1\relax
+ \par
+ \ifx \TXNl@UserProcessLine \@gobble
+ \else
+ \let \TXNl@UserProcessLine = \@gobble
+ \TXNl@nolinenumbers
+ \fi
+ \else
+ \ifx \TXNl@UserProcessLine \@gobble
+ \let \TXNl@UserProcessLine = #1\relax
+ \TXNl@linenumbers
+ \fi
+ \fi
+}
+
+\let \TXNl@output = \output
+\newtoks \output
+\output = \expandafter{\the\TXNl@output}
+
+\TXNl@output = {%
+ \TXNl@LineNoTest
+ \if@tempswa
+ \ifnum \holdinginserts = \thr@@
+ \@tempswafalse
+ \fi
+ \if@tempswa
+ \the\output
+ \ifnum \holdinginserts = -\thr@@
+ \global \holdinginserts = \thr@@
+ \fi
+ \else
+ \global \holdinginserts = -\thr@@
+ \unvbox \@cclv
+ \ifnum \outputpenalty = \@M
+ \else
+ \penalty \outputpenalty
+ \fi
+ \fi
+ \else
+ \TXNl@ProcessLine
+ \fi
+}
+
+\def \TXNl@LineNoTest {%
+ \let \@@par = \@@@par
+ \ifnum \interlinepenalty < -\TXNl@linenopenaltypar
+ \advance \interlinepenalty by -\TXNl@linenopenalty
+ \TXNl@nobreaktrue
+ \fi
+ \@tempswatrue
+ \ifnum \outputpenalty > -\TXNl@linenopenaltypar
+ \else
+ \ifnum \outputpenalty > -188000\relax
+ \@tempswafalse
+ \fi
+ \fi
+}
+
+\def \TXNl@nobreaktrue {\let \if@nobreak = \iftrue}
+
+\let \TXNl@UserProcessLine = \@gobble
+
+\def \TXNl@ProcessLine {%
+ \boxmaxdepth= \maxdimen
+ \setbox \z@ = \vbox {\unvbox\@cclv}%
+ \dimen@ = \dp\z@
+ \global \advance \TXNl@linenumber@par by \@ne
+ \count@ = \TXNl@linenumber@par
+ \ifnum \outputpenalty = -\TXNl@linenopenaltypar
+ \global \TXNl@linenumber@par = \z@
+ \count@ = -\count@
+ \fi
+ \expandafter \TXNl@UserProcessLine \expandafter {\the\count@}%
+ \global \advance \TXNl@linenumber by \@ne
+ \ifnum \outputpenalty = -\TXNl@linenopenaltypar
+ \else
+ \@tempcnta = \outputpenalty
+ \advance \@tempcnta by -\TXNl@linenopenalty
+ \penalty \@tempcnta
+ \fi
+}
+
+\let \@@@par = \@@par
+
+\def \TXNl@linenumberpar {%
+ \ifvmode
+ \@@@par
+ \else
+ \ifinner
+ \@@@par
+ \else
+ \advance \interlinepenalty by \TXNl@linenopenalty
+ \edef \TXNl@linenoprevgraf {\the\prevgraf}%
+ \global \holdinginserts = \thr@@
+ \@@@par
+ \ifnum \TXNl@linenoprevgraf < \prevgraf
+ \penalty -\TXNl@linenopenaltypar
+ \fi
+ \kern \z@
+ \global \holdinginserts =\z@
+ \advance \interlinepenalty by -\TXNl@linenopenalty
+ \fi
+ \fi
+}
+
+\newif \ifTXNl@lineating
+\newif \ifTXNl@waslineating
+
+\def \TXNl@suspend {%
+ \ifTXNl@lineating
+ %\typeout{suspend \the\TXNl@linenumber}%
+ \TXNl@waslineatingtrue
+ \TXNl@nolinenumbers
+ \fi
+}
+\def \TXNl@resume {%
+ \ifTXNl@waslineating
+ %\typeout{resume \the\TXNl@linenumber}%
+ \TXNl@waslineatingfalse
+ \TXNl@linenumbers
+ \fi
+}
+
+\def \TXNl@linenumbers {%
+ \let \@@par = \TXNl@linenumberpar
+ \ifx \@par \@@@par
+ \let \@par = \TXNl@linenumberpar
+ \fi
+ \ifx \par \@@@par
+ \let \par = \TXNl@linenumberpar
+ \fi
+ \TXNl@lineatingtrue
+}
+
+\def\TXNl@nolinenumbers {%
+ \let \@@par = \@@@par
+ \ifx \@par \TXNl@linenumberpar
+ \let \@par = \@@@par
+ \fi
+ \ifx \par \TXNl@linenumberpar
+ \let \par = \@@@par
+ \fi
+ \TXNl@lineatingfalse
+}
+\advance \maxdeadcycles by 100
+