FreeWare pour tous!

Convaincu que face àa la montée de l'intégrisme informatique et au monopole de fait d'une société dont le nom commence par M, comme microsoft, et se termine par T, comme microsoft, il te faut réagir pour rester un libre citoyen du monde virtuel tout en constatant que trop de societés privées ont baissé les bras, ta dernière planche de salut réside dans le logiciel gratuit!
Pour se faire deux solutions : la loi sur la propriété intélectuelle ne te semble qu'un fatras immonde d'arguments conchiés par des technocrates en mal de légifération, alors la réponse est simple, pirates, copies, encore et encore, et même si tes moyens ne sont pas les miens, je reconnais la justesse de ton combat... Mais attention, jamais pour de l'argent ce métier ne fera, et toujours pour la communauté tu travailleras, comme écrivait Moise dans son célebre 11ème commandement, apocryphe, comme les autres, d'ailleurs. La deuxième voie, plus tortueuse, j'en conviens, passe pacequ'il est convenu d'appeler en parfait franglais, le freeware.
J'entend déja les ricanements de l'incrédule athé face au missionaire en position, "Ah ouais, ces machins que t'arrivent jamais a installer et qui plante ta becane a tout bout de champ?". Bon, premiere objection cynique, est-ce vraiment différent avec les applications commerciales? Seconde objection, plus constructive, essayes d'abord et crois moi apres, je fais pareil avec les missionaires :-)

Génèse

Tout d'abord, puisqu'il faut bien un commencement a toute chose, on peut parler du systeme d'exploitation. Plutot que d'investir dans un Windows98 ou pire 2000, condamné a disparaitre bien vite dans la poubelle de l'histoire, pourquoi ne pas se pencher sur les systemes d'exploitation gratuit comme Linux ou Free-Bsd? Hein, pourquoi? OK, je conviens qu'installer un systeme d'exploitation et assurer sa maintenance tout seul, n'est pas a la portée du premier con venu. Par exemple, j'utilise en ce moment Windows98 :-) Mais en y regardant de plus pres, l'avantage est immense: performance, stabilité et impossible de se laisser tenter par les applications clinquantes des ténors de l'informatique grand public : elles ne tournent de toutes façons pas sur ces sytèmes :-) Débarassé de Word et consort, enfin libre!
Oui mais que mettre a la place?

LateX

Développé à l'origine par D. Knuth, comme un langage d'édition de document (TeX) il a été enrobé quelques années plus tard par Leslie Lamport d'une couche pour se débarasser des détails que l'utilisateur ordinaire aime ignorer, LaTeX. On dispose maintenant d'un systeme très puissant, en constant développement, qui sans nul doute presente les plus belles sorties d'imprimante que l'on puisse obtenir avec un ordinateur personnel. De plus il permet de créer directement des documents au format PDF, qui devient de plus en plus le standard de fait d'échange de document électronique. Beaucoup plus compact qu'un document Word ou PostScript, par exemple. Tu vas me dire que la taille du fichier cela fait rigoler ton disque dur de 8Go, mais rassures-toi cela fait fait aussi se marrer ton opérateur de télecommunication, se réjouissant par avance du bénef' sur le téléchargement à 3ko/s...

Cependant, LaTeX (en fait TeX) n'est pas vraiment un traitement de textes, c'est un compilateur de document. A partir d'un fichier TeX en ASCII contenant le texte proprement dit et des indicateurs de structure (par exemple 'ceci est un titre', 'debut d'une équation', 'fin de l'équation', 'ceci est une section'...) , ou les connaisseurs auront remarqué les attributs d'un 'Markup Langage' comme HTML ou SGML, LaTeX va créer, la terre en 3 jours... euh non, va créer un fichier dévrivant la position de chacune des glyphes du texte en justifiant, numérotant, référencant, bas-de-pageant, indexant, table des matièrant, formule mathématiquant, tout ca de facon exemplaire. Ce fichier DVI (DeVice Independent) pourra alors etre vu et imprimer au moyen d'un visualiseur de DVI séparé. Et oui ce n'est pas du WYSIWYHYG (... You Hope You Get), mais putain, c'est beau!

