Ecriture de document, LaTeX ou MD ?

Documents scientifiques, informatiques etc...

a marqué ce sujet comme résolu.

Salut tout le monde,

Aujourd'hui ce message s'adresse surtout a tout les gens ayant l'habitude de la rédaction de documents a portée technique.

Suite a une conversation commencee ici et ayant des questions persos a poser, voici un sujet pour en parler.

La question est donc, quel est l'outil le plus adapte, simple, rapide et souple pour faire du traitement de texte de documents a portée technique (donc contenant potentiellement des figures, tableaux, code…)

Certains défendent le markdown+pandoc, d'autres le latex, d'autres un mix etc… Parlons-en !!

Perso jusqu’à maintenant je travaillais en latex avec Latexilla comme outil de rédaction, seulement si je peux gagner en productivité je suis preneur !

+0 -0

Pour moi c'est surtout une question d'habitude. Pour des gros gros truc (une these) je ne suis pas surs qu'un markdown+pandoc soit le plus adapté (et encore). Par contre quand tu fais des trucs de taille simple, genre articles un rapports, moi je m'en sort très bien avec pandoc+markdown. La syntaxe du markdown proposé par Pandoc permet déjà de capturer une très grosse part de la sémantique (Figure, tableaux, mise en forme, formules, biblio, note de bas de pages, etc.). Pour les quelques trucs qu'il ne permet pas (par exemple faire référence à une figure via a un label, si tu sais que tu va produire un pdf/latex avec ton markdown, tu peux injecter le latex correspondant (\label dans le titre de la figure, \ref dans ton texte). Etant donné que tu peux spécifier aussi le gabarit de ton document, il ne reste plus grand chose que tu ne peux pas faire.

Pour moi le dernier point bloquant est que Pandoc se décide ENFIN à implémenter un délimiteur générique1. En gros ce que nous on fait avec les blocs secret/info/etc. (mais probablement avec une autre syntaxe) qui seront wrappé avec un div+class en HTML et dans un begin/end dans Latex. Ainsi tu pourra rédiger pratiquement tout en Markdown, ce sera dans ton template Latex que tu définira ces environnement perso.

Après c'est surtout une question d'habitude mais je trouve que rédiger en markdown est plus agréable et ça permet d'utiliser le même langage pour plusieurs outils (ici, pandoc, dans les docstring de certains langages, dans IPython, etc.)

il existe des "ide" markdown pour avoir un rendu correcte quand tu frappes ?

Oui il existe certains éditeurs qui te proposent un rendu de ce que tu écrit directement ou qui te proposent carrément le live preview a coté. Perso j'utilise un simple éditeur de texte (VIM) qui colore la base. A noter qu'il n'y a probablement pas d'éditeurs qui supportent l'étendue des extensions de Pandoc mais c'est pas bien gênant quand ça reste marginal.

Comment se paramètre l'environnement avec pandoc/md (taille des pages, couleur des codes etc) ?

Ça dépend de la sortie que tu veux mais quelque soit la sortie (Html, ebook, pdf/latex) tu peux spécifier le template. C'est a dire le document vide. Pandoc en propose un par defaut mais tu peux le modifier. Du coup pour une sortie PDF, il te suffit de mettre tes propriétés dans le template, avant le \begin{document}} de ton template et voila.

Oui Pandoc le permet. Il t'autorise à mettre plusieurs doncuments en entrées. Perso souvent je numérote mes chapitres dans le titre :

1
2
3
4
01_Intro.md
02_blbla.md
...
05_conclusion.md

et du coup tu peux faire un pandoc *.md. En gros il concatène tout avant de parser donc c'est considéré comme un seul document.

Comme je l'ai dis de l'autre coté, je trouve un peu dommage que les références n'existent pas d'elles mêmes dans Pandoc (avec genre … [:ref], un truc du genre).

Je suis assez d'accord mais en attendant il est possible de ruser.

Pour les math, oui. Même syntaxe qu'ici $...$ insere une equation inline et $$...$$ une equation indépendante et multi-ligne1. En html tu peux choisir le format de sortie (mathjax, mathML, etc.) et en Latex c'est mit dans dans l'environnement de math correspondant.

edit: Pour info les reference c'est en active discussion manifestement sur le github de Pandoc et ça arrivera probablement rapidement.

edit2:


  1. Correction les balises math sont toujours avec un seul $, Pandoc détecte de lui même si c'est inline ou non. 

+0 -0

Oui.

Pour en revenir à Pandoc, j'ai fait un test de conversion md > latex, et franchement le code LaTeX généré par Pandoc est pas top, pas assez simple. Il appelle aussi plein de packages dont on a pas forcément besoin.

+1 -0

C'est du code généré automatiquement, c'est normal. Tu n'es pas censé le regarder et encore moins le modifier.

