526 lines
18 KiB
HTML
526 lines
18 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|||
|
<title>Macros élémentaires</title>
|
|||
|
<link rel="stylesheet" href="../../tuteurs.css" type="text/css" />
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div class="navigation">
|
|||
|
<h1>Tuteurs informatique<br /><a href="../../meta/contact.html">Nous contacter</a></h1>
|
|||
|
<hr />
|
|||
|
<ul class="menu">
|
|||
|
<li>
|
|||
|
<a href="../../meta/charte_graphique.html">Utiliser ce site</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../../actualite.html">Actu et stages</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../../docs/">Docs à imprimer</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../../meta/plan_site.html">Plan du site</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="../../search.html">Rechercher</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<hr />
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="../../">Les tuteurs</a>
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="../">Logiciels</a>
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="./">LaTeX</a>
|
|||
|
<ul class="arbre">
|
|||
|
<li>
|
|||
|
<a href="aide.html">Doc et aide</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="astuces.html">Astuces</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="beamer.html">Présentations</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="bibtex.html">Bibliographie</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="exemple.html">Exemple</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="export.html">Exporter</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="figures.html">Figures</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="footnote.html">Notes de bas de page</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="graphisme.html">Graphisme</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="grec.html">Grec ancien</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="langues.html">Langues exotiques</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="latex.html">Comment faire ?</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="lettre.html">Lettres</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="macros.html" class="actuel">Macros élémentaires</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="makeindex.html">Index</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="manuel.html">Les bases</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="maths.html">Maths</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="nouveau_package.html">Écrire un package</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="polices.html">Polices</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="polices_liste.html">Polices : liste</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="references.html">Références</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="tableaux.html">Tableaux</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="xdvi.html">xdvi</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="xetex.html">XeTeX</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<hr />
|
|||
|
<ul class="menu">
|
|||
|
<li>
|
|||
|
<a href="http://www.eleves.ens.fr/">Serveur des élèves</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="http://www.ens.fr/">ENS</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="http://www.spi.ens.fr/">SPI</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<div class="corps">
|
|||
|
<h1>Faire des macros élémentaires</h1>
|
|||
|
<div class="sommaire">
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="#s1">Les macros, des abréviations</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s2">Espaces après les macros</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s3">Commandes à arguments</a>
|
|||
|
<ul>
|
|||
|
<li>
|
|||
|
<a href="#s3_1">Un élément sémantique, une commande</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s3_2">Tâches complexes</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s4">Environnements</a>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<a href="#s5">Éléments de programmation</a>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
<h2>
|
|||
|
<a name="s1" id="s1">Les macros, des abréviations</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Il est très facile de définir de nouvelles commandes qui seront autant
|
|||
|
d'abréviations. Par exemple :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\cad{c'est-à-dire}
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
Cette ligne crée une nouvelle commande, <code>\cad</code>, qui sera
|
|||
|
automatiquement remplacée lors de la compilation par le texte
|
|||
|
« c'est-à-dire ». Remarquez que LaTeX proteste si la commande que
|
|||
|
vous définissez existe déjà. Vous pouvez ainsi remplacer les choses un peu
|
|||
|
longues à taper par des commandes abrégées. Pour une thèse sur le
|
|||
|
chevalier Paul-Louis de la Grange-Noble, vous aurez tout intérêt à
|
|||
|
définir dès le début :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\PL{Paul-Louis de la Grange-Noble}
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
Il arrive fréquemment d'avoir besoin de redéfinir une commande qui existe
|
|||
|
déjà. Dans ce cas-là, on utilise simplement:
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\renewcommand\nom{contenu}
|
|||
|
</pre>
|
|||
|
<p class="continue"> à la place de <code>newcommand </code>.
|
|||
|
</p>
|
|||
|
<h2>
|
|||
|
<a name="s2" id="s2">Espaces après les macros</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Après toute commande dont le nom est composé de lettres (comme
|
|||
|
<code>\LaTeX</code>, par exemple et à l'inverse de <code>\$</code>), les
|
|||
|
espaces sont ignorées. Par conséquent, si
|
|||
|
vous voulez que votre macro soit suivie d'une espace dans le résultat
|
|||
|
final, utilisez l'une des méthodes suivantes :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
Le Maître du Monde, \cad{} moi, ...
|
|||
|
Le Maître du Monde, \cad\ moi, ...
|
|||
|
Le Maître du Monde, {\cad} moi, ...
|
|||
|
</pre>
|
|||
|
<p>Ce serait une très mauvaise idée de mettre une espace dans la
|
|||
|
définition de la macro, car vous auriez <em>toujours</em> une espace, y
|
|||
|
compris avant une ponctuation.
|
|||
|
</p>
|
|||
|
<p>Vous pouvez utiliser le package <code>xspace</code> pour remédier à
|
|||
|
cette nécessité. Dans le préambule, ajoutez :
|
|||
|
<code>\usepackage{xspace}</code> Ensuite, écrivez vos macros de la façon
|
|||
|
suivante :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\cad{c'est-à-dire\xspace}
|
|||
|
</pre>
|
|||
|
<p>La commande <code>\xspace</code> teste ce qui suit la commande :
|
|||
|
si c'est une ponctuation ou <code>{</code> ou <code>}</code>, elle ne fera
|
|||
|
rien; dans les autres cas, elle ajoute une espace. Une conséquence de ce
|
|||
|
fonctionnement est qu'une <code>\footnote</code> suivant <code>\cad</code>
|
|||
|
va produire une espace inopportune. Elle peut être évitée en
|
|||
|
tapant
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
(...) \cad{}\footnote{Ma note de pied de page} (...)
|
|||
|
</pre>
|
|||
|
<h2>
|
|||
|
<a name="s3" id="s3">Commandes à arguments</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Les commandes utilisées comme raccourcis atteignent vite leurs limites.
|
|||
|
D'ailleurs les raccourcis peuvent être également du ressort des éditeurs
|
|||
|
(cf. le chapitre « Abréviations » de la page <a href="../../unix/editeurs/super_emacs.html">Emacs avancé</a>).
|
|||
|
Les commandes peuvent avoir des rôles bien plus importants :
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>elles sont à la base de la séparation fond-forme ;</li>
|
|||
|
<li>elles peuvent être utilisées pour accomplir des tâches très
|
|||
|
complexes.</li>
|
|||
|
</ul>
|
|||
|
<h3>
|
|||
|
<a name="s3_1" id="s3_1">Un élément sémantique, une commande</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
La séparation fond-forme peut être atteinte en assignant à chaque
|
|||
|
élément sémantique une commande (on appelle cela aussi le balisage
|
|||
|
générique). Par exemple <code>\auteur</code> pour
|
|||
|
citer des auteurs, ou <code>\source</code> pour indiquer la source d'une
|
|||
|
citation. Supposons que nous souhaitions afficher les auteurs avec leur
|
|||
|
nom en petites capitales grâce à la commande utilisée ainsi
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\auteur{<var>prénom</var>}{<var>nom</var>}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
on dit alors que la commande <code>\auteur</code> « prend deux
|
|||
|
arguments », tous deux délimités par des paires d'accolades.
|
|||
|
Du coup, la définition de la commande devient
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\auteur[2]{...}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
Le <code>2</code> voulant dire que la commande <code>\auteur</code> a
|
|||
|
besoin de deux arguments pour fonctionner.
|
|||
|
On voudrait que la commande <code>\auteur</code> accomplisse
|
|||
|
l'équivalent de
|
|||
|
</p>
|
|||
|
<pre><var>prénom</var>~\textsc{<var>nom</var>}
|
|||
|
</pre>
|
|||
|
<p class="continue"><code>~</code> est l'espace insécable, et le nom est mis en petites
|
|||
|
capitales.
|
|||
|
Pour TeX, <var>prénom</var> étant le premier argument on va l'appeler
|
|||
|
<code>#1</code> et <var>nom</var> fort logiquement <code>#2</code>.
|
|||
|
Nous n'avons plus qu'à compléter la définition
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\auteur[2]{#1~\textsc{#2}}
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
L'avantage de procéder ainsi est que, plus tard, si les petites
|
|||
|
capitales ne vous conviennent plus vous pourrez changer de manière
|
|||
|
cohérente tout votre document (qu'il fasse deux ou plus de 1000 pages)
|
|||
|
en changeant une ligne.
|
|||
|
La même modification serait au contraire extrêmement fastidieuse si vous
|
|||
|
aviez tapé systématiquement
|
|||
|
<code><var>prénom</var>~\textsc{<var>nom</var>}</code> car il faudrait
|
|||
|
relire l'ensemble du document et procéder aux modifications en prenant
|
|||
|
garde de ne pas modifier un <code>\textsc</code> qui ne serait pas celui
|
|||
|
d'un auteur. Vous pouvez vous créer un fichier de style avec
|
|||
|
vos définitions les plus courantes : cf. <a href="nouveau_package.html">Écrire son propre package</a> qui pourra
|
|||
|
inclure (ce ne sont que des exemples, ce sont les besoins spécifiques
|
|||
|
d'un document particulier qui décident quelles commandes il est
|
|||
|
souhaitable de définir)
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\titre[1]{\emph{#1}}
|
|||
|
\newcommand\auteur[2]{#1~\textsc{#2}}
|
|||
|
\newcommand\source[1]{\footnote{#1}}
|
|||
|
</pre>
|
|||
|
<h3>
|
|||
|
<a name="s3_2" id="s3_2">Tâches complexes</a>
|
|||
|
</h3>
|
|||
|
<p>
|
|||
|
En plus de vous permettre de contrôler le rendu de votre document,
|
|||
|
l'utilisation de commandes spécifiques à chaque besoin permet
|
|||
|
d'accomplir des tâches complexes adaptées à chaque élément de votre
|
|||
|
document. Supposons que votre commande <code>\auteur</code> vous
|
|||
|
satisfasse dans un premier temps, mais que plus tard vous arriviez à
|
|||
|
vous dire qu'un index des auteurs (avec les pages où ils sont
|
|||
|
mentionnés) serait du meilleur effet. Puisque vous avez une commande
|
|||
|
spécifique, il vous suffit de la « surcharger », c'est-à-dire de lui
|
|||
|
ajouter toute la machinerie nécessaire à la réalisation de la toute
|
|||
|
nouvelle tâche complexe (et cela sans toucher au reste du texte). Vous
|
|||
|
pourriez essayer de remplacer votre
|
|||
|
définition initiale par (cf. <a href="makeindex.html">Faire un index
|
|||
|
avec MakeIndex</a>)
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\auteur[2]{#1~\textsc{#2}\index{#2, #1}}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
qui produit « <var>prénom</var> <var>nom</var> » et indexe l'auteur
|
|||
|
sous la forme « <var>nom</var>, <var>prénom</var> » (pour faciliter la
|
|||
|
recherche).
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
En fait, la définition précédente est très largement perfectible,
|
|||
|
notamment parce que MakeIndex ne comprend pas très bien les accents (on
|
|||
|
peut pour cette raison, lui préférer Xindy). Ce qu'il faut retenir de
|
|||
|
tout cela, c'est qu'une fois que la macro spécifique est mise en place
|
|||
|
(ici <code>\auteur</code>), peaufiner la présentation du document se
|
|||
|
bornera à effectuer de petites modifications sur quelques commandes.
|
|||
|
Le seul prérequis est que vous définissiez assez tôt la commande et cela
|
|||
|
même si vous pensez ne pas être compétent pour écrire le code
|
|||
|
nécessaire : écrivez dans ce cas une commande qui ne fasse rien comme
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newcommand\auteur{}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
car vous pourrez toujours modifier la macro à mesure que vous progressez
|
|||
|
en LaTeX ou alors quelqu'un de plus savant pourra vous venir en aide, il
|
|||
|
sera toujours plus facile pour lui de ne travailler que sur une macro
|
|||
|
isolée plutôt que sur tout un document.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Enfin sachez qu'il est possible de définir des commandes prenant des
|
|||
|
arguments optionnels à l'instar de, par exemple,
|
|||
|
<code>\usepackage</code>. C'est-à-dire qu'il est possible de définir
|
|||
|
une commande <code>\auteur</code> telle que
|
|||
|
<code>\auteur{<var>prénom</var>}{<var>nom</var>}</code> fasse ce qui a
|
|||
|
été dit jusqu'alors et que
|
|||
|
<code>\auteur[textit]{<var>prénom</var>}{<var>nom</var>}</code> mette
|
|||
|
en italique le numéro de page dans l'index (pour distinguer divers types
|
|||
|
de mention de l'auteur). Il est même possible d'avoir trois commandes
|
|||
|
en une :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\auteur*{<var>prénom</var>}{<var>nom</var>} % Imprime seulement
|
|||
|
\auteur {<var>prénom</var>}{<var>nom</var>} % Imprime et indexe
|
|||
|
\auteur[textit]%
|
|||
|
{<var>prénom</var>}{<var>nom</var>} % Imprime, indexe
|
|||
|
% et met la page en italique
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
Par souci d'exhaustivité, je place le code correspondant. Il est certes
|
|||
|
un peu complexe, mais on ne peut pas attendre d'une macro qu'elle abatte
|
|||
|
des montagnes sans l'éduquer un tant soit peu.
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
% Tester si une chaîne est vide
|
|||
|
\usepackage{ifmtarg}
|
|||
|
|
|||
|
% À partir de maintenant, pour TeX, « @ » est une lettre et peut donc
|
|||
|
% participer à l'élaboration de noms de commande complexes comme
|
|||
|
% \@ifmtarg défini par le package homonyme ou \@ifstar défini par LaTeX
|
|||
|
\makeatletter
|
|||
|
|
|||
|
% Si \auteur est suivi d'une étoile appeler \sauteur, sinon \oauteur
|
|||
|
\newcommand*{\auteur}{\@ifstar\sauteur\oauteur}
|
|||
|
|
|||
|
% \sauteur{prénom}{nom} imprime seulement
|
|||
|
\newcommand*{\sauteur}[2]{#1~\textsc{#2}}
|
|||
|
|
|||
|
% \oauteur[comment]{prénom}{nom} imprime et indexe
|
|||
|
\newcommand*{\oauteur}[3][]{% Par défaut <comment> est vide
|
|||
|
\sauteur{#2}{#3}%
|
|||
|
\@ifmtarg{#1}{% #1 est-il vide ?
|
|||
|
\index{#3, #2}% Oui (mise en page par défaut)
|
|||
|
}{%
|
|||
|
\index{#3, #2|#1}% Non (mise en page particulière)
|
|||
|
}%
|
|||
|
}
|
|||
|
|
|||
|
% À partir de maintenant, pour TeX, « @ » n'est plus une lettre
|
|||
|
\makeatother
|
|||
|
</pre>
|
|||
|
<h2>
|
|||
|
<a name="s4" id="s4">Environnements</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Les environnements
|
|||
|
<code>\begin{<var>env</var>}...\end{<var>env</var>}</code> sont une
|
|||
|
structure classique de LaTeX que vous pouvez aussi adapter à vos
|
|||
|
besoins. Pour cela on utilise la commande <code>\newenvironment</code> :
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newenvironment{<var>env</var>}{%
|
|||
|
<var>begin</var>
|
|||
|
}{%
|
|||
|
<var>end</var>
|
|||
|
}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
à ce moment-là, lorsque vous utiliserez
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\begin{<var>env</var>}
|
|||
|
.
|
|||
|
.
|
|||
|
.
|
|||
|
\end{<var>env</var>}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
TeX substituera essentiellement (remarquez les accolades qui forment un
|
|||
|
« groupe »)
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
{<var>begin</var>
|
|||
|
.
|
|||
|
.
|
|||
|
.
|
|||
|
<var>end</var>}
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
Prenons un exemple — peu intéressant, mais commençons doucement
|
|||
|
— pour être clair. On définit l'environnement
|
|||
|
<code>itenv</code> ainsi
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newenvironment{itenv}{%
|
|||
|
\itshape
|
|||
|
}{%
|
|||
|
% Rien
|
|||
|
}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
Maintenant, quand vous tapez
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\begin{itenv}Texte\end{itenv}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
vous obtiendrez le même résultat que
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
{\itshape Texte}
|
|||
|
</pre>
|
|||
|
<p class="continue">
|
|||
|
qui met « Texte » en italique. Développons un exemple plus
|
|||
|
intéressant. Supposons que vous vouliez avoir plus de souplesse avec
|
|||
|
les citations de votre document (pour l'interlignage, la police, etc.).
|
|||
|
Pour cela vous pourriez définir un
|
|||
|
environnement <code>myquote</code> ainsi
|
|||
|
</p>
|
|||
|
<pre>
|
|||
|
\newenvironment{myquote}{%
|
|||
|
\begin{quote}% Environnement quote
|
|||
|
\itshape % ... en italique
|
|||
|
\small % ... en plus petit
|
|||
|
}{%
|
|||
|
\end{quote}%
|
|||
|
}
|
|||
|
</pre>
|
|||
|
<p>
|
|||
|
Remarques : 1. de manière analogue aux commandes, on ne peut pas définir
|
|||
|
un environnement qui existe déjà ; 2. il n'est pas possible de définir
|
|||
|
un environnement portant le même nom qu'une commande existant déjà (par
|
|||
|
exemple, il n'est pas possible de définir un environnement
|
|||
|
<code>usepackage</code>) et réciproquement (il n'est pas possible de
|
|||
|
définir une commande <code>\center</code>).
|
|||
|
</p>
|
|||
|
<h2>
|
|||
|
<a name="s5" id="s5">Éléments de programmation</a>
|
|||
|
</h2>
|
|||
|
<p>
|
|||
|
Pour réaliser des macros complexes, on pourra se référer à la FAQ
|
|||
|
anglaise qui contient de nombreux trucs de programmation dans la section
|
|||
|
« Macro programming » comme
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>Detecting that something is empty</li>
|
|||
|
<li>More than one optional argument</li>
|
|||
|
<li>Commands defined with * options</li>
|
|||
|
</ul>
|
|||
|
<p class="continue">
|
|||
|
Les packages suivants sont d'un grand intérêt pour des applications
|
|||
|
complexes :
|
|||
|
</p>
|
|||
|
<dl>
|
|||
|
<dt>ifthen</dt>
|
|||
|
<dd>
|
|||
|
pour des tests conditionnels « if-then-else », des boucles
|
|||
|
« while-do », etc. ;
|
|||
|
</dd>
|
|||
|
<dt>calc</dt>
|
|||
|
<dd>
|
|||
|
pour de l'arithmétique des compteurs et des longueurs plus aisée ;
|
|||
|
</dd>
|
|||
|
<dt>ifmtarg</dt>
|
|||
|
<dd>
|
|||
|
pour tester si quelque chose est vide.
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<div class="metainformation"> Auteurs : Émilia Robin (1999),
|
|||
|
François-Xavier Coudert, Josselin Noirel (2005).
|
|||
|
Dernière modification : 2008-03-24 par Éric Levieil.
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|