Il est temps de t’expliquer ce qu’est une commande LATeX/ConTeXt. Ça va être un peu long et un peu rébarbatif, mais comprendre le fonctionnent des commandes LATeX/ConTeXt t’éviteras de nombreuses erreurs.
Accroches-toi c’est parti.
LATeX et ConTeXt fonctionnent à la manière du HTML qui sert à fabriquer les pages web. Ils utilisent des balises qui vont formater le texte qu’elles contiennent, comme par exemple mettre en gras, centrer,… et des commandes, comme \par qui permet de changer de paragraphe ou \LaTeX qui écrit LATeX et \ConTeXt pour ConTeXt, avec le E qui est plus bas.
Les commandes LATeX/ConTeXt sont sensible à la casse, ce qui veut dire que \LaTeX, \latex et \Latex son trois commandes différente. Taper \Latex vat te renvoyer une erreur lors de la compilation car c'est une commande inconnue de LATeX/ConTeXt.
Pour les distinguer du reste du texte, ces commandes et balises commencent toujours par \.
Je colore les commandes comme le fait TeXworks pour les distinguer du texte
Il y a plusieurs types de d'instructions : les commandes, les environnements, les déclarations.
Il y a deux types de commandes, avec ou sans arguments.
Voici une liste de commandes sans argument (qui fonctionne aussi bien sous LATeX que sous ConTeXt) :
Si tu utilises les classes de Koma comme scrreprt, ces anciennes formes de modification de la fonte ne sont plus reconnue (elle le sont toujours par la classe report), il faut utiliser à la place \textbf ou \textit. C'est la joie de l'utilisation des packages sous LATeX !
Donc quand LATeX/ConTeXt rencontre un \, il reconnaît le début d’une commande. Pour la fin des commandes sans arguments c’est un peu plus compliqué car il y a plusieurs types de caractères qui indiquent à LATeX/ConTeXt la fin de la commande :
La première conséquence c’est qu’aucune commande ou balise LATeX/ConTeXt ne contient de chiffres, de caractères de ponctuation (, ; :) ou de tiret (souviens-t-en quand tu créeras tes commandes, et oui, dans ce tutoriel tu vas apprendre à créer des commandes).
Quand tu utilises l’espace pour terminer une commande, celle-ci est « mangée » par LATeX/ConTeXt , elle n’apparaît pas dans le texte final. Un exemple si j’écris dans le source :
l’espace après le Xt de ConTeXt indique la fin de commande mais est « mangée » et on obtient dans le document final (le .pdf)
Mme Michu
— T’es couillon tu n’a qu’a mettre 2 espaces une qui est mangée et l’autre qui reste ! ! !
Et bien non c’est pas possible pour LATeX/ConTeXt 1, 2, 3 ou 100 000 espaces c’est pareil, il n’en voit qu’une seule. On en reparlera plus tard.
Pour obtenir le bon résultat il faut écrire l’une de ces possibilités
qui donne
Par contre tu peux écrire
Les exemples que je viens de donner sont avec ConTeXt, mais c'est tout pareil avec LATeX.
Que l’espace soit mangée n’a pas que des inconvénients. Essayons d’écrire « Le cœur a ses raisons que la raison ne connaît pas ». La commande LATeX/ConTeXt pour le œ est \oe. Si j’écris c\oeur je vais obtenir une erreur car la commande \oeur, n’existe pas. Il faut donc écrire c\oe ur, l’espace étant mangé j’obtiens cœur. Tu aurais pu écrire aussi :
et c\oe\ur renvoie une erreur car \ur est une commande qui n’existe pas.
Tu as pu remarquer qu’il n’est pas nécessaire d’insérer une espace au début de la commande.
Les commandes à argument sont faites pour traiter des objets, des mots ou textes courts, qui sont placés entre accolades. Voici des exemples de commandes à argument :
– pour encadrer un mot : \framebox{un mot} en LATeX et \framed{un mot} avec ConTeXt;
– pour inclure une image \includegraphics { pingouin.jpg} pour LATeX et \externalfigure [ pingouin.jpg] avec ConTeXt
Ces exemples appellent plusieurs remarques.
Tout d'abord la commande ConTeXt \externalfigure utilises des crochets [] et pas des accolades {} comme la commande LATeX \includegraphics. ConTeXt utilise beaucoup plus de [] que LATeX. ConTeXt se veut plus respectueux de la syntaxe de TeX. Notamment il s'appuie sur le principe une commande des options, alors que LATeX multiplie les commandes.
Deuxièmement \includegraphics ne fait pas partie des commandes de base de LATeX. Il faut pour pouvoir l'utiliser charger un package appelé graphics (oublie pas le s final).
Je te rappelle que ConTeXt est monolithique, il n'a pas besoins de packages, toutes les commandes sont dans ConTeXt.
Enfin le traitement de l'image (c'est exactement la même dans les deux cas) n'est pas identique. C'était pareil pour les commandes d'encadrement.
Certaines commandes peuvent prendre un ou plusieurs arguments. Dans la grandes majorité des cas, aussi bien pour LATeX que pour ConTeXt, les options sont entre [] et se placent au début juste après le nom de la commande et s'il y en a plusieurs elles sont séparées par des virgules.
Pour illustrer notre propos on va reprendre les commandes d'encadrement de texte qui prennent des options sous LATeX et ConTeXt.
On va réparer la position du texte qui est décalé dans l'exemple de ConTeXt. Je ne rentre pas dans l'explication du pourquoi et du comment, je te donne juste la commande qui va bien et qui fait appel à une option :
Voici un exemple d'options pour \framed.
Voici un autre exemple :
Fidèle au principe une commande des options, les options pour cette commande, ConTeXt en a une multitude. Si cela t'intéresse tu peux aller voir sur cette fiche, j'en donne la liste.
À contrario LATeX fait pâle figure car son \framebox n'a qu’une seule option qui permet uniquement de modifier la longueur de l'encadrement :
Faire les même encadrés en LATeX va être compliqué et nécessiter d'autres commandes et d'autres packages.
Tu peux emboîter les commandes, pour par exemple, écrire en gras et en rouge.
Pour avoir la couleur, comme souvent avec LATeX, il faut charger un pacquage : \usepackage{xcolor}
En ConTeXt tu peux également l'écrire de cette façon :
Ils sont nécessaire pour modifier de plus grande partie de texte ou des portions de texte contenant des sauts de paragraphe.
En LATeX les environnements commencent toujours par \begin{nomEnvironnement} et se termine par \end{nomEnvironnement}.
Avec ConTeXt les deux balises pour les environnements sont \starEnvironement et \stopEnvironement. Les environnements de ConTeXt peuvent prendre une ou plusieurs séries d'options \starEnvironement[option1=valeur1,option,option2=valeur2,…][optionA=valeurA,optionB=valeurB,…]…
Le nom de l’environnement obéi aux même règles que les noms de commandes, pas de ponctuations, de nombres, de caractères accentués.
Tout ce qui se trouve entre ces deux balises sera affecté par l’action de l’environnement choisi.
Par exemple pour centrer une partie d’un document :
Ici encore tu vois la différence entre ConTeXt un seul environnement \startalignment et des options middle (tu peux employer center également), flushright, flushleft, nothyphenated,… et LATeX un environnement pour chaque cas : \begin{flushleft} , \begin{flushright}…
Tu peux emboîter les environnements, mais pas les imbriquer, les deux premiers exemples sont bons, le suivants retournent une erreur de compilation.
C’est une des erreurs les plus fréquente quand on débute. Elles ne sont pas toujours faciles à démêler, surtout quand les environnements sont éloignés.
Il existe un dernier type de commande : les déclarations. Ce sont des commandes dont l’action débute à l’endroit où tu places cette commande et qui se poursuit jusqu’à la fin de ton document, sauf si elle rencontre :
Voici pour être plus clair des exemples, ci-dessus, avec la commande \tiny (en LATeX) et \tfxx (en ConTeXt), qui permet d’écrire en tout petit.
J'ai fais exprès de mettre tout le code sur une ligne dans le source. Dans la vraie vie je passe à la ligne quand je débute un environnement c'est plus propre et on se repère mieux dans la structure du code.
Remarque au passage qu’un environnement provoque automatiquement un saut de ligne avec un espace au début et à la fin en LATeX et uniquement un saut de ligne en ConTeXt.
Il existe un autre moyen de contraindre une déclaration, c’est de l’enfermer entre des accolades { }.
Ce sont des caractères qui ont une signification précise pour LATeX/ConTeXt et que tu ne peux pas employer dans ton texte. Ils sont au nombre de 11 : \ % { } # ~ | $ _ ^ &
– Tu es bien gentil Bébert, mais moi je vais avoir besoin des %, rétorque Mme/Mr Michu
Pas de panique, il y a des commandes qui permettent de les mettre dans ton texte :
Caractère réservé | Commande LATeX | Commande ConTeXt |
---|---|---|
\ | \textbackslash | \backslash |
% | \% | \% |
{ | \{ | \{ |
} | \} | \} |
# | \# | \# |
~ | \textasciitilde | \lettertilde |
| | \| | \| |
$ | \$ | \$ |
_ | \_ | \_ |
^ | \textasciicircum | \letterhat |
& | \& | \& |
On a fait le tour des commandes LATeX/ConTeXt. J’espère que tu n’es pas trop noyé.e.
Mais ne t’inquiètes pas, on se familiarise rapidement avec ce système qui finalement est assez logique.