====== Peut-on faire du “literate programming” avec LaTeX? ====== La [[wpfr>Programmation_lettrée|programmation lettrée]] (//literate programming//) est un paradigme de programmation introduit par Donald Knuth dans lequel un programme informatique est associé à une explication de sa logique en langage naturel (comme l'anglais ou le français). Concrètement, le texte en langage naturel est entrecoupé du code source usuel, découpé en petits morceaux. Ainsi, à partir des mêmes fichiers, l'humain peut comprendre le code, et la machine peut le compiler. Cette approche est souvent utilisée dans l'informatique scientifique et en //data science//, avec l'idée que cela permet une analyse reproductible des données. Knuth a appliqué les principes de la programmation lettrée au développement de TeX lui-même, qui est écrit en [[wpfr>WEB|WEB]], un dialecte de Pascal supportant ce paradigme. $\Reponse$ Pour votre code LaTeX, le package [[ctanpkg>doc]] ou sa réimplémentation [[ctanpkg>xdoc]] sont faits pour ça, avec l'utilitaire [[texdoc>docstrip]] fourni avec LaTeX. $\Reponse$ ConTeXt utilise une approche intéressante pour pour documenter le code des macros, avec différents types de commentaires. Par exemple, les lignes commençant par ''%D '' (suivi d'une espace) contiennent la documentation, les lignes commençant par ''%C'' contiennent la notice de copyright, et les lignes commençant par ''%M'' contiennent les définitions de macros qui sont utilisées pour compiler la documentation. Tous les fichiers de base de ConTeXt sont documentés de cette manière. Voir aussi la question « [[5_fichiers:web:literate_programming|Qu'est-ce que la “programmation lettrée“?]] ». ------ //Sources:// * [[https://tex.stackexchange.com/questions/47237/different-approach-to-literate-programming-for-latex|Different approach to literate programming for LaTeX]], * [[https://tex.stackexchange.com/questions/46989/how-to-do-literate-programming-in-tex|How to do literate programming in TeX?]] * [[https://pages.tacc.utexas.edu/~eijkhout/Articles/TeXLaTeXcourse.pdf|The Computer Science of TEX and LATEX]] (Victor Eijkhout; page 225 et suivantes). {{htmlmetatags>metatag-keywords=(LaTeX,développement,programmation littérale,programmation littéraire,documentation de code,commentaires) metatag-og:title=(Peut-on faire du “literate programming” avec LaTeX?) metatag-og:site_name=(FAQ LaTeX francophone) }}