157 votes

Meilleures pratiques en LaTeX

Quelles sont les bonnes pratiques pour la composition de documents LaTeX ?

J'utilise LaTeX principalement pour la composition d'articles. Voici une courte liste de ce que je considère comme des bonnes pratiques de LaTeX, la plupart d'entre elles relèveraient du bon sens dans n'importe quel langage de programmation :

  • Lorsque vous rédigez un document volumineux (livre), conservez les chapitres dans des fichiers séparés
  • Utiliser un système de gestion des versions
  • Le code répété (c'est-à-dire un morceau de formule qui apparaît plusieurs fois) est mauvais. Utilisez des macros
  • Utilisez les macros pour représenter des concepts, et non pour taper moins.
  • Utilisez des noms longs et descriptifs pour les macros, les étiquettes et les entrées bibliographiques.
  • Utiliser des commentaires en bloc %===================================pour mettre en évidence le début des sections et des sous-sections
  • Commentez les paragraphes supprimés, ne les supprimez pas encore.
  • Ne mettez pas les formules en forme (c'est-à-dire ne les divisez pas en plusieurs lignes) avant d'avoir décidé de la taille de la police et du format de page définitifs.
  • Apprendre à utiliser BibTeX

Question supplémentaire : Quel paquet/macro/quelque chose utilisez-vous pour insérer le code source ?

91voto

Alok Singhal Points 33073

Voici ma liste :

  • Lire la FAQ TeX . Il contient beaucoup de bonnes informations et est constamment mis à jour.
  • Utilisez nag Emballage en latex. Il avertit l'utilisateur de l'utilisation d'anciens paquets ou commandes (par exemple, l'utilisation de \it , \tt etc.). nag met en garde contre les choses mentionnées dans l2tabu (Paquets et commandes obsolètes).
  • Utilisez fixltx2e paquet. Il corrige certaines "erreurs" dans Latex. Extrait de la description :
    • veiller à ce que les flotteurs à une colonne ne prennent pas le pas sur les flotteurs à deux colonnes ;
    • corriger les en-têtes de page dans les documents à deux colonnes ;
    • empêcher les espaces de disparaître dans les arguments mobiles ;
    • permettant \fnysmbol pour utiliser des symboles de texte ;
    • autoriser la césure du premier mot après un flottant ;
    • \emph peut produire du texte en capitales/petites capitales ;
    • bogues dans \setlength et le fond de la cuvette.
  • Si vous faites de la composition tout mathématiques, lecture Mode mathématique d'Herbert Voß est un must.
  • Si vous devez vraiment produire des documents à double interligne, utilisez setspace paquet au lieu de changer baselinestreach vous-même .
  • Composez votre document en draft pour voir à quel point les lignes trop ou pas assez pleines sont mauvaises, et si elles sont assez mauvaises, envisagez de modifier un peu la formulation (mais ne faites pas trop d'histoires à ce sujet, car la meilleure formulation est plus importante que des améliorations typographiques mineures). Vous pouvez également aider Latex en lui permettant de césurer certains mots dans ce cas.
  • Utilisez booktabs pour obtenir des tableaux de bien meilleure qualité que les tableaux Latex par défaut.
  • Utilisez \centering au lieu de \begin{center} \end{center} pour centrer les choses dans les tableaux/figures, etc. \centering n'ajoute pas d'espace vertical supplémentaire.
  • Utilisez microtype pour les améliorations typographiques à petite échelle ( saillie de caractère , expansion de la police, espacement des lettres ).
  • Si vous créez des documents PDF, utilisez hyperref pour obtenir des liens hypertextes dans votre document.
  • Utilisez \newcommand pour rendre les choses plus logiques. Par exemple, disons que vous écrivez un livre de biologie et qu'il contient de nombreux noms scientifiques d'espèces différentes. Au lieu d'encombrer votre document avec des choses comme \textit{Homo sapiens} vous pouvez définir une nouvelle commande \newcommand{\species}[2]{\textit{#1 #2}} . Puis, plus tard, quand vous lirez les règles de formatage des noms d'espèces vous réalisez que le nom doit être dans une police de caractères différents du texte environnant. textit ne fonctionne pas si le texte environnant est en italique. Vous auriez dû utiliser \emph . Avec le \newcommand le changement est facile. Sans le \newcommand vous devez modifier manuellement la commande de changement de police à tous les endroits où vous utilisez un nom d'espèce.
  • Utilisez geometry pour configurer la géométrie des pages au lieu de le faire manuellement.
  • Utilisez fancyvrb pour obtenir un contrôle précis dans les listings verbatim.
  • C'est mon avis personnel, et d'autres peuvent ne pas être d'accord, mais je trouve que les lignes en pointillé dans la table des matières sont distrayantes et pas vraiment utiles. Je préfère avoir les numéros de page juste après le titre dans les entrées "table des ...". Si vous voulez faire cela, voyez titletoc paquet. La documentation du paquetage est accompagnée de plusieurs exemples, et il est facile de modifier l'un de ces exemples pour qu'il fasse exactement ce que vous voulez qu'il fasse.
  • Si votre document comporte beaucoup de chiffres techniques, il peut être judicieux d'apprendre PGF/Tikz , esquisse 3D et Pique-assiette ou une combinaison de ces éléments.
  • Pour composer des unités, utilisez siunitx . Le paquet tente de remplacer sistyle , siunits , units etc., est activement maintenu, et le rédacteur du paquet est très actif sur comp.text.tex .
  • Similaire à ce qui précède : utiliser numprint pour formater correctement les nombres (en fonction du pays, avec des virgules comme séparateur de milliers, etc.)

Je suis sûr que j'en ai oublié certains, mais j'espère pouvoir les ajouter plus tard.

Pour illustrer ce qu'il est possible de faire avec Latex, je vous recommande de consulter le site suivant Le guide d'installation des polices (pour sa typographie).

Enfin, l'une des "meilleures pratiques" les plus importantes, que je n'ai pas mentionnée ci-dessus parce qu'elle nécessite plus d'espace (sans jeu de mots !) pour être expliquée que le format de la liste ne l'aurait permis : comprenez le pouvoir de la ~ l'espace non cassable. Utilisez-la pour que votre document soit facile à lire. Si vous écrivez :

This \textsc{dvd} is meant to be played with region 2 players only.

Le latex peut décider de rompre la ligne de cette façon :

This DVD is meant to be played with region
2 players only.

Pour éviter le mauvais saut de ligne, utilisez ~ :

This \textsc{dvd} is meant to be played with region~2 players only.

Maintenant, region y 2 n'auront pas d'interruption entre eux.

78voto

Mr Fooz Points 21092

Mettez vos fichiers dans le contrôle de la source. Ainsi, vous n'avez pas besoin de conserver de longs blocs de commentaires aussi longtemps.

Cela peut également être utile si vous avez écrit une grande section que vous décidez d'enlever pour la publication actuelle, mais que vous voulez plus tard (par exemple pour un rapport technique ou pour un article de journal). Les balises de type Subversion peuvent être particulièrement utiles dans de tels cas.

59voto

Uri Points 50687

Le meilleur conseil/pratique que j'ai jamais eu est celui-ci :

Utilisez le fait que LaTeX n'est pas WYSIWYG. Lorsque vous écrivez des paragraphes, commencez chaque phrase au début d'une ligne, et si elle déborde, chaque ligne suivante est tabulée.

Cela vous permet de comprendre la structure de vos paragraphes et d'identifier très rapidement les éléments qui s'y trouvent.

Depuis, j'ai rédigé de nombreux documents avec cette pratique et elle a toujours été efficace.

32voto

ejgottl Points 2178

Utilisez un Makefile, ou un autre type de build script pour construire votre document à partir de vos sources. Cela peut inclure la génération de tracés ou d'autres graphiques en dehors du système latex. Cela devient encore plus important si vous devez reconstruire le document à partir des sources à une date ultérieure (par exemple, vous devez régénérer un article avec de nouvelles données).

32voto

Jon Shea Points 1039

Je pourrais probablement continuer toute la journée, mais cela semble être un bon début.

# if you want to change the page margins:    
\usepackage[letterpaper]{geometry}
\geometry{top=1.0in, bottom=1.0in, left=1.5in, right=1.0in}

# greatly improved citation commands:    
\usepackage[longnamesfirst]{natbib}

# better looking tables with `\toprule`,`\midrule`,`\bottomrule`:
\usepackage{booktabs}

# make sure figures do not appear before their text:    
\usepackage{flafter}   

# if you're doing math:    
\usepackage{amsmath,amssymb,cancel,units}

# more control with verbatim ('unformated') environments:  
\usepackage{fancyvrb}

Documentation pour les paquets utilisés dans ces exemples :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X