Tout ce que vous avez toujours voulu savoir sur LATEX sans jamais oser le demander


précédentsommaire

XVII. Annexe A - Générer des « PDF »

Cette annexe présente un moyen de générer des documents au format PDF (portable document format). Ce format créé par la société Adobe présente l'avantage d'être effectivement portable d'un ordinateur à un autre, et de manière plus générale, d'un système d'exploitation à un autre. Il est donc intéressant aujourd'hui de pouvoir générer de tels fichiers à partir d'un source LATEX.

A.1 Principe général

Il y a au moins trois façons de générer des fichiers au format PDF à partir d'un document LATEX :
  1. à l'aide de PDFlatex qui s'utilise en lieu et place du programme latex pour traduire le source LATEX en PDF ;
  2. à l'aide de dviPDF permettant de traduire le fichier Dvi en PDF ;
  3. à l'aide de ps2PDF pour traduire une sortie PostScript en PDF.

Votre serviteur qui a une certaine expérience de la première solution s'attardera sur PDFlatex. Un des pré-requis pour une utilisation correcte de ce logiciel est

  • soit l'utilisation du package lmodern ;
  • soit l'installation de l'extension «CM-Super font» de Vladimir Volovich. La distribution Etch de la Debian contient un paquet prêt à l'emploi. On peut également trouver des documentations sur le ouèbe permettant d'installer cette extension sur une distribution Debian Sarge avec teTEX (http://sravier.free. fr/linux/debian_latex_cm-super.html).

A.2 Ce qui change

Pour compiler le fichier source L A TEX et produire un fichier au format PDF , on utilisera le programme PDFlatex :

Image non disponible

commande qui, si le document source ne contient pas d'erreur, créera le fichier nommé monfichier.PDF . Voici ensuite quelques remarques importantes :

Graphiques : ils devront être inclus au format Png ou Jpeg pour les images et PDF pour les dessins 1 ;

Liens : à condition d'inclure le package hyperref , le document PDF contiendraautomatiquement des liens à chaque occurrence de la commande \ ref , dans la table des matières, dans l'index, etc. De plus une table des matières déroulante sera générée pour le programme Acrobat Reader .

A.3 Trucs et astuces

Puisqu'on génère souvent du Dvi ou du PDF à partir du même source et que l'on doit inclure des fichiers graphiques à des formats différents selon la situation, on utilisera le package ifPDF et l'astuce suivante :

Image non disponible

A.3.1 Gestion des graphiques

On pourra écrire ensuite quelque chose du genre :

Image non disponible

Si on a pris soin de ranger les fichiers graphiques dans les répertoires pngs , PDFs et epss ... Ce nouveau « if » permet également des constructions du style :

Image non disponible

Ce qui ne doit pas être nécessaire avec les dernières moutures de L A TEX.

A.3.2 Vignettes

Les versions récentes de PDFlatex permettent de créer des vignettes ( thumbnail ) pour les visualiseurs evince et Acrobat Reader pour ne citer qu'eux. Auparavant, il était nécessaire d'utiliser le package thumbPDF :

\ usepackage { thumbPDF }

puis exécuter :

Image non disponible

Cette commande crée un fichier nommé monfichier.tpt qui sera inclus à la compilation suivante avec PDFlatex.

A.3.3 Pagination

Pour faire apparaître les numéros de pages du document dans le navigateur Acrobat Reader, il est nécessaire d'ajouter l'option PDFpagelabels à l'inclusion du package hyperref (cf. § suivant).

A.3.4 Signets

Les signets (bookmarks en anglais) des visualiseurs de fichier PDF sont des sortes d'« explorateurs de table des matières » qui donnent accès directement à une section d'un niveau déterminé. Il y a eu deux difficultés à contourner pour produire ce manuel :

  1. faire en sorte que le contenu du « backmatter » (biblio, glossaire, index) soit au même niveau hiérarchique que les « parties » dans cet explorateur. Par défaut, ces informations se trouvent en effet « cachées » dans la partie des annexes, car à la même profondeur que les \chapters ;
  2. faire en sorte que le lien vers l'index dans les signets pointe effectivement sur l'index...

Pour régler le premier problème, il suffit de faire croire à LATEX qu'à partir du « backmatter » les chapitres sont d'un même niveau de profondeur dans la table des matières, que les parties. L'incantation vaudou correspondante est :

 
Sélectionnez
          \        
          renewcommand        
          {\        
          toclevel        
          @        
          chapter        
          }{-1}

à placer à un endroit judicieux dans un fichier de style. L'endroit où l'on redéfinit le \backmatter est sans nul doute un bon choix.

Pour en finir avec les bookmarks, afin que celui de l'index pointe effectivement sur l'index (!), on devra cette fois avoir recours à une incantation chamanique :

Image non disponible

permettant de surcharger la commande \printindex en y ajoutant une fausse section à l'aide de la commande \phantomsection fournie avec le package hyperref. Ne m'en demandez pas plus :-)