edit: et pour les packages, c'est normal. Tu as utilisé le template par defaut qui est obligé de prendre en compte toutes les extensions possibles.

+0 -0

@Vinm : j'ai tenté de lire ton gitbook sur le logiciel libre. Le problème, c'est qu'il y a énormément d'erreurs dans les sommaires : j'ai eu des 404 et des sommaires qui ne correspondaient absolument pas à ce qu'il y avait dans la sidebar. Ceci dit, bon début ;)

@Kje : le temps de compilation d'un gros document en LaTeX devient un élément intéressant quand on approche la centaine de page (bon, ça arrive pas tout les jours). De plus, le fait qu'un programme m'impose certains packages me semble un facteur important, d'autant que tout n'est pas rose dans le monde de LaTeX et que les clash entre extensions sont parfois violent (document qui ne compile tout simplement pas).

L'approche de Pandoc est de ne gérer que le corps du document. En gros ce qu'il y a entre ton \begin{document} et le \end{document} (ou les tags <body></body> pour le html). Cependant beaucoup ne serait pas très content si il te sortait que ça. Donc Pandoc fournit des templates minimales. Donc forcément leur template inclus tous les packages nécessaires à toutes les extensions. Mais si tu n'as pas besoin d'un package, rien ne t’empêche de fournir le template adapté à ton document.

Je ne dit pas que Pandoc/Markdown est parfait, mais pour moi Latex est de façon général encore pire et je préfère aujourd'hui rédiger le gros en markdown et laisser le travail ingrat de la rédaction latex a Pandoc.

Dans mes rêves les plus fou il faudrait que quelqu'un ce décide réellement a mettre un gros de coups de pieds dans ce bordel. Soyons honnête, Latex est d'un autre age (et je ne parle même pas de Tex en dessous). Il serait tant qu'il y ai un nouveau truc prenant la place avec une approche plus moderne. Le markdown de base n'est pas adapté car trop limité pour les gros documents. Mais il devrait être possible de faire un supperset permettant d'atteindre le niveau de Latex niveau fonctionnel mais plus simple et clair.

edit: Perso pour ma thèse je compilais les chapitres indépendamment les uns des autres pendant la rédaction pour m'affranchir des compilation longues. Du coup le temps important n'était présent que quand je voulais une version entière.

+0 -0

Dans mes rêves les plus fou il faudrait que quelqu'un ce décide réellement a mettre un gros de coups de pieds dans ce bordel. Soyons honnête, Latex est d'un autre age (et je ne parle même pas de Tex en dessous). Il serait tant qu'il y ai un nouveau truc prenant la place avec une approche plus moderne. Le markdown de base n'est pas adapté car trop limité pour les gros documents. Mais il devrait être possible de faire un supperset permettant d'atteindre le niveau de Latex niveau fonctionnel mais plus simple et clair.

LaTeX est d'un autre age, ça c'est clair. Ceci dit, qu'est ce que tu imaginerai pour le remplacer ? Le XML est beaucoup trop verbeux :/

LaTeX est d'un autre age, ça c'est clair. Ceci dit, qu'est ce que tu imaginerai pour le remplacer ? Le XML est beaucoup trop verbeux :/

Il parle d'un nouveau truc à inventer, pas d'un truc existant en l'état qui devrait prendre sa place.

Davidbrcz

Absolument d'accord, mais y'a pas 20000 moyen de faire un bloc à la \begin{}/\end{}, donc je suis curieux de voir ce que Kje proposerai dans un cas utopique ;)

Je n'ai pas de solution miracle mais je préfère d'avoir un langage basé sur le markdown pour le gros du texte que sur autre chose. Ensuite tu peux imagine pleins de trucs. Des begin/end tu peux en faire comme ça :

1
2
3
4
5
~~~~~~~{MonEnvironnement}

blabla

~~~~~~~

Peut importe la syntaxe en fait, il y a toujours 10 000 façon de faire plus propre que Latex. Mais ça necessite aussi de revoir la base. Rien qu'a voir la misere que c'est quelques fois pour écrire dans certaines langues…

Rien qu'a voir la misere que c'est quelques fois pour écrire dans certaines langues…

Ça, c'est la gestion de l'unicode ^^

pierre_24

Avec XeLaTeX ou LuaLaTeX l'UTF-8 est l'encodage par défaut. pdfLaTeX c'est fini en 2014, d'autant plus que Babel fonctionne très bien et que TikZ et PSTricks compilent directement en PDF (on peut même mélanger les deux, enfin pas dans le même graphique). Bien sûr, on peut insérer tous les caractères unicode à condition d'utiliser les bonnes polices (aussi facile qu'avec Word en utilisant le package fontspec)…

