PROJET AUTOBLOG


®om's blog

Site original : ®om's blog

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Bien débuter en LaTeX sous Ubuntu

mercredi 15 juillet 2009 à 22:35

Je ne vais pas présenter LaTeX. Si vous ne connaissez pas, je vous renvoie sur la page LaTeX de Wikipedia.

LaTeX

Je vais plutôt présenter succintement l’installation de LaTeX et d’un éditeur pour Ubuntu, puis je vais lister les quelques points basiques qui peuvent poser problème et qui empoisonnent la vie quand on n’a pas de solutions :

Installation de base

Il faut tout d’abord installer le minimum : texlive.

Pour pouvoir gérer correctement le français, texlive-lang-french est nécessaire.

Il est conseillé d’installer également texlive-latex-extra, qui contient pas mal de greffons bien utiles.

Enfin, pour avoir des polices vectorielles (et non bitmap, qui sont pixellisées lors d’un zoom), il faut le paquet lmodern.

sudo apt-get install texlive texlive-lang-french texlive-latex-extra lmodern

Greffon pour gedit

Depuis Jaunty, le greffon LaTeX pour gedit est packagé dans les dépôts par défaut : gedit-latex-plugin.

Une fois installé, gedit s’enrichit d’une barre d’outil (lorsqu’un document .tex est ouvert) et d’un panneau inférieur (Ctrl+F9 pour l’activer et le désactiver) :

gedit-latex

Pour compiler le document, rien de plus simple, tout est dans le menu Outils :

gedit-latex-menu

Configuration de l’en-tête

Encodage des caractères

Par défaut, si aucune raison particulière ne préconise le contraire, tout texte devrait être encodé en UTF-8 : ça tombe bien, c’est l’encodage par défaut d’Ubuntu.

Si un jour vous rencontrez un problème d’encodage dans n’importe quel domaine, et que sur un forum quelqu’un vous indique que pour le résoudre, il faut changer l’encodage en latin1 (iso-8859-1), ne suivez pas son conseil, ça n’est pas une bonne solution (à part pour des problèmes de compatibilité avec un existant très vétuste).

Il faut indiquer au compilateur LaTeX que le document source est encodé en UTF-8. Pour cela, il suffit de rajouter dans l’en-tête la ligne suivante :

\usepackage[utf8]{inputenc}

Accents, bidouille et coupure de mots

Maintenant que l’encodage est correctement reconnu, il reste un petit problème avec les caractères accentués. Lorsqu’on écrit le caractère é par exemple, le compilateur sait le reconnaître (codage UTF-8), mais l’encodage de la police par défaut ne permet pas de le dessiner directement : elle ne contient pas ce caractère. Pour contourner le problème, le compilateur écrit un e avec un ' au-dessus (\'e).

À première vue, ça n’est pas gênant, le rendu est nickel. Sauf que cela pose deux problèmes :

Pour éviter le problème, il faut rajouter dans l’en-tête :

\usepackage[T1]{fontenc}

Méta-données

Le package hyperref est quasiment incontournable pour générer des PDF, il permet de personnaliser pas mal de choses, et surtout de faire des liens cliquables (à l’intérieur du document ou vers une url externe)… Pour l’utiliser, il suffit de rajouter le package dans l’en-tête, auquel on peut spécifier des options :

\usepackage[bookmarks=false,colorlinks,linkcolor=blue]{hyperref}

Ici, par exemple, j’ai précisé que je ne voulais pas générer l’index du document (qui s’affiche par défaut dans certaines visionneuses de PDF, notamment le logiciel privateur Adobe Reader), que je voulais colorer les liens plutôt que de les encadrer (ce que je trouve particulièrement moche) et que je les voulais en bleu.

Ce package permet également de renseigner les propriétés du documents (les méta-données), ce qui est bien utile pour le référencement.

On trouve souvent la méthode qui consiste à ajouter les propriétés du document directement en option d’hyperref :

\usepackage[pdfauthor={Romain Vimont},pdftitle={Démo LaTeX}]{hyperref}

Mais elle ne supporte pas tous les caractères, par exemple :

\usepackage[pdfauthor={Romain Vimont (®om)},pdftitle={Démo LaTeX}]{hyperref}

Une bonne pratique est donc de les écrire séparément (et là ça fonctionne) :

\hypersetup{
  pdftitle={Démo LaTeX},
  pdfsubject={Modèle de document LaTeX},
  pdfkeywords={LaTeX, modèle},
  pdfauthor={Romain Vimont (®om)}
}

La liste complète des propriétés est disponible ici.

latex-properties

Marges

Les marges par défaut des documents générés sont énormes. Les étudiants en sont très contents quand ils doivent écrire un rapport de stage de 40 pages dont ils viennent difficilement à bout, mais dans beaucoup d’autres cas, c’est une perte de place. Même s’il y a une raison à cela, on peut vouloir les diminuer.

Le package geometry rend cette opération très simple :

\usepackage[top=1.5cm,bottom=1.5cm,left=1.5cm,right=1.5cm]{geometry}

Quelques réglages PDF

Il est possible de définir la version de PDF à utiliser (j’en ai eu besoin par exemple pour intégrer correctement des images png transparentes, qui ne fonctionnait pas avec PDF inférieur à 1.6) et le niveau de compression, permettant de gagner quelques kilo-octets sur le fichier final.

\pdfminorversion 7
\pdfobjcompresslevel 3

Conclusion

Voici donc un modèle de document prêt à être compilé :

\pdfminorversion 7
\pdfobjcompresslevel 3

\documentclass[a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais]{babel}
\usepackage[bookmarks=false,colorlinks,linkcolor=blue]{hyperref}
\usepackage[top=1.5cm,bottom=1.5cm,left=1.5cm,right=1.5cm]{geometry}

\hypersetup{
  pdftitle={Démo LaTeX},
  pdfsubject={Modèle de document LaTeX},
  pdfkeywords={LaTeX, modèle},
  pdfauthor={Romain Vimont (®om)}
}

\begin{document}

\section{Première section}

\subsection{Une sous-section}

Du texte\dots

\subsection{Une autre sous-section}

\section{Une autre section}

\end{document}
Error happened! 0 - Call to undefined function simplexml_load_string() In: /var/www/Projet-Autoblog/autoblogs/autoblog.php:364 http://www.couturat.fr/Projet-Autoblog/autoblogs/blogrom1vcom_4af8d17d34d978843ff2ff40339aa5760e6458bc/?Bien-d%C3%A9buter-en-LaTeX-sous-Ubuntu #0 /var/www/Projet-Autoblog/autoblogs/autoblog.php(932): VroumVroum_Blog->update() #1 /var/www/Projet-Autoblog/autoblogs/blogrom1vcom_4af8d17d34d978843ff2ff40339aa5760e6458bc/index.php(1): require_once('/var/www/Projet...') #2 {main}