Comme indiqué dans [cette FAQ][1], un exemple complet minimal (ECM) est un fichier source :
- **exemple** du problème rencontré ;
- **complet**, c’est-à-dire contenant tout ce qui permet de le compiler directement
(de `\documentclass` à `\end{document}` en passant par `\begin{document}`),
sans devoir ajouter une seule ligne ;
- **minimal**, c’est-à-dire allégé de tout ce qui n’est pas en rapport direct avec la question posée :
- packages (sauf éventuellement `inputenc`, `fontenc`, `lmodern` et, dans une moindre mesure, `babel`) ;
- définitions de macros personnelles ;
- texte ;
- etc.
Ce fichier doit pouvoir être compilé directement par ceux qui veulent aider
à résoudre le problème rencontré et cela suppose donc qu'il ne contient :
1. aucun fichier inclus (au moyen de `\include`) ou importé (au moyen de
`\input`) : les contenus de tels fichiers doivent figurer directement dans
l'ECM ;
2. aucun graphique inclus (au moyen de `\includegraphics`). Cela est
problématique lorsque le problème rencontré concerne justement l'inclusion
d'images. Dans ce cas, il suffit de charger dans l'ECM le package `mwe` qui
fournit une vingtaine d'images, accessibles à tout un chacun sans nécessité
d'indiquer le chemin qui y mène. Ainsi, l'ECM suivant est compilable avec
n'importe quelle distribution TeX incluant le package `mwe` :
\documentclass{article}
\usepackage{mwe}
\begin{document}
\includegraphics[width=.25\linewidth]{image}
\end{document}
3. aucun fichier `.bib` inaccessible. Cela est problématique lorsque le
problème rencontré concerne justement la bibliographie. Dans ce cas, si
l'outil de bibliographie utilisé est `biblatex` :
- soit le contenu du fichier `.bib` est sans importance et il suffit de
charger dans l'ECM le fichier d'exemple `biblatex-examples.bib` fourni par
le package `biblatex`, accessible à tout un chacun sans nécessité
d'indiquer le chemin qui y mène. Ainsi, l'ECM suivant est compilable avec
n'importe quelle distribution TeX incluant le package `biblatex` :
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Please look at \autocite{knuth:ct:a}.
%
\printbibliography
\end{document}
- soit le contenu de la bibliographie a son importance et il suffit de
charger dans l'ECM le package `filecontents` qui permet de créer des
fichiers à la volée lors de la compilation du fichier `.tex` au moyen de
l'environnement `filecontents` dont l'argument obligatoire est le nom (et
l'extension) donné au fichier généré ; pour éviter d'avoir à se poser la
question du nom du fichier généré et à condition que celui-ci doive avoir
une extension autre que `.tex`, on peut utiliser la commande `\jobname`
qui contient le nom du fichier compilé. Ainsi, l'ECM suivant est
compilable avec n'importe quelle distribution TeX incluant le package
`biblatex` (et, si ce fichier `.tex` se nomme `toto.tex`, le fichier
`.bib` généré s'appellera `toto.bib`) :
\documentclass{article}
\usepackage[backend=biber]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@unpublished{foo,
author = {Foo, Bar},
title = {Foo},
date = {2017},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Please look at \autocite{foo}.
\printbibliography
\end{document}
Si le fichier `.tex` précédent se nomme `toto.tex`, le fichier `.bib`
généré sera `toto.bib`.
Par ailleurs, s'il est nécessaire de faire figurer de nombreuses lignes de texte
(quel qu'il soit) pour illuster le problème rencontré, il est inutile d'en
inventer ou d'en copier depuis un document réel, il suffit de charger le package
`mwe` (déjà cité, mais plus généralement dédié à la production d'ECM :
l'acronyme « MWE » signifie « miniml working example » traduit en français par
« exemple complet minimal ») qui charge lui-même le package `lipsum` qui fournit
des paragraphes de faux-texte au moyen de la commande `\lipsum`. Ainsi, l'ECM
suivant est affiche les paragraphes 1 à 8 (sur 150) de faux texte (« Lorem
ipsum ») :
\documentclass{article}
\usepackage{mwe}
\begin{document}
\lipsum[1-8]
\end{document}
[1]: /osqa/faq/#custom-id-ecm