diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/ntabbing |
Initial commit
Diffstat (limited to 'macros/latex/contrib/ntabbing')
-rw-r--r-- | macros/latex/contrib/ntabbing/ntabbing.pdf | bin | 0 -> 84329 bytes | |||
-rw-r--r-- | macros/latex/contrib/ntabbing/ntabbing.sty | 61 | ||||
-rw-r--r-- | macros/latex/contrib/ntabbing/ntabbing.tex | 84 |
3 files changed, 145 insertions, 0 deletions
diff --git a/macros/latex/contrib/ntabbing/ntabbing.pdf b/macros/latex/contrib/ntabbing/ntabbing.pdf Binary files differnew file mode 100644 index 0000000000..4935253e5c --- /dev/null +++ b/macros/latex/contrib/ntabbing/ntabbing.pdf 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} |