Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre éprouvé
    À lire avant de poster: Qu'est ce qu'un ECM ?
    Je cite Mr Manuel Pegourié-Gonnard, car je trouve qu'il a très bien résumé la notion d'ECM qui est indispensable malgré ce que pensent certains .

    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 modules de base (inputenc,
    fontenc, babel), contenir le \begin{document} et le \end{document}.
    N'utilisez pas de modules 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
    modules 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, developpez.com t'aidera. » :-)

  2. #2
    Membre expert
    Et en pratique...
    Bonjour,

    Voici quelques conseils pratiques qu'il est impératif de suivre pour construire un ECM digne de ce nom, en reprenant chacun des mots-clefs.

    Exemple : c'est une évidence, mais assurez vous que votre ECM reproduise bien le problème et/ou l'état de vos tentatives de programmation (dans le cas de nouvelles commandes, par exemple).
    Faites également la chasse aux autres erreurs qui pourraient nuire à la compilation par un tiers (voire en particulier la partie "minimal.")

    Complet : il y a un certain nombre de règles à respecter pour qu'il soit facilement compilable par quelqu'un qui souhaite vous aider.
    • Comme mentionné dans le message précédent, il doit comporter un préambule (de \documentclass{...} à \begin{document}) et un corps de document (ce qui suit jusqu'au \end{document}).
    • Si le problème est en rapport avec des packages/classes de document personnels ou non standard, les mettre en pièce jointe ou donner un lien pour les télécharger.
    • Idem pour les éventuelles images test : il est pénible pour un contributeur de devoir chercher parmi les siennes un image qui reproduise le problème.
    • Si le problème concerne des commandes d'inclusion de fichier .tex (\include, \input, etc.), fournir également l'exemple de fichier.


    Minimal : cette caractéristique d'un ECM est très importantes car elle facilite énormément la localisation du problème et permet d'identifier les soucis dus à des interactions malheureuses.
    1. Supprimer les packages qui ne sont pas directement liés au problème ou nécessaires à sa reproduction (vous pouvez cependant dans la plupart des cas laisser ceux qui figurent dans l'exemple ci-dessous).
    2. Supprimer le texte superflu : si vous avez besoin d'une grand quantité de texte (> 1 page) pour rendre compte du problème, préférez l'utilisation du package lipsum et sa commande éponyme ; le code n'en sera que plus lisible.

    Un ECM bien construit devrait donc ressembler à ça :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    \documentclass[11pt,a4paper]{article}
    
    \usepackage[T1]{fontenc}               % Encodage des fontes
    \usepackage[latin1]{inputenc}          % Encodage du(des) fichier(s)
    \usepackage[frenchb]{babel}            % Gestion des standards multilingues.
    
    % \usepackage{lipsum}                  % Du texte pour les exemples
    
    %% Les packages vraiment nécessaires.
    
    %% Les (re-)définitions de commandes/longueurs/compteurs directement incriminés.
    
    \begin{document}
    
    %% Quelques lignes qui mettent en lumière le problème.
    
    % \lipsum
    
    \end{document}


    Le respect de ces quelques règles permet dans bien des cas d'identifier que la cause du problème n'est pas celle que l'on imaginais et/ou mène à une solution rapide.

    Contre-intuitivement, plus votre problème est urgent, plus vous avez intérêt à faire l'exercice proprement !
    Soit vous isolerez vous-même rapidement la source du problème et serez capable de le résoudre, soit les contributeurs du forum seront plus enclins à vous aider (et plus efficacement).
    Forum LaTeX : pour des réponses rapides et appropriées, pensez à poster un
    ECM = Exemple (reproduit le problème) Complet (document compilable) Minimal (ne postez pas votre thèse !)

    Une solution vous convient ? N'oubliez pas le tag


    )><))))°>

###raw>template_hook.ano_emploi###