A.4 Hyperliens

Le package hyperref permet d'insérer dans les fichiers dvi et PDF des commandes spéciales qui pourront être exploitées par les navigateurs ( xdvi et Acrobat Reader entre autres). On pourra alors cliquer sur le texte produit par les commandes telles que \ref pour se rendre automatiquement à la zone référencée. Dans le document que vous avez sous les yeux, la version électronique possède des liens sur lesquels on peut cliquer pour :

  • toutes les références générées par \ref, \pageref et \vref ;
  • les notes de bas de page ;
  • les url produites par la commande \url ;
  • les renvois bibliographiques ;
  • les pages pour chaque entrée d'index.

Pour activer ce système d'hyperliens, on écrira :

Image non disponible

Ce qui fera apparaître les liens en couleur uniquement dans la version PDF. Ceux de la version PostScript seront quant à eux produits en noir ce qui assurera leur lisibilité si le document est imprimé en noir et blanc.

L'ordre dans lequel on inclura les différents packages pour un document influera sur le bon fonctionnement de l'extension hyperref. Il arrive même que l'endroit choisi pour l'inclusion provoque une erreur de compilation. A vous de trouver la bonne séquence :-)

XVII-E. A.5 Interaction avec psfrag et pstricks

A.5.1 pstricks

To trick en anglais, ou « tricher » en français... En gros en écrivant ça :

Image non disponible

On obtient ça :

Image non disponible

Dingue, non ? Certes. Le principe de l'extension pstricks est d'insérer du code PostScript dans le fichier dvi, code qui pourra être également traité par le programme dvips. Là où ça se corse c'est lorsque l'on veut utiliser ces bestioles avec PDFlatex. En effet ce dernier créant directement un fichier PDF à partir du .tex, insérer du PostScript dans le fichier au format PDF n'aura aucun effet...

Il est malgré tout possible de contourner le problème :

  • générer d'abord un document LATEX minimal contenant les commandes pstricks ;
  • compiler ce document avec LATEX pour générer un .dvi ;
  • demander à dvips de créer un fichier au format PostScript encapsulé avec l'option -E ;
  • convertir ce fichier au format PDF ;
  • inclure ce fichier au moment d'utiliser PDFlatex.

Tout cela est évidemment un peu tordu mais peut être automatisé à l'aide d'un
Makefile, d'un petit script Unix et d'une commande... Tout d'abord :

Image non disponible

L'idée est donc d'extraire la portion de code contenant des commandes pstricks pour les stocker dans un fichier bidule.tex, puis lorsqu'on écrit :

Image non disponible

on inclura bidule.PDF si on utilise PDFlatex et bidule.tex si on utilise LATEX.
Ensuite, le « petit » script Unix qu'on peut adapter à ses besoins :

Image non disponible

Ce script sauvé sous le nom pstricks.sh pourra être invoqué comme suit :

Image non disponible

et crée le fichier bidule.PDF que PDFlatex aura la sagesse d'inclure grâce à la commande \includepstricksgraphics dont le code est donné plus haut. Pour ce qui est du Makefile , il n'est pas très difficile à partir du script précédent de définir une règle ayant pour but de transformer un fichier .tex en un fichier PDF. Avec la version Gnu de make , on aura quelque chose du genre :

Image non disponible

Le programme dvips n'est pas toujours en mesure de calculer correctement la boîte englobante pour le PostScript encapsulé. En particulier, la section 41 de la documentation de pstricks indique que dvips n'est pas capable de tenir compte du code postscript généré pour estimer cette boîte englobante . Dans ce cas, il est conseillé soit d'ajouter du texte autour du graphique et dvips arrive à s'en sortir, soit d'utiliser l'environnement TeXtoEPS . Le document temporaire du script précédent devient alors :

Image non disponible

A.5.2 psfrag

