- Le blog participatif de bioinformatique francophone depuis 2012 -

LaTeX : la mise en forme du texte et des paragraphes

Bon main­te­nant qu'on sait com­pi­ler et insé­rer des flot­tants, un truc cri­tique à voir c'est com­ment mettre en forme : mettre en ita­lique, en emphase, en gras, sou­li­gner, faire des listes à puces, insé­rer du code…

Pré­pa­rez-vous, ça risque d'être un peu long :). (Et par un peu long je veux aus­si dire un peu enqui­qui­nant, mais il faut y pas­ser…)

Mise en forme du texte

Faire joujou avec la police

Par défaut, LaTeX met les carac­tères en forme droite en minus­cule. On peut chan­ger cela 🙂

Mise en emphase

La com­mande \emph{texte} per­met de mettre de l'emphase sur le texte entre acco­lades. Dans un contexte « nor­mal » c'est-à-dire droit, le texte sera mis en ita­lique, et dans un contexte ita­lique le texte sera mis en forme droite. C'est très pra­tique pour mettre en évi­dence du mot dans un texte.

Tes­tez 🙂

Italique et soulignage

Pour mettre en ita­lique le texte, rien de plus simple, il suf­fit d'utiliser cette com­mande : \textit{texte à mettre en italique}.

Si l'on sou­haite, on peut éga­le­ment uti­li­ser l'environnement itshape de la façon sui­vante :

L'utilisation de l'environnement est assez rare, mais il faut l'avoir vu, ce qui est chose faite 🙂

Il est éga­le­ment pos­sible de sou­li­gner du texte avec LaTeX avec la com­mande \underline{texte à souligner} mais je trouve ça très moche et ce n'est pas recom­man­dé de l'utiliser, sauf contraintes excep­tion­nelles.

Petites majuscules

Pour mettre les lettres en petites majus­cules (capi­tales), par exemple pour mettre les noms de famille des auteurs dans votre biblio­gra­phie, vous pou­vez uti­li­ser la com­mande \textsc ain­si : 

Pour mettre les chiffres en bas de casse, vous pou­vez uti­li­ser la com­mande \oldstylenums{0123456789}.

Lettres supérieures et inférieures

(C'est-à-dire l'équivalent des expo­sants et des indices en mathé­ma­tiques.) Pour cela on a deux com­mandes très expli­cites : \textsuperscript{superscript} et \textsubscript{subscript}.

Mettre en gras

Pour chan­ger la graisse des carac­tères, il suf­fit d'utiliser la com­mande \textbf{texte à mettre en gras}. Il existe éga­le­ment un envi­ron­ne­ment, comme pour la mise en ita­lique qui s'appelle bfseries. À vous tes­ter, mais il est encore une fois peu uti­li­sé.

Faire joujou avec la taille

