\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}