Ensuite, a partir de ce DVI on peut faire du PostScript en utilisant l'utilitaire DVIPS (apres tout une imprimante postcript n'est qu'un Device comme un autre) qui incluera dans le meme temps tous tes jolis dessins, de préférence au format EPS. Ensuite, tu pourras balancer le fichier sur une imprimante PS ou meme sur une imprimante quelconque apres l'avoir visualisé sur ton écran en utilisant GhostView, l'interpréteur de PostScript (et annexement de PDF :-) gratuit.

latex classique

Une récente alternative existe a ce schéma classique, l'utilisation de PdfLaTex, permet de créer, à partir du meme fichier source TEX, un fichier PDF (Portable Document Format) qui ravira le lecteur Acrobat (fourni généreusement, et gratuitement, par Adobe) de tes petit(e)s ami(e)s, non encore converti(e)s a LaTeX. Comme nous le verrons plus tard, il nécessite l'utilisation du format PDF pour les fichiers images (et oui, les documents ne comportent pas que du texte) malheureusemnet encore peu répandu, mais qui peuvent etre générées a l'aide de GhostScript (encore!) a partir des fichiers EPS seconder par un petit programme qui automatise tout cela...

PDFLatex

Mais comment utiliser cette merveille?

Taper sous LaTeX les immortelles aventures de ZiZi et ZeZette au pays des gros ¶¶ (le ¶ n'est là que pour prouver la force de LaTeX dans les formules de math, bien sur) passe par trois étapes ennuyeuses mais indispensables :

  1. Installer LaTeX et quelques utilitaires utiles
  2. Choisir un traitement de textes adapté à LaTeX
  3. Apprendre à utiliser LaTeX

LaTeX a été adapté sur tous les sytemes d'exploitation existant (de l'AmigaDOS à Windows'95, en passant par UNIX, Linux et ses variantes) et il suffit de se rendre sur un des sites de la Comprehensive TeX Archive Network (CTAN) pour trouver tout ce qu'il faut et plus. L'archive possede plein de site mirroir de par l'infini monde virtuel, dont une liste est donnee la (attention les miroirs ne sont pas toujours 100% réfléchissant... alors je conseille ftp://ftp.dante.de/tex-archive/ une base de CTAN et la plus rapide a mon gout, ou bien par le butineur internet http://ctan.tug.org/tex-archive/). Puis dans le repertoire 'systems' on cherche son systeme d'exploitation favori, et puis on musarde un peu pour trouver l'implémentation que l'on préfere...

Avec Windows (répertoire 'win32' sous 'systems' dans l'arborescence de l'archive) je conseille MikTeX (mais j'avoue que je n'ai pas essayer les autres :-). Dans ce cas, pour la version 1.20, il faut télécharger l'utilitaire d'installation (setupwiz.exe) puis les fichiers archive qui vous interesse (les 6 premiers [msdll.zip...latexpkg.zip] du niveau 1 suffisent au debut mais pour utiliser pdflatex le fichier pdftex.zip du niveau 3 est nécessaire) dans un même repertoire. Ensuite, on double clic sur la tête d'Esso (setupwiz.exe) et ca s'installe tout seul comme une application habituelle, ajoutant même une jolie entrée dans le menu Start, et s'enregistrant dans les registres. On relance la machine et hop! C'est fini? hum, hum, oui, non, enfin presque, en fait il vaut mieux, si ce n'est pas déjà fait, installer Ghostscript et GhostView avant de continuer, les deux compagnons de LaTeX, pas vraiment indispensables, mais qui aident bien principalement à transformer le beau DVI en quelque format lu par le commun des mortels (comprenez non converti a LaTeX), EPS ou PDF. Et oui rien ne sert de DVIfier la vie trépidante de Zezette, encore faut-il que le monde entier puisse la lire :-) (vérifier que la version de Ghostscript est >6.0, cette remarque peut te paraitre stupide internaute de l'an 2063, vu que Ghostscript est en version 34.2 mais cette page a été écrite en l'an 2000. Oui après JC. Déso;é.)

Bon on y va maintenant? Hein, hein on y va? Euh, euh, mais au fait comment écrire avec LaTeX?
Il faut un éditeur de textes tout simple comme le Notepad ou WordPad (dans ce dernier cas sauvegarder en mode texte), mais sous WIndows je conseille WinShell, TexShell ou TeXEd, dans la meme archive CTAN, qui sont dédiés a TeX, permettant de simplifier un peu les manips. Lors de l'installation de ces programmes, la principale difficulté est de relier les différents boutons de l'éditeur aux programmes correspondants, permettant d'un simple clic de lancer le compilateur LaTeX (c:\\texmf\miktex\bin\latex.exe), le visualisateur de fichier DVI (c:\\texmf\miktex\bin\yap.exe), le convertisseur DVIPS (c:\\texmf\miktex\bin\dvips.exe), le visualisateur/imprimeur de fichier PostScript, GhostView (C:\gstools\gsview\gsview32.exe). Si tu utilises MikTeX tout ces fichiers sont places aux endroits specifies entre parentheses et sont à entrer grace à la commande 'Options->Directories and Command' avec TeXEd ou 'Options->Program call' avec TeXShell. En général on peut aussi ajouter un lien vers PDFLaTeX, bien que ce ne soit pas encore une option completement reconnue.

Ces points règlés, c'est parti... euh en fait il faut apprendre a écrire en LaTeX et il vaut mieux aller faire d'abord un petit tour par la :

En fait quand vous aurez lu tout ceci (le premier document suffira pour le début, une sorte de condition nécessaire et suffisante, en somme :-), vous ne devriez plus avoir besoin de moi... je rajouterai juste ici quelques petites remarques en vrac pour des problemes qui m'ont énervé a des degrés divers, et auxquels j'ai trouvé une solution :-)
Comment inclure des images dans un document LaTeX?
La solution la plus simple que j'ai trouvé a ce probleme passe, malheureusement, par l'utilisation d'un logiciel commercial, mais pas de M$, n'exagérons pas quand meme :-) CorelDraw est un logiciel de dessin vectoriel bien conçu, qui possede la particularité d'être très ouvert vers l'exterieur (ne soyons pas dupe, ce n'est pas par altruisme, mais uniquement parcequ'il y est forcé, n'étant pas un programme M$), et de permettre la sauvegarde des fichiers au format EPS, Encapsulated PostScript, depuis ses toutes premieres versions (3.0 au moins). Ainsi tous mes dessins sont exécutés avec CorelDraw, et meme les courbes obtenues avec MATLAB sont collées dans CorelDraw (Copy To Clipboard dans MATLAB puis Paste Special... Metafile dans CorelDraw) ou je leur fais subir un toilettage. Ensuite, en plus d'une sauvegarde sous le format CorelDraw, j'exporte un fichier au format EPS.
On remarquera que les images en point (bitmap) provenant de la numérisation d'un document ou d'une prise de vue a l'aide d'un appareil photo numerique peuvent etre converties de la meme maniere car CorelDraw permet d'importer la plupart des format de fichiers de points (TIF, GIF, JPEG et meme l'odieux BMP). Evidemment le fichier résultant est dans ce cas généralement assez conséquent, et justifie pleinement le dicton : une image vaut un million de mots (de 8 bits, les mots :-).
Ensuite dans le document LaTeX, on déclare dans le preambule (c'est a dire avant la commande \begin{document}) le package 'graphicx' en faisant figurer la ligne suivante : \usepackage{graphicx} Par la suite a tous les endroits ou on désire obtenir une image, on place les lignes suivantes :
\begin{figure}[hbtp]
\centering
\includegraphics[width = 70mm, keepaspectratio] {nom_du_fichier}
\caption{Le_texte_de_la_legende.}
\label{Le_mnémonique}
\end{figure}

Les options apres la commande \begin{figure} permettent, dans une certaine mesure, de décider ou la figure sera placée, mais LaTeX fait en général a sa guise :-) Ainsi h = here = ici, b = bottom = en bas de page, t = top = en haut de la page, p = page = sur une page séparée, mais si on ne met rien ca marche tres bien aussi, le défaut étant l'ordre donné ci-dessus.
\centering permet de centrer l'image entre les marges, sans ajouter d'espace avant et apres comme le ferait l'environement \begin{center} ... \end{center}.
\includegraphics admet de nombreuses options (rotation par exemple) et je ne donne ici que celle qui me servent : width = largeur = permet de donner la largeur de l'image dans le texte, keepaspectratio = conserver le rapport de taille = permet de changer la hauteur du meme facteur que la largeur lors d'un changement de taille, conservant son aspect a l'image. On comprend la tout l'interet des fichiers Encapsulated PostScript, dont on passe le nom comme argument de la fonction... L'extension du nom de fichier, .eps ici, n'est normalement pas necessaire si MikTeX est bien configuré. Cela permet un fonctionement transparent si au lieu d'utiliser LaTeX on utilise PDFLaTeX, le systeme choisira de lui même l' extension .eps ou .pdf respectivement [si la configuration n'est pas automatique on peut aussi faire ça très bien en 'manuel'... et avec un manuel :-)]
\caption permet de définir le texte de la légende.
\label indique le mnémonique utilisable dans le texte pour faire référence a cette image. Ainsi si l'image comporte la ligne \label{zolidessin}, on référencera cette image dans le texte grace a '... sur la Figure \ref{zolidessin}...', sans s'occuper bien sur de connaitre le rang de l'image, LaTeX s'en chargeant tres bien.
Et ensuite, que va-t'il se passer? Au moment de la compilation du texte par LaTeX, celui-ci va aller regarder dans le fichier EPS les dimensions de l'image lui permettant de sauter la place correspondante dans le document, tout en placant légende et autres, au bon endroit. Mais, quand apparait donc l'image? Et oui ce n'est pas fini, car comme nous l'avions vu précédemment, LaTeX seul ne peut pas traiter l'image EPS car il ne delivre qu'un fichier DVI, ne contenant que la position et la taille de tous les symboles du textes (et une image est juste un de ces symboles) avec leur 'nom'. Pour voir le document, il faut utiliser un visualiseur de DVI, décrit plus haut, mais qui ne permet pas toujours de voir les fichiers EPS. Avec Windows et MikTeX les dernieres versions de YAP (>0.96), le visualiseur de fichier DVI, le permettent par le biais de GhostScript... mais c'est lent et l'impression cafouille. Ainsi, le moyen le plus sur est d'utiliser l'utilitaire DVIPS, qui transforme le fichier DVI en fichier PostScript en incorporant les fichiers EPS correspondant aux images du document. Ce fichier PS est ensuite visualisable et imprimable avec GhostView (qui bien sur utilise aussi la bibliotheque GhostScript). Et voila!
Le PostScipt c'est bien joli, mais si je veux du Portable Document Format (PDF) utilisable avec AdobeAcrobat et surtout AcrobatReader (un Freeware) sous mon butineur internet?
La solution est d'utiliser le logiciel PDFLaTeX disponible sur CTAN et inclus dans la distribution MikTeX (vérifier que l'on inclus bien le fichier pdftex.zip, de niveau 3 avant d'utiliser setupwiz.exe). Celui-ci transforme directement le fichier source de LaTeX en un fichier PDF en incluant les images au format PDF. Actuellement en version Beta, il est pourtant diablement plus stable que certaines applications commerciales que je ne peux citer ici sous peine d'excéder les limites du serveur pour la taille des fichiers :-)
On notera que la qualité du document PDF, et son impression, sont telles que le passage par un document PostScript s'il était obligatoire jusqu'en 1998 ne l'est plus vraiment. Ainsi il est tout a fait possible de se passer complètement des fichiers DVI et EPS avec ce systême et au lieu d'utiliser LaTeX, images EPS et fichier DVI, d'utiliser PdfLaTeX, images PDF et fichier PDF. Au choix!
Pour ma part je préfère encore les fichiers DVI pour deux raisons : ils sont générés et s'affichent bien plus rapidement (quand l'affichage des graphismes est désactivé :-). de plus CorelDraw ne permet pas d'exporter les fichiers au format PDF directement, car, techniquement parlant il n'y a pas encore de format Encapsulated PDF, je suis donc obligé d'avoir des fichiers EPS pour les figures et ne génère un fichier PDF que lorsque tout est fini.
Avec la derniere version de MikTeX (>1.20), les fichiers de configuration utilisés permettent de rendre l'opération completement transparente a l'utilisateur, et si les images existent au format PDF il suffit de faire :
pdflatex nom_du_fichier.tex

