• [^] # Re: Système de compilation LaTeX

    Posté par (site web personnel) . En réponse à la dépêche Le Frido, un livre de mathématique libre pour l’agrégation. Évalué à 4.

    Pour ton booléen changé à la volée, est-ce que \IfFileExists{security.png}{... ne suffirait pas ?

    Non parce que le fichier existe dans tous les cas.

    Le changement de booléens à la volée est très important parce qu'il y a aussi des choses comme ça :

    \ifbool{isMazhe}{ Pour une suite ni croissante ni décroissante d'ensembles, il y a la notion de limite inductive qui sera un peu traitée à la section \ref{SecDirectLimit}. }{}
    

    qui fait une référence vers la partie en anglais, hors Frido. Il est important que ce soit false toujours sauf lorsqu'on compile le document entier.

    Pour la position relative des références, ça pourrait être indépendant de la compilation, comme les tests unitaires ou fonctionnels d'un code source. Et donc facultatif pour les contributeurs. En plus, ça peut se faire en TeX pur, dixit texstackexchange.

    Oui, ça pourrait être indépendant, mais on rejoins la compilation partielle parce que lorsque des réfénreces "vers le bas" sont créées, pytex crée automatiquement un lst_futur.py qu'il me suffira de compiler avec pytex lst_futur.py pour avoir un document ne contenant que les parties concernées par les références vers le bas.
    Et en plus je veux accepter les phrases comme "nous verrons plus tard une version de ce théorème dans tel cadre plus général". Donc pytex a une liste de phrases ''acceptées" pour lesquelles il ne me fait pas de remarques. Coder ça en LaTeX pur ne me donne pas envie.

    Pour le comportement différent si on compile en Frido ou non, il me semble qu'il suffirait de compiler des fichiers différents : un frido.tex ou un everything.tex, chacun définissant quelques macros avant d'inclure un fichier main.tex commun.

    Oui et non parce que les différences sont un peu partout.

    if frido :
     page de garde frido
    else if mazhe :
     page de garde mazhe
    else if outils_math :
     page de garde outils_math
    if frido :
     pass
    else :
     \part{Pour l'agrégation}
    if frido or mazhe :
     inclure tous les fichiers frido
    if mazhe or outils_math :
     inclure les fichiers du cours outils_math
    if mazhe :
     inclure les fichiers en anglais
    if exercices or mazhe :
     inclure les fichiers d'exerices
    

    Tout cela est faisable avec des \ifbool, mais ça va demander au moins autant de booléens que de bouquins que je veux pouvoir extraire.

    À mon avis, tout ça rendrait le projet plus simple d'accès et de maintenance, et faciliterait aussi les changements de structure.

    Plus facile d'accès : oui. En tout cas ça diminue le nombre de dépendances à installer pour les contributeurs (qui sinon doivent faire pdflatex mazhe.tex qui lui, prend plein de temps). Et je comprends que quelqu'un ne veule pas lancer sur son ordinateur des milliers de lignes python d'une source peu sûre.

    En ce qui concerne le fait de faciliter les changement de structure, je ne crois pas. L'avantage de mon système est que je décrit ma stucture en python et je crois que python est, en tant que language de programmation, infiniement plus souple que LaTeX.
    Le point est que je ne décrit presque aucune structure dans mazhe.tex et que c'est pytex qui extrait et remet en ordre ce dont il a besoin.

    Mais je reconnais que la migration demanderait du travail, sans aucun gain immédiat sur les PDF produits.

    Effectivement ... supporter l'existant ... surtout quand ça a été écrit par un mec qui réinvente la roue ...