Logiciels libres et enseignement

Favoriser l’usage de logiciels libres et de formats ouverts

- Auteur : Jeroen Wijnhout, Pascal Brachet

  • Licence : GPL
  • Langue : nombreuses, logiciel largement francisé, aide en anglais
  • Environnement requis : Linux : LaTeX, KDE
  • Site web : http://kile.sourceforge.net/
  • Version testée : 1.7.1 (Debian sid)

Présentation générale et usages

Kile est un éditeur de code source LaTeX simplifiant considérablement l’apprentissage et la saisie de ce langage de description de documents ; il peut être considéré comme une certaine forme de « traitement de textes ». Il sera apprécié des enseignants de matières scientifiques pour la rédaction de cours, exercices, corrigés, faisant intervenir des formules et schémas, mais aussi de toute personne désireuse de produire simplement des documents, rapports, lettres ou articles de qualité professionnelle dans le plus grand respect des règles de la typographie.

Rappelons que TeX est le standard rédactionnel en matière de publications scientifiques.

On peut ainsi générer des documents PDF de très haute qualité, mais aussi tenir compte de la structuration d’un article ou d’une documentation pour produire un ensemble de pages au format web consultables en ligne par le moyen de liens hypertextes sans connaissance du langage HTML.

De nombreux logiciels peuvent être utilisés conjointement avec Kile pour intégrer des schémas divers ou spécialisés comme des molécules chimiques, des tracés de courbes, des captures d’écrans ou divers formats d’images.

Tout utilisateur des fonctions de style, ou toute personne confrontée à la complexité de la gestion des plans et niveaux de titres des traitements de textes classiques devrait prêter une grande attention à ce logiciel qui simplifie et permet d’apprendre très rapidement le langage LaTeX dont il démythifie totalement la complexité.

Mais plus qu’un simple éditeur de texte spécialisé, Kile constitue un environnement LaTeX complet à partir duquel il est possible de compiler directement le code source sans connaissance d’aucune ligne de commande, travailler avec des documents maîtres, etc...

Installation et prise en main

On trouvera une présentation détaillée de ce que sont TeX et LaTeX sur cette page et dans les liens conseillés plus bas dans ce présent document.

Logiquement, toute installation de station de travail GNU/Linux a installé une distribution de TeX. Sous Debian, la commande apt-get install kile suffit, elle provoquera un important téléchargement : toute la distribution teTeX. On pourra vérifier la présence de tout ce qui est requis à l’intérieur de Kile par Configuration / Vérification système qui ne doit renvoyer aucun message d’erreur. Si tel était le cas, installer les packages manquants, aucune configuration manuelle de quoi que ce soit n’est nécessaire.

Comme le montre la capture d’écran, la fenêtre principale du logiciel contient le code source lui même, avec en bas les messages générés par la compilation et les éventuelles erreurs ; la colonne gauche peut contenir diverses choses, ici les différentes sections du document dans lesquelles on se déplace par simple clic comme dans un certain mode plan bien connu, mais aussi un gestionnaire de fichiers, des formules mathématiques, des caractères spéciaux, etc.. Il suffit de cliquer sur les icônes situées dans la grosse barre de séparation des deux fenêtres pour naviguer entre les divers contenus possibles. En bas de l’écran se trouve une barre d’icônes au contenu personnalisé (Configuration / Configurer les barres d’outils), détachée des autres barres et placée à la guise de l’utilisateur comme permet de le faire KDE avec un clic droit pour en déterminer la position, l’orientation, etc.... On remarquera enfin que Kile permet évidemment d’ouvrir de nombreux fichiers différents dans autant d’onglets.

Un document simple

Au lieu de disserter sur LaTeX, ses avantages, son histoire et son absence de bugs :), commençons plutôt par réaliser un document simple. Au lancement du logiciel ou à la création d’un nouveau fichier, un assistant propose de créer un type précis de document, choisissons « article ».

Le code source suivant apparaît dans la fenêtre du logiciel [1] :

\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}

%opening
\title{}
\author{}

\begin{document}

\maketitle

\begin{abstract}

\end{abstract}

\section{}

\end{document}

LaTeX décrit le document au moyens de balises, précédées par un \, qui peuvent contenir des commandes dont les options et paramètres s’écrivent entre accolades. Ainsi, nous pouvons indiquer le titre et l’auteur de notre document de cette manière :

