LaTeX la composition comme un langage de programmation
LaTeX est un système de composition de documents qui remplace la notion de What-You-See-Is-What-You-Get par des idées standard des langages de programmation conventionnels. Mark Harman démontre la puissance de cet héritage.
Toute personne ayant utilisé un éditeur, un traitement de texte ou un progiciel de PAO de type What-You-See-Is-What-You-Get (WYSIWYG) aura probablement connu deux frustrations :-
WYSIWYG semble toujours être un mensonge Ce que vous voyez est plutôt similaire à ce que vous obtenez, ou ce que vous voyez est presque toujours ce que vous obtenez, ou ce que vous voyez serait ce que vous obtenez si votre imprimante avait les bonnes polices, mais ce que vous voyez est rarement exactement ce que vous obtenez.
WYSIWYG est restrictif Supposons que vous ne pouvez pas arriver à voir ce que vous voulez ? Ce que vous voyez est ce que vous obtenez a l’implication supplémentaire, et tacite, que ce que vous ne parvenez pas à voir, vous ne pouvez pas non plus l’obtenir. Combien de fois avez-vous voulu que quelque chose ait l’air légèrement différent (ou peut-être très différent) mais votre éditeur ne le permet pas ?
LaTeX (prononcé Lateck) est un système de composition qui ne suit pas l’approche WYSIWYG. Au contraire, il s’inspire des langages de programmation. Il hérite de tous les avantages des langages de programmation et de certains de leurs inconvénients. Au lieu de composer un document à l’écran (l’approche WYSIWYG), un document LaTeX est un programme qui indique au système LaTeX comment créer le document. Le programme est compilé en utilisant un compilateur LaTeX pour produire un document qui peut être imprimé ou visualisé.
Cela peut sembler un peu étrange à quelqu’un qui est familier avec l’approche WYSIWYG, mais quiconque apprécie (ou apprécie) la puissance et la flexibilité d’un langage de programmation de haut niveau, trouvera rapidement que LaTeX est simplement une meilleure façon de concevoir des documents.
Dans cet article, je vais expliquer un peu le langage LaTeX, suffisamment pour vous permettre de télécharger un système LaTeX gratuit et d’écrire quelques documents normaux. Il n’y aura pas le temps de couvrir toutes les fonctionnalités de LaTeX (cela prendrait un livre entier), mais j’espère vous laisser avec un fort sentiment pour les façons dont l’écriture d’un document pourrait, en utilisant LaTeX, être une activité similaire à l’écriture d’un programme.
Un simple fichier source LaTeX
La figure 1 contient un simple fichier source LaTeX. La première ligne est une commande LaTeX prédéfinie. Toutes les commandes commencent par un caractère backslash. La commande de la première ligne établit les propriétés globales du document à mettre en page. Le style de document article est le style utilisé pour un article court. Il existe d’autres styles tels que book, report, thesis, etc. Chaque style de document modifie les paramètres globaux qui décrivent la mise en page de votre document. Par exemple, dans l’environnement livre, des en-têtes sont produits donnant le titre du chapitre et l’auteur sur des pages alternées.
Comme tout bon langage de programmation, tout ceci est, bien sûr, entièrement configurable. Cependant, comme la plupart des langages de programmation, plus vous voulez de flexibilité, plus vous trouverez que vous devez connaître le langage de programmation sous-jacent. Heureusement, les paramètres par défaut de tous les environnements LaTeX donnent des résultats très satisfaisants, de sorte qu’il est possible d’aller loin sans avoir à trop connaître le langage sous-jacent. Ce que vous obtenez est susceptible d’être ce que vous voulez, et si ce n’est pas le cas, alors au moins vous serez en mesure de le changer.
Le texte du document lui-même est contenu dans les commandes \begin{document}…. \end{document}, \begin{} et \end{} sont des commandes qui ouvrent et ferment un environnement. Tous les documents (et fragments de documents) sont composés dans un environnement. On peut également imbriquer des environnements, comme nous le verrons plus tard.
Les caractères d’espacement n’ont pas d’importance pour LaTeX ; un espace est aussi bon que cent. Les nouvelles lignes peuvent également être insérées n’importe où, mais deux nouvelles lignes ou plus sont utilisées pour indiquer le point auquel un paragraphe se termine et un autre commence. Lorsque vous imprimez le document final, LaTeX justifiera le texte à gauche et à droite (en insérant des tirets, là où la justification pure conduirait à une sortie peu attrayante).
Un grand document se compose généralement d’un certain nombre de sections, qui peuvent contenir des sous-sections. Une nouvelle section est introduite dans LaTeX à l’aide de la commande \section, et une nouvelle sous-section avec la commande \subsection. Le code source LaTeX de la figure 2 décrit un document comportant deux sections, dont les titres seront introduction et justification. Remarquez que, dans le code source, nous n’avons pas besoin de donner un numéro de section aux sections. LaTeX le fera pour nous lorsqu’il compilera le document. Ainsi, l’introduction sera la section numéro 1 et le raisonnement la section numéro 2. Si nous devions intervertir l’ordre dans lequel les deux sections apparaissent (en coupant et collant le code source), alors la justification deviendra la section 1, tandis que l’introduction deviendra automatiquement la section 2.
Une question importante se pose maintenant : Comment pourrais-je faire des références croisées d’une section à l’autre ? Par exemple, supposons que je veuille faire référence à la section introduction dans la section justification. La façon d’y parvenir illustre le premier avantage que nous retirons de la façon de faire de LaTeX.
Références symboliques
Parce qu’un fichier source LaTeX est un programme, vous pouvez utiliser des noms symboliques pour faire référence à des parties du document. Cela rend les références croisées un plaisir, car la référence croisée est une entité logique, se référant à une certaine partie nommée du document. Si cette partie nommée du document doit être déplacée, alors tout ce que nous avons à faire est de recompiler.
Pour introduire une référence symbolique, on utilise la commande \label{}, et pour y faire référence, on utilise la commande \ref{}. La figure 3 illustre cela. La commande \label{intro} introduit un nom symbolique, label, dont la valeur dépend du contexte dans lequel la commande \label apparaît. Dans ce cas, puisque la commande \label est utilisée dans la première section du document, la valeur attribuée à intro sera 1. La commande \ref{} produit simplement la valeur de l’étiquette. Maintenant, si je déplace l’introduction à une nouvelle position, par exemple, après la section justification, la valeur de intro passera à 2, et la référence croisée dans justification pointera donc vers le nouvel emplacement de l’introduction de la section.
Ce style d’écriture nous oblige à penser au document à un niveau logique plutôt qu’au niveau physique. Il serait insensé d’écrire comme nous l’avons vu précédemment dans la section \ref{intro} par exemple, parce que nous pouvons déplacer l’étiquette intro à un point après la référence. Au lieu de considérer notre document comme un monolithe de texte apparaissant dans un ordre particulier, nous le voyons à un niveau d’abstraction plus élevé, comme une collection de sections que nous sommes libres de déplacer. Nous pouvons même réutiliser des sections d’un document dans un autre, et à condition que nos noms symboliques soient uniques, nous trouverons que toutes les références croisées fonctionnent correctement.
Environnements supplémentaires
LaTeX a beaucoup d’environnements prédéfinis utiles. Supposons que nous voulions produire une séquence de points en utilisant des puces. Nous pouvons le faire avec l’environnement itemize, le code source de la figure 4 produira un document qui énumère les trois principaux états de la matière, un par ligne et chacun précédé d’une puce. A bien des égards, la façon dont LaTeX conçoit un document est similaire à la façon dont HTML fait les choses. Par exemple, l’environnement itemize est plutôt semblable à l’environnement liste non triée de HTML.
Parfois, nous voulons mettre les éléments dans une liste triée et numérotée. Ceci est réalisé avec l’environnement enumerate. La figure 5, montre une séquence imbriquée d’éléments énumérés, décrivant les quatre ères des temps géologiques et les périodes qui les composent. LaTeX utilise différents systèmes de numérotation pour chaque niveau d’imbrication (chiffres arabes pour le niveau un, caractères alphabétiques pour le niveau deux, chiffres romains pour le niveau trois). Ceci, comme pour tout le reste, peut être changé si on le souhaite.
Pour mettre en valeur une portion de texte, on l’enferme dans l’environnement em (emphasise), donc on écrit simplement \begin{em} help ! \end{em} elle a pleuré. pour accentuer le mot aide (et le point d’exclamation qui le suit).
Procédures
Dans un langage de programmation conventionnel, la possibilité de définir des procédures donne au programmeur une flexibilité considérable. Dans LaTeX aussi, on peut définir des procédures pour la mise en page du texte. La forme la plus simple de procédure est une procédure sans paramètre. Elle nous permet de nommer une partie du code source et de l’appeler. Supposons que j’écrive un document dans lequel je veux faire référence à un fruit, mais que je n’ai pas encore décidé si ce sera une pomme, une orange ou une poire. Je pourrais introduire une procédure appelée fruit, et mettre un nom de fruit arbitraire dans son corps. Lorsque j’aurai finalement décidé à quel fruit je veux me référer, alors je n’aurai qu’à modifier le corps de la procédure ; tous les points auxquels la procédure est appelée tiendront alors automatiquement compte de la modification de son corps.
En LaTeX, une procédure est appelée une commande, et une nouvelle est créée avec la commande \newcommand. Les commandes sont souvent appelées macros car LaTeX développe les appels à celles-ci lorsqu’il les rencontre dans le corps du document. La figure 6 illustre l’utilisation d’une simple macro sans paramètre. Une fois compilé, le source LaTeX de cette figure produit le texte La première pomme qui apparaît sera la première pomme que je mangerai.
Pour être tout à fait juste, ceci pourrait être réalisé, peut-être plus simplement, avec un traitement de texte WYSIWYG, en effectuant simplement une recherche et un remplacement. (Bien sûr, cela n’aurait pas fonctionné si la phrase avait été le premier \fruit à apparaître est la pomme de mes yeux !). Il ne s’agit cependant que d’un exemple simple de ce que nous pouvons faire avec les macros LaTeX. Elles prennent vraiment tout leur sens lorsque nous leur fournissons des paramètres.
Paramètres
Supposons que j’écrive un document sur la manipulation des tableaux. Je pourrais vouloir décrire un algorithme pour trouver le plus grand élément d’un tableau. Pour rendre le document plus générique et pour éviter de retaper de grandes sections de celui-ci, je pourrais produire deux versions, chacune spécifique à un langage de programmation particulier, par exemple, Basic et C. En utilisant des commandes, je peux éviter d’utiliser la syntaxe particulière des tableaux, ou du moins je peux capturer les différences syntaxiques dans une seule commande, ce qui rend beaucoup plus facile l’adaptation de mon document à différents langages de programmation.
La figure 7 illustre cela. Dans la définition de la commande \lookup, le indique au compilateur LaTeX que la commande prend deux paramètres, le premier est désigné par #1 et le second par #2. Dans un appel à une commande, les paramètres sont fournis l’un après l’autre entre crochets. Ainsi, l’appel \lookup{S}{2}, produira le texte S(2). Il s’agit de la version de base de la commande \lookup. Si nous la remplaçons par la version de la Figure 8, nous obtenons le même document, mais avec des références de tableau entre crochets. Il s’agit de la version C du document. Remarquez que la différence entre les deux documents sources LaTeX est précisément de deux caractères, à savoir les deux caractères qui constituent la différence entre les références de tableau en Basic et en C.
Comme pour les procédures du langage de programmation, il est possible d’appeler une procédure à partir du corps d’une autre et d’utiliser le résultat d’un appel de procédure comme paramètre réel d’une autre. Ainsi, par exemple, nous pouvons écrire \lookup{A}{\lookup{B}{1}} qui produit soit le texte A(B(1)), soit A] selon que nous utilisons la version Basic ou C de la commande \lookup.
Variables
LaTeX possède ses propres variables, sur lesquelles nous pouvons effectuer une arithmétique simple (des formes plus avancées d’arithmétique sont possibles, mais l’addition est généralement tout ce qui est nécessaire pour la composition). Je vais examiner deux exemples simples de la façon dont nous pourrions utiliser les variables, qui seront toutes deux familières aux programmeurs ; la variable compteur et la variable drapeau.
Supposons que nous voulons inclure une séquence de points numérotés dans un document. Nous pouvons utiliser une variable compteur pour numéroter chaque point, et écrire quelques commandes simples pour contrôler la numérotation. La figure 9 illustre cette situation. Le compteur est déclaré à l’aide de la commande \newcounter. Il est réglé sur une valeur spécifique à l’aide de la commande \setcounter. La commande \point est utilisée pour imprimer le numéro de point actuel et pour faire avancer le compteur (pour ajouter un à sa valeur). La commande \the<name>, pour un certain compteur <name>, provoque l’impression de la valeur de la variable. Cette commande peut être utilisée avec n’importe quelle variable, pas seulement celles que l’utilisateur a introduites, ainsi par exemple \thesection imprime la valeur actuelle de la variable section. Dans la Figure 9, nous utilisons la commande \point pour imprimer trois points. Une caractéristique intéressante de cette approche est que nous pouvons varier l’ordre dans lequel les points se produisent et la numérotation changera en conséquence.
Voyons maintenant comment nous pouvons utiliser les variables comme des drapeaux pour choisir quel texte est produit dans un document. Comme nous allons le voir, la combinaison des drapeaux et des macros nous permet d’écrire des documents très génériques, qui peuvent être instanciés simplement en choisissant une valeur appropriée pour le drapeau. Reprenons le problème de l’écriture d’un document sur les tableaux, dans lequel nous voulons deux formes de la commande \lookup, une pour le Basic et une pour le C. Il serait préférable d’utiliser un drapeau dans notre source LaTeX pour indiquer si le langage doit être le C ou le Basic. Il suffirait alors de donner la bonne valeur à ce drapeau avant de compiler le document. La figure 10 illustre cette démarche.
La première chose à faire est d’inclure l’option ifthen dans la déclaration de documentstyle. Cela nous permet d’utiliser la commande \ifthenelse par la suite. Ensuite, nous déclarons une variable de compteur, language, qui prend la valeur 1 si le langage doit être Basic et la valeur 0 s’il doit être C. Le symbole % est utilisé par LaTeX pour les commentaires ; tout texte qui apparaît après un symbole % (et avant la fin de la ligne) est ignoré par le compilateur LaTeX. Ensuite, nous fixons le compteur à 1, en utilisant la commande \setcounter{language}{1}, de sorte que le texte que nous produirons sera, dans ce cas, spécialisé pour le Basic. Cette spécialisation est réalisée à l’aide de la version modifiée de la commande \lookup. La nouvelle version de \lookup utilise la commande intégrée \ifthenesle pour tester la valeur de la variable de langue. Le format de la commande \ifthenelse est le suivant : \ifthenelse{<test>}{<then_branch>}{<else_branch>}. Elle se comporte comme une instruction if dans un langage de programmation classique. Si <test> évalue à vrai, le texte dans le <then_branch> est produit, si faux, le texte dans le <else_branch> est produit.
En utilisant ce drapeau, nous pourrions écrire beaucoup de commandes, chacune d’entre elles produisant le texte pour un type particulier d’énoncé, le langage dépendant de la valeur de la variable compteur du drapeau. De cette façon, nous pourrions écrire un document générique sur la programmation et simplement définir le drapeau de manière appropriée pour produire la version spécialisée du document que nous voulons.
La figure 10 montre comment nous pourrions faire cela. Nous définissons des commandes qui produisent la syntaxe Basic ou C pour la consultation de tableaux (en utilisant la macro \lookup, comme décrit ci-dessus), la mise à jour de tableaux et, plus élaborée, une commande qui produit la syntaxe appropriée pour une boucle for. Cette dernière nécessite quelques explications supplémentaires.
La différence entre une boucle for en C et en Basic est largement syntaxique, et nous pouvons utiliser la flexibilité de LaTeX pour échapper à ces détails syntaxiques. La commande \forloop utilise le langage des compteurs de drapeaux pour décider si les quatre éléments de la boucle doivent être disposés dans le style Basic ou C. Cela nous permet d’écrire un texte sur les caractéristiques de la boucle. Cela nous permet d’écrire un peu de texte sur l’initialisation des tableaux et les boucles, sans avoir à décider à quel langage le document cible se référera.
Notez que dans la version C de la syntaxe de la boucle for, les accolades qui enferment les déclarations du corps de la boucle sont écrites comme \{…. \}, plutôt que { … }. Cela s’explique par le fait que les symboles de crochets curly ont déjà une signification pour LaTeX, donc pour qu’il imprime les crochets curly, nous les faisons précéder d’une barre oblique inversée.
Dans la Figure 10, nous avons défini le contre-langage à 1, donc la sortie produite sera pour Basic. A partir du code source de la Figure 10, LaTeX produira le résultat de la Figure 11. Si nous voulons produire un document qui dit la même chose sur les tableaux C, nous devons simplement changer la ligne \setcounter{language}{1} en \setcounter{language}{0}. C’est aussi simple que cela.
Mathématiques
LaTeX est souvent (et à juste titre) loué pour la façon dont il permet la composition de mathématiques complexes. De nombreux textes modernes de mathématiques, d’informatique et d’autres sciences et ingénierie sont composés à l’aide de LaTeX.
Le texte mathématique peut être mis en page en ligne, auquel cas il apparaît dans la phrase dans laquelle il est tapé, ou en mode affichage, auquel cas il apparaît centré sur une ligne propre affichée pour ainsi dire. Tous les symboles mathématiques et formes de texte standard sont prévus pour l’utilisation des commandes. Étant donné que LaTeX existe depuis si longtemps et qu’il a été utilisé, développé et amélioré par de nombreux mathématiciens dans le monde entier, il est extrêmement improbable qu’il existe une forme de sortie mathématique qui n’ait pas été prise en compte par quelqu’un. Un rapide tour dans votre étagère révélera probablement des remerciements à LaTeX dans plusieurs manuels d’informatique et de mathématiques, car il est souvent utilisé pour préparer des livres techniques, permettant à l’auteur ou aux auteurs de fournir une copie prête à photographier pour leurs éditeurs.
Il existe également une communauté florissante d’utilisateurs de LaTeX qui assure que toutes ces informations précieuses sont collectées, maintenues et mises à jour. Tous les développements de LaTeX sont entièrement rétrocompatibles, il n’y a donc pas lieu de s’inquiéter que vos documents deviennent en quelque sorte obsolètes.
Réutilisation
J’estime qu’il faut entre deux jours et une semaine pour devenir productif en utilisant LaTeX. De nombreux lecteurs peuvent considérer cela comme inacceptable si on le compare au temps de démarrage des éditeurs WYSIWYG. Il est certain que si vous ne devez préparer que des documents tels que des lettres et des mémos, LaTeX ne vaut probablement pas la peine d’être envisagé. Cependant, si vous êtes concerné par la production d’une grande quantité de texte et que vous êtes prêt à investir dans un système qui pourrait finalement vous faire gagner des mois de travail, alors LaTeX peut être la réponse.
L’un des avantages les plus intangibles, mais aussi les plus attrayants, expérimentés par les utilisateurs de LaTeX vient de la façon dont, comme un bon langage de programmation, LaTeX supporte la réutilisation. Très rapidement, vous vous retrouverez à construire un ensemble de macros personnelles, qui vous permettront de personnaliser vos documents à votre goût. La réutilisation de parties d’un document dans un autre se fait sans effort et de manière transparente. Cette transparence découle de deux aspects de l’approche LaTeX. La dénomination symbolique des parties d’un document permet la mise à jour automatique des références croisées au fur et à mesure de l’édition du document. Le concept d’environnement signifie que le même morceau de texte source peut avoir une apparence différente lorsqu’il est inclus dans différents contextes. Bien sûr, cela contredit directement le principe WYSIWYG, mais c’est la force essentielle de LaTeX. De nombreux journaux informatiques , conférences et éditeurs fournissent leurs propres fichiers de style LaTeX, qui, lorsqu’ils sont inclus dans un fichier source LaTeX, mettent automatiquement en page le document dans la forme requise pour la publication.
Où aller ensuite
Si vous êtes intéressé à essayer LaTeX par vous-même, une version MS-Windows peut être obtenue (gratuitement) à partir de http://www.eece.ksu.edu/~khc/tex.html. LaTeX est livré en standard sur la plupart des plateformes UNIX, et avec la plupart des distributions Linux, donc si vous utilisez l’une d’entre elles, essayez de taper man latex. Il existe un site FTP contenant de nombreux outils LaTeX utiles, des macros et des documents connexes à ftp.tex.ac.uk.
Il existe deux livres indispensables sur le sujet de l’écriture de documents LaTeX. Tous deux sont très lisibles et instructifs. LaTeX A Document Preparation System de Leslie Lamport (ISBN 0-201-15790-X), décrit le système de base et est un très bon livre pour débuter. Il contient suffisamment d’informations pour écrire immédiatement la plupart des documents normaux. The LaTeX Companion de Mike Goossens, Frank Mittelbach et Alexander Samarin (ISBN 0-201-54199-8), est plus détaillé, et couvre toutes les nouvelles fonctionnalités ajoutées à LaTeX par le projet LaTeX2e. Ce livre est utile si vous souhaitez écrire un grand nombre de documents avec LaTeX et personnaliser le langage à votre goût. Il explique comment obtenir toutes sortes d’effets exotiques, tels que la disposition du texte en forme de cœur (peut-être utile pour certains documents écrits juste avant le 14 février). Ces deux ouvrages sont publiés par Addison-Wesley.
Logical is better
Le système de préparation de documents LaTeX a évolué et s’est amélioré au fil des ans. Il est extrêmement robuste et fournit des fonctionnalités pour écrire des documents aux normes publiables contenant du texte et des mathématiques. Un document LaTeX est décrit en utilisant un langage de programmation, ce qui donne à l’utilisateur de LaTeX toute la puissance et la flexibilité d’un langage de programmation conventionnel. Le style d’écriture oblige l’utilisateur à considérer les documents au niveau de leur organisation logique, plutôt qu’au niveau de leur apparence physique. C’est au départ un peu frustrant, mais en fin de compte, cela présente de nombreux avantages tels que l’appui à la réutilisation et la création de documents génériques qui peuvent avoir plusieurs instanciations physiques.
Mark Harman est directeur de la recherche et chef par intérim de la School of Informatics and Multimedia Technology de l’Université de North London (http://www.unl.ac.uk/~mark/welcome.html). Il peut être contacté par courrier électronique à l’adresse [email protected] ou par courrier postal à Mark Harman, Projet Projet, École d’informatique et de technologie multimédia, Université de North London, Holloway Road, Londres N7 8DB.
Figure 1 Un document LaTeX simple.
\documentstyle{article}
\begin{document}
hello world
\end{document}
Figure 2 Sections
\documentstyle{article}
\begin{document}
\section{Introduction}
Ce document est assez court et voici son introduction.
\section{Raison d’être}
Le document est si court parce qu’il est simplement et exemple.
\end{document}
Figure 3 Références symboliques
\documentstyle{article}
.
\begin{document}
\section{Introduction}
\label{intro}
Ce document est assez court et voici son introduction.
\Section{Raison d’être}
Une brève introduction à ce document se trouve dans la section \ref{intro}.
\end{document}
Figure 4 L’environnement Itemize.
\begin{itemize}
\item Solid
\item Liquid
\item Gas
\end{itemize}
Figure 5 L’environnement énumérer.
\begin{enumerate}
\item Cénozoïque
\begin{enumerate}
\item Quaternaire
\item Tertiaire
\end{enumerate}
\item Mésozoïque
\begin{enumerate}
\item Crétacé
\item Jurassique
\item Trias
\end{enumerate}
\item Paléozoïque
\begin{enumerate}
\item Permian
\item Carboniferous
\item Devonian
\item Silurian
\item Ordovician
\item Cambrien
\end{enumerate}
\item Précambrien
\end{enumerate}
Figure 6 Commandes sans paramètres.
\documentstyle{article}
\Nouvelle commande{\fruit} { pomme }
\begin{document}
Le premier \fruit à apparaître sera le premier \fruit que je mangerai.
\end{document}
Figure 7 Paramètres : Version de base.
\documentstyle{article}
\Nouvellecommande{\lookup} { #1(#2) }
\begin{document}
Pour trouver le plus grand élément du tableau A, stockez le premier élément, \lookup{A}{0}, dans la variable b. Entrez ensuite dans une boucle, contrôlée par la variable i, commençant à 1 et allant jusqu’à la fin du tableau. À chaque point de la boucle, comparez l’élément i, \lookup{A}{i}, avec la valeur de b. Si \lookup{A}{i} est plus grand que b, alors affectez \lookup{A}{i} à b.
\end{document}
Figure 8 Paramètres : Version C.
\documentstyle{article}
\Nouvelle commande{\lookup}. { #1 }
\begin{document}
Pour trouver le plus grand élément du tableau A, stockez le premier élément, \lookup{A}{0}, dans la variable b. Ensuite, entrez dans une boucle, contrôlée par la variable i, commençant à 1 et allant jusqu’à la fin du tableau. À chaque point de la boucle, comparez l’élément i, \lookup{A}{i}, avec la valeur de b. Si \lookup{A}{i} est plus grand que b, alors affectez \lookup{A}{i} à b.
\end{document}
Figure 9 Variables de compteur.
\newounter{pointnumber}
\setcounter{pointnumber}{1}
\newcommand{\point}. {Point \thepointnumber \stepcounter{pointnumber} }
Un texte associé à l’un des points
Un texte associé à un autre point
Encore un autre point
Figure 10 Variables de drapeau.
\documentstyle{article}
\newcounter{language} % fixé à 1 pour Basic et 0 pour C
\setcounter{language}{1}
\newcommand{\lookup}
{
Suppression de la valeur de la langue}{1} {#1(#2)} {#1}
}
\Nouvelle commande{\update}
{
\Nifthenelse{\value{language} = 1} {SUPPOSER #1(#2) = #3} {#1 = #3}
}
% La commande forloop prend quatre paramètres
% 1. La borne inférieure de la boucle – un nombre entier ou une expression intégrale.
% 2. La borne supérieure de la boucle – une expression entière ou intégrale.
% 3. La variable de contrôle de la boucle – une variable intégrale.
% 4. Le corps de la boucle – une séquence d’instructions.
% Le drapeau compteur de langue, est utilisé pour déterminer la langue dans laquelle
% la syntaxe de la boucle est écrite.
\Nouvelle commande{\forloop}
{
\ifthenelse{\value{language} = 1}.
{
Pour #3 = #1 à #2
NEXT #3
}
{
for(#3=#1;#3 != #2;#3++)
\{
\}
}
\begin{document}
Pour stocker la valeur 10 dans l’élément numéro 3 du tableau A, on écrit \update{A}{3}{10}.
Pour initialiser les éléments 0 à 10 du tableau A avec la valeur initiale 0, on peut utiliser une boucle for, partant de 0 et allant jusqu’à 10. Cela s’écrirait comme suit
\forloop{0}{10}{i}{\update{A}{i}{0}}
\end{document}
Figure 11 Le résultat de la compilation du source LaTeX de la figure 10.
Pour stocker la valeur 10 dans l’élément numéro 3 du tableau A, on écrit LET A(3) = 10.
Pour initialiser les éléments 0 à 10 du tableau A avec la valeur initiale 0, on peut utiliser une boucle for, partant de 0 et allant jusqu’à 10. Cela s’écrirait comme suit
Pour i = 0 À 10
LETT A(i) = 0
NEXT i
(P)1997, Centaur Communications Ltd. EXE Magazine est une publication de Centaur Communications Ltd. Aucune partie de cet ouvrage ne peut être publiée, en tout ou en partie, par quelque moyen que ce soit, y compris électronique, sans l’autorisation expresse de Centaur Communications et du détenteur du droit d’auteur lorsque celui-ci est une partie différente.
EXE Magazine, St Giles House, 50 Poland Street, Londres W1V 4AX, courriel [email protected]
.