tuteurs.ens.fr/logiciels/latex/macros.tml
noirel 10bd3abadb J'ai fait quelques modifications sur la page concernant les macros
``élémentaires''.

 * Correction concernant le blanck skipping qui n'était pas bien décrit.

 * Ajout de deux autres méthodes pour ajouter une espace après un
  control word

 * Ajout de comment éviter un piège de \xspace quand il est suivi par
  \footnote

JN
2003-05-20 14:22:18 +00:00

73 lines
2.3 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
"tuteurs://DTD/tml.dtd">
<html>
<head>
<title>Macros élémentaires</title>
</head>
<body>
<h1>Faire des macros élémentaires</h1>
<h2>Les macros, des abréviations</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 ». Vous pouvez ainsi remplacer les choses un peu
longues à taper par des commande 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>
<h2>Espaces après les macros</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'un espace dans le résultat
final, utilisez l'une des méthodes suivantes&nbsp;:</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&nbsp;:
<code>\usepackage{xspace}</code> Ensuite, écrivez vos macros de la façon
suivante&nbsp;:</p>
<pre>\newcommand\cad{c'est-à-dire\xspace}</pre>
<p>La commande <code>\xspace</code> teste ce qui suit la commande&nbsp;:
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 produite une espace inopportune. Elle peut être évitée en
tapant&nbsp;</p>
<pre>
(...) \cad{}\footnote{Ma note de pied de page} (...)
</pre>
<div class="metainformation"> Auteurs : Émilia Robin (1999),
François-Xavier Coudert. Dernière modification le 2003-05-20, par
Josselin Noirel</div>
</body> </html>