Quelles extensions sont considérées comme obsolètes ? Par quoi les remplacer ?#

Le tableau ci-dessous recense les extensions qui ont été fréquemment utilisées à une époque, mais ne sont plus recommandées.

Lorsque vous lisez une documentation, regardez bien sa date de mise à jour : le monde évolue et les conseils d’il y a 20 ou 30 ans ne sont plus forcément pertinents.

1.  Contrôle de votre code#

L’extension nag passe votre code en revue et détecte l’utilisation de commandes obsolètes, sur la base des recommandations de l2tabu (traduction en français également disponible, la version de référence étant la version allemande).

1.1.  Liste des extensions considérées comme obsolètes#

Extensions obsolètes

Extensions recommandées

Commentaires

a4, a4wide, anysize

geometry, typearea

atxy

textpos

Voir détails ci-dessous.

backrefx

backref

bitfield

bytefield

catmac

amscd

Voir détails ci-dessous.

caption2

caption

cd

amscd

Voir détails ci-dessous.

chngpage

changepage

cprog

listings, lgrind

csvtools

datatool

datetime

datetime2

dinat

natdin

doublespace

setspace

dropcaps

lettrine

dropping

lettrine

dvipsk

dvips

eclbkbox

boites

Voir détails ci-dessous.

eledmac

reledmac

eledpar

reledpar

eps, epsfig

graphicx

euler

eulervm

eurotex

inputenx

everysel

lthooks

La documentation du package explique pourquoi il est considéré comme obsolète par son auteur.

exsheets

xsim

Même auteur, qui indique dans la documentation de xsim que exsheets ne recevra plus de nouvelles fonctionnalités.

fancyheadings

fancyhdr

FiNK

currfile

fixltx2e

Fonctionnalités désormais intégrées au noyau.

floatfig

floatflt

Voir détails ci-dessous.

german

babel

glossary

glossaries

graphics

graphicxs

ha-prosper

powerdot, beamer

here

float

includex

newclude

isolatin, isolatin1

inputenc

ledmac

reledmac

ledpar

reledpar

mathpple

mathpazo

mathptm

mathptmx

movie15

media9

mtex (ou Mu)

MusiX

Music

MusiX

Music semble cependant permettre la conversion de fichier midi.

ngerman

babel

newthm

ntheorem

nicefrac

xfrac

numline

lineno

ocg-p, ocgx & fixocgx

ocgx2

palatino

mathpazo

picinpar

floatflt, picins, wrapfig

prosper

powerdot, beamer

ps4pdf

pst-pdf

raggedr

ragged2e

remreset

Fonctionnalités désormais intégrées au noyau.

scrlettr

scrlttr2

scrpage

scrpage2

seminar

powerdot, beamer

SIunits, si

siunitx

slashbox

diagbox

stix

stix2-otf, stix2-type1

Depuis avril 2018.

subfigure

subfig, subcaption

tetex

Live

qui est une distribution, est obsolète depuis 2007.

textcomp

Fonctionnalités désormais intégrées au noyau.

t1enc

fontenc

times

mathptmx

tgrind

lgrind

theorem

amsthm, ntheorem

thmmarks

ntheorem

utopia

fourier

vgrind

lgrind

vmargin

geometry, typearea

2.  Informations complémentaires pour certaines de ces extensions#

2.1.  L’extension « atxy »#

Cette extension ne fait pas partie du CTAN, ce qui peut la rendre difficile à trouver. Le code ci-dessous reprend celui de la version présente à l’adresse http://www.lsv.ens-cachan.fr/~markey/tmp/atxy.sty.

Petit défaut, si le document ne contient que des commandes atxy, il n’y a pas de dvi généré. Il faut donc ajouter n’importe quoi au début du document, un strut par exemple (avec \strut), pour que cela marche.

%%%%%% atxy.sty  V1.1
% at.sty     Colin Hogben (chah@jet.uk)
% 12-Aug-91  First version
% 20-Mar-92  Fixed to allow for \headheight
% 06-Jul-93  \@useat only used in case of any \at material (B.gaulle)
% 07-Jul-93  at -> atxy, reset of \par added to \output (Y. Delmas)
% 08-Jul-93  \global setting of \atxytrue.
%            Reset @ original \catcode (letter or other).
%            \kerning of \voffset & \hoffset required.   (B.Gaulle)
% 25-Jan-94  \atxy printed nothing at all (pointed by Ph. Louarn)
%            when one \atxy was specified between \begingroup and \endgroup.
%            The \setbox nedded to be \global.  This will be V1.1 (B. Gaulle)
%
% \atxy(HPOS,VPOS){TEXT}         % Y
% Positions TEXT at an absolute distance of HPOS from the left edge
% and VPOS from the top edge of the current page.
%
% Example :
%   \atxy(2cm,5cm){\parbox[t]{10cm}{
%       Name\\          % Recipient's name and address positioned
%       Address\\etc.}} % suitably for a windowed envelope
% -----------------------------------------------------------------
%%
%%      checksum        = "19479 77 357 2869
%%
% -----------------------------------------------------------------
%
% First create a box in which to store absolute positioned material.
%
\ifcat/@ \makeatletter\let\resetat\makeatother% save @ \catcode
                      \else\let\resetat\relax\fi% (letter or other only)
