Nouveautés
Après plusieurs mois d'intense procrastination, j'ai mis en ligne la version 0.2 d'Utroff. Cette version n'apporte aucune nouvelle fonctionnalité, elle se contente de simplifier l'installation et la première utilisation :
- L'archive incorpore un makefile pour installer Heirloom Troff, la principale dépendance d'Utroff.
- Pour éviter tout conflit avec le troff de votre distribution, l'installation par défaut se fait maintenant dans /opt/utroff/.
- Le subtil script U permet d'utiliser en priorité les logiciels d'utroff, même si ceux-ci sont perdus à la fin du PATH.
- Les variables d'environnement sont dorénavant optionnelles (bug rapporté par Fravashyo).
- La page de man utroff offre une rapide introduction au fonctionnement de troff.
Installation
Du coup, vous pouvez installer, tester, jeter en quelques commandes :
wget http://download.tuxfamily.org/utroff/pub/utroff-0.2.tar.gz
wget http://download.tuxfamily.org/utroff/pub/utroff-0.2.md5sum
md5sum -c utroff-0.2.md5sum
tar -xzf utroff-0.2.tar.gz
cd utroff-0.2/heirloom/
make hlm-configure
make hlm-build
make hlm-install
cd ../
make all
make install
apt-get install linux-libertine ps2pdf
export PATH="$PATH:/opt/utroff/bin"
man utroff || U man utroff
echo ".H3 mon titre" | U troff -muh | U dpost | ps2pdf - > f.pdf
rm -rf /opt/utroff/
Pourquoi fut-ce si long ?
Le système de build d'Utroff est complexe, puisque toute la documentation (html, README, man, pdf) est générée par Utroff lui-même. Cela créé tout un ensemble de dépendances circulaires et de petits bugs que j'ai peu de plaisir à traquer et corriger.
Post-scriptum
Journal généré avec utroff :
U nroff -muw utroff-0.2.tr > utroff-0.2.mkd
# améliorations
Posté par fravashyo . Évalué à 6. Dernière modification le 14 mars 2014 à 12:15.
je constate que l'installation est grandement facilitée grâce à toutes les améliorations que tu as faites depuis la version 0.1.
Bravo !
Petite remarque, pour U, ça appelle /bin/sh, mais ça semble contenir des "bashismes", c'est à dire que sous Linux Mint (dérivé de Debian), /bin/sh est lié à dash (en théorie plus proche du sh posix), et non pas à bash comme sur la plupart des autres distributions, et du coup ça génère des erreurs :
U troff -mus readme.tr | U dpost | ps2pdf - > f.pdf
/opt/utroff/bin/U: 72: [: 3: unexpected operator
/opt/utroff/bin/U: 72: [: 1: unexpected operator
/opt/utroff/bin/U: 84: exec: dpost: not found
troff: fatal error: can't find macro file us
En ce cas, autant appeler bash
(et non pas /bin/bash parce que sur les bsd bash n'est pas placé dans /bin)
Pour les lecteurs de Linuxfr qui voudraient se faciliter l'écriture de documents en utroff, grâce à Sygne qui a bien aidé en cela, on a un export utroff dans txt2tags.
Pour tester :
Par contre le souligné ça passe, mais pas le gras (ni l'italique). Je ne sais plus ce qu'on avait dit à l'époque à ce sujet, peut-être un problème de style…
« I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond
[^] # Re: améliorations
Posté par Sygne (site web personnel) . Évalué à 4.
Heureux de te croiser Fravashyo,
Effectivement, il y a un bashisme dans U: il faut utiliser
-eq
plutôt que==
lors du test[ $# == 0 ]
(je ne savais même pas que c'était là un bashisme…).Il y a aussi un bug: il faut utiliser
:
pour séparer les répertoires de la variable UTROFFONTS et écrireUTROFFONTS=/opt/utroff/lib/font/:/usr/share/fonts/OTF//
plutôt queUTROFFONTS=/opt/utroff/lib/font/,/usr/share/fonts/OTF//
.Quant à text2tag, je viens d'essayer, et le gras fonctionne correctement. Peut-être as-tu souffert du bug ci-dessus…
Mille merci !
[^] # Re: améliorations
Posté par Sygne (site web personnel) . Évalué à 2.
Dans le même genre, on corrigera aussi le test suivant, en remplaçant
==
par=
.J'en perds mon latin.
[^] # Re: améliorations
Posté par erdnaxeli (site web personnel) . Évalué à 2.
Pour détailler un peu, en bash la syntaxe
[[ $# == 0 ]]
est un opérateur de comparaison qui fait partie du langage.Pour faire du sh POSIX, on utilise
[
qui est une commande comme une autre (faîtes unwhereis [
) pour voir), à laquelle on passe des arguments. La page de man est accessible avec unman test
.Après, la syntaxe
[ $# == 0 ]
fonctionne aussi en bash, mais je ne sais pas pourquoi. Il est plutôt conseillé d'utiliser la commandetest
(avec-eq
donc) si on veut du code portable, ou[[
.Il existe deux catégories de gens : ceux qui divisent les gens en deux catégories et les autres.
[^] # Re: améliorations
Posté par Sygne (site web personnel) . Évalué à 2.
Merci pour ces précisions.
Concernant
-eq
la page de man de dash indique que cette comparaison ne concerne que les integers. Elle propose un simple=
pour les strings.Et ça marche bien aussi avec bash (du moins chez moi), qui, à mon avis, reste posix compliant, même s'il ajoute sa propre syntaxe par dessus.
[^] # Re: améliorations
Posté par Sygne (site web personnel) . Évalué à 3.
J'ai mis en ligne une nouvelle version – utroff-0.3 – corrigeant ces petits bugs.
Encore merci Fravashyo !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.