\title{Bonjour le Monde !}

\author{Moi}

Le document proprement dit commence avec la balise \begin{document}. La commande \maketitle place le titre dans le corps du document, viennent ensuite la déclaration du début et de la fin du résumé que nous laissons vide pour le moment. On remarquera une entrée permettant de déclarer le titre de la première section de notre article, nous pouvons saisir le texte suivant :

\section{Voici la première section}

Bonjour !

Regardons le résultat. Sauvegardons notre travail en lui donnant un nom (Kile s’occupant de rajouter l’extension .tex au nom du fichier). Nous pouvons maintenant compiler notre premier code source par les menus Compilation / Compiler / LaTeX (raccourci Shift-Alt-2). La partie inférieure de la fenêtre principale indique le résultat de la compilation qu’on passera deux fois de manière à faire disparaître le message d’avertissement en bleu indiquant qu’il manque un fichier .aux. Nous pouvons maintenant visualiser le document .dvi obtenu à l’intérieur de Kile par Compilation / Affichage / ViewDVI (raccourci Shift-Alt-3). On peut obtenir un PDF depuis l’afficheur DVI tout simplement par Fichier / Exporter En, qui propose également du PostScript, puis visualiser le fichier obtenu a l’aide d’un logiciel approprié pour lire les fichiers PDF ou PS.

Sortons du visualiseur de DVI par Fichier / Vue éditeur (raccourci Ctrl-E).

Nous allons produire un document un peu plus complexe en modifiant notre code source. Commençons par rédiger un document en français en ajoutant, juste avant %opening, la ligne \usepackage[francais]{babel} et en ajoutant entre les « tags » de début et de fin de résumé un texte quelconque, comme « En résumé j’apprends LaTeX ». Les raccourcis Ctrl-S, Alt-2 et Alt-3 (sauvegarder, compiler, visualiser) montrent en un instant que nous sommes passés de « abstract » à « résumé », et que le contenu de celui ci s’écrit dans une nouvelle police.

Mais nous n’obtenons pas le mot LaTeX écrit dans les caractères si particuliers que l’on rencontre fréquemment. Écrire ce mot suppose d’entrer une commande LaTeX. Sortons du visualiseur (Ctrl-E), et saisissons le début de la commande avec les caractères « \L » : immédiatement nous est proposée dans un menu déroulant la liste des commandes disponibles commençant par ces caractères. Choisissons « \LaTeX » et validons avec la touche entrée, la commande s’est écrite toute seule dans le code source.

Visualisons notre travail : Ctrl-S, Alt-1, Alt-2. Revenons à l’éditeur (Ctrl-E), et modifions notre code source de manière à structurer notre article de la manière suivante :

\section{Voici la seconde section}

\subsection{Un paragraphe}

Ca va ?

La visualisation du résultat permet de se rendre compte de la numérotation automatique des titres et sous titres. C’est cela qui permet de se concentrer sur le contenu du document et non sur sa structuration et mise en forme finales. Nous disposons maintenant d’assez de connaissances pour jouer avec ce fichier : on pourra rajouter des sections et sous sections, modifier l’emplacement du titre, mais également se servir des icônes du logiciel pour écrire en gras, en italique, déclarer des listes à puces ou numérotées (le raccourci clavier pour une nouvelle puce est Shift-Alt-H, qui entre le code \item qui sera une puce ou un numéro selon l’environnement dans lequel on se trouve, liste numérotée ou non).

Il est possible d’insérer une table des matières au moyen de la balise \tableofcontents

Dans la mesure où tous les éléments et environnements LaTeX sont accessibles dans des menus, à la souris ou avec la complétion, et se traduisent par l’insertion immédiatement visible du code correspondant, l’apprentissage du langage se fait en même temps que la réalisation concrète d’un document et ne constitue donc pas un préalable, ce qui permet d’être immédiatement productif et d’apprendre progressivement tout en travaillant. L’insertion d’une simple liste à puces permet de remarquer la simplicité d’un tel apprentissage.

Voici le résultat de ce travail :

Nous pouvons aller plus loin avec un document un peu plus complexe utilisant des packages et des formules mathématiques.

