Journal txt2TeX, un simple traitement de texte

Posté par .
Tags : aucun
10
24
déc.
2008
Le projet txt2TeX est né de l'admiration pour l'apparence et la qualité du placement des lettres dans le système LaTeX, ainsi que pour la simplicité de txt2tags.

Mais il est né également de la frustration de ne pouvoir utiliser simplement LaTeX pour écrire de la prose, sans avoir à subir sa syntaxe particulièrement intrusive et sa complexité.

Le but est donc de pouvoir utiliser txt2tags comme pré-processeur, et ainsi garder des marques de formatage non distrayantes, tout en pouvant exporter en LaTeX et html selon le type des documents finaux : publication papier ou page internet.

Cet outil (on devrait plutôt dire, ce petit hack) s'adresse surtout à ceux qui souhaitent écrire facilement et rapidement un texte de type poésie ou prose, sans entrer dans les méandres des commandes LaTeX (genre, les profils littéraires). Les fonctionnalités sont réduites, mais devraient permettre de répondre à la plupart des besoins de base.

D'ailleurs même si ce n'est pas prévu pour, vous pouvez également rajouter du code spécifique à LaTeX directement dans le corps du document txt2tags.

Vos suggestions et idées d'amélioration seront les bienvenues.


Exemple d'export html (sert également de page d'accueil) :
http://anamnese.online.fr/site2/txt2tex/sample.html

Export PDF :
http://anamnese.online.fr/site2/txt2tex/sample.pdf
Export PDF en double page :
http://anamnese.online.fr/site2/txt2tex/sample-2x1.pdf