Il est pos­sible de modi­fier la taille du texte :

  • {\tiny plop} : minus­cule
  • {\scriptsize plop} : très très petit
  • {\footnotesize plop  : très petit
  • {\small plop} : petit
  • {\normalsize plop} : nor­male (taille défi­nie dans le \documentclass)
  • {\large plop} : légè­re­ment grande
  • {\Large plop} : grande
  • {\LARGE plop} : très grande
  • {\huge plop} : énorme
  • {\Huge plop} : gigan­tesque

Récapitulatif et aspects visuels

Tableau récapitulatif de la mise en forme de texte en LaTeX
Tableau réca­pi­tu­la­tif de la mise en forme de texte en LaTeX

À titre de révi­sion, et parce qu'il y a une com­mande inté­res­sante dedans, je vous four­nis le code source de ce tableau :

Les guillemets

Les guille­mets c'est toute une affaire… Vous avez déjà dû avoir à faire à des trolls qui vous ont dit que vous n'utilisiez pas les guille­mets fran­çais quand vous le devriez etc. Heu­reu­se­ment, vous ne ferez plus l'erreur avec LaTeX !

Pour cela, vous allez devoir ajou­ter un paquet à votre pré­am­bule (avouez que ça vous man­quait…) :

Vous signi­fiez ain­si au paquet csquotes d'utiliser la langue que vous avez pas­sé à babel (soit en para­mètre, soit dans le documentclass, selon votre ver­sion de babel).

Vous pou­vez alors uti­li­ser la com­mande sui­vante :

Je vais citer une phrase mau­dite : \enquote{J'ai per­du !} qui va auto­ma­ti­que­ment avoir les bons guille­mets !

Alter­na­ti­ve­ment, vous pou­vez uti­li­ser les com­mandes \og plop \fg{} du paquet babel, je ne vous en tien­drai pas rigueur 🙂

Points de suspension

Pour écrire des points de sus­pen­sion, vous pou­vez soit uti­li­ser le carac­tère idoine …, soit uti­li­ser la com­mande \ldots.

Tirets

Il existe plu­sieurs types de tirets en LaTeX (dont le signe moins en mathé­ma­tiques qu'on ver­ra plus tard) :

  • -  : le trait d'union
  • –  : le tiret demi-cadra­tin (uti­li­sé pour mar­quer un inter­valle ou les incises)
  • —  : le tiret cadra­tin (uti­li­sé pour mar­quer l'alternance des per­son­nages dans les dia­logues)

Mise en forme des paragraphes

Comme vous l'avez sûre­ment remar­qué, par défaut, le texte est jus­ti­fié et com­mence par un ali­néa. Pour com­men­cer un nou­vel ali­néa, il suf­fit de pas­ser une ou plu­sieurs lignes vides (LaTeX s'en contre­fiche du nombre, mais vous pas, ça peut vous aider à vous retrou­ver dans votre code source).

Alignement des paragraphes

Si vous sou­hai­tez modi­fier l'alignement de votre texte, c'est-à-dire qu'il ne soit plus jus­ti­fié, LaTeX vous pro­pose trois envi­ron­ne­ments (avec les com­mandes équi­va­lentes) :

Ali­gne­ment des para­graphes en LaTeX

Paragraphe de résumé (abstract)

Il est clas­sique dans un article (ou un report) de com­men­cer par un résu­mé (un abs­tract dans le jar­gon). Pas de panique ! LaTeX a juste le bon envi­ron­ne­ment pour vous :

Ce qui donne :

Aspect du résumé (qui dépend encore une fois de babel)
Aspect du résu­mé (qui dépend encore une fois de babel)

Le résu­mé prend une page entière et est tra­di­tion­nel­le­ment mis avant le début du texte.

Mise en forme de code

Il existe envi­ron douze mil­liards de façon de mettre en forme du code avec LaTeX, je vais vous pré­sen­ter exclu­si­ve­ment ma pré­fé­rée : minted.

Installation de minted

Pour cela il va vous fal­loir Python >= 2.6 parce qu'on a besoin de Pygments. Vous pou­vez ins­tal­ler Pygments de la façon sui­vante :

ou encore

Puis uti­li­sez votre ges­tion­naire de paquets pour ins­tal­ler le paquet minted.

Préparation de Texmaker à l'utilisation de minted

Alors en fait puisque minted cause au monde exté­rieur (à savoir Pygments), il faut pas­ser une option à pdflatex pour que ça puisse se faire : l'option -shell-escape.

Pour cela, allez dans Options, Confi­gu­rer TexMaker et ajou­ter l'option -shell-escape après la com­mande pdflatex.

Bon, faites gaffe à ce que vous faites avec cette option parce que l'option -shell-escape auto­rise LaTeX à exé­cu­ter des com­mandes arbi­traires sur votre machine, du coup faites-le sur des docu­ments en qui vous avez confiance…

Utilisation de minted

C'est très simple d'utiliser minted :

Main­te­nant, com­pi­lez et vous obtien­drez :

Et hop ! De la colo­ra­tion syn­taxique.

Si vous vou­lez insé­rer une seule ligne de code, vous pou­vez uti­li­ser la com­mande sui­vante :

Ce qui donne exac­te­ment le même résul­tat qu'avec l'environnement :

Tou­jours de la colo­ra­tion syn­taxique !

Si vous vou­lez inli­ner du code, la com­mande appro­priée est \mintinline qui s'utilise de la façon sui­vante :

Ce qui donne :

Du code inli­né \o/​

Et si, comble du luxe, vous vou­lez insé­rer un fichier entier de code (sait-on jamais pour un cor­ri­gé de TD ça peut ser­vir…), vous pou­vez uti­li­ser la com­mande sui­vante :

Les styles minted

Il existe une foule de styles min­ted que vous pou­vez uti­li­ser pour colo­rer votre code. Je vous sug­gère de consul­ter http://​pyg​ments​.org/​d​e​mo/ d'y envoyer un bout de code et de tes­ter les dif­fé­rents styles qui vous seront pro­po­sé après avoir cli­qué sur High­light !

Pour voir la liste des styles dis­po­nible (ain­si qu'une brève des­crip­tion), vous pou­vez taper dans votre ter­mi­nal la com­mande sui­vante :

Une fois que vous avez trou­vé le style qui vous convient, vous pou­vez le sélec­tion­ner dans le pré­am­bule de la manière sui­vante :

Vous pou­vez mettre dans votre pré­am­bule autant de \usemintedstyle que vous vou­lez pour autant de lan­gage que vous sou­hai­tez.

Vous pou­vez aus­si mettre le style que vous vou­lez en pas­sant cela en option à l'environnement :

Ce qui donne un style légè­re­ment dif­fé­rent :

Uti­li­sa­tion du thème man­ni alors que le thème vim a été uti­li­sé pour l'ensemble du docu­ment.

Encore un peu de flottants…

minted donne accès à l'environnement listing qui mets le code dans un envi­ron­ne­ment flot­tant, ce qui per­met d'avoir une légende (via \caption) et une réfé­rence (via \label), tout comme pour les tables ou les figures.

Voi­ci com­ment pro­cé­der :

Ce qui donne :

Et tada, un envi­ron­ne­ment flot­tant pour le code !!

Bon, et vous savez ce qui vient :). La com­mande magique pour obte­nir la liste des lis­tings :

Ce qui donne :

Hor­reur et dam­na­tion, c'est en anglais, babel nous a tra­his !

Dam­mit.

Heu­reu­se­ment, c'est réglable. Pour cela il va fal­loir bidouiller un peu, et pour faire ça il faut char­ger le paquet minted avec une option et cus­to­mi­ser ça comme ça (dans le pré­am­bule) :

Et après com­pi­la­tion, on obtient :

Ouf, nous voi­là sau­vés 🙂

Pour chan­ger le nom de la légende en « Code » au lieu de « Lis­ting » (parce que je pré­fère et que c'est plus expli­cite), il suf­fit d'utiliser la même méthode :

Et on obtient après com­pi­la­tion :

Et voi­là, on a cus­to­mi­sé le nom de l'environnement !

Numéroter les lignes

Il est pos­sible de numé­ro­ter les lignes en uti­li­sant l'option linenos (soyez atten­tif, il y a un truc coolish ^^) :

Voyez :

Vous voyez à quel point c'est trop cool LaTeX ?

Des maths dans les commentaires ? Sure why not !

Je sais que j'ai pas encore par­lé de maths en LaTeX, donc reve­nez à cette sous-sec­tion plus tard 🙂 ! L'important c'est que vous ayez une réfé­rence de com­ment faire 🙂 :

Ce qui donne :

Une jolie somme ! \o/​

Bon, je pour­rais conti­nuer long­temps à vous par­ler des trucs coolish que peut faire minted, mais l'article est déjà long et il reste d'autres trucs cool à voir, on y revien­dra peut être plus tard !

Mise en forme d'algorithmes

Il existe envi­ron douze mil­liards de façon de for­ma­ter des algo­rithmes avec LaTeX, je vais vous pré­sen­ter mon pré­fé­ré. Pour com­men­cer, allons mettre ce qu'il faut dans le pré­am­bule :

L'utilisation de base est assez simple, comme vous pou­vez le consta­ter avec cet exemple tiré de la docu­men­ta­tion :

Ce qui donne :

Et un pre­mier algo tout beau tout propre

On peut faire des choses plus com­plexes comme celle-ci :

Ce qui donne :

Un bel algo­rithme avec tout plein de key­words

Bon bah je pense que c'est tout pour cette fois, on se retrouve bien­tôt !

Un grand mer­ci à mes relecteur.rice.s : MaxNisaea, et Pau Ssrls !




Commentaires

4 réponses à “LaTeX : la mise en forme du texte et des paragraphes”

  1. Avatar de Nibuald

    Petite ques­tion : Com­ment faites vous pour rendre latex inter-opé­rable avec les autres outils ? Je m'explique : vous écri­vez un article, une thèse, un mémoire, … et vous vou­driez le faire cor­ri­ger. Quels moyens pour ajou­ter des com­men­taires et des révi­sions à l'instar d'un Micro­soft Word ou Google Docs ?

    1. Yoann M.

      Per­son­nel­le­ment je com­mente sur le pdf et c'est tout aus­si effi­cace.

    2. Dans ces cas là, une pla­te­forme cen­tra­li­sée semble tout indi­quée (sha­re­la­tex, over­leaf,…),
      si les relec­teurs ne prennent pas peur en voyant du latex.

      Une manière un poil plus com­pli­quée que l'annotation de pdf pro­po­sée par Yoann : sépa­rer le conte­nu tex­tuel du reste (struc­ture prin­ci­pale et pré­am­bule) en les met­tant dans des .tex sépa­rés, et en les impor­tant avec \input{}.

      Main­te­nant, seuls les fichiers conte­nant du texte peuvent être envoyés aux relec­teurs qui ne connaissent pas latex, vu qu'ils ne contiennent que des com­mandes ou du bali­sage léger qui se com­prend vite.

      L'avantage prin­ci­pal est de gar­der la com­plexi­té pour ceux qui veulent (en pas­sant par un docu­ment col­la­bo­ra­tif cen­tra­li­sé comme sha­re­la­tex), et de per­mettre à ceux qui ne veulent pas de pas­ser par un autre moyen (comme google doc ou une ins­tance ether­pad par exemple) pour édi­ter du texte.

      Après, le meilleur sys­tème pour le relec­teur (impri­mer et anno­ter à la main, pour ma part)
      n'est pas sou­vent le meilleur pour l'auteur (avoir un diff entre le fichier ini­tial et le fichier relu).

      1. Avatar de Nibuald

        Mer­ci lucas pour ta réponse. Je ne connais­sais pas les pla­te­formes cen­tra­li­sées.

Laisser un commentaire