summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ntabbing
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ntabbing
Initial commit
Diffstat (limited to 'macros/latex/contrib/ntabbing')
-rw-r--r--macros/latex/contrib/ntabbing/ntabbing.pdfbin0 -> 84329 bytes
-rw-r--r--macros/latex/contrib/ntabbing/ntabbing.sty61
-rw-r--r--macros/latex/contrib/ntabbing/ntabbing.tex84
3 files changed, 145 insertions, 0 deletions
diff --git a/macros/latex/contrib/ntabbing/ntabbing.pdf b/macros/latex/contrib/ntabbing/ntabbing.pdf
new file mode 100644
index 0000000000..4935253e5c
--- /dev/null
+++ b/macros/latex/contrib/ntabbing/ntabbing.pdf
Binary files differ
diff --git a/macros/latex/contrib/ntabbing/ntabbing.sty b/macros/latex/contrib/ntabbing/ntabbing.sty
new file mode 100644
index 0000000000..0442b58083
--- /dev/null
+++ b/macros/latex/contrib/ntabbing/ntabbing.sty
@@ -0,0 +1,61 @@
+%% This file contains the ntabbing.sty
+%% Written by Gideon Stupp stupp@math.tau.ac.il
+%%
+%% The ntabbing environment is an extension of the tabbing environment.
+%% Two commands added:
+%% \label{} - enumerates the and gives
+%% a reference to the line just like any \label operation.
+%%
+%% \reset - Resets line numbering.
+%%
+\NeedsTeXFormat{LaTeX2e}
+ \ProvidesPackage{ntabbing}[2000/03/20 v2.0 tabbing enhancements]
+
+\newcounter{g@linecounter}
+\newbox\g@numbox%
+\newdimen\numboxsize \numboxsize=1.5em%
+\newbox\g@seperator \setbox\g@seperator=\hbox{:}
+
+\gdef\g@setnumbox{
+ \refstepcounter{g@linecounter}%
+ \global\setbox\g@numbox=\hbox to\numboxsize{\hfil \theg@linecounter\copy\g@seperator\hfil }
+}
+
+% newlabel increments counter and set numbox. Empty labels are not passed to old label.
+\gdef\g@newlabel#1{\g@setnumbox\ifx#1\@empty\else\g@oldlabel{#1}\fi}
+
+% Change tabbing startline to give empty default value to numbox
+\gdef\g@newstartline{\global\setbox\g@numbox=\hbox to\numboxsize{}
+ \g@oldstartline}
+
+% Change tabbing stopline to print numbox before current line.
+\gdef\g@newstopline{\unskip\@stopfield\if@rjfield
+\global\@rjfieldfalse
+ \@tempdima\@totalleftmargin \advance\@tempdima\linewidth
+ \hb@xt@\@tempdima{\@itemfudge\box\g@numbox\hskip\dimen\@curtabmar
+ \box\@curline\hfil\box\@curfield}\else\@addfield
+ \hbox{\@itemfudge\box\g@numbox\hskip\dimen\@curtabmar\box\@curline}\fi}
+
+%ntabbing environment definition.
+\def\ntabbing{
+
+\def\reset{\setcounter{g@linecounter}{0}}
+
+\let\g@oldstopline=\@stopline
+\let\@stopline=\g@newstopline
+
+\let\g@oldstartline=\@startline
+\let\@startline=\g@newstartline
+
+\let\g@oldlabel=\label
+\let\label=\g@newlabel
+
+\let\g@oldcaption=\caption
+
+% redefine \caption{} to support the old \label
+\def\caption##1{\let\label=\g@oldlabel \g@oldcaption{##1}}
+ \tabbing
+
+} % Of ntabbing.
+
+\def\endntabbing {\endtabbing}
diff --git a/macros/latex/contrib/ntabbing/ntabbing.tex b/macros/latex/contrib/ntabbing/ntabbing.tex
new file mode 100644
index 0000000000..20efd02190
--- /dev/null
+++ b/macros/latex/contrib/ntabbing/ntabbing.tex
@@ -0,0 +1,84 @@
+\documentclass{article}
+\usepackage{ntabbing,float}
+\floatstyle{boxed}
+\newfloat{fig}{bt}{fig}
+\floatname{fig}{Figure}
+
+\begin{document}
+\title{The {\tt ntabbing} environment\thanks{The latest version of this file and the associated latex style can be found at
+{\tt ftp://ftp.math.tau.ac.il/pub/stupp/latex}.}}
+\author{Gideon Stupp\\ {\tt stupp@math.tau.ac.il}}
+
+\date{April 9, 2000}
+\maketitle
+\begin{abstract}
+The {\tt ntabbing} environment is an extension of the {\tt
+tabbing} environment that supports automatic line numbering. The
+lines can be referenced using the standard {\tt \string\label}
+and {\tt\string\ref} mechanism.
+\end{abstract}
+
+\section{Intorduction}
+
+\begin{fig}
+\begin{verbatim}
+ Recursion example (Function $f$, Line~\ref{rec}).
+\begin{ntabbing}
+123\=123\=\kill
+int $f$(int $i$)\\
+\>if ($i<2$) return($i$); \label{}\\
+\>return $i$*$f$($i-1$); // recurse\label{rec}\\
+\\
+\reset
+ int main()\\\
+ \>for $i$:=1 to 10\label{}\\
+ \>\>$s:=s+f(i)$;\label{}\\
+ \>return(s);\label{}\\
+\end{ntabbing}
+
+\end{verbatim}
+ Recursion example (Function $f$, Line~\ref{rec}).
+\begin{ntabbing}
+123\=123\=\kill
+int $f$(int $i$)\\
+\>if ($i<2$) return($i$); \label{}\\
+\>return $i$*$f$($i-1$); // recurse\label{rec}\\
+\\
+\reset
+ int main()\\\
+ \>for $i$:=1 to 10\label{}\\
+ \>\>$s:=s+f(i)$;\label{}\\
+ \>return(s);\label{}\\
+\end{ntabbing}
+\caption{Simple {\tt ntabbing} example.\label{fig1}}
+\end{fig}
+
+Figure~\ref{fig1} shows an {\tt ntabbing} environment example and
+its corresponding latex output. Every line inside the {\tt
+ntabbing} environment which is labeled is automatically numbered.
+The lines can be referenced from within the environment or from
+the outside. If a line just needs to be numbered, {\tt
+\string\label\{\}} can be used. Line numbers can be reset back to
+one at any point using the {\tt\string\reset} command (line
+numbering continues across {\tt ntabbing} environments)
+
+\section{User Interface}
+\reversemarginpar
+ \marginpar{{\tt\string\begin\{ntabbing\}}\\{\tt\string\end\{ntabbing\}}}
+ The text that needs to be numbered should start with {\tt\string\begin\{ntabbing\}}
+ and end with {\tt\string\end\{ntabbing\}}. The {\tt ntabbing} environment is an
+ extension of the {\tt tabbing} environment and all the tabbing
+ commands are supported.
+\\\\\marginpar{{\tt\string\label\{\}}}
+ The {\tt\string\label\{\}} command automatically numbers the line with the
+ current sequence number. It can appear at any point in a line up to the {\tt\string\\}.
+\\\\\marginpar{{\tt\string\label\{xxx\}}}
+ Like {\tt\string\label\{\}} but the line can be referenced using
+ {\tt\string\ref\{xxx\}}.
+\\\\\marginpar{{\tt\string\reset}}
+ Resets line numbering. Line numbers can be reset several times in
+ the environment. Notice that line numbers are {\em
+ not} automatically reset at the beginning of every {\tt
+ ntabbing} block.
+
+\end{document}