Un document plus complexe

On aura remarqué que le code source contient l’appel à des « packages » par la commande \usepackage. Ceux ci sont extrêmement nombreux et permettent d’intégrer des mises en pages très riches à un document ; un très grand nombre de ces packages sont présents par défaut, ils ont été installés avec LaTeX.

Nous allons placer les lignes suivantes au début de notre code source de manière à produire un document suffisamment élaboré pour de nombreux usages (ces lignes sont requises pour compiler dans la suite de ce didacticiel) :

\documentclass[a4paper,10pt]{article}

\usepackage[latin1]{inputenc}

\usepackage[T1]{fontenc}

\usepackage[francais]{babel}


\usepackage{graphicx}

\usepackage{vmargin}
\setmarginsrb{1.5cm}{2cm}{1.5cm}{2cm}{0cm}{0cm}{0cm}{1cm}

\usepackage{lmodern}

\usepackage{amsmath}
  • Les deux premières balises rendent le document compatible avec les caractères européens, encodage de type latin-1. Si Kile ne le propose pas, cela peut être défini dans Configuration / configurer Kile / Général / Variables de modèle où l’on déclarera, dans Options de la classe du document, la taille du papier et celle de la police de caractères avec a4paper,10pt, puis dans jeu de caractères, latin1. Tout nouveau document sera crée avec ces paramètres.
  • Les deux packages suivants (fontenc et babel) permettent un usage complet de la langue française et dispensent de saisir des commandes particulières pour les caractères accentués.
  • Le package « graphicx » permet l’insertion d’images, qui est gérée très simplement dans Kile par le menu LaTeX / insertion d’images (commande \includegraphics).
  • Le package « vmargin » suivi de la commande idoine permet de définir une taille de marge plus adaptée au format A4 que le paramétrage par défaut.
  • Le package « lmodern » n’est pas installé par défaut avec teTeX, il comprend de nombreuses polices de très haute qualité qui améliorent de manière saisissante la qualité des documents PDF générés. Ce package est disponible dans Debian Sarge avec la simplicité d’installation habituelle, il s’intègre à l’installation de LaTeX sans aucun paramétrage particulier. On pourra toutefois se contenter de \usepackage{times} ou autres polices fournies.
  • Le package « amsmaths » fournit macros et environnements complets pour écrire des mathématiques en plus de ce que permet LaTeX par défaut.

Après avoir déclaré les packages ci dessus, nous pouvons insérer dans notre document une première formule mathématique en saisissant le code suivant : $x^2-3x+\sqrt{2}=0$ ; on remarquera :

  • qu’il n’y a besoin d’aucun éditeur d’équation, ni même recours aux symboles mathématiques et logiques accessibles avec la souris dans la colonne gauche de Kile ; on saisit simplement le langage mathématique à l’intérieur de la langue française.
  • que la partie mathématique du code est simplement encadrée entre deux $.
  • que les commandes LaTeX, comme ici l’appel de la racine carrée, donnent lieu à la complétion automatique dans Kile. L’apprentissage du langage se fait donc, répétons le, pendant la réalisation du document ; il est extrêmement confortable et motivant de voir apparaître dans le code source les éléments du langage correspondant à des fonctions du logiciel qui demeurent très simplement accessibles.

Cet autre exemple, extrait du devoir de mathématiques ci dessous (niveau 1°S), permet de démontrer l’insertion très claire et quasiment intelligible en l’état du langage mathématique au sein de la langue française sans qu’il y ait besoin de passer par un « éditeur d’équations » :

Soit $(u_n)$ la suite définie par $u_0=3$ et $u_{n+1}=\frac{2}{1+u_{n}}$.

Nous pouvons maintenant insérer une image quelconque dans le document, avec la fonction LaTeX / Insertion d’image et en parcourant le disque dur depuis la boîte de dialogue pour aller chercher un fichier quelconque. La visualisation risque cette fois de ne pas afficher l’image à partir du fichier DVI mais un espace blanc à la place, on vérifiera qu’elle est bien présente en générant un fichier PDF ou PostScript à partir du visualiseur.

