Maintenant que j'arrive à le générer, j'essaie d'améliorer le rendu et de supprimer les messages d'avertissement qui apparaissent un peu partout.
Tout d'abord, dans les balises contenant des commandes à saisir (<screen>, <literallayout>, <programlisting>, <synopsis>), j'ai une première ligne vide. C'est assez désagréable visuellement principalement parce que c'est très visible : le fond est gris pour le contenu de ces balises. Le problème est dû à l'écriture du XML, en voici un exemple :
<screen>
createdb ma_base
[... etc ...]
La solution est simple : supprimer le retour chariot entre <screen> et la première ligne du contenu. On obtient donc ceci :
<screen>createdb ma_base
[... etc ...]
C'est pas très amusant à faire et c'est très très long. Je ne connais pas de moyen d'automatiser cela... si vous en trouvez un, n'hésitez pas à me prévenir par un petit message dans les commentaires.
J'ai eu aussi un autre problème bien gênant. Une commande ou le résultat d'une commande ne tient pas forcément sur une ligne. Dans le cas des balises décrites précédemment, il n'y a pas de retour à la ligne automatique. J'ai donc commencé par modifier ces commandes manuellement mais j'ai fini par trouver une astuce bien intéressante. En ajoutant
<xsl:attribute-set name="monospace.verbatim.properties">
<xsl:attribute name="wrap-option">wrap</xsl:attribute>
</xsl:attribute-set>
mon problème n'existe plus. J'ai essayé la deuxième astuce qui permet d'ajouter un caractère indiquant un saut de ligne qui n'aurait pas dû exister mais je n'ai pas réussi à le faire fonctionner. Je tenterai de nouveau plus tard.
Le dernier problème que j'ai concerne les tableaux. Sans indication supplémentaire, FOP crée des colonnes de taille égale. Donc, si vous avez cinq colonnes, quelque soit leur contenu, elles disposeront chacune de 1/5 de la largeur du tableau. Difficilement acceptable. Il suffit d'ajouter une information dans la déclaration du tableau pour que la taille des colonnes soit modifiée. Par exemple, avec
<colspec colnum="1" colname="col1" colwidth="1*"/>
<colspec colnum="2" colname="col2" colwidth="2*"/>
<colspec colnum="3" colname="col3" colwidth="1.5*"/>
<colspec colnum="4" colname="col4" colwidth="1*"/>
La première colonne aura 18% de la largeur du tableau, la deuxième 36, la troisième 27 et la dernière 18.
Cela représente beaucoup de modifications manuelles, de générations, de vérifications... et on recommence 
Cela étant dit, le résultat est très positif.