summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRochDLY <roch.delannay@gmail.com>2024-05-09 13:27:45 +0200
committerRochDLY <roch.delannay@gmail.com>2024-05-09 13:27:45 +0200
commit52e1d1df1d11bed0bf266fb88a5d9e8775f16561 (patch)
tree3190c644d2da2fb5cc147680c7dbf4bd914ec7b2
parent36c615fc95e8bd1cfc627a7c17184b9466b052ee (diff)
downloadpandoc-site-52e1d1df1d11bed0bf266fb88a5d9e8775f16561.tar.gz
pandoc-site-52e1d1df1d11bed0bf266fb88a5d9e8775f16561.tar.bz2
pandoc-site-52e1d1df1d11bed0bf266fb88a5d9e8775f16561.zip
mise à jour du billet et de l'index sur le nouvel export de stylo compatible avec ekdosis
-rw-r--r--docs/index.html2
-rw-r--r--docs/posts/2024-02-15-ekdosis-et-stylo.html130
-rwxr-xr-xsrc/index.md2
-rw-r--r--src/posts/2024-02-15-ekdosis-et-stylo.md202
4 files changed, 328 insertions, 8 deletions
diff --git a/docs/index.html b/docs/index.html
index ae29c5f..3ce84da 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -42,7 +42,7 @@
<ul>
<li><a href="/posts/2024-05-07-texte-examen-de-synthese.html">11-Texte présenté lors de l’examen doctoral de l’UdeM</a></li>
<li><a href="/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html">10-La magie de l’AST de Pandoc</a></li>
- <li><a href="/posts/2024-02-15-ekdosis-et-stylo.html">09-<code>ekdosis</code> et Stylo</a></li>
+ <li><a href="/posts/2024-02-15-ekdosis-et-stylo.html">09-Nouvel export dans Stylo compatible avec ekdosis</a></li>
<li><a href="/posts/2024-01-26-archiver-un-site-web.html">08-Archiver un site web</a></li>
<li><a href="/posts/2024-01-10-preparation-du-cours-identite-numerique.html">07-Préparation du cours Identités numériques avec Quarto</a></li>
<li><a href="/posts/2024-01-09-entretien-humanum.html">06-Entretien avec Stéphane Pouyllau</a></li>
diff --git a/docs/posts/2024-02-15-ekdosis-et-stylo.html b/docs/posts/2024-02-15-ekdosis-et-stylo.html
index 21fc348..9b8c85f 100644
--- a/docs/posts/2024-02-15-ekdosis-et-stylo.html
+++ b/docs/posts/2024-02-15-ekdosis-et-stylo.html
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
- <title>Roch Delannay | ekdosis et Stylo</title>
+ <title>Roch Delannay | Créer un nouvel export dans Stylo compatible avec ekdosis</title>
<meta name="author" content="Roch Delannay" />
@@ -42,7 +42,7 @@
</div>
<div class="container">
<header class="header-bloc">
- <h1><code>ekdosis</code> et Stylo</h1>
+ <h1>Créer un nouvel export dans Stylo compatible avec <code>ekdosis</code></h1>
<!-- -->
<time>2024-02-15</time>
<!-- <p>Roch Delannay</p>
@@ -70,7 +70,131 @@
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>Je demande à <span class="in">`ekdosis`</span> de ne passer en <span class="in">`TEI xml`</span> que [<span class="co">[</span><span class="ot">cette portion</span><span class="co">][Roch: ce fragment]</span>] du texte. </span></code></pre></div>
<p>Cette syntaxe en Markdown n’est pas valide, il faut ensuite la parser avec un script particulier pour la transformer de la même manière qu’<code>ekdosis</code> (on peut imaginer un filtre python intégré à la commande Pandoc). Le principal défaut de cette notation est qu’elle tord trop le fonctionnement du Markdown : ce n’est pas une notation interopérable avec d’autres écosystèmes. Le second défaut est qu’elle n’intègre pas ekdosis mais le recopie: il faut donc redévelopper tout ce que fait <code>ekdosis</code> dans Stylo pour obtenir un comportement similaire.</p>
<h3 id="deuxième-option">Deuxième option</h3>
-<p><em>Work in progress</em> (je reviendrai sur cette section lorsque nous aurons avancé sur son cahier des charges !)</p>
+<p><em>Mise à jour effectuée le 09 mai 2024.</em></p>
+<h4 id="fonctionnement">Fonctionnement</h4>
+<p>Pour réaliser un export vers pdf et xml-tei <a href="http://www.ekdosis.org/">ekdosis</a>, la méthode la plus élégante consiste à intégrer ekdosis à Stylo.</p>
+<p>Nous avons déjà presque toutes les technologies à disposition (puisque Pandoc utilise TeXlive pour compiler les pdf).</p>
+<p>Pandoc interprète les balises LaTeX lorsqu’elle se trouvent dans des documents en Markdown.</p>
+<p>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 :</p>
+<p><code>pandoc -f markdown -t native sample.md --lua-filter=style-tex.lua -s -i</code></p>
+<p>On y trouve la chose suivante (voir sample.md plus bas) : <code>RawInline (Format "tex") "\\emph{emphase}"</code>.</p>
+<p>Au milieu d’un paragraphe (<code>Para</code>), Pandoc parse correctement le latex et le reconnait sous sa forme brute dans un élément <em>inline</em>.</p>
+<p>Lors d’une transformation en PDF, l’emphase déclarée en latex dans le markdown sera bien interprétée.</p>
+<p>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.</p>
+<p>Pandoc accepte cette information si elle est indexée dans une en-tête YAML du document Markdown sous la clef <code>header-includes</code>.</p>
+<p>Cette information est déclarée par exemple dans un fichier sample.md :</p>
+<div class="sourceCode" id="cb2"><pre class="sourceCode md"><code class="sourceCode markdown"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="co">---</span></span>
+<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a><span class="an">title:</span><span class="co"> &quot;Test 1&quot;</span></span>
+<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a><span class="an">header-includes:</span><span class="co"> |</span></span>
+<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="co"> \usepackage[teiexport]{ekdosis}</span></span>
+<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a><span class="co">---</span></span>
+<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a><span class="fu">## Test de LaTeX inline</span></span>
+<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a>Ceci est un paragraphe en Markdown.</span>
+<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a>Ceci est un paragraphe md avec une \emph{emphase} en latex.</span>
+<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a><span class="fu">## Test de blocs</span></span>
+<span id="cb2-14"><a href="#cb2-14" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-15"><a href="#cb2-15" aria-hidden="true" tabindex="-1"></a>::: variant</span>
+<span id="cb2-16"><a href="#cb2-16" aria-hidden="true" tabindex="-1"></a>I met my friend \app{</span>
+<span id="cb2-17"><a href="#cb2-17" aria-hidden="true" tabindex="-1"></a> \lem{Peter}</span>
+<span id="cb2-18"><a href="#cb2-18" aria-hidden="true" tabindex="-1"></a> \rdg{John}</span>
+<span id="cb2-19"><a href="#cb2-19" aria-hidden="true" tabindex="-1"></a> } at the station yesterday.</span>
+<span id="cb2-20"><a href="#cb2-20" aria-hidden="true" tabindex="-1"></a>:::</span>
+<span id="cb2-21"><a href="#cb2-21" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb2-22"><a href="#cb2-22" aria-hidden="true" tabindex="-1"></a>::: variant</span>
+<span id="cb2-23"><a href="#cb2-23" aria-hidden="true" tabindex="-1"></a>I met my friend \app{</span>
+<span id="cb2-24"><a href="#cb2-24" aria-hidden="true" tabindex="-1"></a> \lem{Robert}</span>
+<span id="cb2-25"><a href="#cb2-25" aria-hidden="true" tabindex="-1"></a> \rdg{Roch}</span>
+<span id="cb2-26"><a href="#cb2-26" aria-hidden="true" tabindex="-1"></a> } at the station yesterday.</span>
+<span id="cb2-27"><a href="#cb2-27" aria-hidden="true" tabindex="-1"></a>:::</span></code></pre></div>
+<p>L’en-tête est bien traduite dans l’AST dans le bloc des métadonnées par : </p>
+<pre><code>Meta
+ { unMeta =
+ fromList
+ [ ( &quot;header-includes&quot;
+ , MetaBlocks
+ [ RawBlock (Format &quot;tex&quot;) &quot;\\usepackage{ekdosis}&quot; ]
+ )
+ , ( &quot;title&quot; , MetaInlines [ Str &quot;Test&quot; , Space , Str &quot;1&quot; ] )
+ ]
+ }</code></pre>
+<p>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).</p>
+<p>Pour fonctionner il manque un élément, la balise indiquant l’emploie d’ekdosis dans le document <code>\begin{ekdosis}</code> et <code>\end{ekdosis}</code>.</p>
+<p>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 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 <code>variant</code> ajoute les balises autour du paragraphe où ekdosis est employé.</p>
+<p>C’est ce que l’on peut obtenir avec le filtre suivant:</p>
+<div class="sourceCode" id="cb4"><pre class="sourceCode lua"><code class="sourceCode lua"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="kw">function</span> Div <span class="op">(</span><span class="va">element</span><span class="op">)</span></span>
+<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a> <span class="cf">if</span> <span class="va">element</span><span class="op">.</span><span class="va">classes</span><span class="op">[</span><span class="dv">1</span><span class="op">]</span> <span class="op">==</span> <span class="st">&#39;variant&#39;</span> <span class="cf">then</span></span>
+<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="op">{</span></span>
+<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a> <span class="va">pandoc</span><span class="op">.</span>RawInline<span class="op">(</span><span class="st">&#39;tex&#39;</span><span class="op">,</span> <span class="st">&#39;</span><span class="sc">\\</span><span class="st">begin{ekdosis}&#39;</span><span class="op">),</span></span>
+<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a> <span class="va">element</span><span class="op">,</span></span>
+<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a> <span class="va">pandoc</span><span class="op">.</span>RawInline<span class="op">(</span><span class="st">&#39;tex&#39;</span><span class="op">,</span> <span class="st">&#39;</span><span class="sc">\\</span><span class="st">end{ekdosis}&#39;</span><span class="op">),</span></span>
+<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a> <span class="op">}</span></span>
+<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a> <span class="cf">end</span></span>
+<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a><span class="kw">end</span></span></code></pre></div>
+<h4 id="commandes">Commandes</h4>
+<p>Pour produire le pdf, utiliser les commandes suivantes : </p>
+<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pandoc</span> sample.md <span class="at">-o</span> sample.pdf <span class="at">-s</span> <span class="at">-i</span> <span class="at">--pdf-engine</span><span class="op">=</span>lualatex</span>
+<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a><span class="ex">--lua-filter=style-tex.lua</span></span>
+<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a><span class="co">## La commande ci-dessus ne fonctionne pas, voir explication</span></span>
+<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-6"><a href="#cb5-6" aria-hidden="true" tabindex="-1"></a><span class="co">## Faire les commandes suivantes:</span></span>
+<span id="cb5-7"><a href="#cb5-7" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-8"><a href="#cb5-8" aria-hidden="true" tabindex="-1"></a><span class="ex">pandoc</span> sample.md <span class="at">-o</span> sample.tex <span class="at">-s</span> <span class="at">--lua-filter</span><span class="op">=</span>style-tex.lua</span>
+<span id="cb5-9"><a href="#cb5-9" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-10"><a href="#cb5-10" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> sample.tex</span>
+<span id="cb5-11"><a href="#cb5-11" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-12"><a href="#cb5-12" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> sample.tex</span>
+<span id="cb5-13"><a href="#cb5-13" aria-hidden="true" tabindex="-1"></a></span>
+<span id="cb5-14"><a href="#cb5-14" aria-hidden="true" tabindex="-1"></a><span class="ex">lualatex</span> sample.tex</span></code></pre></div>
+<p>Compiler le Markdown avec Pandoc (et le compilateur lualatex) fonctionne pour produire un PDF mais ne fonctionne pas avec ekdosis.</p>
+<p>La raison est assez simple : ekdosis a besoin de compiler le fichier tex 3 fois pour produire le pdf. La première fois il génère l’appareil critique dans un fichier temporaire <code>sample.ekd</code>, la deuxième fois il opère des calculs pour numéroter les lignes et la troisième fois il génère le document PDF correctement.</p>
+<p>Le problème rencontré avec Pandoc est que ce dernier ne prend pas en charge de fichier extérieur, excepté les filtres et les templates. Du coup, même si on recompile 3x depuis Pandoc, l’appareil critique présent dans <code>sample.ekd</code> ne sera pas pris en compte.</p>
+<p>Le plus simple est alors de produire le fichier tex avec Pandoc puis de compiler le tex en PDF en appelant lualatex 3 fois.</p>
+<h4 id="dépendances">Dépendances</h4>
+<p>Attention, la version de TeXlive installée sur stylo export est une version allégée. Un certain nombre de dépendances sont nécessaires pour faire fonctionner ekdosis et devront être ajoutées.</p>
+<p>Voici la liste des dépendances d’ekdosis : </p>
+<pre><code>ekdosis-dependencies/ekdosis-dependencies.tex
+tex/lualatex/ekdosis/ekdosis.sty
+texlive/2024/texmf-dist/tex/generic/etexcmds/etexcmds.sty
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv.tex
+texlive/2024/texmf-dist/tex/generic/iftex/ifluatex.sty
+texlive/2024/texmf-dist/tex/generic/iftex/iftex.sty
+texlive/2024/texmf-dist/tex/generic/infwarerr/infwarerr.sty
+texlive/2024/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
+texlive/2024/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
+texlive/2024/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
+texlive/2024/texmf-dist/tex/latex/auxhook/auxhook.sty
+texlive/2024/texmf-dist/tex/latex/base/article.cls
+texlive/2024/texmf-dist/tex/latex/base/size10.clo
+texlive/2024/texmf-dist/tex/latex/base/ts1cmr.fd
+texlive/2024/texmf-dist/tex/latex/etoolbox/etoolbox.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv.sty
+texlive/2024/texmf-dist/tex/latex/float/float.sty
+texlive/2024/texmf-dist/tex/latex/graphics/keyval.sty
+texlive/2024/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
+texlive/2024/texmf-dist/tex/latex/kvoptions/kvoptions.sty
+texlive/2024/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
+texlive/2024/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
+texlive/2024/texmf-dist/tex/latex/lineno/lineno.sty
+texlive/2024/texmf-dist/tex/latex/paracol/paracol.sty
+texlive/2024/texmf-dist/tex/latex/refcount/refcount.sty
+texlive/2024/texmf-dist/tex/latex/snapshot/snapshot.sty
+texlive/2024/texmf-dist/tex/latex/trivfloat/trivfloat.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-abspage.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-base.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-user.sty
+texlive/2024/texmf-dist/tex/lualatex/luacode/luacode.sty
+texlive/2024/texmf-dist/tex/luatex/ctablestack/ctablestack.sty
+texlive/2024/texmf-dist/tex/luatex/luatexbase/luatexbase.sty</code></pre>
</div>
</div>
<footer>
diff --git a/src/index.md b/src/index.md
index a052052..45de390 100755
--- a/src/index.md
+++ b/src/index.md
@@ -5,7 +5,7 @@ title: Pensées d'un doctorant
- [11-Texte présenté lors de l'examen doctoral de l'UdeM](/posts/2024-05-07-texte-examen-de-synthese.html)
- [10-La magie de l'AST de
Pandoc](/posts/2024-04-10-la-magie-de-l-ast-de-pandoc.html)
-- [09-`ekdosis` et Stylo](/posts/2024-02-15-ekdosis-et-stylo.html)
+- [09-Nouvel export dans Stylo compatible avec ekdosis](/posts/2024-02-15-ekdosis-et-stylo.html)
- [08-Archiver un site web](/posts/2024-01-26-archiver-un-site-web.html)
- [07-Préparation du cours Identités numériques avec
Quarto](/posts/2024-01-10-preparation-du-cours-identite-numerique.html)
diff --git a/src/posts/2024-02-15-ekdosis-et-stylo.md b/src/posts/2024-02-15-ekdosis-et-stylo.md
index 0f1e7e6..86fbefa 100644
--- a/src/posts/2024-02-15-ekdosis-et-stylo.md
+++ b/src/posts/2024-02-15-ekdosis-et-stylo.md
@@ -1,5 +1,5 @@
---
-title: '`ekdosis` et Stylo'
+title: 'Créer un nouvel export dans Stylo compatible avec `ekdosis`'
date: 2024-02-15
---
@@ -75,5 +75,201 @@ redévelopper tout ce que fait `ekdosis` dans Stylo pour obtenir un comportement
similaire.
### Deuxième option
-_Work in progress_ (je reviendrai sur cette section lorsque nous aurons avancé
-sur son cahier des charges !)
+
+*Mise à jour effectuée le 09 mai 2024.*
+
+#### Fonctionnement
+
+Pour réaliser un export vers pdf et xml-tei [ekdosis](http://www.ekdosis.org/),
+la méthode la plus élégante consiste à intégrer ekdosis à Stylo.
+
+Nous avons déjà presque toutes les technologies à disposition (puisque Pandoc
+utilise TeXlive pour compiler les pdf).
+
+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 (voir sample.md plus bas) : `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 par exemple dans un fichier sample.md :
+
+```md
+---
+title: "Test 1"
+header-includes: |
+ \usepackage[teiexport]{ekdosis}
+---
+
+## Test de LaTeX inline
+
+Ceci est un paragraphe en Markdown.
+
+Ceci est un paragraphe md avec une \emph{emphase} en latex.
+
+## Test de blocs
+
+::: variant
+I met my friend \app{
+ \lem{Peter}
+ \rdg{John}
+ } at the station yesterday.
+:::
+
+::: variant
+I met my friend \app{
+ \lem{Robert}
+ \rdg{Roch}
+ } at the station yesterday.
+:::
+
+```
+
+L'en-tête 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 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 peut obtenir avec le filtre suivant:
+
+```lua
+function Div (element)
+ if element.classes[1] == 'variant' then
+ return {
+ pandoc.RawInline('tex', '\\begin{ekdosis}'),
+ element,
+ pandoc.RawInline('tex', '\\end{ekdosis}'),
+ }
+ end
+end
+```
+
+#### Commandes
+
+Pour produire le pdf, utiliser les commandes suivantes : 
+
+```sh
+pandoc sample.md -o sample.pdf -s -i --pdf-engine=lualatex
+--lua-filter=style-tex.lua
+
+## La commande ci-dessus ne fonctionne pas, voir explication
+
+## Faire les commandes suivantes:
+
+pandoc sample.md -o sample.tex -s --lua-filter=style-tex.lua
+
+lualatex sample.tex
+
+lualatex sample.tex
+
+lualatex sample.tex
+```
+Compiler le Markdown avec Pandoc (et le compilateur lualatex) fonctionne pour
+produire un PDF mais ne fonctionne pas avec ekdosis.
+
+La raison est assez simple : ekdosis a besoin de compiler le fichier tex 3 fois
+pour produire le pdf. La première fois il génère l'appareil critique dans un
+fichier temporaire `sample.ekd`, la deuxième fois il opère des calculs pour
+numéroter les lignes et la troisième fois il génère le document PDF
+correctement.
+
+Le problème rencontré avec Pandoc est que ce dernier ne prend pas en charge de
+fichier extérieur, excepté les filtres et les templates. Du coup, même si on
+recompile 3x depuis Pandoc, l'appareil critique présent dans `sample.ekd` ne
+sera pas pris en compte.
+
+Le plus simple est alors de produire le fichier tex avec Pandoc puis de compiler
+le tex en PDF en appelant lualatex 3 fois.
+
+#### Dépendances
+
+Attention, la version de TeXlive installée sur stylo export est une version
+allégée.
+Un certain nombre de dépendances sont nécessaires pour faire fonctionner ekdosis
+et devront être ajoutées.
+
+Voici la liste des dépendances d'ekdosis : 
+
+```
+ekdosis-dependencies/ekdosis-dependencies.tex
+tex/lualatex/ekdosis/ekdosis.sty
+texlive/2024/texmf-dist/tex/generic/etexcmds/etexcmds.sty
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv-def.tex
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv-pop.tex
+texlive/2024/texmf-dist/tex/generic/expkv-bundle/expkv.tex
+texlive/2024/texmf-dist/tex/generic/iftex/ifluatex.sty
+texlive/2024/texmf-dist/tex/generic/iftex/iftex.sty
+texlive/2024/texmf-dist/tex/generic/infwarerr/infwarerr.sty
+texlive/2024/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty
+texlive/2024/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
+texlive/2024/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
+texlive/2024/texmf-dist/tex/latex/auxhook/auxhook.sty
+texlive/2024/texmf-dist/tex/latex/base/article.cls
+texlive/2024/texmf-dist/tex/latex/base/size10.clo
+texlive/2024/texmf-dist/tex/latex/base/ts1cmr.fd
+texlive/2024/texmf-dist/tex/latex/etoolbox/etoolbox.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-def.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-opt.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv-pop.sty
+texlive/2024/texmf-dist/tex/latex/expkv-bundle/expkv.sty
+texlive/2024/texmf-dist/tex/latex/float/float.sty
+texlive/2024/texmf-dist/tex/latex/graphics/keyval.sty
+texlive/2024/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
+texlive/2024/texmf-dist/tex/latex/kvoptions/kvoptions.sty
+texlive/2024/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
+texlive/2024/texmf-dist/tex/latex/l3backend/l3backend-luatex.def
+texlive/2024/texmf-dist/tex/latex/lineno/lineno.sty
+texlive/2024/texmf-dist/tex/latex/paracol/paracol.sty
+texlive/2024/texmf-dist/tex/latex/refcount/refcount.sty
+texlive/2024/texmf-dist/tex/latex/snapshot/snapshot.sty
+texlive/2024/texmf-dist/tex/latex/trivfloat/trivfloat.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-abspage.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-base.sty
+texlive/2024/texmf-dist/tex/latex/zref/zref-user.sty
+texlive/2024/texmf-dist/tex/lualatex/luacode/luacode.sty
+texlive/2024/texmf-dist/tex/luatex/ctablestack/ctablestack.sty
+texlive/2024/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
+```