The Tabbing package

Jean-Pierre F. Drucbert

                   drucbert@onecert.fr

1997/12/18

Abstract

This package^{1} provides a ‘Tabbing’ environment, analog to the L^{A}TEX standard ‘tabbing’ environment, but allowing accented letters. No more \a', \a` and \a= needed.

1 The Tabbing package

L^{A}TEX provides the tabbing environment. But it is not user-friendly when you must use accented letters, whith the grave, acute and macron accents, \'a á, \`a à and \=a ā. Even when you use a good input encoding on 8 bits. So the Tabbing package offers a Tabbing environment, which is a slightly modified copy of the standard tabbing environment. In the Tabbing environment, the local commands \>, \<, \=, \+, \-, \` and \' are replaced by \TAB>, \TAB<, \TAB=, \TAB+, \TAB-, \TAB` and \TAB' respectively. Hence the conversion is rather easy. Acute and grave accents are very often used in french, this environment should be useful. In the example of Figure 1, the vertical rules mark the tab stops (with the macro \tabrule, which is not part of the package)

Note that the markup is more visible than in the tabbing environment, and the syntax of accented letters is the same outside and inside of the new Tabbing environment.

1

Copyright \begin{matrix}c \\ ◯ \end{matrix} 1996, 1997, 1998 by

Jean-Pierre F. Drucbert

ONERA/CERT SRI

Office National d’Études et de Recherches Aérospatiales

Centre d’Études et de Recherches de Toulouse

Service Réseaux et Informatique

Complexe Scientifique de Rangueil

2, Avenue Édouard Belin

BP 4025 F-31055 TOULOUSE CEDEX

FRANCE

Email: drucbert@onecert.fr

\newcommand{\tabrule}[1]{\makebox[0pt]{\raisebox
{0pt}[0pt]{\rule{\fboxrule}{#1\baselineskip}}}}
\begin{Tabbing}
gnomon \TAB= agn\=ostic \TAB=     arma\TAB= dillo     \TAB= gnash \TAB= \kill
      \TAB>            \TAB> gnu     \TAB> gneisses  \TAB>       \TAB> gnarl
\\*
      \TAB>            \TAB> \'ecole \TAB> \'el\`eve \TAB>    \TAB> examen
\\*
      \TAB>            \TAB> cole   \TAB> lve     \TAB>    \TAB> examen
\\*
      \TAB>            \TAB> u       \TAB> e         \TAB> g     \TAB>
\TAB`
\end{Tabbing}

gnu gneisses gnarl écoleélève examen cole lve examen u e g

Figure 1: A simple Tabbing environment

2 Implementation

1 ⟨∗package⟩

Tabbing We just copy the standard tabbing environment, and add the local macro \TAB

\TAB who tests its argument. An error message has been added.

 2 \gdef\Tabbing{\lineskip \z@skip
 3 % %     \let\>\@rtab
 4 % %     \let\<\@ltab
 5 % %     \let\=\@settab
 6 % %     \let\+\@tabplus
 7 % %     \let\-\@tabminus
 8 % %     \let\`\@tabrj
 9 % %     \let\'\@tablab
10 \def\TAB##1{\ifx ##1>\@rtab\else
11  \ifx ##1<\@ltab\else
12  \ifx ##1=\@settab\else
13  \ifx ##1+\@tabplus\else
14  \ifx ##1-\@tabminus\else
15  \ifx ##1`\@tabrj\else
16  \ifx ##1'\@tablab\else
17  \PackageError{Tabbing}%
18  {Bad argument ##1 for Tabbing specification}
19  \fi\fi\fi\fi\fi\fi\fi}
20  \let\\=\@tabcr
21  \global\@hightab\@firsttab
22  \global\@nxttabmar\@firsttab
23  \dimen\@firsttab\@totalleftmargin
24  \global\@tabpush\z@ \global\@rjfieldfalse
25  \trivlist \item\relax
26  \if@minipage\else\vskip\parskip\fi
27  \setbox\@tabfbox\hbox{\rlap{\indent\hskip\@totalleftmargin
28  \the\everypar}}\def\@itemfudge{\box\@tabfbox}%
29  \@startline\ignorespaces}
30 \gdef\endTabbing{%
31 \@stopline\ifnum\@tabpush >\z@ \@badpoptabs \fi\endtrivlist}