samedi 3 novembre 2012

Pourquoi Word ne devrait pas exister : ode à Latex

Les professeurs doivent de plus en plus fournir eux-même du contenu : énoncés de TP, leçons, examens. Et pour cela, il faut forcément passer par un logiciel de mise en page.

Aujourd'hui, Openoffice, Libreoffice et l'indéboulonnable Word sont donc les outils de choix pour de nombreux professeurs. Étant ardent défenseur du logiciel libre, l'utilisation des suites bureautique Office a déjà ma préférence, mais même celles-ci restent une pâle copie de ce qui est à mon sens idéal pour un professeur de sciences : Latex. Et pourtant, son utilisation reste marginale alors que Latex existe depuis les années 1980.

Les raisons sont assez simple : l'installation n'est pas intuitive : le logiciel de saisie est indépendant de Latex en lui même,  ce qui crée de la confusion. (Personnellement, je recommande texMaker qui gère l'UTF8 sous windows et Kile sous Linux pour les raccourcis qui sont personnalisables.) De plus, les débuts sont relativement ardus s'il n'y a personne pour nous guider.

Et pourtant, la distinction reste. En un coup d'œil, il est facile de distinguer un document tapé sous Latex d'un document tapé sous un éditeur « classique ».

Le principe de Latex

Le principe est relativement simple et devrait être familier à toute personne ayant déjà fait de l'HTML. Sous latex, plutôt que cliquer quelque part pour dire qu'on veut centrer, on l'écrit. Comme un navigateur internet, c'est lors d'une étape de « compilation » que Latex va lire le contenu, différencier le texte qui doit apparaître des commandes pour centrer, mettre en italique, etc.. Il va donc suivre les instructions écrites pour créer un document.

Word est un éditeur de type "WYSIWYG "(what you see is what you get, ce que vous faites est ce que vous voyez) alors que Latex est un éditeur "WYSIWYM" (What you see is what you mean, ce que vous avez est ce que vous voulez dire).

C'est la différence principale entre les deux systèmes et c'est tout ce qui fait la différence.

Pourquoi Latex, ça rebute ?

Dans Latex, les gens qui commencent tapent un peu de texte, compilent, et là, c'est le choc. En effet, de base, Latex n'accepte pas les accents et les marges sont énormes pour quelqu'un habitué à Word. Ça commence très mal. Et c'est là que commence la course aux package et aux options.

Latex marche par package, plutôt que d'avoir toutes les fonctionnalités possibles de Latex chargées. Les fonctionnalités de bases sont limitées et progressivement, les packages permettent de rajouter des fonctionnalités et des commandes disponibles. Et là, heureusement qu'internet est là, en général, si vous tapez votre question, vous pouvez trouver une réponse qui vous donne le package à charger et les commandes qui vont avec.

Ce fonctionnement est bizarre, mais ça permet en général de faire en sorte qu'un document soit tout le temps le même, aussi bien sous Linux, Windows ou autre, que notre ordi soit récent ou vieux. Un fichier tex donnera à priori tout le temps le même document, même dans 30 ou 40 ans, car le système est extrêmement robuste, en effet, il date de 1991 !! Or si vous essayez de réouvrir un document Word vieux de 20 ans, vous risquez d'avoir des problèmes. De plus, ce fonctionnement permet d'avoir beaucoup plus de ressources sur internet car les packages évoluent peu et du coup, les réponses sur les forums restent en général valables pendant de nombreuses années alors que certaines fonctionnalités sont régulièrement chamboulées sous Open Office ou Word.

Par contre ça veut dire qu'il faut petit à petit trouver les packages qui vous intéressent et éventuellement les télécharger. Sous Linux, pour éviter de me poser des questions, j'ai téléchargé quasiment tous les packages existant. C'est votre connaissance de ces packages qui va faire de vous un « gourou » ou un simple utilisateur. Et les packages, c'est un peu comme les applications Iphone : il y a en pour tout : mettre des en-tête, intégrer des images, avoir un texte sur plusieurs colonnes, faire un poster, un examen, dessiner des objets, des molécules, des circuits électriques et j'en passe.

La taille des fichiers

Pour des professeurs qui travaillent ensemble, c'est plutôt agréable. Car à présent, les gens qui utilisent des docx ou autre cochonneries posent souvent des problèmes à leurs collègues qui n'ont pas la version dernier cri et qui n'est pas compatible avec la leur.

Le document tex étant de plus un simple fichier texte avec une extension, c'est en général extrêmement léger : un cours de 90 pages sans les images fait 300Ko et environ 20Mo tout compris (images+fichiers dérivés). Le document final fait 7Mo alors qu'il y a plein d'images.

Les images

La gestion des images n'est également pas très intuitive pour le quidam, mais au final assez pratique. Pour gagner de la place, Latex ne stocke pas les images directement dans le .tex. Il va les chercher sur votre disque dur à l'endroit indiqué. Donc si vous avez fait une erreur, il suffit de corriger directement l'image d'origine, elle sera automatiquement mise à jour dans le fichier final. Pas besoin de la réimporter en la copiant. Et Latex accepte directement d'intégrer des images au format vectoriel, ce qui permet d'avoir des images d'excellente qualité, aussi bien à l'écran qu'à l'impression.

Un conseil, utilisez pdfLatex pour compiler votre document, comme ça vous avez directement un pdf et les formats d'image que vous pouvez utiliser sont beaucoup plus nombreux : pdf, png, jpg (ça suffit).

De même, vous pouvez directement appliquer des transformations simples : homothétie, rotation. En général vous ne voyez pas en direct ce que vous faites. Il faut donc tâtonner pour avoir ce que vous voulez. Un peu d'expérience permet de prendre progressivement le coup de main.

Les commandes prédéfinies

C'est là la force extraordinaire de Latex : vous pouvez définir vous même des commandes pour faire certaines actions répétitives, par exemple, pour taper une dérivée, normalement, il faut dire que vous avez une fraction, taper la lettre "d" en roman pour indiquer que vous faites une dérivée en haut et en bas pour finalement mettre ce que vous dérivez par rapport à quoi.
Ce qui donne par exemple : $\dfrac{\mathrm{d}\,f}{\mathrm{d}\,x}$ pour dire que vous dérivez f par rapport à x. C'est plutôt lourd et pénible à taper, mais vous pouvez définir une commande pour automatiser le processus : en rajoutant cette ligne : \newcommand{\derd}[2] {\dfrac{\ch{d}\, #1}{\ch{d}\, #2}} vous n'avez ensuite plus qu'à taper $\derd{f}{x}$ pour exactement le même résultat, Word le fait avec des macros, mais le champs des possibilités est plus réduit et le nombre de personnes qui s'en servent est faible : à titre personnel, je n'ai encore vu personne qui s'en serve concrètement.
De plus, le fonctionnement sous Word n'est pas plus simple (ni plus compliqué). Vous pouvez ainsi rendre quasi automatique des séquences de texte qui correspondrait à plusieurs clics sous word avec un acronyme de votre choix. Pour un professeur de sciences, c'est inestimable de ne pas avoir à taper complètement la symbolique associée à une enthalpie de réaction mais un simple \drh par exemple. Vous pouvez ainsi être beaucoup plus constant sur un document, vous savez que tout sera correctement tapé avec un minimum d'effort. Les règles de typographie recommandées par l'IUPAC et l'IUPAP pour la rédaction  de documents scientifiques ne sont plus un calvaire mais  deviennent un outil intéressant.

Uniformité, mise en page

 De base, Latex contrôle énormément de détails de la mise en page, et ça ne correspond pas forcément à ce que vous voulez. Il faut ainsi parfois redéfinir certaines mise en page automatique. Ce n'est pas toujours très intuitif, même si des packages comme titlesec facilitent le processus. Et pourtant, le nombre limité de photocopies impose souvent de devoir avoir une mise en page très compacte.

Au final, une fois que vous avez trouvé comment faire, encore une fois, vous n'aurez plus à le refaire, il suffira de recopier la commande qui fait ce que vous voulez, ou encore mieux, mettre ces commandes dans un fichier commun pour tous vos documents et ensuite l'inclure dans votre fichier tex. J'ai ainsi pu mettre des titres en bleu cyan et des sous titres en rose souligné pour quelqu'un qui souhaitait cette mise en page pour s'y retrouver facilement dans son plan de cours. C'est comme les feuilles de styles CSS en HTML : à un endroit vous définissez le comportement et la mise en page, ensuite vous pouvez être concentré sur votre document et ne pas avoir à faire 50 000 clics pour vos formules, avoir un texte uniforme, etc. Il y a une vraie séparation entre le moment de la rédaction et le moment de la mise en page.

Conclusion

Latex, bien que rebutant pour les néophytes mérite vraiment d'être utilisé. En effet, avant de commencer, il faut passer une bonne demi-journée ou journée pour comprendre comment ça marche, mais une fois que l'on a compris les principes. Il devient alors possible de créer des documents très complexes ou correctement typographiés sans aucune difficulté. Le mieux est d'avoir quelqu'un qui connaît déjà un peu le système et qui puisse vous montrer tout ça. Pour les tâches complexes, vous pourrez trouver de l'aide sur internet. La solution a l'avantage d'être tout le temps la même (pas d'icônes déplacées selon les versions ou d'option inexistante). On peut ainsi créer des livres de plusieurs centaines de pages (400 pages, 29Mo) sans aucun problème en fractionnant les chapitres, avec une mise en page uniforme, respectant les standards typographiques, avec des espaces suffisants et un texte très lisible. De même, toutes mes correction du CAPES et de l'agrégation sont tapées sous Latex. Vous pouvez ainsi juger de la qualité d'un document complexe produit sous Latex.

Au passage, j'ai créé un cours complet de 130 pages avec une série d'exercices. Vous pouvez y jeter un coup d'oeil. 

P.S. Même en lettres, Latex arrive à attirer pour la structuration du contenu et son rendu : LaTeX appliqué aux sciences humaines.