URL: https://linuxfr.org/users/sygne/journaux/utroff-est-publie Title: Utroff est publié Authors: Sygne Date: 2013年04月05日T17:28:41+02:00 License: CC By-SA Tags: troff et utroff Score: 46 Comme vous le savez peut-être, je suis un fervent utilisateur du vénérable [troff](http://heirloom.sourceforge.net/doctools.html). Voilà des années que je l’utilise et que j’adapte son écosystème logiciel à mes besoins. Et aujourd’hui, est publiée la version bêta (l’interface est encore susceptible de changer) de ce travail. Le mot d’ordre du projet est «Use Troff !», et ce mot d’ordre lui sert de nom: [utroff](http://utroff.org). ## Utroff ## ### Histoire d’utroff ### L’histoire d’[utroff](http://utroff.org), c’est l’histoire de mon utilisation de troff. À l’origine, j’ai créé quelques macros pour mes besoins universitaires: formatage des références respectant la [norme iso-690](http://www.revue-texto.net/Reperes/Themes/Kyheng_References.html), mise en page élégante et prenant soin du détail typographique, gestion des index, etc. Je pensais publier ce travail il y a neuf mois déjà. Mais je me suis alors aperçu que cela supposait de créer tout un tas de fichiers de documentation: README, pdf, manuels, changelog, pages html, etc. Utiliser un autre outil que troff pour formater ces documents aurait mis en cause la cohérence de mon projet, aussi j’ai décidé de tout faire avec cet ancestral logiciel, quels que soient les efforts de développement que cela demanderait. Cela m’a effectivement demandé beaucoup d’efforts... Mais cette décision a aussi considérablement augmenté l’envergure de mon projet, qui, de fait, est maintenant auto-produit. Pour vous faire une idée du rendu html, visitez donc le [site](http://utroff.org). Pour voir le rendu pdf, jetez un coup d’œil à la [documentation](http://utroff.org/doc.html). Pour voir le rendu texte, ouvrez une [archive](http://download.tuxfamily.org/utroff//pub/), et lisez le README ou la license. Et remarquez comme il est simple, grâce à utroff, d’intégrer README, page de manuel, licence et ChangeLog dans un document pdf, ou de tout exporter en html. ### Macros pour troff: utmac ### [Utmac](http://utroff.org/tmac.html) est un ensemble de macros pour [heirloom troff](http://heirloom.sourceforge.net/doctools.html) qui utilisent toutes la même syntaxe. Comparez, par exemple, comment l’unique fichier [source](http://download.tuxfamily.org/utroff//doc/utroff-demo.tr) est rendu par la macro [uh](http://download.tuxfamily.org/utroff//doc/utroff-demo-uh.pdf), dédiée aux humanités, par la macro [us](http://download.tuxfamily.org/utroff//doc/utroff-demo-us.pdf), créée pour formatter la documentation technique, par la macro [ux](http://download.tuxfamily.org/utroff//doc/utroff-demo-ux.xml), qui produit des fichiers xml, et par la macro [ut](http://download.tuxfamily.org/utroff//doc/utroff-demo-ut.txt), qui produit des textes bruts (en utf-8). Utmac permet en outre de produire des pages de manuel (um), et des fichiers pour wiki (uw, qui suit la syntaxe markdown). Les macros de utmac permettent d’insérer très simplement sommaires, index, liens internes et externes, et références bibliographiques (la syntaxe est décrite dans le [manuel d’utmac](http://utroff.org/man/utmac.html)): ``` groff .S2 \" Sommaire des titres de niveau 2 .H2 titre de niveau 2 .H2 autre titre de niveau 2 .XB biblio.ref \" Liste bibliographique .XI N W R \" Index des noms, des mots et des références .XT \" table des matières ``` Les macros produisant des fichiers pdf portent un soin particulier à la typogographie et en respectent les règles élémentaires. Les fonctions de micro-typographie de [heirloom troff](http://heirloom.sourceforge.net/doctools.html) sont nativement supportées par utroff. Les veuves et orphelines sont repérées lors du formatage, et des macros minimisant ou agrandissant subtilement les paragraphes sont fournies pour pour les éradiquer à la demande. ### Utilitaires utroff ### Pour que ces macros aient des fonctionnalités modernes, il m’a fallu modifier certains logiciels de l’écosystème troff, et en créer de nouveaux. - [Refer](http://utroff.org/man/refer.html) et [sortbib](http://utroff.org/man/sortbib.html) ont été modifiés pour supporter l’ordre de tri des références imposé par la norme [iso-690](http://www.revue-texto.net/Reperes/Themes/Kyheng_References.html) et gérer plus proprement les petites capitales. - [UGrind](http://utroff.org/man/ugrind.html), un horrible hack de vGrind sert de colorateur syntaxique. - [Idx](http://utroff.org/man/idx.html) gère la production d’index. - [prexml, postxml](http://utroff.org/man/postxml.html) et [trxtr](http://utroff.org/man/trxtr.html) ont été créés pour permettre l’export vers différents formats [xml](http://utroff.org/xml.html) (actuellement fodt et html). ## Aide ## Maintenant, si je vous écrit tout cela au risque de vous ennuyer, c’est que j’ai besoin d’un tout petit peu d’aide. Je n’ai pas été formé à la programmation, et j’aimerais recevoir quelques critiques de mon travail. Ce n’est donc pas un appel à contributions que je lance ici, mais un appel à explications et au partage d’expérience. Si vous avez un peu de temps et de patience, n’hésitez donc pas m’écrire, soit en commentaire, soit à help, chez le nom de domaine de utroff. Pour être un peu précis, voici une liste non exhaustive des choses sur lesquelles j’apprécierais quelques remarques. - **La syntaxe des macros utmac**: La page de manuel de [utmac](http://utroff.org/man/utmac.html) décrit cette syntaxe. Je la modifierai volontiers si vous trouvez qu’elle peut-être améliorée. - **Les archives**: Ouvrez une [archive](http://download.tuxfamily.org/utroff//pub/) au hasard, et dites moi si makefile, versions, changes, readme conviennent, bref, si c’est suffisamment propre pour être empaqueté par une distribution. - **Typographie et mise en page**: Je sais qu’il y a ici des gens qui apprennent, voire qui pratiquent la typographie, et qui ont peut-être dans leur bibliothèque Hochuli, Lawson et Bringhurst. Au-delà des goûts et des couleurs, vos remarques sur la typographie et la mise en page des pdf est la bienvenue. - **Le site**: Css n’est pas mon fort, html non plus. Si le site est propre en apparence sur mon navigateur, la feuille de style ne l’est pas, et n’est certainement pas très portable. Je serais heureux d’avoir quelques remarques à ce sujet. - **Les médias sociaux**: Ceux d’entre vous qui sont branchés jusque chez leur boulangère peuvent me donner quelques conseils, s’ils en ont l’envie, voire (soyons fou) me faire un peu de pub. Bien sur, si vous avez le courage de jeter un coup d’œil aux sources pour me faire des remarques, n’hésitez pas, j’ai d’ailleurs préparé quelques archives pour vous faciliter la tâche: dans les archives listées ci-dessous, vous trouverez un fichier HELPME, qu’il vous suffit de lire, de compléter et de m’envoyer pour m’aider. Il y en a pour tous les goûts et pour tous les niveaux: - Dans [utroff-idx](http://download.tuxfamily.org/utroff//pub), le fichier HELPME questionne l’architecture du programme et ma pratique du awk. - Dans [utroff-soelim](http://download.tuxfamily.org/utroff//pub), c’est l’utilisation d’un array en C qui est en question. - Dans [utroff-ugrind](http://download.tuxfamily.org/utroff//pub), c’est la façon dont une structure en C est copiée qui est en question. ## Remerciements ## [Utroff](http://utroff.org) est hébergé par les bons soins de [Tuxfamily](http://tuxfamily.org) que je remercie sincèrement, ainsi que tous ceux qui m’ont aidés dans les journaux — [ici](https://linuxfr.org/users/sygne/journaux/publication-de-petits-projets) et [là](https://linuxfr.org/users/sygne/journaux/contre-loubli-du-troff-des-souvenirs) — dans les forums — [ici](https://linuxfr.org/forums/general-general/posts/nom-de-domaine-pour-projet-logiciel), [là](https://linuxfr.org/forums/programmation-c--2/posts/retourner-un-pointeur-vers-un-tableau-de-pointeurs), [ici](https://linuxfr.org/forums/general-general/posts/cherche-exemples-de-documentation-avec-belle-mise-en-page), et [là](https://linuxfr.org/forums/general-general/posts/syntaxe-de-document-troff) — ainsi que ceux qui ont bien voulu discuter de troff en général — [ici](https://linuxfr.org/users/sygne/journaux/exemple-d-interface-en-ligne-de-commande), [ici](https://linuxfr.org/news/a-la-recherche-des-sources-de-troff), et [là](https://linuxfr.org/news/groff-sort-en-version-121).