Journal Conversion Xml en LaTeX

Posté par  .
Étiquettes : aucune
0
21
juil.
2004
Bonjour

Grand habitue de LaTeX, j'aimerais me pencher sur une autre maniere d'ecrire mes documents (principalement des rapports scientifiques) en structurant ca de maniere forte.
SGML me parait un tres bon candidat, mais la popularite du XML me fait penser qu'il devrait suffir... et surtout apres avoir vu les document DTD ou je sais plus quoi, dans le genre indigerable y a pas mieux...

Je me demande "Mais comment font les autres pour ecrire leur doc?" Tout en LaTeX... c'est bien, mais franchement niveau reusabilite c'est pas le top...

Mon bonheur ce serait d'avoir un truc du genre:
XML + XSLT ===(programme)==> LaTeX

Je c'est que c'est possible...

Pour les formules mathematiques, MathML permet je pense de couvrir le large eventail des possibilites de latex.

Mes problemes:
- d'abord qu'utiliser pour effectuer la conversion?
J'aimerais si possible un programme GPL libre qui existe sur toutes les plateformes.
Un script Perl serait ideal en fait mais je n'en ai pas trouve de simple.
- L'interet de LaTeX est de pouvoir utiliser des packages supplementaires:
* geometry pour pouvoir gerer les marges
* longtable pour gerer les long tableaux sur plusieurs pages
* listings pour la coloration des codes sources inclus
Je suppose que tout ceci est adaptable en utilisant le template XSLT. Mais je ne connais rien a la syntax...
- Apres la syntax du Xml est un peu dur a direger, vous avez un BON editeur XML simple, pratique,..?

Bref mon probleme est que je me retrouve trop souvent avec un document LaTeX ou tout est melange (pas de separation contenu/forme) et que j'aimerais bien faire un truc propre !!!