Je suis d'accord qu'il faudrait peut-être moderniser LaTeX ou créer un tout nouveau système de composition mais il faut bien avouer que depuis quarante ans1 les choses ont bien évolué. Ça me semble difficile de recréer quelque chose qui allie à la fois une typographie quasi parfaite et un langage suffisamment couplé avec le contenu pour être plus puissant qu'un dérivé d'XML avec des feuilles de style. Lua(La)TeX est encore très jeune mais c'est à surveiller de ce point de vue. Et n'oubliez pas le mode mathématique. Vous voyez-vous vraiment faire des mathématiques imbriquées avec la syntaxe de Kjé ci-dessus ?

Selon moi, le point à travailler est un système pour dessiner qui prend les avantages de Tikz, de PSTricks, d'Asymptote, etc. pour vraiment tout faire, y compris la 3D vectorielle (avec les labels dans le plan de la page, c'est très important) et les graphes, de façon simple et rapide et avec précision (donc pas seulement avec des valeurs numériques mais en faisant vraiment de la construction géométrique).

Pour parler du Markdown et de ses cousins, je pense que c'est adapté pour des documents simples, comme on l'a déjà dit. Le problème vient surtout des convertisseurs. Dans le cas de Pandoc qui convertit du Markdown en LaTeX, le code est très sale comme on l'a déjà dit. Le problème ne vient pas uniquement des templates. Un exemple simple : *texte* est convertit \textit{texte} au lieu de \emph{texte}. C'est un problème assez grave sans compter les environnements center sauvages et d'autres.

J'aime vraiment les langages de balisage légers et j'aimerais plus les utiliser mais il faut bien que je me rende à l'évidence que je vais plus vite en écrivant du LaTeX directement que de faire la chasse aux mauvaises pratiques dont même un TeXniciens ayant appris LaTeX sur OC n'aurait pas idée.


  1. Donald Knuth a sorti TeX en 1977. 

+2 -0

Avec XeLaTeX ou LuaLaTeX l'UTF-8 est l'encodage par défaut. pdfLaTeX c'est fini en 2014, d'autant plus que Babel fonctionne très bien et que TikZ et PSTricks compilent directement en PDF (on peut même mélanger les deux, enfin pas dans le même graphique). Bien sûr, on peut insérer tous les caractères unicode à condition d'utiliser les bonnes polices (aussi facile qu'avec Word en utilisant le package fontspec)…

Ce qu'on pouvait faire à peu près en LaTeX avec inputenc. Bref … Pour le fun, j'ai testé la compilation d'un bête document avec les trois, et j'y ai vu aucune différence, en fait, donc pour moi c'est kiff, c'est un peu comme changer de compilateur pour compiler un code, peu importe celui-ci, t'es sensé te retrouver avec la même chose à la fin. Tant mieux si il est plus modulable, mais en gros, ça apporte rien à LaTeX lui-même. Quand à la possibilité d'exécuter du code Lua directement, j'ai envie de dire que c'est plus un langage de macro de plus … Tant mieux, mais une fois encore, dans mon écriture de texte quotidienne, je m'en fout un peu :p

Je suis d'accord qu'il faudrait peut-être moderniser LaTeX ou créer un tout nouveau système de composition mais il faut bien avouer que depuis quarante ans les choses ont bien évolué. Ça me semble difficile de recréer quelque chose qui allie à la fois une typographie quasi parfaite et un langage suffisamment couplé avec le contenu pour être plus puissant qu'un dérivé d'XML avec des feuilles de style. Lua(La)TeX est encore très jeune mais c'est à surveiller de ce point de vue. Et n'oubliez pas le mode mathématique. Vous voyez-vous vraiment faire des mathématiques imbriquées avec la syntaxe de Kjé ci-dessus ?

Pas avec des tildes, si c'est ça qui te pose problème, mais oui, ça pourrait se faire. Après, faut bien savoir de quoi on parle. LaTeX (ou TeX), c'est d'une part un langage qui pourrait être perfectionné, mais aussi le traitement de celui-ci pour sortir un PDF (ou un postscript) à la fin. Je vais me faire l'avocat du diable, mais à l'heure actuelle, tu as un contrôle de la typographie qui est également très fin avec Word ou équivalent (et pourtant je préfère LaTeX, hein). LuaTex, une fois encore, c'est changer l'interpréteur qui est derrière, mais pas le langage en lui-même (et rajouter des macros, ok) :p

Selon moi, le point à travailler est un système pour dessiner qui prend les avantages de Tikz, de PSTricks, d'Asymptote, etc. pour vraiment tout faire, y compris la 3D vectorielle (avec les labels dans le plan de la page, c'est très important) et les graphes, de façon simple et rapide et avec précision (donc pas seulement avec des valeurs numériques mais en faisant vraiment de la construction géométrique).