Source de ces documents :
http://anamnese.online.fr/site2/txt2tex/sample.t2t
  • # Génial !

    Posté par (page perso) . Évalué à 3.

    Mais c'est tout simplement génial. J'en rêvais !

    Le seul truc qui me manque, c'est qu'il fasse automatiquement des PDF au format A5 en mode "brochure" avec une page de garde et une dernière page issue d'un template.
    • [^] # Re: Génial !

      Posté par . Évalué à 2.

      Merci.

      En plaçant le papier (dans sample.sty) à a5paper, et en utilisant make booklet, tu devrais pouvoir faire une brochure dont lorsque l'on plie les feuilles a5 en deux, on obtient un carnet au format a6, et dont les pages se suivent (mais je ne sais plus ce que cela donne si on a beaucoup de pages, si c'est automatiquement géré ou pas)

      Pour rajouter une page de garde et une dernière page déjà existante, tu devrais pouvoir le faire avec pdfjam, par contre cela ne pourra peut être pas utiliser de template, ou alors il faudra bricoler dans la source...

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Merci...

    Posté par . Évalué à 2.

    Je rêvais du rendu de Latex pour mes cours de droit, je crois que je suis tombé pile sur ce qu'il me fallait :)
    • [^] # Re: Merci...

      Posté par . Évalué à 3.

      mais j'espère bien :)

      Attention par contre, dans le fichier txt2tex.sty, en théorie qui n'est pas à modifier pour un usage normal, j'ai mis des valeurs qui sont peut-être un peu "aggressives" vis à vis du placement des lettres pour LaTeX, aussi il sera peut-être nécessaire de modifier ou commenter ces lignes pour améliorer le rendu de LaTeX :
      \pretolerance=800
      \tolerance=400
      \emergencystretch=1em
      \sloppy
      \hbadness=5000

      J'ai réutilisé cela tel quel d'un modèle que j'avais fait il y a quelques années, et cela m'évitait d'avoir des lignes qui dépassent dans un document dont les colonnes étaient assez étroites, mais je n'ai pas testé depuis en modifiant ces valeurs pour un texte plus normal.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # HTML invalide

    Posté par . Évalué à 2.

    Ta page d'exemple est invalide, avant même le DOCTYPE tu as
    <?<br/>
    <br/>
    <br/>
    du coup le codage des caractères n'est pas lu correctement (avec konqueror) et l'UTF-8 interprété comme du ISO-8859-1 ça fait très moche.

    À part ça c'est une idée intéressante.
    • [^] # Re: HTML invalide

      Posté par . Évalué à 2.

      effectivement, cela fait une erreur. Txt2tags propose d'exporter en html à la papa (façon vieux netscape avec les balises en majuscules etc), aussi je préfère utiliser l'export xhtml. Seulement, comme je l'utilisais pour générer des pages php auparavant, les balises <?xml passaient mal, et j'avais essayé maladroitement de les retirer.

      J'ai corrigé cela, j'espère que cela ne casse rien ailleurs.

      Le qui s'insère, c'est pour permettre de pouvoir taper par exemple de la poésie avec les retours à la ligne automatique.

      Pour le moment cela ne valide pas encore, mais je vais essayer d'améliorer ce point.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: HTML invalide

      Posté par . Évalué à 2.

      du coup le codage des caractères n'est pas lu correctement (avec konqueror) et l'UTF-8 interprété comme du ISO-8859-1 ça fait très moche.

      C'est marrant, j'ai plutôt le problème inverse d'habitude mais c'est tout aussi moche.
      Dans ma boîte on utilise encore une vieille version de bugzilla qui n'a pas le header (et/ou qui a été bricolé)
      et quand j'oublie de changer l'encoding «à la main», mes windowsiens de collègues en presque ISO-8859-1,
      aka windows-1252 sont tout perdu.
      Sinon, il y a encore des distributions linux qui ne sont pas en full UTF8 par défaut, à part pour l'embarqué ?
  • # merci

    Posté par . Évalué à 5.

    Simplifier LaTeX est un besoin pressant, donc ce genre de projet est toujours intéressant.

    J'en profite pour citer les autres systèmes qui se basent sur le même principe :

    Muse-mode (pour emacs) (mon préféré) : http://mwolson.org/projects/EmacsMuse.html
    Muse est un mode permettant l'édition et la maintenance facile de documents et leurs exports dans différents formats. Vous pouvez donc maintenir ainsi un wiki, un site web static, des documents latex etc. Les capacités d'extension des filtres d'exports sont excellentes.

    Pandoc : http://johnmacfarlane.net/pandoc/
    Pandoc est un outil qui vous permet de parser du markdown et quelques autres syntaxes, et de sortir en markdown, reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup, groff man pages, et S5 HTML slide shows. Pas mal :)

    Org Mode (pour emacs) : http://orgmode.org/
    Org-mode est un mode qui vous permet d'organiser votre fichier de texte sous forme d'arbre, avec des propriétés aux noeuds. Si vous tapez du texte dans vos noeuds, vous aurez un export latex de qualité.
  • # est ce que les langues non latines sont gérées ?

    Posté par . Évalué à 1.

    Tout est dans le titre...
    • [^] # Re: est ce que les langues non latines sont gérées ?

      Posté par . Évalué à 2.

      hmm, à priori oui, puisque c'est en utf8 par défaut. Il y a un exemple en Islandais, qui n'est pas une langue particulièrement latine :)

      Par contre si tu parles des langues s'écrivant de gauche à droite comme en persan, ou pour le chinois etc, je n'ai pas d'idée comment cela fonctionne. En rajoutant du persan cela s'affiche bien en html, mais pas dans le pdf (le texte est bien là dans la source tex, peut-être que la police palatino ne supporte pas cette langue). Pour les langues asiatiques, je serais curieux de savoir si c'est possible.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Lettrine et petites majuscules

    Posté par . Évalué à 3.

    Dans le PDF les lettrines ne sont suivies que d'une petite majuscule. N'est-ce pas le mot en entier qui devrait être écrit en petites majuscules ?
    • [^] # Re: Lettrine et petites majuscules

      Posté par . Évalué à 2.

      Apparemment, il faudrait oui. http://perso.univ-lyon2.fr/~poitou/Typo/t03b.html :
      "Selon les règles de l'Imprimerie nationale, le reste du premier mot dont fait partie la lettrine est en petites capitales.". Je n'ai pas encore trouvé comment faire en LaTeX. Accessoirement, j'aimerais bien pouvoir n'avoir également que la lettrine en majuscule et que les autres lettres soient normales.

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

      • [^] # Re: Lettrine et petites majuscules

        Posté par . Évalué à 2.

        J'ai trouvé, en utilisant les regex de python/txt2tags on peut isoler les lettres ou les mots entiers :

        Lettrine LaTeX sur la première lettre, le reste en minuscule :
        %!postproc(tex): "-\*\*-(.)" "\n\n\\lettrine[lines=2, lhang=0.33, loversize=0.25]{\1}{}"

        ou bien lettrine LaTeX sur la première lettre, le reste du mot (c'est à dire jusqu'à la prochaine espace) en petite majuscule :
        %!postproc(tex): "-\*\*-(.)(.*?) " "\n\n\\lettrine[lines=2, lhang=0.33, loversize=0.25]{\1}{\2} "

        Lettrine en html :
        %!postproc(xhtml): '-\*\*-(.)' '<span style="font-size: 200%; vertical-align: baseline">\1</span>'

        Je vais continuer à travailler là-dessus pour offrir divers choix possibles de lettrines.

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Un mix

    Posté par (page perso) . Évalué à 1.

    C'est marrant j'en parlais ce week end avec quelqu'un, et à la réflexion il m'avait semblé que pour écrire un grand ouvrage LaTeX écrasait la concurence, mais pour de la doc une syntaxe wiki me semblait plus rapide.

    Là c'est un peu un mix des deux, j'ai hâte de voir tout ce qu'on peut faire avec !
  • # RestructruredText

    Posté par . Évalué à 3.

    Pourquoi ne pas faire direct du RestructuredText ? Avec sphinx (http://sphinx.pocoo.org/ ) ça fait du joli html. Mais on peut aussi faire du latex:

    http://sphinx.pocoo.org/

    Et c'est plutot standard (et très utilisé dans la communauté python). D'ailleurs une adaptation de sphinx pour faire des feuilles d'exo ca roxerait, avec un joli html et le latex...
    • [^] # Re: RestructruredText

      Posté par . Évalué à 2.

      oui cela semble pas mal, les pages de doc de python sont très bien présentées. Mais comme j'ai dit, ce projet n'a pas pour but de faire de la publication de textes scientifiques, auquel cas LaTeX direct sera peut-être plus adapté, mais bien de pouvoir écrire des textes littéraires et les exporter facilement en pdf en gérant les marges, les tailles de police, l'entête avec son petit trait en dessous etc.

      J'ai encore du travail à faire dessus, le code des styles n'est pas très propre (j'ai gardé bcp de code obsolète commenté), et j'aimerais encore faire quelques améliorations cosmétiques (et mieux gérer les retours à la ligne pour faire un nouveau paragraphe, c'est un peu bête d'avoir à indiquer une marque spéciale pour cela alors qu'un retour à la ligne serait suffisant).

      En ce qui concerne RestructuredText ou Markdown, je dois dire que je n'aime pas du tout leur syntaxe, à la rigueur je préfère presque écrire du LaTeX direct à ce compte-là. Leur intérêt est bien entendu de pouvoir être exporté également en html propre, sans passer par un convertisseur latex => html

      Mais txt2tags permet également tout cela, j'y suis habitué, et j'aime vraiment bien sa syntaxe qui me semble plus rationnelle, par exemple les marques de style (gras, italique, souligné, barré) sont toujours binaires (2 d'un côté du texte, 2 de l'autre) etc.

      À noter son système de macro puissant (préprocesseur et postprocesseur, utilisant des regex python), et ses possibilités d'extensions relativement faciles (il doit être possible de faire un export pour markdown ou restructuredtext, tout comme il a été fait récemment pour la syntaxe mediawiki, Google Code ou dokuwiki, en plus c'est toujours activement développé...)

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Et Markdown dans tout ça ?

    Posté par (page perso) . Évalué à 3.

    Markdown dispose de nombreuses implémentations, dont la plus aboutie est Pandoc¹, et variantes, comme par exemple Mdown²...

    Je vous invite à aller voir le résultat sur le site³ d'un utilisateur de linuxfr (sur lequel je suis tombé en divaguant ici), qui est vachement bien foutu.

    Voilou voilou, comme quoi y'à plein d'alternatives possibles, libres, imaginables, imaginaires, utiles, inutiles, amusantes ou non, et c'est ça qu'on aime, ici.

    ¹ : http://johnmacfarlane.net/pandoc/
    ² : http://rzpages.ovh.org/projets/mdown/index.php5
    ³ : http://zecrazytux.net/
  • # txt2tags

    Posté par . Évalué à 4.

    C'est quoi la différence avec l'export Latex de txt2tags ?
    • [^] # Re: txt2tags

      Posté par . Évalué à 3.

      l'export LaTeX de txt2tags est vraiment très basique, et de plus il nécessite souvent de faire un certain travail derrière pour adapter une page de style vraiment à son goût. C'est ce que je faisais auparavant.

      Ayant quelques projets utilisant cela, j'ai préféré mutualiser une unique solution, avec une unique feuille de style qui correspond vraiment à mes besoins.

      Mais comme je trouve les feuilles de style LaTeX pas très lisibles et facile à comprendre, surtout si on doit trouver les bons modules additionnels qui corrigent les limitations du LaTeX de base (genre pour avoir autre chose qu'un taille de police de 10, 11 ou 12 points, il faut avoir extsizes)

      Du coup, au lieu d'avoir à s'embêter l'esprit avec \usepackage[14 pt]{extsizes}, il suffit d'éditer la feuille de style réduite avec \def\DEFAULT_FONT_SIZE{14}

      C'est juste questions de goût, mais au moins on a accès facilement à ça, avec en plus des lettrines et des notes de bas de page non supportées par txt2tags de base.

      Cela reste assez limité et clairement pas orienté publication de documentation scientifique, mais cela permet d'avoir un aspect correct si on veut sortir un petit livre de type "littérature".

      Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

Suivre le flux des commentaires

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