Thanks all!!!
  • # DocBook ?

    Posté par  . Évalué à 2.

    Docbook est un language basé sur Xml pour écrire des documents (des bouquins entre autres), tu trouvera des infos desus sur http://www.docbook.org(...) dont le bouquin de référence (écrit en docbook!! ), après avoir écrit ton xml (la dtd est fournie), tu peut le transformé en html, pdf (pour le latex j'en suis pas sur j'en ai pas eu besoin quand je l'ai utilisé ...) à l'aide de fichier xsl fournit ...
    J'avait pas eu trop de mal à l'utilisé par contre je ne sais pas trop pour les formules mathématiques (ça dit utilisé mathml je pense)

    D'autres ont expérimenté ?
    • [^] # Re: DocBook ?

      Posté par  . Évalué à 2.

      Pour la perenite je veux que ca passe par du LaTeX (comme ca je peux patcher ce qui me convient pas avec des petits scripts perl je sais que c'est gore mais des fois pas le choix).
      Et le langage est un peu complexe surtout!
      Le site officiel est peu convivial je trouve
      Et ce qui manque c'est une introduction en douceur.

      par contre pour les outils a utiliser?
      Et surtout est ce qu un script perl existe?
      • [^] # Re: DocBook ?

        Posté par  (site web personnel) . Évalué à 3.

        DocBook répond à toutes tes attentes :
        c'est fait pour les documents scientifiques
        c'est 100% XML
        c'est vraiment orienté contenu, beaucoup plus que LaTeX qui mélange encore un peu de présentation
        c'est extensible au MathML et SVG
        tu peux te faire une feuille de transformation XSLT --> LaTeX si ca t'amuse.
        après pour les outils je te conseille d'utiliser DocBook Tool Chain Manager qui gère tout de A à Z à la seule condition que ton document XML soit en UTF-8.

        et cerise sur le gateau, bien que je n'ai pas essayé :
        DocBook to LaTeX using Perl
        http://dblup.sourceforge.net/(...)
      • [^] # Re: DocBook ?

        Posté par  . Évalué à 2.

        Alors DocBook est pour toi, car il passe par un fichier TeX avant de générer un PDF, PS, etc. qu'il génère de façon indirecte. Par contre les formats de sortie type (X)HTML, RTF, etc. sont générés automatiquement depuis le XML+XSLT (ou SGML+DSSSL).

        Néanmoins les fichiers PDF sont générés avec pdfjadetex par exemple, je ne sais pas s'ils sont directement exploitables avec d'autres outils LaTeX...

        Sinon, c'est vrai que la doc peut paraître un peu fastidieuse. Néanmoins la doc publié chez O'Reilly est aussi en ligne: http://www.docbook.org/tdg/index.html(...) mais il s'agit essentiellement d'un guide de référence. Et l'utilisation est un peu obscure au départ, néanmoins quand on commence à comprendre comment on peut personnaliser tout ça, ça devient vraiment agréable de facilement générer ses documents directement en html & pdf ^^ Bon, bien sûr ça c'est après avoir créé ses scripts et personnalisé un peu les DSSSL (ou XSLT). Au départ on perd donc pas mal de temps, mais rapidement on en gagne pas mal.

        Par contre, le problème reste l'édition des documents... Il y a des projets pour générer directement du XML au format DocBook avc une interface WYSIWYM, comme conglomerate, mais c'est encore très jeune, peu intuitif et franchement pas agréable à utiliser.

        Alors perso j'ai dév. un petit script qui me permet de transformer un texte à la base en Structured Text ( http://dev.zope.org/Members/jim/StructuredTextWiki/StructuredTextRu(...) ) vers le format DocBook... Ok c'est (presque) idiot car ça génère encore un niveau d'abstraction au dessus du DocBook, mais bon c'est rudement pratique et surtout largement plus agréable à lire que du XML ou SGML (et beaucoup plus rapide lors de l'écriture). À noter que ce genre de solution pourrait t'être de bon aloi : utiliser directement le Structured Text pour te générer du XHTML, du LaTex, etc. Et finalement ne pas utiliser DocBook (moi je l'utilise car j'aime bien la présentation qu'il donne aux documents).
        • [^] # Re: DocBook ?

          Posté par  (site web personnel) . Évalué à 2.

          Alors DocBook est pour toi, car il passe par un fichier TeX avant de générer un PDF, PS, etc.
          il me semble que c'est le format FO qui sert de format intermédiaire, pas TeX. En tout cas c'est ce que font les feuilles XSLT officielles de Norman... ensuite un coup de FOP et zou on a un PDF.
          • [^] # Re: DocBook ?

            Posté par  . Évalué à 2.

            Nop ca depend tu as deux maniere de faire.

            La premiere utilisée par exemple dans le projet de documentation de FreeBSD est d'utiliser jade/openjade qui utilisent le latex.

            En gros on fait xml => latex => ps (=> pdf). Il faut pas rever le code converti est assez crade mais donne un bon rendu

            Tu peux rester aussi totalement XML dans l'esprit et utiliser des outils tels que fop du projet apache (le seul que j'ai testé). Et la tu fais plus

            xml =(xsltproc)=> fo =(fop)=> pdf

            Ca a l'avantage de ne pas utiliser de langage intermediaire mais de ne pas etre au niveau de latex sur tout les points. Ca reste toutefois largement suffisant pour la plupart des choses.

            L'avantage de Docbook est son cote cle en main. Tout ce que tu as a faire c'est ecrire 12 lignes de XSL pour positionner les variables de rendu et basta tu as ton doc. C'est pas aussi souple que latex mais très rapide. Si tu veux un rendu a toi, tu es parti pour une grosse prise de tête mais c'est faisable. De toute façon c'est plus le travail d'un spécialiste dans le cadre de gros groupes de documentation. Tu auras plein d'infos sur docbook.org (il y'a le bouquin de reference) et tu peux aller voir http://www.freebsd.org/cgi/cvsweb.cgi/doc/en_US.ISO8859-1/books/han(...) pour voir ce que ca donne en vrai. De plus tu vas decouvrir des messages d'erreur clair et qui permettent de trouver l'erreur en moins de 4 secondes... Ca va te changer du latex :-p
  • # Pour la conversion MathML -> Latex

    Posté par  (site web personnel) . Évalué à 2.

    Pour convertir du MathML vers le latex, je sais que des etudiants de math de l'insa de rouen on fait ca en projet de fin d'etude il y a deux ans. Leur rapport et le code sont disponibles librement je crois. Il me semble cependant que leur logiciel n'etait pas tout a fait complet.
    Voir cette page et les liens :
    http://www.mutu-xml.org/xml-base/shared/KEY-MATHML.html(...)

    Poste tes conclusions quand tu auras trouve quelque chose qui te convient, je pense que ca peut interesser du monde.
  • # TexML

    Posté par  . Évalué à 2.

    Un projet qui peut t'interesser:

    http://getfo.sourceforge.net/texml/(...)

    Il s'agit simplement d'exprimer les commandes LaTeX en XML.

    Ceci dit, avec un peu d'habitude, le format LaTeX n'est pas un probleme du tout, on peut séparer les parties d'un document en plusieurs fichiers, et le contenu et la forme sont très bien séparés : les paramètres de forme dans l'entete, et tout le reste n'est que du contenu !

    Un éditeur adapté au LaTeX comme Kile, Emacs ou autre aide bcp à l'utilisation de LaTeX.
    • [^] # Re: TexML

      Posté par  . Évalué à 1.

      Nan je ne pense pas que ca m aille je veux vraiment un truc different...

      J ai (pas mal) d'experience latex, et meme en ayant chaque partie dans des fichiers differents, en faisant attention de bien separer forme/fond, a la fin ca devient une bouillie: comment faire pour que tous les tableaux aie la meme "presentation". allez, une newcommand.
      Pareil pour les images. etc...

      Et evidement ca m enerve de tout refaire a chaque fois, donc je me suis fait un fichier incluant toutes mes modif que j inclu a chaque fois (symbole mathematique sur une ligne, tableau de variation, encadrement de texte,...). C'est bien joli mais je trouve ca hyper lourd...

      Par contre si tu as une sorte de "guide de style" strict pour la redaction d'un document latex tout beau tout propre ca pourrait m'aider.
      • [^] # Re: TexML

        Posté par  . Évalué à 1.

        Ce que tu veux, c'est une (ou plusieurs) classe(s) LaTeX. Tu y ranges tout ce dont tu as besoin pour structurer ton document, et ton document source est aussi propre que possible : tout ce qui est crade est caché dans la classe.
        L'autre solution est d'écrire un package qui te soit propre et qui contient toutes tes bidouilles, et que tu charges dans chacun de tes documents.
        Je préfère la classe, parce que ça décrit davantage ce qu'est le document (utiliser la classe article pour faire en fait une lettre, une facture ou un panneau d'affichage écrit en très grande fonte, c'est déroutant : la classe est censée indiquer à quel type de document on a affaire. Utiliser article pour tout et n'importe quoi, c'est mal.

        Question guide de style, c'est assez simple:

        Toujours utiliser les structures existantes pour ce dont elles ont été conçues:
        - quote et quotation ne doivent contenir que du texte de citation
        - utiliser emph pluôt que textit

        Les chose à ne pas utiliser dans le document :
        - les commandes de gestion de fontes (taille, famille, forme, etc.)
        - lescommandes de gestion de taille/distance (hspace, vspace, center)
        - les commandes « graphique » (hline, dots)
        - les commandes de changement de type de numérotation de page
        - les parbox ou minipage

        Toutes les commandes interdites *doivent* être placées dans des nouvelles commandes (newcommand, newenvironment), qui définissent une nouvelle structure de données. Tu utilises cette structure de données dans ton document, pour indiquer que telle donnée a ce type de structure, au lieu d'indiquer que telle donnée doit être affichée de telle manière.

        L'idée maîtresse est de séparer le plus complètement possible la structure et la présentation. Au lieu de spécifier que telles données doivent être présentées de cette manière, tu spécifies que telles données sont de tel type (en les « marquant » avec les balises appropriées) et dans la classe dont je parlais plus haut ou dans ton package à toi, tu spécifies que tel type de données doit être présenté de telle manière. Par exemple, \chapter{} permet de dire que le texte entre accolades est un titre de chapitre. Mais la manière dont un titre de chapitre est effectivement présenté dans le document final est décrit dans la classe (article, report, book), pas dans le document LaTeX lui-même.

        Autres exemples : tu veux que ton titre soit en gras? redéfinis \title. Tu veux des listes avec des espaces particuliers, des puces ou tirets particuliers ? redéfinis itemize et compagnie, ou crée un nouvel environnement, qui porte un nom spécifique. Tu veux faire un catalogue de produits quelconques ? crée une commande qui prend comme paramètre le nom du produit, sa description et son prix. Dans le fichier LaTeX, tu dis simplement que « ceci est un produit, et il a tel caractéristiques. » Dans la classe, tu definis comment le produit est présenté sur la page (nom en gras, prix suivi du symbole euro, description en italique dans une parbox centrée, etc.)

        J'ai utilisé LaTeX depuis bon nombre d'années, et pour ce qui est d'écrire des documents dans la pratique, je le préfère de loin à DocBook, surtout parce qu'XML (ou SGML) nécessitent de taper un tas de tags, alors qu'en LaTeX, la syntaxe pour les tags est simplement plus courte, donc plus facile à taper au clavier. De plus, LaTeX est facilement extensible (à coups de newcommand), alors que DocBook est complètement figé. L'inconvénient de LaTeX, comme tu t'en es rendu compte, c'est qu'on peut facilement mélanger structure et présentation, et ça devient vite le bordel si on n'a pas un peu de rigueur dans la rédaction des documents.

        J'espère que ça pourra t'aider.
        • [^] # Re: TexML

          Posté par  . Évalué à 2.

          >surtout parce qu'XML (ou SGML) nécessitent de taper un tas de tags, alors qu'en LaTeX, la syntaxe pour les tags est simplement plus courte, donc plus facile à taper au clavier.

          utilise un vrai éditeur de texte :-)
          • [^] # Re: TexML

            Posté par  . Évalué à 2.

            Quel est l'intérêt d'avoir des macros qui remplacent \section par <section id="machintruc"> </section>, alors que si je fais du LaTeX, quand je tape \section, nul besoin de transformer ça, puisque justement, c'est la commande dont j'avais besoin. Et ne va pas me dire que je peux aussi choisir « section » dans un menu, avec la souris, hein !

            Ce que je veux dire, c'est que les commandes en LaTeX sont optimisées pour ne pas être plus longues que nécessaire. XML est optimisé pour être fortement structuré (ce que LaTeX n'est pas), au prix d'un inconfort de rédaction (ou de devoir utiliser un « vrai » éditeur de texte) et d'un inconfort de lecture (tous ces tags partout, c'est chiant, à moins d'avoir une feuille de style qui s'applique automtiquement, mais alors autant utiliser un traitement de textes). LaTeX c'est lisible (sauf les tableaux, mais XML ne sait pas faire mieux) et facile à taper quel que soit l'éditeur de texte qu'on utilise.
            • [^] # Re: TexML

              Posté par  . Évalué à 2.

              En docbook ca serait plutot

              <sect1>
              <title>machinetruc</title>
              </sect1>

              Et comme je t'ai dit tout éditeur de texte propose un mode SGML qui referme automatiquement les balises. De plus un truc un temps soit peu evolué comme le mode psgml d'emacs (j'utilise Vim pourtant) te propose la liste des tags valides a cet endroit precis selon la DTD. De même que la validation en allant etc. Pour avoir fait les deux, Docbook n'est pas plus long a tapper.

              De plus gros avantage les messages d'erreur ne sont pas abscons. Quand tu as 3Mo de fichiers source je te jure que la sortie de latex je la fou a la poubelle par ce que j'ai pas une semaine pour trouver l'erreur (genre des buffers trop petits dans un obscure fichier de conf...).

              Pour le chiant a lire tout dépend ce que tu fais. Les fichiers de config des softs ou un fichier OpenOffice est une bouillie de tag illisible, c'est fait pour être lu et écrit par une machine. Les DTDs qui sont déstinées a la rédactions de documentation ou d'articles sont très lisible et il n'y a pas plus de tag qu'en latex. Une abbreviation reste une abbreviation, un nom de variable reste un nom de variable etc. Reste les tableaux qui sont aussi "merdiques" chez les deux. Je lis depuis un moment les listes de divers projet de documentation (FreeBSD notament) et je n'ai jamais vu personne se plaindre que Docbook etait illisible, d'ailleur je me demande pourquoi tout les projets de doc l'utilisent puisque le rendu n'est pas vraiment son fort pour le moment...
              • [^] # Re: TexML

                Posté par  . Évalué à 2.

                Je persiste et je signe : pour autant que je me souvienne, un paragraphe en DocBook se marque avec des tags <para> et </para>. En LaTeX, il suffit de sauter une ligne. Je trouve ça nettement moins lourd à la lecture (sans parler de la rédaction). Et je préfère nettement mon \section{Foo Bar} au <title> à l'intérieur du <sect1>. Question d'habitude aussi, probablement.

                De plus, si je ne trouve pas mon bonheur dans les éléments définis par DocBook, je fais comment ? Au moins avec LaTeX, je peux facilement étendre localement le jeu d'instructions ; en DocBook, il faut modifier la DTD et les feuilles de style, puis distribuer les nouvelles DTD et feuille de style avec le document. SGML/XML force à faire les choses proprement, mais pour les petits détails, c'est vraiment prendre un marteau pour écraser une mouche.

                Je ne sais pas s'il existe un XML Schema pour DocBookXML (qui avec les namespaces permettrait d'ajouter d'autres vocabulaires à DocBook), mais modfiier les feuilles de style c'est coton (cela dit, si on le fait tous les jours, ça paraît sûrement plus facile).
                • [^] # Re: TexML

                  Posté par  . Évalué à 2.

                  Disons que si tu veux ecrire une lettre ou faire des slides ce n'est clairement pas l'outil adapté. Je ne sais pas s'il existe des DTDs adaptées aux différents usages de latex. Je bosse uniquement sur de la documentation et c'est exactement ce a quoi correspond Docbook.

                  C'est un outil génial quand tu veux avoir une rendu correct et uniforme sur une grosse masse de documents (livre, ensemble d'articles etc.). Si tu veux faire mumuse avec le rendu tout les 3 matins ca va être un peu plus sportif .

                  C'est faisable ( http://docbook.org/tdg/en/html/ch05.html(...) ) mais assez imbitable :-)
                  Et la il manque le modifs du rendu qui est pas très sexy non plus.
        • [^] # Re: TexML

          Posté par  . Évalué à 0.

          Hum merci a tous, et particilierement a toi

          Je vais essayer de faire mon premier VRAI document LaTeX tout propre tout nickel pour mon rapport de stage et pour ma documentation technique...
  • # Et DB2LaTeX ?

    Posté par  (site web personnel) . Évalué à 1.

    Salut,

    Je pense que ce projet ( http://db2latex.sourceforge.net/(...) ) peut te servir au moins de base.
    Il permet de transformer du xml docbook en latex et ca marche plutôt pas mal. C'est ce que j'ai utilisé pour générer la documentation de GForge (moyennant quelques adaptations mineures qui sont sur le CVS de GForge).
    Tu peux voir la documentation là : http://gforge.org/docman/view.php/1/34/gforge_manual.pdf(...) (XML Docbook -> LaTeX -> PDF).

    Je n'y connais rien en LaTeX donc c'est vraiment le truc de base qui sort de DB2LaTeX.

    Guillaume

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.