• [^] # Re: Objectifs de la bibliothèque?

    Posté par . En réponse à la dépêche TeX et traitement de données par flot e01 : lire du TeX. Évalué à 4. Dernière modification le 18 novembre 2015 à 11:45.

    Il me semblait avoir été clair, mais l'objectif de cette dépêche n'est aucunement de parler de ToolXiT pour le moment, qui est juste un prétexte pour parler de ce qui est énoncé dans le titre : lire du \TeX.

    Pour le moment cette bibliothèque est une application de ce que j'ai appris et une preuve de concept en constante évolution.
    Sur le long terme, le but est de pouvoir l'utiliser en frontend d'import pour une bibliothèque plus large de manipulation de documents. J'y reviendrai surement plus tard quand la série sera plus avancée, mais c'est vraiment pas l'objectif du moment.

    Je commence par la base donc avec l'interpréteur de macros. Ce que tu dis est cité dans l'article, et bien identifié, sur le fait que l'état change et que le comportement ultérieur en est affecté, et justement tout ce qui est dit ici expose (à un haut niveau) ce problème, les réponses viendront dans les articles suivants de cette série.

    Un point capital que tu effleures sans vraiment énoncer – et que je veux donc souligner – est que TeX est un système de composition typographique tandis que LaTeX est un système de description de documents. Bien-sûr, strictement parlé, toutes les primitives TeX peuvent être utilisées dans un document LaTeX, mais il est recommandé d'utiliser LaTeX comme un système déclaratif en "oubliant" qu'il est écrit en TeX. Si tu t'intéresses à la manipulation des documents LaTeX sous forme symbolique, tu peux donc faire des hypothèses restrictives sur leur structure, qui te permettraient d'écrire un analyseur syntaxique.

    Je ne parle pas de \LaTeX ici, mais comme dit dans le titre je parle du problème de "lire du \TeX". Comme je le dis aussi ci-dessus, j'explique ce que \LaTeX apporte et les problèmes que j'ai avec (ça reste personnel bien sûr comme analyse) et justement je ne veux pas faire d'approximations, comme il en existe un paquet dans pas mal d'outils.
    Je ne veux pas faire du \LaTeX mais du \TeX, ce qui permet plus de choses derrière car ça ne présuppose aucun format utilisé. Ce qui est recommandé dans le cadre de \LaTeX est hors sujet là, je ne souhaite pas écrire un document, je ne dis pas comment utiliser \LaTeX, je parle de lire du \TeX en exposant le problème à un haut niveau.

    De plus cette série utilise aussi \TeX comme prétexte pour parler de traitement de données par flot et pour présenter un outil pour ce faire : les iteratees (teasing !).

    Si tu es à la recherche de sources d'inspiration pour résoudre les problèmes que tu vas rencontrer, il y a littéralement des dizaines d'implémentations de TeX – ou de variantes – dans des languages divers, et je crois même qu'il existe une bibliothèque C encapsulant l'interpréteur TeX.

    Cf. https://en.wikipedia.org/wiki/New_Typesetting_System, https://www.ctan.org/tex-archive/systems/ant?lang=en

    Je connais bien sûr ces projets, j'ai fait pas mal de recherches avant de me lancer, mais mon but n'est pas de le copier. Il n'existe pas des dizaines de vraies implémentations de \TeX, beaucoup font des raccourcis pour justement pouvoir le parser au sens traditionnel et sont en fait des parsers d'un sous ensemble de \LaTeX. Je ne veux pas encapsuler l'existant mais proposer une autre solution au problème. Je ne veux pas non plus proposer un nouveau langage mais avoir une interpréteur complet d'un langage existant, le but étant à terme de pouvoir l'utiliser sur des documents déjà écrits.

    En bref, le but de cet article est de présenter une problématique (le fait que ce soit du \TeX est juste un prétexte, ça pourrait s'appliquer à d'autres données), et la suite sera de montrer comment j'y réponds. Ce n'est pas de la pub pour ToolXiT, qui est à l'état de jouet inutile. Cette dépêche en attend d'autres, comme je le précise au début, seule elle n'apporte rien d'autre que l'énoncé d'une problématique.
    Je ne voudrais pas qu'on se trompe en lisant cette dépêche en pensant qu'elle présente un remplaçant à \TeX ou un autre système, ou bien qu'elle parle du traitement de documents en \LaTeX, c'est hors du périmètre.