Le package Tabbing

Jean-Pierre F. Drucbert

                   drucbert@onecert.fr

1997/12/18

Résumé Ce package^{1} définit un environnement Tabbing, analogue à l’environnement L^{A}TEX standard homonyme, mais qui permet l’utilisation des lettres accentuées, donc plus besoin de \a', \a` ou \a=.

1 The Tabbing package

L^{A}TEX définit l’environnement tabbing. Malheureusement, il n’est guère pratique d’utiliser des accents aigus ou graves (et d’autres, comme ā, ou certains caractères) à l’intérieur de cet environnement, même avec un codage sur 8 bits en entrée. Le paquetage Tabbing, dû à Jean-Pierre Drucbert, offre un environnement Tabbing qui est analogue à l’environnement tabbing, mais dans lequel les commandes locales \>, \<, \=, \+, \-, \` et \' sont respectivement remplacées par

\TAB>, \TAB<, \TAB=, \TAB+, \TAB-, \TAB` et \TAB' simplement. La conversion est

donc assez facile. Comme les accents aigus et graves sont très utilisés en français, cet environnement peut être intéressant. Dans l’exemple de la figure 1, les traits verticaux \tabrule^{2} marquent les taquets :

Noter que le repère est plus visible que dans l’environnement tabbing et que la syntaxe des lettres accentuées est la même à l’intérieur qu’à l’extérieur du nouvel environnement Tabbing.

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

2Cette macro ne fait pas partie du package.

\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> élève     \TAB>    \TAB> examen
\\*
      \TAB>            \TAB> u       \TAB> e         \TAB> g     \TAB>
\TAB`
\end{Tabbing}

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

Fig. 1 – Une utilisation simple de Tabbing

2 Implémentation

1 ⟨∗package⟩

Tabbing Nous créons simplement une copie de l’environnement tabbing auquel nous ajou-

tons une macro locale \TAB qui teste son argument. Un message d’erreur a été \TAB ajouté.

 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}

Index

Numbers written in italic refer to the page where the corresponding entry is described, the ones underlined to the code line of the definition, the rest to the code lines where the entry is used.

Symbols \' . . . . . . . . . . . . . . . . . . . . . . . . . . 9 \+ . . . . . . . . . . . . . . . . . . . . . . . . . . 6 \- . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \< . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \= . . . . . . . . . . . . . . . . . . . . . . . . . . 5 \> . . . . . . . . . . . . . . . . . . . . . . . . . . 3 \@badpoptabs . . . . . . . . . . . . . . . . . 31 \@firsttab . . . . . . . . . . . . . . . . 21–23 \@hightab . . . . . . . . . . . . . . . . . . . 21 \@itemfudge . . . . . . . . . . . . . . . . . . 28 \@ltab . . . . . . . . . . . . . . . . . . . . . 4, 11 \@nxttabmar . . . . . . . . . . . . . . . . . . 22 \@rjfieldfalse . . . . . . . . . . . . . . . 24 \@rtab . . . . . . . . . . . . . . . . . . . . . 3, 10 \@settab . . . . . . . . . . . . . . . . . . . 5, 12 \@startline . . . . . . . . . . . . . . . . . . 29 \@stopline . . . . . . . . . . . . . . . . . . 31 \@tabcr . . . . . . . . . . . . . . . . . . . . . 20 \@tabfbox . . . . . . . . . . . . . . . . . 27, 28 \@tablab . . . . . . . . . . . . . . . . . . . 9, 16 \@tabminus . . . . . . . . . . . . . . . . . 7, 14 \@tabplus . . . . . . . . . . . . . . . . . . 6, 13 \@tabpush . . . . . . . . . . . . . . . . . 24, 31 \@tabrj . . . . . . . . . . . . . . . . . . . . 8, 15

\@totalleftmargin . . . . . . . . . . 23, 27

\\ . . . . . . . . . . . . . . . . . . . . . . . . . 20 \` . . . . . . . . . . . . . . . . . . . . . . . . . . 8

E

\endTabbing . . . . . . . . . . . . . . . . . . 30 \endtrivlist . . . . . . . . . . . . . . . . . 31 environments :

Tabbing . . . . . . . . . . . . . . . . . . . \underline{2} \everypar . . . . . . . . . . . . . . . . . . . 28

G \gdef . . . . . . . . . . . . . . . . . . . . . . 2, 30

H \hskip . . . . . . . . . . . . . . . . . . . . . . 27

I \if@minipage . . . . . . . . . . . . . . . . . 26 \indent . . . . . . . . . . . . . . . . . . . . . 27 \item . . . . . . . . . . . . . . . . . . . . . . . 25

L \lineskip . . . . . . . . . . . . . . . . . . . . 2

P \parskip . . . . . . . . . . . . . . . . . . . . 26

R \rlap . . . . . . . . . . . . . . . . . . . . . . . 27

T \TAB . . . . . . . . . . . . . . . . . . . . . . 3, 10 \Tabbing . . . . . . . . . . . . . . . . . . . . . 2 Tabbing (environment) . . . . . . . . . . . \underline{2} \trivlist . . . . . . . . . . . . . . . . . . . 25

Z \z@skip . . . . . . . . . . . . . . . . . . . . . . 2

Historique des changements

v1.0 Général : Première version officielle distribuée. . . . . . . . . . . . . . . . 1