Cela fait plusieurs questions que je pose via ce site et j'ai toujours du mal à réaliser correctement un ECM. Où pourrais-je trouver des informations sur comment le réaliser et sur les raccourcis à utiliser (exemple : l'introduction dans le document Posée 05 Jul '17, 01:31 AurélienCocq Pathe ♦♦ |
Comme indiqué dans cette FAQ, un exemple complet minimal (ECM) est un fichier source :
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 :
Par ailleurs, s'il est nécessaire de faire figurer de nombreuses lignes de texte
(quel qu'il soit) pour illustrer le problème rencontré, il est inutile d'en
inventer ou d'en copier depuis un document réel : il suffit en effet de charger
le package Ouvrir dans l'éditeur Overleaf
\documentclass{article} \usepackage{mwe} \begin{document} \lipsum[1-8] \end{document} Publiée 05 Jul '17, 22:26 denis ♦♦ |
Je copie-colle une partie des « Conseils d’utilisation » qu’a rédigé Manuel Pégourié-Gonnard, partie qui correspond à cette notion. Ouvrir dans l'éditeur Overleaf
3 La notion d'exemple complet minimal (ECM) ---------------------------------------- Quand vous rencontrez un problème, et que votre code ne produit pas le résultat que vous attendez, il est indispensable d'accompagner la description du problème d'un exemple de code qui permette de le reproduire. Cet exemple doit être si possible complet et minimal, c'est ce qu'on appelle un ECM. **Complet** : l'exemple doit être compilable sans ajouter une seule ligne. En particulier, si vous utilisez LaTeX, il doit commencer par `\documentclass{...}`, appeler au moins les packages de base (inputenc, fontenc, babel), contenir le `\begin{document}` et le `\end{document}`. N'utilisez pas de packages non-standard ou fournissez un lien vers ceux-ci. **Minimal** : l'exemple ne doit pas contenir une ligne de code superflue. Ceci implique qu'il ne s'agit pas de votre document complet de 300 pages. Il est indispensable de supprimer de votre préambule tous les appels de packages et définitions de commandes inutiles à la reproduction du problème. La production d'un ECM est un exercice difficile mais instructif et souvent suffisant pour résoudre le problème. N'hésitez pas à commenter/décommenter des portions de code pour trouver le résultat complet minimal. Et n'oubliez pas : « Aide-toi, fr.comp.text.tex t'aidera. » :-) L’extension Publiée 05 Jul '17, 21:01 Le TeXnicien de surface Pathe ♦♦ |
Les réponses déjà publiées sont très bonnes. On s'intéresse ici à donner quelques exemples. ECM par l'exempleTable des matièresIntroductionLes problème rencontrés sont généralement de trois types :
MinimaleOuvrir dans l'éditeur Overleaf
\documentclass{article} \begin{document} \Tableofcontents \end{document} est minimale. Ouvrir dans l'éditeur Overleaf
\documentclass{article} \begin{document} \Tableofcontents \section{Foo} Bla bla \end{document} n'est pas minimale. Ouvrir dans l'éditeur Overleaf
\documentclass{yathesis} \begin{document} \Tableofcontents \end{document} n'est pas minimale. CompletOuvrir dans l'éditeur Overleaf
\documentclass{yathesis} \begin{document} \Tableofcontents[name=Sommaire] \end{document} est complet. Ouvrir dans l'éditeur Overleaf
\begin{document} \Tableofcontents[name=Sommaire] \end{document} n'est pas complet. Ouvrir dans l'éditeur Overleaf
\documentclass{article} \begin{document} \begin{theorem} Bla bla \foo \begin{code} if x=y then \end{code} \end{theorem} \end{document} n'est pas complet. Tout en unles deux exemples suivants Ouvrir dans l'éditeur Overleaf
\documentclass{article} \input{monstyle} \begin{document} Bla bla \end{document} et Ouvrir dans l'éditeur Overleaf
\documentclass{article} \begin{document} \include{introduction} \include{chapitre1} \include{chapitre2} \include{conclusion} \end{document} ne sont pas des bons ECMs. Exemple pratiqueOuvrir dans l'éditeur Overleaf
\documentclass[12pt,space=onehalf]{yathesis} \usepackage{kpfonts} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{microtype} \usepackage{booktabs} \usepackage{graphicx} % d'autres packages \usepackage[autostyle]{csquotes} \usepackage[xindy]{imakeidx} \usepackage[backend=biber]{biblatex} % fichier bib \addbibresource{mybib1.bib} \usepackage{hyperref} \usepackage[xindy,acronyms,symbols]{glossaries} % fichier pour les acronymes, symboles \loadglsentries{acro1} \makeindex \makeglossaries % mes commandes soit avec \input{mescmds} soit direct \newcommand{\mt}{foo} \newcommand{\cmd}[1]{foo #1} \newlength\mtwidth \begin{document} \maketitle[frametitle=shadowbox] \tableofcontents[name=Sommaire] \listoffigures \listoftables \printsymbols \mainmatter \include{corps/introduction} \include{corps/chapitre1} \include{corps/chapitre1} \include{corps/conclusion} \appendix \include{Appendices/AppendixA} \backmatter \printbibliography \printindex \end{document} Tout d'abord enregistrer le fichier sous Localiser le problèmeCommenter d'abord les parties où se pose le problèmes :
L'exemple doit donc ne pose pas du problème. Supprimer alors les parties non commenter puis décommenter le reste. Le corps du document ressemble à Ouvrir dans l'éditeur Overleaf
\begin{document} \include{corps/chapitre1} \end{document} Remplacer SimplifierOn passe maintenant au préambule. Supprimer toutes les commandes personnelles inutiles, commande par commande. Parfois, la suppression d'une commande cause un problème supplémentaire de type 2. Dans ce cas, supprimer toutes les occurrences de cette commande, sans importance, du corps du document. Supprimer Toutes les extensions non indispensables : on peut supprimer les extensions une par une. Attention, cet opération peut causer des problèmes de type 1 ou 2. En cas des problèmes de type 2, procédé comme auparavant, et laisser tranquille les extensions qui provoquent des problèmes de type 1. Liens
Publiée 06 Jul '17, 22:05 touhami |