\newbox\@atxybox%
\newif\if@atxy\@atxyfalse% --bg
%
% atxy(HPOS,VPOS){TEXT}
% Add the TEXT to the box with suitable offsets applied.
%
\long\def\atxy(#1,#2)#3{\global\setbox\@atxybox=\hbox% --bg
 {\unhbox\@atxybox
  \vtop to 0pt{\kern #2\hbox to 0pt{\kern #1\relax #3\hss}\vss}}%
 \global\@atxytrue}% --bg
%
% Unload the saved absolute-positioned material.
% Teleport to the actual top corner of the page by undoing the header
% separation, the top and side margins, and the mysterious 1 inch
% offset applied to each. Then make it look like a singularity (zero
% height, depth and width).
%
\def\@useatxy{\if@atxy% --bg
  \vtop to 0pt{\kern-\headsep \kern-\topmargin \kern-\headheight
               \kern-1in \kern-\voffset
    \hbox to 0pt{\kern-\@themargin \kern-1in \kern-\hoffset
\unhbox\@atxybox \hss}\vss}%
            \fi\global\@atxyfalse}% --bg
%
% The following is a copy of the latex.tex \output routine except for
% line 1 : this prepends the shifted absolute material to the current
% page. A little unsafe to copy code like this, but I couldn't work
% out where else to insert the box.
%
\output{\setbox255=\vbox{\@useatxy \unvbox255}\let\par\@@par%
  \ifnum\outputpenalty <-\@M\@specialoutput\else%
  \@makecol\@opcol\@floatplacement\@startcolumn%
  \@whilesw\if@fcolmade \fi{\@opcol\@startcolumn}\fi%
  \global\vsize\ifnum\outputpenalty >-\@Miv \@colroom%
                  \else \maxdimen\fi}%
%
\resetat% reset @ original \catcode
\endinput% --bg

2.2.  L’extension « catmac »#

L’extension catmac définit un ensemble de commandes pour tracer des diagrammes commutatifs. Il propose par défaut un ensemble de formes mais permet également via un certain nombre de macros prédéfinies de composer ses propres formes. En voici un exemple d’utilisation :

\documentclass{article}
  \usepackage{catmac}

\begin{document}
\begin{center}
   \resetparms
   \square[A`B`C`D;f`g`h`k]
\end{center}
\end{document}

Cette extension n’est pas compatible avec l’option [french] de babel qui rend le ; actif.

2.3.  L’extension « cd »#

L’extension cd a été écrite pour 2.09 par D. Hankerson. En voici un exemple :

\documentclass[12pt]{article}
  \usepackage{cd}

\newcommand{\cdrl}{\cd\rightleftarrows}
\newcommand{\cdlr}{\cd\leftrightarrows}
\newcommand{\cdr}{\cd\to}
\newcommand{\cdl}{\cd\gets}
\newcommand{\cdu}{\cd\uparrow}
\newcommand{\cdd}{\cd\downarrow}
\newcommand{\cdud}{\cd\updownarrows}
\newcommand{\cddu}{\cd\downuparrows}

\begin{document}
\[\CD
G \cdrl {\gamma}{\delta} H \cdr {}{\Delta} K \\
\cd. \cdud {f}{g} \cd| {h}{k} \\
0 \cdr {}{} G' \cd= {\beta}{} H' \endCD
\]
\end{document}

2.4.  L’extension « eclbkbox »#

Sont donnés ici les informations sur cette ancienne extension.

L’encadrement du texte est obtenu par l’environnement breakbox.

  • \bkcounttrue : les lignes sont numérotées.

  • \bkcountfalse : elles ne le sont pas (défaut).

On peut emboîter des environnements breakbox.

% eclbkbox.sty by Hideki Isozaki, 1992
% Date : May  28, 1993

\newbox\bk@bxb
\newbox\bk@bxa
\newif\if@bkcont
\newif\ifbkcount
\newcount\bk@lcnt

\def\breakboxskip{2pt}
\def\breakboxparindent{1.8em}

\def\breakbox{\vskip\breakboxskip\relax
\setbox\bk@bxb\vbox\bgroup
\advance\linewidth -2\fboxrule
\advance\linewidth -2\fboxsep
\hsize\linewidth\@parboxrestore
\parindent\breakboxparindent\relax}

% \@tempdimb : amount of vertical skip
% between the first line (\bk@bxa) and the rest (\bk@bxb)
\def\bk@split{%
\@tempdimb\ht\bk@bxb % height of original box
\advance\@tempdimb\dp\bk@bxb
\setbox\bk@bxa\vsplit\bk@bxb to\z@ % split it
\setbox\bk@bxa\vbox{\unvbox\bk@bxa}% recover height & depth of \bk@bxa
\setbox\@tempboxa\vbox{\copy\bk@bxa\copy\bk@bxb}% naive concatenation
\advance\@tempdimb-\ht\@tempboxa
\advance\@tempdimb-\dp\@tempboxa}% gap between two boxes

% \@tempdima : height of the first line (\bk@bxa) + fboxsep
\def\bk@addfsepht{%
    \setbox\bk@bxa\vbox{\vskip\fboxsep\box\bk@bxa}}

\def\bk@addskipht{%
    \setbox\bk@bxa\vbox{\vskip\@tempdimb\box\bk@bxa}}

% \@tempdima : depth of the first line (\bk@bxa) + fboxsep
\def\bk@addfsepdp{%
     \@tempdima\dp\bk@bxa
     \advance\@tempdima\fboxsep
     \dp\bk@bxa\@tempdima}

% \@tempdima : depth of the first line (\bk@bxa) + vertical skip
\def\bk@addskipdp{%
     \@tempdima\dp\bk@bxa
     \advance\@tempdima\@tempdimb
     \dp\bk@bxa\@tempdima}

\def\bk@line{%
    \hbox to \linewidth{\ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi
    \vrule \@width\fboxrule\hskip\fboxsep
    \box\bk@bxa\hfil
    \hskip\fboxsep\vrule \@width\fboxrule}}

\def\endbreakbox{\egroup
\ifhmode\par\fi{\noindent\bk@lcnt\@ne
\@bkconttrue\baselineskip\z@\lineskiplimit\z@
\lineskip\z@\vfuzz\maxdimen
\bk@split\bk@addfsepht\bk@addskipdp
\ifvoid\bk@bxb      % Only one line
\def\bk@fstln{\bk@addfsepdp
\vbox{\hrule\@height\fboxrule\bk@line\hrule\@height\fboxrule}}%
\else               % More than one line
\def\bk@fstln{\vbox{\hrule\@height\fboxrule\bk@line}\hfil
\advance\bk@lcnt\@ne
\loop
 \bk@split\bk@addskipdp\leavevmode
\ifvoid\bk@bxb      % The last line
 \@bkcontfalse\bk@addfsepdp
 \vtop{\bk@line\hrule\@height\fboxrule}%
\else               % 2,...,(n-1)
 \bk@line
\fi
 \hfil\advance\bk@lcnt\@ne
\if@bkcont\repeat}%
\fi
\leavevmode\bk@fstln\par}\vskip\breakboxskip\relax}

\bkcountfalse

2.5.  L’extension « floatfig »#

L’extension floatfig, écrit initialement pour 2.09, fonctionne bien dans des cas simples. Elle définit la commande floatingfigure, qui ne fonctionne cependant pas en mode multicolonnes. Voici un exemple :

\documentclass{report}
  \usepackage[T1]{fontenc}
  \usepackage[latin1]{inputenc}
  \usepackage[francais]{babel}
  \usepackage{boxedminipage}
  \usepackage{floatfig}

\begin{document}
\initfloatingfigs
Il faut commencer le document par la commande \verb+\initfloatingfigs+, afin
d'initialiser l'extension. La documentation indique que ce n'est pas
indispensable, mais l'extension arrête la compilation si ce n'est pas fait.

\medskip
\begin{floatingfigure}{6cm}
  Ceci est une « figure » de 6 centimètres de large. La hauteur sera calculée
  par \LaTeX pour que le texte environnant entoure correctement cette
  figure. Bien sûr, dans un environnement {\ttfamily figure}, rien n'emp\^eche
  de ne mettre que du texte...
\end{floatingfigure}

La figure sera toujours placée à droite sur une page de droite, et à gauche sur
une page de gauche.  Noter, comme le prouve cet exemple, que l'environnement
{\ttfamily floatingfigure} entraîne automatiquement un saut de paragraphe. Il
faut donc placer la figure au début du paragraphe où on veut la placer. Noter
également (ça ne se voit pas dans cet exemple, mais c'est vrai) qu'il n'y a pas,
dans ce package, d'environnement {\ttfamily floatingtable}. La légende, en
particulier, est toujours appelée « \figurename ».
\end{document}

3.  Les extensions apparemment disparues#

L’extension wflman (probablement due à W.F. Lupton) ne semble plus disponible.