• [^] # Re: Version ePub

    Posté par (site web personnel) . En réponse à la dépêche Des nouvelles du Frido. Évalué à 7.

    Question classique. Personnellement, cette question ne m'intéresse pas du tout, et je ne compte pas y travailler.

    La génération d'epub est très demandée. Je reçois de temps en temps des mails me disant «c'est facile, il suffit de ...».
    Mais pour l'instant les méthodes proposées plantent pour diverses raisons.

    Si quelqu'un veut s’atteler à la tâche, voici l'état de l'art de la question.

    Ceci compile Giulietta en pur latex:

    git clone git@github.com:LaurentClaessens/mazhe.git
    cd mazhe
    pdflatex mazhe.tex
    

    En ce qui concerne l'epub, le plus prometteur est la commande suivante:

    pandoc -f latex -t epub3 mazhe.tex -o out.epub
    

    Le problème est que pandoc ne suit pas les \input.

    Du coup j'ai généré un fichier contenant toutes les sources en un seul fichier.

    wget https://laurent.claessens-donadello.eu/pdf/d%C3%A9fi_epub/defi_epub.tex
    pdflatex defi_epub.tex
    

    Ceci produit le Frido auquel il manque quelque liens dans la biblio pour des raisons techniques.

    À partir de là, on peut tenter ceci:

    pandoc -f latex -t epub3 defi_epub.tex -o out.epub

    Et ça, ça plante sur

    Error at "source" (line 11208, column 17):
    unexpected \writeOfyanntricks
    \immediate\write\writeOfyanntricks{totalheightofdce34f4dfb2406144304ad0d6106c5382ddd1446:\the\lengthOfforyanntricks-}

    Voici le défi pour les amateurs de grosses manipulations de chaînes de caractères.

    La ligne problématique se trouve dans un environnement figure qui est schématiquement comme ceci :

    \begin{figure}[ht]
    \centering
    [... plein de lignes ...]
    \tikzsetnextfilename{tikzSuiteUnSurn}
    [... autres lignes dont un tikzpicture]
    \caption{\CaptionFigSuiteUnSurn}\label{LabelFigSuiteUnSurn}
    \end{figure}
    
    • Repérer la ligne \tikzsetnextfilename, et garder son argument sous le coude.
    • Supprimer le contenu de tout l'environnement, sauf la ligne de caption
    • Remplacer tout le contenu de l'environnement par l'inclusion du fichier png que vous trouverez dans le répertoire mazhe/auto/pictures_tikz.
    • Le nom du png que vous cherchez est la string que vous avez gardé au premier point.

    Une fois que vous avez ça dans votre langage de programmation préféré (削除) (donc en rust ou python) (削除ここまで), vous emballez ça dans une fonction qui prend en entrée le fichier defi_epub.tex et qui donne en sortie un fichier sur lequel pandoc va fonctionner.

    Le mieux pour moi serait une fonction en python qui prend en entrée le fichier sous forme de string et qui ressort la réponse sous forme de string.
    Si votre langage préféré est un autre, il faut qu'il puisse être installé sans affecter le système.

    Par exemple, pour node je sais comment faire pour avoir une installation locale comme un venvde python.