Il est possible d’inclure de nombreux types de fichiers. Cependant, il est recommandé de travailler en PostScript encapsulé (format EPS) : Gimp ou ImageMagick (fonction convert) permettent de convertir simplement. De nombreux logiciels scientifiques savent exporter leurs résultats dans un tel format, ou en figure LaTeX, qu’il est enfantin d’insérer dans le code source d’un article, devoir, corrigé, etc... à l’intérieur de Kile. Citons entre autres :

  • DrGéo, géométrie interactive.
  • Chemtool pour réaliser des schémas de molécules en physique, chimie ou biologie.
  • Dia et Xfig pour la réalisation de schémas, de très nombreux formats peuvent être exportés.
  • D’une manière générale, un logiciel scientifique de qualité sera compatible LaTeX dans ses formats d’exportation.
  • TeXmacs adopte un point de vue totalement différent puisqu’il n’est pas une interface graphique à LaTeX, mais sait exporter un tel type de code source qu’il est possible d’intégrer à un article en cours de rédaction. TeXmacs présente le grand avantage de s’interfacer sur divers logiciels, de calcul et traçage en particulier, et permet ainsi de disposer d’un traitement de textes sachant calculer !

Principaux problèmes et solutions

La partie inférieure de la fenêtre principale de Kile présente le résultat des commandes de compilation avec les avertissements et erreurs, avec la ligne où se situe le problème. On remarquera une barre d’icônes permettant de se déplacer d’erreur en erreur à l’intérieur du code source.

La ligne rouge « [LaTeX] terminé avec le statut de sortie 1 » indique une sortie de la compilation en erreur, le document n’a pas été généré et ne le sera pas tant que l’erreur n’aura pas été corrigée.

Il est possible d’atteindre les erreurs du code depuis la visualisation dans le fichier DVI, ce qui constitue un des intérêts majeurs de Kile (dans l’aide, manuel de Kile, section 3 (quickstart) : Forward and inverse searches between Kile and DVI).

Parmi les plus fréquents problèmes, mentionnons :

  • underfull \hbox indique qu’une ligne n’est pas assez longue et a dû subir un traitement particulier qui ne sera peut être pas très élégant au final. On sera souvent conduit à négliger ce simple avertissement qui est « normal ».
  • overfull \hbox indique un problème beaucoup plus gênant : une ligne trop longue qui va déborder des marges, voire de la page, dans le document final et à l’impression. Ce problème est beaucoup plus important à résoudre que le précédent.
  • ./digloo.tex:40:Missing $ inserted. ...e_setup\_se3.data/genere\_setup\_data.php} indique fréquemment la présence d’un caractère spécial non « protégé » dans le code, qui a été interprété comme commande par LaTeX. Typiquement, ces caractères sont des « underscores » (_). Pour les obtenir, if suffit de les faire précéder d’un \ qui les protège de toute interprétation par le compilateur. Il en va de même pour le $, la , etc...
  • les caractères \ permettent de forcer un saut de ligne, à utiliser très modérément pour le respect des règles de typographie.
  • les lignes bleues signalant qu’un fichier manque (par exemple un .toc constituant la table des matières) doivent disparaître lors d’une seconde, plus rarement troisième compilation.
  • Nous traitons du problème des liens hypertextes dans la dernière section de cet article.

Plutôt que de chercher dans d’interminables panneaux à cliquer successifs où se trouve telle ou telle option, un apprentissage de LaTeX se poursuivra en ligne dans un moteur de recherche ; on sera surpris par la quantité énorme de ressources sur LaTeX, chacun partageant son travail et ses trouvailles. Toutefois, on consultera avec profit :

Deux devoirs de mathématiques

Ce premier exemple contient quelques macros et définitions globales (nom de l’examen, date, discipline, durée de l’épreuve, barème de chaque exercice...). Il constitue un excellent point de départ pour s’approprier un certain nombre de fonctions relativement avancées du langage, mais surtout en tant qu’exemple très concret d’usage pédagogique de LaTeX en mathématiques.








Ce second exemple, beaucoup plus complexe, fait le tour de fonctionnalités avancées du langage et propose quatre styles différentes de documents. Ces styles sont fournis dans l’archive ci dessous, on les copiera avec les autres styles déjà installés (par exemple dans un sous répertoire de

/usr/share/texmf/tex/latex

), puis la commande texhash mettra à jour les fichiers installés de manière à ce que les styles soient trouvés par le compilateur. Le but est de commenter et décommenter les lignes du code source appelant les styles de manière à observer les différences de rendu dans le document généré.

