Christophe Jacquet - Mot-clé - LaTeX2020-06-06T16:28:28+02:00urn:md5:93f90aead91499e6909e12b0eb17fad3DotclearTeXShop's magic commentsurn:md5:47769fe368e99e33daf04b32c9d672242011-05-20T22:55:00+02:002011-07-18T21:19:10+02:00Christophe JacquetLaTeXLaTeXMac <p><em>I once wrote a note on <a href="https://jacquet.xyz/blog/post/2008/09/17/233-character-coding-in-texshop" hreflang="en">how to set the character encoding of a file in TeXShop</a>, using a “magic comment”. As the information on the topic of TeXshop's magic comments is very scarce on the web, here is a compilation of the magic comments I know of.</em></p>
<p><strong>Note:</strong> magic comments (or <em>magic markers</em>) alter TeXShop's default behavior on a per-file basis. These are basically regular TeX comments, but they start with <code>%!</code>, thus they are interpreted by TeXShop if they appear at the top of a file.</p>
<p>Set the character encoding:</p>
<pre>%!TEX encoding = UTF-8 Unicode
%!TEX encoding = IsoLatin</pre>
<p>Set the engine (command to be run with the <em>Typeset</em> command, ⌘T):</p>
<pre>%!TEX TS-program = context</pre>
<p>Set the name of the “main”/“root” file, the one on which to call the typesetting command:</p>
<pre>%!TEX root = main_file_of_my_phd.tex</pre>
<p>Set the language to be used by the spell-checker:</p>
<pre>%!TEX spellcheck = de-DE</pre>
<p>When using source/PDF synchronization with multiple files, TeXShop is able to spot <code>\include</code> and <code>\input</code> commands in the main file. However this does not work with ConTeXt, so the following command allows one to explicitly reference an included file vis-à-vis TeXShop. Therefore it may be used several times:</p>
<pre>%!TEX projectfile = chapter1.tex
%!TEX projectfile = chapter2.tex</pre>
<p><em>Main source: <a href="http://pages.uoregon.edu/koch/texshop/version.html" hreflang="en">TeXShop version history</a>.</em></p>Liens LaTeXurn:md5:52629f1ef65e360ff6a1f60e84e8ef632010-11-04T22:11:00+01:002010-11-06T00:31:24+01:00Christophe JacquetLaTeXLaTeX <p>Deux superbes outils interactifs :</p>
<ul>
<li><a href="http://detexify.kirelabs.org/classify.html" hreflang="en">Detexify</a> : on dessine un symbole à l'écran (à main levée), l'outil indique la commande LaTeX correspondante !</li>
<li><a href="http://www.codecogs.com/latex/eqneditor.php" hreflang="fr">LaTeX Equation Editor for Writing Maths on the Internet</a> : on compose une équation dans un formulaire web, et cela construit le rendu LaTeX à la volée. On peut ensuite télécharger l'image. À comparer avec <a href="http://www.chachatelier.fr/programmation/latexit_fr.php" hreflang="fr">LaTeXiT</a>, mais sans installer quoi que ce soit.</li>
</ul>
<p>Un document bien utile :</p>
<ul>
<li><a href="http://www.math-linux.com/spip.php?article76" hreflang="fr">Une courte et bonne introduction à Beamer</a></li>
</ul>Character encoding in TeXShopurn:md5:dbc4745a6bb7c3691a77f729d8d834412008-09-17T23:45:00+00:002011-05-20T21:19:14+00:00ChrisJLaTeXLaTeXMac <p>It can be a real <em>pain</em> to open files with various character encodings inside <a href="http://www.uoregon.edu/~koch/texshop/" hreflang="en">TeXShop</a>. Indeed, you basically have to change TeXShop's settings each time.</p>
<p>Hopefully, I recently came across a little-documented feature that allows you to specify the encoding on a per-file basis: you simply add a <em>metadata</em> (a special TeX comment) at the top of the file to set the encoding, and TeXShop will load and save it accordingly. Use:</p>
<pre>%!TEX encoding = IsoLatin</pre>
<p>for ISO-8859-1 (Latin 1), or:</p>
<pre>%!TEX encoding = UTF-8 Unicode</pre>
<p>for UTF-8. Be sure to type exactly that, as TeXShop is case-sensitively picky!</p>
<p>Well, that's not bad, but it could be <em>far better</em>:</p>
<ul>
<li>why not use the same notation as used by Emacs (and others) : <code>% -*- coding: UTF-8; -*-</code> ?</li>
<li>why not use <em>standard coding names</em> (<code>iso-8859-1</code> or <code>latin1</code> instead of <code>ISOLatin</code>, <code>utf-8</code> instead of <code>UTF-8 Unicode</code>)?</li>
<li>why does TeXShop need a metadata in the first place? Why can't it directly use the <code>\usepackage[<em>coding</em>]{inputenc}</code> line?</li>
</ul>
<p><strong>Update, 2011-05-20:</strong> I have written a new <a href="https://jacquet.xyz/blog/post/2011/05/TeXShop-magic-comments" hreflang="fr">note about all TeXShop's magic comments</a>.</p>Tableaux à double entrée et LaTeXurn:md5:ca128a70250bbd16e443771f380cff842008-05-15T21:54:52+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX<p>Avec LaTeX, il n'est pas absolument évident de réaliser des tableaux à double entrée du type suivant :</p>
<p><img src="https://jacquet.xyz/blog/images/2008/20080515_tableauOK.png" alt="Tableau à double entrée" style="display:block; margin:0 auto;" /></p>
<p>Ce n'est pas très compliqué, mais il faut un peu d'astuce. C'est ce qu'explique ce billet.</p> <h4>Le problème</h4>
<p>Ce qui est facile avec LaTeX, c'est de dessiner des tableaux parfaitement rectangulaires. À titre d'exemple, voici un code très simple, et son résultat :</p>
<p><img src="https://jacquet.xyz/blog/images/2008/20080515_tableauBasique.png" alt="Tableau classique LaTeX" style="float:right; margin: 0 0 1em 1em;" /></p>
<pre>\begin{tabular}{|l|c c c|}
\hline
& A & B & C \
\hline
$\alpha$ & $\times$ & $\times$ & \
$\beta$ & $\times$ & & $\times$ \
\hline
\end{tabular}</pre>
<p>Cependant, la case située tout en haut à gauche ne sert à rien, et l'on aimerait s'en affranchir, de façon à réaliser un <em>vrai</em> tableau à double entrée. L'idée de base est alors la suivante :</p>
<ul>
<li>on supprime le filet de gauche, donc la spécification de tableau devient <code>l|c c c|</code> au lieu de <code>|l|c c c|</code> ;</li>
<li>on ne trace le premier filet horizontal qu'entre les colonnes 2 et 4, donc le <code>\hline</code> devient <code>\cline{2-4}</code> ;</li>
<li>mais alors, comment faire pour récupérer le filet de gauche <em>seulement sur les lignes 2 et 3</em> ? Il y a bien une commande <code>\vline</code>, mais elle trace un filet vertical, sur une ligne, <em>à l'endroit courant</em> et pas tout à gauche, donc cela ne produit pas le résultat escompté...</li>
</ul>
<h4>La solution avec \multicolumn</h4>
<p>La commande <code>\multicolumn</code> sert à créer des cases qui s'étendent sur plusieurs colonnes. Elle prend donc en paramètres le nombre de colonnes à occuper, la spécification du format de la case en question, <em>bordures comprises</em>, et enfin le contenu de la case.</p>
<p>Ce qui est intéressant, c'est qu'avec cette commande, on puisse spécifier les bordures d'une case. Nous allons donc la détourner pour créer les cases de gauche des lignes 2 et 3 : elles feront <em>une</em> colonne de large (donc pas de <em>multicolonnage</em> au sens propre), mais nous pourront ainsi tracer leur filet de gauche. D'où le code final :</p>
<p><img src="https://jacquet.xyz/blog/images/2008/20080515_tableauOK.png" alt="Tableau à double entrée" style="float:right; margin: 0 0 1em 1em;" /></p>
<pre>\begin{tabular}{<strong>l|c c c|</strong>}
<strong>\cline{2-4}</strong>
& A & B & C \
\hline
<strong>\multicolumn{1}{|l|}{$\alpha$}</strong> & $\times$ & $\times$ & \
<strong>\multicolumn{1}{|l|}{$\beta$}</strong> & $\times$ & & $\times$ \
\hline
\end{tabular}</pre>
<p>Moralité : pour tracer une bordure verticale récalcitrante sur <em>une case</em> (et non une colonne en entier), pensez à <code>\multicolumn</code>. Ceci permet également de modifier l'alignement d'une cellule isolée, <a href="http://www.grappa.univ-lille3.fr/FAQ-LaTeX/7.9.html" hreflang="fr">comme souligné sur la FAQ LaTeX francophone</a>.</p>Mémento LaTeXurn:md5:0fd6a62d6aa0e962f95b35102fa4fc372007-10-10T21:41:22+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX <p><img src="https://jacquet.xyz/blog/images/2007/couv_memento_latex-348px.jpg" alt="Couverture Mémento LaTeX" style="float:right; margin: 0 0 1em 1em;" />
Je parle régulièrement ici de technique LaTeX, en essayant de relever les bonnes pratiques, faciles à mettre en œuvre et sûres... Je suis heureux aujourd'hui de vous présenter mon <em><a href="http://www.eyrolles.com/Informatique/Livre/9782212122442/livre-memento-latex.php" hreflang="fr">Mémento LaTeX</a></em>, qui paraît actuellement chez Eyrolles.</p>
<p>En 13 colonnes 10x21, ce <em>Mémento</em> présente l'essentiel de LaTeX, sous la forme d'un petit livret cartonné et glacé, à garder sur un coin de bureau.</p>
<p>L'ouvrage s'adresse :</p>
<ul>
<li>d'abord à toutes les personnes désireuses de bénéficier pour la réalisation de documents divers des qualités de Latex, et souhaitant disposer d'une référence pratique de ce logiciel ;</li>
<li>et en particulier à tous les scientifiques (chercheurs, enseignants, doctorants, et même étudiants de l'université et des Grandes Écoles), utilisateurs traditionnels de LaTeX.</li>
</ul>
<p>Rappelons que LaTeX est système de mise en forme de documents réputé pour la qualité de ses résultats, en particulier dans le domaine scientifique.</p>Ouvrir des documents LaTeX depuis Adobe Illustratorurn:md5:980ad5681c492305310556cac799c8002007-08-31T19:50:36+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX<p>Ouvrir des documents LaTeX depuis Adobe Illustrator est un vrai problème. Voici comment je comprends la situation (mais je peux me tromper !) : les textes d'un document LaTeX donnent lieu à des objets texte dans les fichiers PDF. Par défaut, (pdf)LaTeX ne va inclure dans les PDF que les glyphes des caractères utilisés (<em>subsetting</em>). Or Illustrator a besoin des polices <em>en entier</em>, de façon à permettre l'édition des objets texte, sans quoi il utilise des polices de substitution. Ce sera donc quasi-systématiquement le cas des documents LaTeX, d'où un chargement <em>catastrophique</em>...</p>
<p>Ce billet donne quelques trucs et astuces pour se sortir de ce problème.</p> <p>J'ai essayé deux stratégies différentes : d'abord, inclure <em>entièrement</em> les polices (mais bizarrement, ça n'a pas résolu le problème dans tous les cas), et ensuite, transformer tout le texte en formes vectorielles pour ne plus avoir <em>du tout</em> d'objet texte dans le PDF.</p>
<h4>Inclure entièrement les polices</h4>
<p>Comme indiqué en introduction, par défaut, LaTeX insère dans le fichier uniquement les glyphes utilisés dans le document. Et ce, que l'on utilise directement <code>pdflatex</code>, ou bien <code>latex</code> / <code>dvips</code> / <code>ps2pdf</code>.</p>
<p>Dans toute la suite, nous allons supposer que l'on dispose d'un fichier Postscript issu de la compilation d'un fichier <code>.tex</code><sup>[<a href="https://jacquet.xyz/blog/post/2007/08/31/133-ouvrir-des-documents-latex-depuis-adobe-illustrator#pnote-133-1" id="rev-pnote-133-1">1</a>]</sup>. Appelons-le <code>document.ps</code>.</p>
<p>Lors de la conversion en PDF, on dispose simplement d'un <a href="http://pages.cs.wisc.edu/~ghost/doc/cvs/Ps2pdf.htm" hreflang="en">paramètre de Ghostscript</a> qui permet d'éviter le <em>subsetting</em>. On utilise donc la commande :</p>
<pre>ps2pdf -dSubsetFonts=false document.ps</pre>
<p>Ceci fonctionne bien, dans le sens où les polices sont entièrement incorporées. D'après mes essais, Illustrator arrive <em>parfois</em> à ouvrir ces fichiers, mais <em>pas toujours</em>... Il y a là un point obscur, et je suis d'ailleurs preneur de toute information !</p>
<h4>Transformer tout le texte en formes vectorielles</h4>
<p>La méthode précédente ne résolvant pas entièrement mon problème, je me suis penché sur la suppression pure et simple de tous les objets texte des PDF, et donc des polices, <em>subsettées</em> ou non...</p>
<p>1. Générer un fichier Postscript où le texte est remplacé par les formes vectorielles des glyphes (voir les <a href="http://pages.cs.wisc.edu/~ghost/doc/cvs/Use.htm" hreflang="en">options de Ghostscript</a>) :</p>
<pre>gs -sDEVICE=pswrite -dNOCACHE -dQUIET -dNOPAUSE -dBATCH -o document2.ps document.ps</pre>
<p>2. Générer le PDF :</p>
<pre>ps2pdf document2.ps</pre>
<p>On obtient ainsi un document PDF sans aucun texte ni police, qui s'ouvre sans problème dans Illustrator. Bien entendu, on n'a rien sans rien : les textes ne sont plus modifiables (autrement qu'en modifiant les chemins correspondants...)</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://jacquet.xyz/blog/post/2007/08/31/133-ouvrir-des-documents-latex-depuis-adobe-illustrator#rev-pnote-133-1" id="pnote-133-1">1</a>] Oui, je préconise habituellement d'utiliser pdfLaTeX dans tous les cas... Mais ici, la manipulation est un peu spéciale, et nous avons besoin d'un fichier Postscript pour le faire traiter par Ghostscript.</p></div>
Éviter les veuves et orphelines en LaTeXurn:md5:fe5a9f027f3ee8f6f776588d0d422fe92006-11-22T19:21:47+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX <p>En typographie, on n'aime généralement pas les lignes <em>veuves</em> ou <em>orphelines</em>, c'est-à-dire isolées en haut ou bas de page<sup>[<a href="https://jacquet.xyz/blog/post/2006/11/22/62-eviter-les-veuves-et-orphelines-en-latex#pnote-62-1" id="rev-pnote-62-1">1</a>]</sup>. Au niveau de la page et même du document, LaTeX essaie de trouver un compromis entre différents critères esthétiques. Il peut donc arriver qu'il laisse passer quelques veuves et orphelines, sacrifiées en faveur d'autres critères...</p>
<p>Pour les éviter totalement, il suffit de donner une valeur <em>infinie</em><sup>[<a href="https://jacquet.xyz/blog/post/2006/11/22/62-eviter-les-veuves-et-orphelines-en-latex#pnote-62-2" id="rev-pnote-62-2">2</a>]</sup> aux pénalités associées aux veuves et orphelines :</p>
<pre>\widowpenalty=10000
\clubpenalty=10000</pre>
<p>Certains trouvent cela un peu <em>violent</em> et évoquent d'éventuels <em>problèmes</em> dans certains cas. Ils conseillent donc de limiter la valeur à 9999. Pour ma part, j'ai essayé avec 10000 sur ma thèse, et cela m'a éliminé toutes les veuves et orphelines, sans effets secondaires trop gênants. Tout au plus ai-je obtenu des espacements verticaux un peu <em>grands</em> par endroits.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://jacquet.xyz/blog/post/2006/11/22/62-eviter-les-veuves-et-orphelines-en-latex#rev-pnote-62-1" id="pnote-62-1">1</a>] Les avis divergent quant au fait de savoir qui est la veuve et qui est l'orpheline...</p>
<p>[<a href="https://jacquet.xyz/blog/post/2006/11/22/62-eviter-les-veuves-et-orphelines-en-latex#rev-pnote-62-2" id="pnote-62-2">2</a>] Pour LaTeX, l'infini vaut 10000. Ben oui. Pourquoi pas ?</p></div>
Polices et pdflatexurn:md5:02dcba28cade4efdbb98bae0c4ff44d22006-11-03T22:52:44+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX<p>PDF est le nouveau standard de diffusion de documents : il n'est plus vraiment d'actualité de générer des fichiers Postscript à partir de documents LaTeX.
Cependant, ce n'est pas toujours évident de générer des documents PDF bien codés avec des jolies polices.
Cet article donne une méthode pour éviter ces écueils.</p> <h4>D'où vient le problème ?</h4>
<p><em>Les lecteurs intéressés uniquement par les recettes peuvent sauter cette section.</em></p>
<p>Par défaut, LaTeX utilise un codage des caractères appelé OT1, qui conduit à l'inclusion de polices de type 1 dans les fichiers PDF. Le problème posé par le codage OT1 est double :</p>
<ul>
<li>d'une part, dans les fichiers PDF, les caractères accentués ne sont pas codés tels quels, mais par deux caractères superposés, car les accents n'existent pas en Computer Modern. Donc les outils d'indexation type Google lisent des textes « 'etranges... »</li>
<li>d'autre part, LaTeX est incapable dans ces conditions d'effectuer des césures dans les mots accentués.</li>
</ul>
<p>Solution ? Passer à un codage moderne, appelé T1 (<code>\usepackage[T1]{fontenc}</code>), ce qui résout les deux problèmes ci-dessus... Mais en pose un nouveau, et non des moindres !</p>
<p>En effet, lorsqu'on utilise le codage T1, pdflatex remplace dans les PDF les polices de la <em>smala</em> Computer Modern par des <em>European Computer Modern</em>, certes avec accents, mais qui sont au format <em>type 3</em>, et non <em>type 1</em>. Le type 3 donne des résultats vraiment <em>hideux</em> à l'écran. Il est donc nécessaire d'utiliser d'autres polices... Ainsi, depuis quelques mois existent les polices Latin Modern en version finale, et au format <em>type 1</em><sup>[<a href="https://jacquet.xyz/blog/post/2006/11/03/60-polices-et-pdflatex#pnote-60-1" id="rev-pnote-60-1">1</a>]</sup>, destinées à remplacer les Computer Modern tout en gardant la même apparence.</p>
<h4>Solution</h4>
<p>Dans ce paragraphe, je donne donc une recette qui devrait permettre d'éviter tout ennui lié aux polices.</p>
<p>1) Toujours utiliser le codage T1 : <code>\usepackage[T1]{fontenc}</code></p>
<p>2) Pour un look identique aux polices Computer Modern, utiliser <em>systématiquement</em> les polices Latin Modern, et donc charger le package <code>lmodern</code> : <code>\usepackage{lmodern}</code>. Les autres packages de polices, comme <code>palatino</code> fonctionnent très bien également (ils conduisent à l'inclusion dans les PDF de polices de type 1)</p>
<p><em>Les deux autres points ne sont pas directement liés aux polices, mais un petit rappel ne fait pas de mal...</em></p>
<p>3) Si possible, utiliser un éditeur qui sait travailler en UTF-8, et rédiger les fichiers dans ce format (cela évite les soucis liés aux « œ » par exemple) : <code>\usepackage[utf8]{inputenc}</code></p>
<p>4) Toujours charger Babel avec la bonne langue : <code>\usepackage[francais]{babel}</code> par exemple</p>
<h4>Pour aller plus loin</h4>
<p>On peut avoir envie de changer sélectivement certaines familles de polices (parmi <em>romain</em> (rm), <em>sans sérifs</em> (sf) et <em>machine à écrire</em> (tt)). Par exemple, j'aime bien Palatino pour le texte en romain, mais je n'apprécie pas que le package <code>palatino</code> me mette du Courier en police sans sérifs (je préfère le Computer/Latin Modern Sans Serif)...</p>
<p>Tout simplement, il suffit de redéfinir les macros <code>\rmdefault</code>, <code>\sfdefault</code> et <code>\ttdefault</code>. Par exemple :</p>
<pre>\renewcommand{\rmdefault}{ppl} % texte romain en Palatino
\renewcommand{\sfdefault}{pag} % texte sans sérifs en Avant Garde
\renewcommand{\ttdefault}{lmvtt} % texte « machine » en Latin Modern Typewriter à espacement proportionnel</pre>
<p>Les packages tout prêts du type <code>lmodern</code> ou <code>utopia</code> se contentent de définir <em>trois</em> lignes de ce type ! C'est donc aussi facile de le régler à la main, et on peut ainsi définir ce qu'on veut ! Il suffit de connaître les noms de polices à utiliser<sup>[<a href="https://jacquet.xyz/blog/post/2006/11/03/60-polices-et-pdflatex#pnote-60-2" id="rev-pnote-60-2">2</a>]</sup> :</p>
<pre>lmr Latin Modern Roman
lmss Latin Modern Sans Serif
lmssq Latin Modern Sans Serif expansé
lmtt Latin Modern Typewriter
lmvtt Latin Modern Typewriter à espacement proportionnel
ptm Times
ppl Palatino
pnc New Century Schoolbook
pbk Bookman
phv Helvetica
pag Avant Garde
pcr Courier
pzc Zapf Chancery
put Utopia
bch Charter</pre>
<p>À noter :</p>
<ul>
<li>il est possible de changer temporairement de police avec un <code>\fontfamily{nom}\selectfont</code> ;</li>
<li>avec quelques bidouilles, on peut utiliser des polices True/Open Type dans ces commandes, mais je vous expliquerai une autre fois...</li>
</ul>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://jacquet.xyz/blog/post/2006/11/03/60-polices-et-pdflatex#rev-pnote-60-1" id="pnote-60-1">1</a>] Elles sont également disponibles au format Open Type pour les utiliser directement sous Linux, Windows ou MacOS X.</p>
<p>[<a href="https://jacquet.xyz/blog/post/2006/11/03/60-polices-et-pdflatex#rev-pnote-60-2" id="pnote-60-2">2</a>] Ce sont les noms dans le système de sélection PSNFSS.</p></div>
Numéros de page et pdfLatexurn:md5:f63891a09ca0c5a205418cbdff13340e2006-09-20T21:45:31+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX <p>Imaginons que dans un fichier PDF généré par LaTeX, les 10 premières pages soient numérotées de <em>i</em> à <em>x</em>, et que la page 1 soit située ensuite (i.e. à la onzième page physique). Le problème, c'est que pour naviguer dans le document, le lecteur doit alors taper des numéros de pages physiques (exemple : il faut taper <code>6</code> pour aller à la page <em>vi</em>, <code>45</code> pour aller à la page 35, etc.). Avouons que ce n'est pas très pratique !</p>
<p>Or, le format PDF permet aux documents d'indiquer leurs numéros de pages logiques, de façon à ce que pour aller page <em>vi</em> il suffise de taper <code>vi</code>, pour aller page 35 il suffise de taper <code>35</code>, etc. <em>Mais comment faire pour un document LaTeX ?</em></p>
<p>Il suffit d'ajouter dans la liste des options d'<code>hyperref</code> :</p>
<pre>plainpages=false,
pdfpagelabels</pre>Débuter avec LaTeXurn:md5:45f91b6f0d0e8447b3fac744d62a70c32006-07-24T23:13:22+00:002008-12-20T17:01:57+00:00ChrisJLaTeXLaTeX<p>Un ami veut débuter avec LaTeX, et m'a demandé de lui conseiller un livre ou une documentation pour débuter. Je l'ai dirigé vers le livre de Christian Rolland, <em><a href="http://www.amazon.fr/gp/product/2841770737/402-7075601-2888141?v=glance&n=301061" hreflang="fr">LaTeX par la pratique</a></em>. Or, ce dernier date de fin 1999, ce qui commence à dater un peu. Cet article résume donc mes conseils pour apprendre LaTeX en 2006 à l'aide du livre de Ch. Rolland : les parties dont je conseille la lecture, les compléments, etc.</p>
<p>Que les choses soient bien claires : tout le livre est intéressant ! J'indique uniquement ici ce que je trouve être de bons points d'entrée. Cela ne veut pas dire que le reste n'est pas bon, <em>bien au contraire</em> !</p>
<p><em>Mise à jour, 2008 : désormais je lui conseillerais, en plus d'un livre d'apprentissage, <strong>mon <a href="http://www.eyrolles.com/Sciences/Livre/9782212122442/" hreflang="fr">Mémento LaTeX</a>, paru chez Eyrolles</strong>.</em></p> <h4>Que lire ?</h4>
<p>Les chapitres que je vous conseille :</p>
<ul>
<li>l'introduction ;</li>
<li>1 (premiers pas) ;</li>
<li>2 (structuration des documents) : je conseille de sauter 2.5, 2.6, 2.7 et 2.8 ;</li>
<li>le 3.3 (objets flottants) : nécessaire pour insérer des figures ou tableaux dans un document scientifique ;</li>
<li>4 (écrire des mathématiques) : n'a pas pris une ride. Un must si vous devez écrire des formules ;</li>
<li>8 (bibliographie et BibTeX) : je vous conseille fortement d'utiliser BibTeX pour gérer vos références bibliographiques. Ça simplifie énormément la vie, et ce n'est pas très compliqué à apprendre.</li>
</ul>
<p>Selon moi, le changement majeur du monde LaTeX au cours des dernières années est l'utilisation du format PDF. Auparavant, LaTeX générait du DVI, qu'il fallait convertir en Postscript. Pour moi, cette époque est révolue, et je conseille d'utiliser uniquement <code>pdflatex</code> et non plus <code>latex</code>. En conséquence, vous pouvez zapper tout ce qui parle de DVI ou de Postscript...</p>
<h4>Modèle de document</h4>
<p>Au lieu de lire le chap. 7 (écrire des documents en Français), je vous conseille tout simplement de suivre le modèle suivant pour commencer (vous pourrez vous plonger dans le chap. 7 une fois que vous maîtriserez bien LaTeX) :</p>
<pre>% Type de document: article, papier A4, 12 points
\documentclass[a4paper,12pt]{article}
\usepackage[francais]{babel} % Francisation de LaTeX
\usepackage[latin1]{inputenc} % Jeu de caractères d'entrée: ISO-8859-1
\usepackage[T1]{fontenc} % Codage interne des caractères: nécessaire
\usepackage{lmodern} % pour générer de "beaux" fichiers PDF
\author{} % Nom d'auteur
\title{} % Titre du document
\begin{document}
\maketitle % Imprime le titre en haut
Le texte ici
\end{document}</pre>
<p>Cela devrait vous permettre de commencer facilement la rédaction de documents en Français, destinés à générer du PDF via <code>pdflatex</code>.</p>
<p>Dans le corps du texte, séparez simplement vos paragraphes par des lignes vides.</p>
<p>En typographie française, il faut mettre une espace insécable avant tout symbole de ponctuation double. En LaTeX, l'espace insécable s'écrit <code>~</code>, mais vous pouvez aussi opter pour ne rien mettre du tout ! En effet, LaTeX insérera dans ce cas toutes les espaces insécables nécessaires de lui-même<sup>[<a href="https://jacquet.xyz/blog/post/2006/07/24/43-debuter-avec-latex#pnote-43-1" id="rev-pnote-43-1">1</a>]</sup></p>
<h4>Insertion d'images</h4>
<p>Le chapitre 15 traitait de l'insertion d'images, mais il est un peu périmé. Je vous donne ici <em>ma méthode</em>, qui fonctionne à tous les coups avec <code>pdflatex</code>.</p>
<p>Pour commencer, il faut insérer un <code>\usepackage{<a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=graphicx" hreflang="en">graphicx</a>}</code> dans l'en-tête. Les types de fichier utilisables sont JPEG (photos), PNG (bitmap) et PDF (vectoriel). Supposons que vous ayez une image <code>toto.jpg</code>, que vous vouliez insérer sous forme d'une figure, avec une largeur de 10 cm. Le code correspondant est :</p>
<pre>1 \begin{figure}[ht]
2 \centerline{\includegraphics[width=10cm]{toto}}
3 \caption{La photo de Toto.}
4 \label{fig:toto}
5 \end{figure}</pre>
<p>On utilise l<em>'environnement</em> <code>figure</code> (lignes 1 et 5). Ligne 1, on indique que l'on préfère que la figure soit insérée à l'endroit courant (<code>h</code> pour <em>here</em>), ou s'il n'y a pas la place, en haut de la page suivante (<code>t</code> pour <em>top</em>).</p>
<p>Ensuite, on insère la figure elle-même. On la centre (<code>\centerline</code>), et on indique sa largeur ainsi que le nom du fichier (on n'est pas obligé d'indiquer l'extension).</p>
<p>Vient ensuite une ligne <code>\caption</code> qui donne la légende de la figure, puis une ligne <code>\label</code> qui définit une <em>ancre</em> pour la figure. De cette façon, vous pouvez vous référer à la figure depuis le texte. Par exemple :</p>
<pre>... un regard mauvais, comme on peut le voir sur sa photo (fig.~\ref{fig:toto) p.~\pageref{fig:toto}). [...]</pre>
<p><em>Simple, non ?</em></p>
<h4>Comment produire des schémas (vectoriels au format PDF) ?</h4>
<p>Il y a plein de solutions :</p>
<ul>
<li><a href="http://www.gnome.org/projects/dia/" hreflang="en">Dia</a> (libre), pour faire des schémas. Assez complet. Permet de faire des schémas UML. Il sait exporter en EPS, que vous pouvez convertir en PDF tout simplement avec <code>epstopdf</code> ;</li>
<li><a href="http://www.adobe.com/products/illustrator/" hreflang="en">Adobe Illustrator</a> (commercial) : vraiment excellent, mais c'est plus un logiciel <em>artistique</em> qu'un logiciel de diagrammes. Il génère directement du PDF ;</li>
<li><a href="http://www.inkscape.org/" hreflang="en">Inkscape</a> (libre) : comme Illustrator, en moins complet ;</li>
<li><a href="http://www.microsoft.com/france/office/visio/prodinfo/default.asp" hreflang="fr">Microsoft Visio</a> (commercial) : pour faire des diagrammes. J'ai eu de bons échos, mais je ne l'ai jamais essayé.</li>
</ul>
<h4>Mais pourquoi les pages sont si petites ?</h4>
<p>Il est vrai que par défaut, la dimension du bloc de texte sur les pages est un peu riquiquie... La solution miracle : le package <code><a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=geometry" hreflang="en">geometry</a></code>, qui vous permet de définir les marges simplement, comme avec n'importe-quel traitement de texte. Exemple : marge de 1.5 cm en haut, 2 cm à gauche et à droite, en 2.5 cm en bas ? Facile : on rajoute dans l'en-tête le bloc suivant :</p>
<pre>\usepackage[
paper=a4paper,
tmargin=1.5cm, % haut
bmargin=2.5cm, % bas
lmargin=2cm, % gauche
rmargin=2cm]{geometry} % droite
}</pre>
<h4>Pour aller plus loin</h4>
<ul>
<li>6 (personnaliser LaTeX) : voir la partie concernant les macros si vous avez envie d'en faire, ce qui peut faire gagner du temps dans des parties répétitives ;</li>
<li>9 (index et glossaire) : si vous voulez en mettre ;</li>
<li>14 (tableaux avancés) : vous en aurez peut-être besoin pour faire des tableaux élaborés.</li>
</ul>
<h4>Parties obsolètes</h4>
<p>Les parties du livre que je trouve obsolètes :</p>
<ul>
<li>2.7 (classe <code>slides</code>) : obsolète, remplacée par <code><a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=beamer" hreflang="en">beamer</a></code> ;</li>
<li>15 (graphismes avancés) : traite du package <code>graphics</code> (remplacé depuis par <code>graphicx</code>) et de <code>PSTricks</code>, non disponible avec pdflatex (voir <code><a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=pgf" hreflang="en">pgf</a></code> pour faire le même genre de choses) ;</li>
<li>17 (LaTeX et HTML) : les outils ont changé depuis.</li>
</ul>
<h4>Rédiger une thèse</h4>
<p>Pour rédiger une thèse, je conseille la classe <code><a href="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=memoir" hreflang="en">memoir</a></code>, en général à télécharger à part. La classe <code>book</code>, standard quant à elle, peut également convenir.</p>
<h4>Où trouver d'autres renseignements ?</h4>
<p>Je vous conseille la <a href="http://www.grappa.univ-lille3.fr/FAQ-LaTeX/" hreflang="fr">FAQ francophone de LaTeX</a> : elle fourmille de renseignements.</p>
<p><em>Et n'oubliez pas d'aller voir mon <a href="http://www.eyrolles.com/Sciences/Livre/9782212122442/" hreflang="fr">Mémento LaTeX</a> !</em></p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="https://jacquet.xyz/blog/post/2006/07/24/43-debuter-avec-latex#rev-pnote-43-1" id="pnote-43-1">1</a>] Grâce à Babel, le système d'internationalisation de LaTeX.</p></div>