La limitation et le principe sont les mêmes que pour pstricks . Pour utiliser psfrag avec PDFlatex , il est nécessaire de procéder comme suit :

  1. générer d'abord un document LATEX minimal contenant des commandes psfrag ;
  2. compiler ce document avec LATEX pour générer un .dvi ;
  3. demander à dvips de créer un fichier au format PostScript encapsulé avec l'option -E ;
  4. convertir ce fichier au format PDF ;
  5. inclure ce fichier au moment d'utiliser PDFlatex.

Il y a cependant un petit « hic » car la figure dont on calcule la boîte englobante avec dvips contient du texte généré par psfrag indiquant les remplacements qui seront effectués. On doit en tenir compte. Dans le script shell, on crée une fonction :

Image non disponible

On utilise ensuite cette fonction par deux fois comme suit, dans le script :

Image non disponible

Ce script a plusieurs limitations. Parmi elles : il échouera si une commande \psfrag s'étend sur plusieurs lignes. On demande en effet à grep d'enlever les lignes contenant psfrag sans vérifier que la commande ne se termine pas une ou plusieurs lignes plus bas...

XVIII. Annexe B - Mémento

Vous trouverez ici quelques informations « en vrac » sur les extensions de LATEX, une liste assez complète des fichiers auxiliaires qui gravitent autour de votre fichier source. Suivent quelques explications succinctes sur la merveilleuse extension AucTEX d'Emacs. Enfin pour ceux qui ont la chance de travailler dans un environnement Unix, cette annexe s'achève sur la configuration d'Emacs pour travailler avec le correcteur orthographique Aspell.

B.1 Extensions

Comme indiqué dans la préface de ce document, TEX et LA TEX sont des systèmes ouverts. Autour du noyau LATEX gravitent un certain nombre de packages standard qui constituent la base du système. Mais tout utilisateur peut faire évoluer LATEX en lui ajoutant des fonctionn alités diverses. On trouve donc une multitude d'outils sous forme d'extensions (ou packages en anglais) ou sous forme de classe de documents. Certaines sont dev enues des standards, « toutes » sont disponibles sur les serveurs dédiés à la distribution de LATEX (cf. chapitre 8) ou sur des pages personnelles, d'autres sont fournies avec les Call for papers et autres author's guides.

Nous vous donnons ici une liste de packages « classiques » et vous invitons à vous référer à la documentation qui est généra lement jointe au package. Notez que le site du Loria propose une liste des packages « généraux » à http://www.loria.fr/services/tex/packages.html#latex ; il existe d' autre part un moteur de recherche contenant plus de mille extensions référencées, à ftp: //ftp.loria.fr/pub/ unix /tex/ ctan /help/Catalogue/catalogue.html.

Image non disponible

B.2 Les fichiers auxiliaires

Voici la liste des fichiers que vous pourrez tro uver sur votre disque à côté de votre document source. Ces fichiers portent tous une extension de trois lettres, les voici 1 :

Image non disponible

Vous pouvez effacer : tous les fichiers auxiliaires, les fichiers log ainsi que les fichiers de tables des matières et listes de figures et tables.

Vous pouvez aussi effacer : le fichier bbl si vous êtes capable de le générer à partir d'un fichier bib et BibTEX. Les fichiers d'index peuvent généralement être effacés puisqu'ils sont en principe produits par makeindex. Le fichier dvi n'est pas indispensable puisque vous êtes censé avoir la source LATEX

Vous devez garder : la source LATEX et les éventuels fichiers de styles que vous avez définis (sty et cls) ; mais si vous en êtes au stade de la définition de classe, le conseil est probablement un peu saugrenu...

B.3 AucTEX

AucTEX est un module d'Emacs qui facilite la saisie de documents LATEX. Il est automatiquement chargé lorsqu'on ouvre un document portant l'extension

.tex, .sty ou .cls. On peut distinguer trois types d'aide dans AucTEX :

  • l'aide au formatage du source (couleur, indentation,...)
  • les raccourcis clavier pour insérer des commandes ou des environnements,
  • l'aide à la compilation.

B.3.1 Formatage du source

Les couleurs et la touche tab jouent le même rôle que dans un buffer C ou C++. On notera que M-q « formate » un paragraphe, c.-à-d., découpe automatiquement le paragraphe en lignes de longueurs à peu près égales.

B.3.2 Raccourcis

fontes

Image non disponible

Section

Image non disponible

Commandes et Environnement

Image non disponible

B.3.3 Compilation

