LaTeX
Avertissement
phystool compile les fichiers \(\LaTeX\) avec pdflatex et l’option
--shell-escape activée. Ceci représente un risque de sécurité car du code
malveillant pourrait être exécuté. Soyez certain que les fichiers, les paquets
et classes que vous utilisez pour compiler vos sources sont dignes de
confiance.
Vue d’ensemble
phystool est conçu de façon à laisser à l’utilisateur la liberté de
compiler ses documents \(\LaTeX\) comme il le souhaite. L’idée de base est de
faire en sorte que chaque PDBFile génère un .pdf indépendant qui puisse
facilement être inclus dans une série d’exercices, un test ou tout autre
document. Si l’objectif est, par exemple, de produire une série d’exercices,
quelques lignes de code suffisent:
1 \documentclass[pdb=~/physdb_dev]{physexos}
2
3 \begin{document}
4 \PdbExercise{9d1f2b06-fc3a-4eb4-8f7e-dadc8f0f0888}
5 \PdbExercise{b7ac63e2-b44b-4848-9f15-9531c93c4e95}
6 \end{document}
Ce fichier .tex inclut deux PDBFile simplement en faisant référence à
leur uuid. Le contenu de l’un de ces fichiers est:
1 \begin{exercise}{Eureka}
2 Vérifiez que la période d’oscillation d'Archimède est indépendante de
3 la température du chat de Schrödinger.
4 \end{exercise}
Comme indiqué précédemment, phystool est capable de
déterminer que ce fichier est de type exercice avec Eureka pour titre, car
son pattern match la première ligne. phystool est aussi capable de le
compiler indépendamment en créant un fichier temporaire dont le contenu est:
1 \documentclass{physauto}
2 \PdbSetDBPath{~/physdb_dev}
3 \begin{document}
4 \PdbInclude{9d1f2b06-fc3a-4eb4-8f7e-dadc8f0f0888}
5 \end{document}
En détail
Les PDBFile marqués standalone=false (par défaut), ne peuvent pas être
compilé directement et doivent donc être inclus avant compilation dans un
fichier temporaire. Ce fichier temporaire est
automatiquement crée par phystool et possède toujours la même structure.
Par contre, les fichiers marqués standalone=true, peuvent être compilé tel
quel et ne nécessitent pas de fichier temporaire.
Important
Comme le fichier temporaire crée lors de la compilation n’est pas modifiable par
l’utilisateur, il faut que la classe auto_latex fournisse toutes les
définitions, commandes et environnement nécessaires à la compilation.
Important
Pour que phystool puisse compiler les fichiers PDBFile, il doit avoir
accès aux classes et éventuels paquets personnels utilisés et ceux-ci doivent
donc être placés dans le répertoire phystex.
Note
Afin de permettre à phystool de parser correctement les logs \(\LaTeX\), il
faut légèrement modifier la configuration du compilateur afin que les logs
affichent des lignes plus longues. Pour cela, il suffit de modifier/rajouter la
ligne suivante au fichier texmf.cnf:
max_print_line=1000
Note
Lorsqu’un fichier est compilé avec phystool, les fichiers auxiliaires sont
tous placés dans des sous-répertoire de ~/.phystool/texaux/ reflétant le
chemin du fichier de base. Par exemple, les fichiers auxiliaires produit durant
la compilation de ~/travail/serie-exercies.tex seront placés dans
~/.phystool/texaux/travail/. Cela permet de ne pas polluer les répertoires contenant
le code source \(\LaTeX\) avec des fichiers de compilation.
La classe auto_latex définie dans la configuration de la base de
donnée est la classe centrale sur laquelle repose la
compilation de tous les PDBFile non standalone. Le fichier
temporaire fait appel à deux commandes qui
doivent être définies dans cette classe:
\PdbSetDBPathCette commande prend, comme argument obligatoire, le chemin absolu de la base de donnée afin de l’assigner à une variable réutilisée lors de chaque inclusion.
\NewDocumentCommand{\PdbSetDBPath}{m}{
\tl_gset:Nn \c_pdb_path_tl {#1}
}
\PdbIncludeCette commande prend, comme argument obligatoire, le
uuidduPDBFileafin d’inclure son contenu.texdans le fichier parent:
\NewDocumentCommand{\PdbInclude}{m}{
\group_begin:
\file_input:n {\c_pdb_path_tl #1.tex}
\group_end:
}
Phys\(\TeX\)
La librairie Phys\(\TeX\) peut servir d’exemple pour définir différents rendus
pour un même PDBFile en fonction du type de document à produire. Par
exemple, dans cette librairie, il existe trois classes principales qui
permettent un rendu différent de l’environnement “exercise” pour une série
d’exercices, un test ou un polycopié. Le rendu par défaut produit par physauto
est différent de celui de ces trois classes.
Arbre de dépendance des classes et paquets \(\LaTeX\) fournis dans Phys\(\TeX\)