La récente distribution de MikTeX a grandement amelioré la simplicité d'utilisation par rapport aux versions pré cédentes, mais il reste encore un point gris foncé, qui ne t'a pas échappé subtil internaute, l'image doit être au format PDF, mais je n'ai que des fichiers EPS, comment faire?
Et oui, la version actuelle de PDFLaTeX (gageons que cela changera :-) ne permet pas d'importer directement un fichier EPS et necessite de convertir d'abord le fichier en un format qu'elle peut traiter, au nombre desquels le format PDF semble le plus logique (mais il y en a d'autres :-). Alors comment transformer le joli dessin au format EPS en un aussi joli dessin au format PDF? C'est la que ca se corse. En theorie GhostView permet la manip en utilisant une astuce avouable : on imprime dans un fichier en utilisant le driver d'impression appele 'pdfwrite'... Mais, malheureusement ca ne marche pas directement, car GhostView genere un fichier PDF en incluant le graphisme eps au milieu d'une pleine page blanche, et impossible de lui faire entendre raison (la raison en est simple, rappeles-toi qu'il n'y a pas de fichier EPDF et que le format PDF décrit des documents... dont le plus petit élément est logiquement, une page). Heureusement un gentil a écrit un utilitaire epstopdf en PERL convertit depuis en C qui permet de faire la manip très proprement. Il utilise encore GhostScript pour faire la conversion, mais à la fin du fichier PDF nouvellement créé il ajoute les dimensions du graphisme récupéré dans le fichier EPS (la %BoundingBox pour les connaisseurs). Et cette petite différence change tout, m'épargnant quelque sueur froide et imprécations diverses :-)

