Etant confronté à la rédaction d'un long manuscrit (supérieur à 100 pages) et côtoyant aussi des personnes ayant à faire le même travail, je vais livrer ici quelques conseils. Je passe bien sûr sur les avantages de tex : qualité, découplage contenu/apparence, source au format texte (ce qui attire son lot d'avantages), portabilité, pérennité. Bref.

Je remarque que la plupart des personnes souhaitant rédiger un tel document cherche d'abord à récupérer un template d'une autre personne ayant rédigé un document similaire. Je pense que c'est un grosse erreur : Latex et encore plus durement, tex, sont des langages puissants mais très complexes. Le schéma est généralement le suivant. La personne commence à utiliser le template récupéré, puis, à partir du moment où le document commence à se remplir, elle se rend compte que tel ou tel spécificité ne convient pas ou alors qu'elle aimerait tel paquet en plus. Là, on arrive souvent à une incompatibilité ou une mauvaise utilisation car le personne ne sait pas ce qu'il y a dans l'en tête ou dans la classe magique. Je suis donc de l'avis d'éviter d'utiliser de telles classes ou templates tout fait, surtout lorsqu'on ne connait pas suffisamment tex (et je m'inclue dedans bien que j'arrive à comprendre grossièrement le sens).

A la place, le conseil que je donne est de partir d'un fichier vierge et de le remplir au fur et à mesure des besoins. Ainsi, ça permet de comprendre ce que l'on mets, ce à quoi ça sert et quels sont les options. Ca prend du temps, mais sans doute pas plus que de débugguer de l'inconnu et du pas toujours propre. La meilleure situation consiste à avoir déjà une petite expérience avec le langage car cela permet d'avoir une certaine anticipation. Sinon, cet article devrait donner quelques pistes.

Choix du compilateur

Le choix du compilateur n'est pas anodin du tout. Le changer en cours de route peut être périlleux. On a : latex, pdflatex, xelatex, luatex. Par exemple, latex demande des figures au format eps alors que les autres utilisent pdf, png ou jpg mais ne permettent pas l'usage de pstricks. Xelatex permet par exemple l'utilisation de la font linux libertine. Il y a donc un choix technologique à faire.

Choix des paquets

Les paquets permettent d'avoir un certains nombre de fonctionnalités. Ils sont tous documentés dans leurs usages, cf ctan. Il faut faire attention là aussi, car il y a parfois des incompatibilités. Dans mon cas, j'ai été confronté à une incompatibilité entre minitoc et la classe memoir, mais ça se contourne toujours (ici, je suis passé à titletoc). Voici quelques paquets que je pense être utile :

  • todonotes : permet de mettre des todo (boites) dans le document. Contraitement aux commentaires, ils apparaissent dans le document final, ce qui est pratique pour la relecture. C'est plus visible que des XXXX ou des !!!! :)
  • natbib : le paquet défini un certain nombre de commandes supplémentaires pour la biblio comme citeauthor, citeyear. Je préfère ça à avoir à l'écrire à la main au risque de faire des fautes de typo difficilement détectables. Il permet aussi de gérer finement le format (nom, numéro...)
  • siunitx : permet de gérer les unités. Ca permet d'avoir un micron droit et non italique. Les unités ne doivent pas être en italique... Siunitx s'adapte aussi à l'environnement aussi comme les captions qui peuvent être en italique, alors l'unité est basculé en italique. Enfin, cela évite les erreurs d'espace entre le chiffre et l'unité.
  • hyperref : liens cliquables, métadonnées
  • cleveref : pour faire des \ref plus malines (mot précédent la ref, ref multiples...)
  • geometry : pour changer les marges.
  • amsmath, amssymb, amsfonts : pour les maths.
  • subfigure : pour faire des sous-figures (a), (b)... et en faire une référence. Surtout ne pas mettre les lettres en dur dans la figure. Sacrilège !
  • includeonly : pour ne compiler qu'un morceau du document (et donc de gagner du temps).

 Commandes personnalisées

Dans un long document, il y a forcément des choses redondantes. Un de mes exemples concerne les références vers des figures, j'utilise

\newcommand{\fig}[1]{(\textsc{Fig.}~\ref{#1})}

dans le cas où je ne prends pas cleveref. Ou encore pour le latin :

\newcommand{\ie}{\textit{i.e.}~}

Intégration continue

Latex est un langage complexe, faire une erreur de syntaxe est facile. C'est un inconvénient de ce langage et le compilateur n'est pas toujours précis/explicite dans ses messages. Détecter une erreur tôt, c'est se donner la chance de pouvoir la retrouver rapidement. Voir cet article.

Aide