C'est justement presque le cas avec les outils que tu propose ([HS]PsTriks, vraiment?[/HS]). Et si je devais donner un défaut à tout ça, c'est que comme rien n'est pré-compilé, ça rend une compilation extrêmement lente (et je parle pas de Pgfplot, une catastrophe). Pour faire des graphes, je préfère encore employer gnuplot, ça donne un truc pas trop dégeux et qui au moins, est compilé une bonne fois pour toute. Donc plutôt que de chercher à réinventer la roue, plutôt travailler sur une solution de pré-compilation bien faite.

Pour parler du Markdown et de ses cousins, je pense que c'est adapté pour des documents simples, comme on l'a déjà dit. Le problème vient surtout des convertisseurs. Dans le cas de Pandoc qui convertit du Markdown en LaTeX, le code est très sale comme on l'a déjà dit. Le problème ne vient pas uniquement des templates. Un exemple simple : *texte* est convertit \textit{texte} au lieu de \emph{texte}. C'est un problème assez grave sans compter les environnements center sauvages et d'autres. J'aime vraiment les langages de balisage légers et j'aimerais plus les utiliser mais il faut bien que je me rende à l'évidence que je vais plus vite en écrivant du LaTeX directement que de faire la chasse aux mauvaises pratiques dont même un TeXniciens ayant appris LaTeX sur OC n'aurait pas idée.

TD

Ceci n'as rien à voir. Le fait que Pandoc converti mal en LaTeX est une chose. Le fait est aussi que c'est un défaut qui n'as rien à voir avec LaTeX lui-même (et qui pourrait de toute façon être corrigé). Et de toute façon, dans un monde idéal, ces défauts n'existeraient pas, parce que on passerait directement du markdown au pdf sans passer par LaTeX. En plus, pandoc est pas une mauvaise chose, il a juste pour défaut que de par la nature même de certains langages, tout ne peux pas forcément être converti en tout :)

Tient, puisqu'on en est à parler de ces évolutions de pdfLaTeX … Qu'apporte-t-elle effectivement, du coup ? (à part le support de l'unicode, ok, c'est un avantage non-négligeable).

Ce qu'on pouvait faire à peu près en LaTeX avec inputenc. Bref … Pour le fun, j'ai testé la compilation d'un bête document avec les trois, et j'y ai vu aucune différence, en fait, donc pour moi c'est kiff, c'est un peu comme changer de compilateur pour compiler un code, peu importe celui-ci, t'es sensé te retrouver avec la même chose à la fin. Tant mieux si il est plus modulable, mais en gros, ça apporte rien à LaTeX lui-même. Quand à la possibilité d'exécuter du code Lua directement, j'ai envie de dire que c'est plus un langage de macro de plus … Tant mieux, mais une fois encore, dans mon écriture de texte quotidienne, je m'en fout un peu :p

pierre_24

C'est normal que ça ne change pas grand chose, il ne s'agissait pas de révolutionner la manière de composer en LaTeX. Même si on pouvait faire plein de choses avec inputenc, dès qu'on sortait des alphabets latins ou grecs il fallait passer par des packages spécifiques. Là, il suffit juste de sélectionner la bonne police et de taper directement les caractères.

C'est justement presque le cas avec les outils que tu propose ([HS]PsTriks, vraiment?[/HS]). Et si je devais donner un défaut à tout ça, c'est que comme rien n'est pré-compilé, ça rend une compilation extrêmement lente (et je parle pas de Pgfplot, une catastrophe). Pour faire des graphes, je préfère encore employer gnuplot, ça donne un truc pas trop dégeux et qui au moins, est compilé une bonne fois pour toute. Donc plutôt que de chercher à réinventer la roue, plutôt travailler sur une solution de pré-compilation bien faite.

pierre_24

Asymptote est semi-précompilé. Les dessins sont compilés à part (il faut le refaire quand un dessin ou que la mise en page changent) mais le texte qu'on y met est traité quoi qu'il arrive.

Le problème de tout faire à part, c'est la cohérence graphique et parfois les mathématiques qu'on souhaiterait intégrer.

Tient, puisqu'on en est à parler de ces évolutions de pdfLaTeX … Qu'apporte-t-elle effectivement, du coup ? (à part le support de l'unicode, ok, c'est un avantage non-négligeable).

pierre_24

Le but de XeLaTeX était de gérer l'Unicode et d'utiliser des polices dans les formats OpenType.

+0 -0

Très honnêtement je me suis mis au troff pour certains documents (type rapport de 40 pages avec page de garde, schémas, sommaire, bibliographie, annexes et tout). Je trouve que cela passe bien, moins lourd que le LaTeX à mettre en place en terme de syntaxe, plus complet que le markdown pour remplir cette fonction.

En plus ça a été conçu pour UNIX et est très utilisé encore pour les pages de manuel, en apprenant ce langage tu apprends donc quelque chose d'utile dans un autre contexte que l'écriture de documents personnels ou professionnels.

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte