Ritorno sull’argomento dopo aver fatto qualche prova. Partendo dal fatto che LaTeX è impostato per la tipografia anglosassone, che prevede la didascalia sempre sotto l’oggetto (qualunque sia), i risultati di esperimenti con una semplice tabella e una figura ripulita dall’eventuale contorno invisibile in una classe article mi dicono che:
1.
Non caricando nulla e mettendo la didascalia sotto l’oggetto come vorrebbe LaTeX, vedo che lo spazio tra figura e didascalia è maggiore di quello tra tabella e didascalia. Evidentemente deve essere così. Chiedo lumi.
2.
Caption agisce sulle didascalie sotto gli oggetti anche solo caricandolo. Infatti, la distanza tra figura e didascalia mi risulta minore di quella tra tabella e didascalia.
3.
Caricando caption senza impostazioni e mettendo la didascalia sopra la tabella, come vogliono le tradizioni italiane, ottengo finalmente la didascalia abbondantemente spaziata da toprule di una distanza che chiamo A.
4.
Impostando caption con
`\captionsetup[table]{position=top}`
ottengo esattamente A.
5.
Impostando caption con
`\captionsetup[table]{skip=\medskipamount}`
ottengo una distanza minore che chiamo B, e che può essere più gradevole di quella predefinita.
7.
Mettendo sia
`\captionsetup[table]{position=top}
\captionsetup[table]{skip=\medskipamount}`
ottengo la distanza B di prima. Evidentemente, uno dei due è superfluo o siamo in una coincidenza fortunata. Direi la seconda.
8.
Impostando caption con
`\captionsetup[table]{position=bottom}`
ottengo una distanza ancora minore di B, ma superiore a quella che avrei al punto 9.
9.
Non caricando nemmeno caption e lasciando la didascalia della tabella sopra la tabella, ottengo che didascalia e toprule quasi collidono: ovvio, si tratta di una cosa per cui LaTeX non è programmato, e perciò reagisce così. Non teniamone conto.
Del resto la documentazione di caption è chiara. Come già mi disse Claudio, il pacchetto controlla lo spazio verticale tra oggetto e didascalia tramite l’opzione skip=
Le opzioni
`position= top
position= above`
assumono che chi scrive metta la didascalia sopra l’oggetto mobile, e perciò mettono lo spazio predefinito sotto a esso. Si noti, però, che position=top, per esempio, NON assume che la didascalia sia veramente messa sopra l’oggetto, perché essa sarà davvero dove l’autore la mette: semplicemente, la tratta come se fosse stata messa sopra. La stessa cosa accade con l’altra opzione. Non ho fatto prove approfondite per le figure, ma il comportamento dovrebbe essere lo stesso.
Se caption agisce anche solo caricandolo, è perché è impostato di default con position=auto, che gli dice: “cerca di fare del tuo meglio per determinare da solo la reale posizione della didascalia rispetto all’oggetto”. Generalmente funziona, ma in rari casi potrebbe non essere così. Evidentemente, il fatto che non ci sia differenza tra caricare il solo pacchetto e dare anche position=top è dovuto proprio a questa coincidenza fortunata.
L’opzione position= si usa di solito con \captionsetup. Dare
`\captionsetup[table]{position=top}`
fa sì che tutte le didascalie dentro table siano trattate come didascalie messe dall’utente sopra la tabella cui si riferiscono, e dunque lo spazio verrà messo sotto a esse. In alternativa si può dare
`\usepackage[tableposition=top]{caption}`
e si risparmia una riga di codice.
Note dolenti. Non sempre skip, position, figureposition e tableposition funzionano, dipende dalla classe di documento in uso, che potrebbe decidere di usare la propria spaziatura predefinita, come anche decidere da sola se intendere la didascalia come top o bottom e stamparla di conseguenza. Le classi KOMA 🙂 accettano skip=
Altri pacchetti invece controllano da soli il comportamento dello spazio sopra e sotto la didascalia.
Ora, arsclassica imposta caption in questo modo:
\captionsetup{format=hang,font=small,labelfont={sf,bf}}
\captionsetup
e la classe KOMA con cui è scritta l’Arte carica tra le opzioni di classe
`tablecaptionabove`
che a detta dell’autore di caption è molto più forte di position= . Dunque, almeno nell’Arte caption deve fare i conti con questa realtà.
Che farei io?
A.
Preciserei che le usanze italiane richiedono la didascalia sopra una tabella e sotto una figura (e questo c’è già).
B.
Per giustificare l’uso di caption come correttivo di un comando di LaTeX (\caption), direi che la tipografia anglosassone per la quale LaTeX è stato pensato vuole la didascalia sempre sotto l’oggetto, e che messa sopra mette in difficoltà il programma, tant’è vero che la stampa a ridosso di toprule. caption cura la ferita. Ovviamente preciserei in questo modo:
`\usepackage[tableposition=top]{caption}`
così ci si mette al riparo dal possibile malfunzionamento di position=auto.
C.
Direi, però, che il risultato non è garantito sempre: dipende dalla classe in uso.
STOP
D.
Nel capitolo Personalizzare, direi che caption permette di fare quello che vuoi con le didascalie, e darei le impostazioni dell’Arte:
`\captionsetup{format=hang,font=small,labelfont={sf,bf}}
\captionsetup[table]{skip=\medskipamount}`
spiegandole e precisando la possibilità di usare \captionsetup se la scrittura delle opzioni lo richiede.
Che ne dici, Lorenzo?
Scusate la tirata, avevo bisogno di capirmi.
Ciao
Tommaso