L’archive ci dessous contient le code source avec les fichiers de style :

Génération de documents structurés au format HTML

LaTeX ne permet pas seulement de générer des documents pour l’impression. Le code source peut être utilisé à d’autres fins, en particulier pour mettre à disposition des documents en ligne au format HTML. L’avantage est de profiter des possibilités de navigation dans le document par les liens hypertexte à partir de la table des matières et au moyen d’une interface de navigation d’une page à l’autre ; cet usage se rencontre très fréquemment sur le web, en particulier en matière de documentations informatiques. On en trouvera un exemple sur le présent site avec l’article sur la configuration d’un réseau sous Debian GNU/Linux : ces pages ont été générées en une simple ligne de commande à partir du code source LaTeX rédigé dans Kile.

Un des logiciels offrant cette possibilité se nomme latex2html [2], il s’installe dans Debian aussi simplement que le reste. Toute la génération des liens hypertextes pour la navigation dans le document est prise en charge, mais se pose le problème de l’insertion de liens dans le corps même du texte, qui figureront également dans le PDF, typiquement pour indiquer une adresse sous forme d’URL.

La déclaration de liens hypertextes dans le document se fera de la manière suivante :

  • Dans l’en tête du code, déclarer le package html de cette manière : \usepackage{html}
  • Rédiger ainsi un lien hypertexte : \htmladdnormallinkfoot{Sambaedu}{http://www.crdp.ac-caen.fr/se3/}. Dans les pages web, le mot « Sambaedu » placé entre les deux première accolades apparaîtra sous forme d’hyperlien cliquable, dont l’adresse sera placée entre la seconde paire d’accolades ; dans le PDF sera insérée une note de bas de page numérotée contenant l’adresse du lien.
  • Dans Kile, LaTeX / Balises utilisateur / Editer les balises utilisateur ouvre une boite de dialogue dans laquelle on rentrera le nom de cette nouvelle balise (un nom quelconque) puis sa valeur (\htmladdnormallinkfoot), son raccourci clavier par défaut étant appliqué à Shift-Control-1.

La génération des pages web se fait tout simplement par la commande latex2html monfichier.tex. Un nouveau dossier apparaît dans le répertoire de la compilation, contenant les pages HTML et les images. Une page est ajoutée à la fin (« à propos de ce document »), qui mentionne l’usage de LaTeX2html et rappelle la commande ayant généré l’ensemble.

La documentation en anglais de LaTeX2html, d’une douzaine de pages, est très accessible si l’on n’est pas satisfait d’un premier résultat. Nous utilisons en particulier les options suivantes :

  • -local_icons copie les icônes de navigation, en haut et en bas de chaque page, dans le document local, ce qui est indispensable si ces icônes ne sont pas disponibles sur le serveur web qui hébergera les pages.
  • -show_section_number montre les numéros de section dans les liens, la table des matières...
  • -split +1 découpe les pages générées de manière à n’avoir qu’une seule page par section et non par subdivision.

D’autres logiciels plus puissants mais d’usage plus complexe existent, comme Hyperlatex, tex4ht ou Hévéa qui intéressera plus particulièrement les mathématiciens.

Conclusion

Au delà de sa réputation de complexité et de langage réservé aux programmeurs, LaTeX est accessible depuis plusieurs années au grand public au travers de logiciels comme LyX ou TeXmacs et maintenant Kile ; tous en démythifient l’usage, ce que confirmeront nombre d’enseignants qui utilisent LaTeX au quotidien, l’apprécient pour sa puissance et la qualité de ce qu’il sait générer et ne songeraient pas un instant revenir en arrière, vers des éditeurs d’équations qui s’avèrent à l’usage infiniment plus complexes et moins compatibles.

Notes

[1si le contenu des deux premières lignes n’est pas identique, en faire un copier coller pour pouvoir saisir des caractères accentués dès cette première étape : nous verrons un peu plus bas comment personnaliser Kile pour les caractères européens.

[2il figure dans la section non-free de Debian à cause de restrictions de sa licence ne permettant pas de le revendre de manière entièrement libre

Recherche avancée