From c1e34856332318dd2cdbdf7b0f5d9b9c2daf6d81 Mon Sep 17 00:00:00 2001 From: RochDLY Date: Wed, 10 Apr 2024 16:56:03 +0200 Subject: =?UTF-8?q?ajout=20d'un=20nouveau=20billet=20sur=20l'int=C3=A9grat?= =?UTF-8?q?ion=20d'ekdosis=20dans=20Stylo=20+=20modification=20de=20l'inde?= =?UTF-8?q?x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2024-04-10-la-magie-de-l-ast-de-pandoc.html | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 docs/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html (limited to 'docs/posts') diff --git a/docs/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html b/docs/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html new file mode 100644 index 0000000..7e39031 --- /dev/null +++ b/docs/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html @@ -0,0 +1,101 @@ + + + + + + + + Roch Delannay | La magie de l’AST de Pandoc + + + + + + + + + + + + +
+
+ + +
+
+
+

La magie de l’AST de Pandoc

+ + + +
+
+

Nouvel essai pour intégrer ekdosis dans Stylo

+

Les scripts peuvent être retrouvés sur ce dépôt gitlab

+

Fonctionnement

+

Dans ce dossier nous trouvons une autre méthode pour intégrer ekdosis à Stylo.

+

Pandoc interprète les balises LaTeX lorsqu’elle se trouvent dans des documents en Markdown.

+

Pour observer cette interprétation, il faut aller regarder ce qu’il se passe dans l’AST du document, auquel on accède par la commande suivant :

+

pandoc -f markdown -t native sample.md --lua-filter=style-tex.lua -s -i

+

On y trouve la chose suivante : RawInline (Format "tex") "\\emph{emphase}".

+

Au milieu d’un paragraphe (Para), Pandoc parse correctement le latex et le reconnait sous sa forme brute dans un élément inline.

+

Lors d’une transformation en PDF, l’emphase déclarée en latex dans le markdown sera bien interprétée.

+

Pour ce qui concerne l’intégration d’ekdosis dans du Markdown nous avons besoin d’un élément supplémentaire. Par précaution, il vaut mieux indiquer le package utilisé que l’on déclare normalement dans le préambule d’un document LaTeX.

+

Pandoc accepte cette information si elle est indexée dans une en-tête YAML du document Markdown sous la clef header-includes.

+

Cette information est déclarée dans sample.md :

+
---
+title: "Test 1"
+header-includes: |
+    \usepackage{ekdosis}
+---
+

Elle est bien traduite dans l’AST dans le bloc des métadonnées par : 

+
Meta
+    { unMeta =
+        fromList
+          [ ( "header-includes"
+            , MetaBlocks
+                [ RawBlock (Format "tex") "\\usepackage{ekdosis}" ]
+            )
+          , ( "title" , MetaInlines [ Str "Test" , Space , Str "1" ] )
+          ]
+    }
+

Avec ceci nous sommes presque prêt à utiliser ekdosis dans Stylo (en préservant la syntaxe ekdosis et le traitement par le compilateur LuaLaTeX tels qu’ils ont été pensés par R. Alessi).

+

Pour fonctionner il manque un élément, la balise indiquant l’emploie d’ekdosis dans le document \begin{ekdosis} et `\end{ekdosis}.

+

Les ajouter manuellement dans le Markdown perdrait l’intérêt de l’utilisation du Markdown (autant tout faire en LaTeX sinon). L’idée en cours de test est de rendre ces balises discrètes en utilisant un filtre LUA où une division en Markdown (inline ou en block) associée à la classe variant ajoute les balises autour du paragraphe où ekdosis est employé.

+

C’est ce que l’on retrouve dans le filtre style-tex.lua.

+

Commandes

+

Pour produire le pdf, utiliser la commande suivante : 

+
pandoc sample.md -o sample.pdf -s -i --pdf-engine=lualatex --lua-filter=style-tex.lua
+

Erreurs

+

Actuellement, le PDF produit comporte des erreurs puisque l’appareil critiques avec les variantes ne sont pas affichés en bas de page. Il faut certainement corriger le filtre LUA.

+

Affaire à suivre

+
+
+ + \ No newline at end of file -- cgit v1.2.3