Un point important a signaler est que lors de l'export au format EPS avec CorelDraw, si l'on veut pouvoir convertir l'image au format PDF il ne faut pas cocher la case permettant d'inclure les polices de caracteres dans le fichier EPS, sinon GhostScript se perd et la conversion plante... avec CorelDraw 9 et Gs 6.0 il semble meme qu'il faille 'Exporter le texte en courbe', surement un probleme de conversion de fonte...

L'utilitaire epstopdf se trouve aussi sur l'archive CTAN (Win32, documentation) [pour les non Win32, on peut utiliser PERL pour faire de même] et enfin d'exécuter le programme par : epstopdf nomdufichier.eps.

Sous Windows, pour simplifier la manipulation (sinon il faut passer sous DOS et taper la ligne avec le nom du chemin et autres joyeusetés) on peut associer ce programme avec les fichiers de type EPS. Hein, quoi, c'est quoi ca? Bon j'explique, on lance Windows Explorer puis View->Options->File type, on utilise l'ascenseur pour trouver le champ correspondant aux fichiers EPS (généralement le meme que les fichiers PS, et si tout va bien présentant l'icone de GhostScript, un petit fantome rouge), puis on l'édite (Edit) (on peut définir un nouveau type de fichier (New Type) si l'association aux fichiers EPS n'existait pas auparavant), ensuite on crée une nouvelle commande associée a ce type de fichier (New...). On baptise cette nouvelle action (tiens, pourquoi pas, par exemple, 'Convert to PDF' :-) et puis on entre comme ligne de commande epstopdf.exe --wait "%1" (en fait on ne le tape pas, il faut parcourir les répertoires et retrouver le fichier epstopdf puis entrer le --wait "%1" a la main). Et voila.
Ensuite pour effectuer une conversion, il suffit dans la fenêtre principale de Windows Explorer de se placer sur le fichier nomdufichier.eps désiré, hop, oreille droite de la souris, clic, menu, 'Convert to PDF', clic, on vérifie que ca s'est bien passé, barre d'espace (si cette action t'es pénible supprime l'option -- wait de la commande ci-dessus), et hop, voila le fichier nomdufichier.pdf correspondant a ce que l'on voulait!

Quand tous les fichiers EPS ont leur petit frère PDF, on peut enfin utiliser PDFLaTeX et admirer le resultat avec AcrobatReader qu'Adobe fournit gratuitement!
Voici un exemple de réalisation, ne dites rien, je sais, c'est beau :-)

Créée 07/99, mise à jour 02/12/00