C-c C-c tente de suivre le cycle de compilation d'un document, en lançant suivant la situation, LATEX, BibTEX, xdvi... Notez aussi que AucTEX permet de gérer le mécanisme du document maître (cf. 6.4). Pour cela il vous demandera de saisir le nom du document maître lorsque vous ouvrirez un nouveau document dans Emacs. Dans le cas contraire il faudra expliquer gentiment à AucTEX qui est le document maître avec :

Image non disponible

Vous devrez alors saisir le nom du fichier maître. En agissant ainsi, lorsque vous lancerez une compilation avec C-c C-c sur un des documents « esclaves », c'est sur le master qu'elle agira.

B.4 Aspell

Aspell est un correcteur orthographique multilingue qu' on peut interfacer avec l'éditeur de texte à tout faire Emacs. Pour l'utiliser dans Emacs, deux commandes à connaître :

Image non disponible

selectionne la langue du dictionnaire (francais ou english), et :

Image non disponible

commence une session de correction sur le buffer. Il est également possible de vérifier l'orthographe d'un seul mot avec la commande :

Image non disponible

A l'heure où j'écris ces lignes, la distribution Debian ne configure pas Emacs pour utiliser le programme Aspell par défaut. Il faut donc ajouter dans votre fichier .emacs la ligne :

Image non disponible

Il est particulièrement utile de noter que l'on peut configurer le programme

Aspell pour lui demander explicitement d'ignorer ou non les arguments des commandes LATEX. On pourra par exemple ne pas vérifier l'argument d'une commande ne contenant pas de français. Ainsi, si l'on définit la commande :

Image non disponible

Il suffira d'écrire dans son fichier ~/. aspell.conf :

Image non disponible

pour demander à Aspell de vérifier le second paramètre (P), mais d'ignorer le contenu du premier (p). Pour ignorer les deux, on aurait écrit :

Image non disponible

Enfin, Emacs dispose également d'un mode de correction de mot « à la volée » qu'on peut activer ou désactiver avec la commande :

Image non disponible

XIX. Annexe C -Symboles

Vous trouverez dans cette annexe, une liste de « tous » les symboles mathématiques disponibles dans LATEX. Nous avons séparé ces symboles en quatre catégories :

  • les symboles standard du tableau C.1 au tableau C.10 ;
  • les symboles de LATEX disponibles avec le package latexsym donnés par le tableau C.11 ;
  • les symboles de l'American Mathematical Society disponibles avec le package amssymb, du tableau C.12 au tableau C.19 ;
  • les symboles disponibles avec le package textcomp (tableaux C.20 et C.21);
  • les symboles des fontes PostScript bien connues ZapfDingbats et Symbol.

Les symboles de ces fontes sont accessibles en incluant le package pifont et en utilisant la commande :

 
Sélectionnez
				\Pisymbol{pzd}{numéro}

pour les symboles de la fonte Zapf, et :

 
Sélectionnez
				\Pisymbol{psy}{numéro}

Pour ceux de la fonte Symbol. Le nombre numéro est le numéro de la case correspondant au symbole choisi dans la table C.22 page 275 ou C.23.

C.1 Symboles standard

Tab. C.1 Les lettres grecques.
Tab. C.1 Les lettres grecques.
Tab. C.2 Les opérateurs binaires.
Tab. C.2 Les opérateurs binaires.
Tab. C.3 Les symboles de taille variable.
Tab. C.3 Les symboles de taille variable.
Tab. C.4 Les points.
Tab. C.4 Les points.
Tab. C.5 Les relations.
Tab. C.5 Les relations.
Tab. C.6 Les flèches.
Tab. C.6 Les flèches.
Tab. C.7 Divers.
Tab. C.7 Divers.
Tab. C.8 Les fonctions.
Tab. C.8 Les fonctions.
Tab. C.9 Les délimiteurs.
Tab. C.9 Les délimiteurs.
Tab. C.10 Les grands délimiteurs.
Tab. C.10 Les grands délimiteurs.
Tab. C.11 Les symboles de latexsym
Tab. C.11 Les symboles de latexsym

C.2 Symboles de l'AMS

Tab. C.12 Les flèches de l'AMS
Tab. C.12 Les flèches de l'AMS
Tab. C.13 Les relations de l'AMS
Tab. C.13 Les relations de l'AMS
Tab. C.14 Négations de flèches de l'AMS
Tab. C.14 Négations de flèches de l'AMS
Tab. C.15 Lettres grecques et hébraïques de l'AMS
Tab. C.15 Lettres grecques et hébraïques de l'AMS
Tab. C.16 Délimiteurs de l'AMS
Tab. C.16 Délimiteurs de l'AMS
Tab. C.17 Négations de relations de l'AMS
Tab. C.17 Négations de relations de l'AMS
Tab. C.18 Opérateurs binaires de l'AMS
Tab. C.18 Opérateurs binaires de l'AMS
Tab. C.19 Symboles divers de l'AMS
Tab. C.19 Symboles divers de l'AMS

