Esempi minimi
Cosa sono gli “Esempi minimi”?
Un esempio minimo è un esempio dal quale niente può essere tolto.
Perché crearli?
- Più l’esempio è semplice, più rapidamente potenziali solutori possono comprenderlo e aiutarti.
- Un esempio minimo dimostra che hai tentato di risolvere il problema da solo. Quando le persone inviano grandi porzioni di codice, sembra che non si preoccupino che li possiamo aiutare o no.
- Creare un esempio minimo ti aiuta a capire cosa sta succedendo. Molte segnalazioni di un falso problema possono essere evitate se si prova a creare un esempio minimo; se non riesci a ricreare un “bug” in un esempio minimo, allora probabilmente il problema è una conoscenza di LilyPond insufficiente, non un vero bug!
Come crearli?
- Includi il numero di versione nel comando
\version
. - Crea un esempio piccolo! Gli esempi che riguardano la spaziatura o la formattazione di pagina potrebbero richiedere molte battute, ma la maggior parte dei problemi può essere riprodotta con meno di una battuta.
- Durante la preparazione di un esempio, cerca di commentare (
%
o%{ … %}
) le sezioni del tuo file. Se riesci a commentare una porzione di codice riuscendo a mantenere chiara l’idea principale, allora elimina il materiale commentato! - Evita di usare note, tonalità o segni di tempo complessi a meno che il malfunzionamento non riguardi proprio il comportamento di questi elementi.
- Non usare i comandi
\override
o\set
, a meno che il malfunzionamento non riguardi questi comandi in particolare. - Eventualmente, allega un’immagine che mostri il risultato grafico desiderato.
Quanto piccoli devono essere?
Il codice seguente è un esempio minimo?
\version "2.14.1" \include "english.ly" \score { \new Staff { \key d \major \numericTimeSignature \time 2/4 <cs' d'' b''>16 <cs' d'' b''>8. %% Here: the tie on the D's looks funny %% Too tall? Left-hand endpoint is not aligned with the B tie? ~ <cs' d'' b''>8 [ <b d'' a''> ] } }
Non è poi così grande, ma un vero esempio minimo è il seguente:
\version "2.14.1" { % middle tie looks funny here: <c' d'' b''>8. ~ <c' d'' b''>8 }
Sono pochi gli esempi minimi che superano 10 righe di codice - spesso 4 righe sono sufficienti per illustrare il problema!