C.3 Symboles du package textcomp

Tab. C.20 Symboles du package textcomp
Tab. C.20 Symboles du package textcomp
Tab. C.21 Symboles du package textcomp (suite).
Tab. C.21 Symboles du package textcomp (suite).
Tab. C.22 La fonte Zapf Dingbats
Tab. C.22 La fonte Zapf Dingbats
Tab. C.23 La fonte Symbol
Tab. C.23 La fonte Symbol

XX. Annexe D - Notes de production

J'ai rassemblé ici des éléments permettant d'exploiter les sources de ce document, comment les compiler, avec quelle distribution de LATEX, comment les fichiers sont organisés, etc.

D.1 Distribution du moment

Le présent ouvrage a été compilé sur deux systèmes Linux contenant la distribution TEXlive :

  1. la distribution TEXlive de la Ubuntu 08.04 ;
  2. une distribution TEXlive pour Debian Etch.

Toute autre expérience fructueuse sur des systèmes différents est bien entendu la bienvenue... De plus pour la génération du document au format PDF, seule la famille Computer Modern dans sa version « CM-Super » a été testée.

D.2 Les sources du manuel

D.2.1 Structure

Les sources du manuel sont organisées selon le principe suivant :
  • sources LATEX dans le répertoire corps avec un fichier par chapitre ;
  • les styles (sty et cls) dans le répertoire styles ;
  • les images dans un répertoire pngs ;
  • le répertoire texs contient des sources LATEX à inclure dans le document (modèles de lettre, de fax, code contenant des appels à Psfrag ou Pstricks) ;
  • les sources xfig dans le répertoire figs ;
  • tout ce qui a trait à l'index, à la bibliographie et au glossaire est stocké dans le répertoire bibidx ;

Les sources xfig et certains « bouts » de fichiers LATEX sont traduits au format PDF, postscript encapsulé ou non, par un makefile les stockant :

  • dans le répertoire epss ;
  • dans le répertoire pdfs ;
  • dans le répertoire pss ;

selon le moteur utilisé (latex ou PDFlatex).

D.2.2 Styles

Le fichier framabook.cls contient la définition de la classe du manuel. Ce fichier fait appel à une série de packages « du commerce » et une série de packages « maison ». On trouve, pour ces derniers, un fichier source pour :

  • chaque « nouveau jouet » : onglets, nota, sommaire, glossaire, boîte avec un titre (titlebox.sty), exemples, lettrine, renvois (voir.sty), citations et épigraphes ;
  • le sommaire ;
  • la géométrie globale du document ;
  • l'allure des en-têtes et pieds de pages ;
  • l'allure des sections/chapitres/etc. ;
  • des commandes en vrac utilisées dans le document (manumac.sty) ;

Sauf indication contraire, ces fichiers portent un nom ressemblant étrangement à ce qu'ils contiennent.

D.3 Compilation

Dans le fichier maître framabook.tex on peut stipuler en option de classe :
  • versionenligne pour générer un fichier à visualiser avec des hyperliens en couleur ;
  • versionpapier pour générer une version destinée à être imprimée puis massicotée.

Le présent manuel a été composé en se basant sur un support papier différent du format A4. Par conséquent si vous ne possédez pas de massicot, le document résultant sera visuellement assez laid. Une solution consiste à se procurer les versions imprimables sur papier A4 depuis le site http://www.enise.fr/cours/info.

D.3.1 Makefile

L'arborescence racine des sources contient un fichier Makefile pour le manuel, qu'il faut copier :

 
Sélectionnez
						cp Makefile.frama Makefile

D.3.2 Figures

Les figures peuvent êtres compilées grâce aux commandes : make figs

Il faut disposer du logiciel transfig connexe à xfig pour traduire les sources en PDF et eps. Sur le site http://cours.enise.fr/info/latex est disponible une archive contenant les figures déjà traduites...

D.3.3 Dvi et postscript

Image non disponible

D.3.4 PDF

Image non disponible

D.3.5 Nettoyage de printemps

Image non disponible

précédentsommaire

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+