Légender des images

Première version le 9 avril 2020 (confinement Covid19)

Par défaut tous les flottants sont numéroté et affiche une légende :

sur le papier, et dans des cordons verticaux, plus jolis encore, toujours sur le papier, mais impossibles, en vertu des lois végétales.

\placefigure{ }{\externalfigure[groseille-2][width=10cm]}

Il a eu l’irrévérence d'ajouter à son geste, à l'adresse de l'éminent professeur, une foule de gourmands, et pas du tout de groseilles. C’est un drôle, d'accord. Il a d'immenses défauts, mais de grandes qualités, et mieux vaut essayer de vivre avec lui que d’en faire un insurgé ; on n’en viendrait pas à bout.

\placetable{ }{
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \ \eTR
\eTABLE
}

Le groseillier trouve une place excellente dans le jardin fruitier, entre les vases et dans les pointes des angles. La seule forme à lui donner est celle en cépée…

Tableau.

C'est pas évident de prime abord, mais l'exemple ci-dessous il y a une chose qui ne va pas du tout, mais pas du tout ! Tu n'as rien remarqué ? Et bien le texte des légendes est en anglais.

Voici le même exemple avec \mainlanguage[fr], placé dans l'entête du document. (voir la fiche Franciser son document)

Tableau.

Figure n'a pas changé mais Table est devenu Tableau.

Le numéro de la figure c'est bien mais un description du document c'est mieux.

sur le papier, et dans des cordons verticaux, plus jolis encore, toujours sur le papier, mais impossibles, en vertu des lois végétales.

\placefigure{ Je place ici le texte de ma légende.}{\externalfigure[groseille-2][width=10cm]}

Il a eu l’irrévérence d'ajouter à son geste, à l'adresse de l'éminent professeur, une foule de gourmands, et pas du tout de groseilles. C’est un drôle, d'accord. Il a d'immenses défauts, mais de grandes qualités, et mieux vaut essayer de vivre avec lui que d’en faire un insurgé ; on n’en viendrait pas à bout.

\placetable{ Je place ici le texte de ma légende.}{
\bTABLE
\bTR \bTH Français \eTH \bTH Chti \eTH \eTR
\bTR \bTD Pantalon\eTD \bTD Marrone \eTD \eTR
\bTR \bTD Serpillière\eTD \bTD Wassingue \eTD \eTR
\bTR \bTD Boue\eTD \bTD Berdoule \eTD \ \eTR
\eTABLE
}

Le groseillier trouve une place excellente dans le jardin fruitier, entre les vases et dans les pointes des angles. La seule forme à lui donner est celle en cépée…

Tableau.

Te connaissant, je te vois venir : oui elle est bien sympa ta légende mais moi je veux «Fig.» au lieu de «Figure» et «Tab.» au lieu de «Tableau», que le numéro soit séparé du texte par «:». Ah et aussi si possible que la légende soit en italique avec un corps de 10pt et pas 12pt comme le corps du texte. Ah j'allais oublier, que la légende soit alignée à gauche et qu'elle occupe toute la place disponible et pas qu'elle se retrouve sur 2 lignes

Bon on va voir tout cela. Pour modifier l'aspect de la légende on utilise \setupcaptions pour affecter tous les flottants et \setupcaptions[nom du flottant][ ] pour un flottant particulier, qui peut avoir été crée par \definefloat.

Gérer l'emplacement de la légende

Cela fait avec location dont la valeur par défaut est bottom

Le même exemple que ci-dessus avec pour l'image :

\setupcaptions[location=top]

Et pour le tableau :

\setupcaptions[location=left]

Tableau.

D'autres exemple avec pour l'image :

\setupcaptions[location=low]

Et pour le tableau :

\setupcaptions[location=high]

Tableau.

Stop je t'arrête tout de suite, s'il existe bien une option pour placer la légende à droite, right, il n'y a pas de commande pour la placer en haut à droite ni en bas à droite.

Bin je fait comment moi qui voulais une légende en bas à droite.

Ça m'aurait étonné.

T'inquiète, M. ConTeXt a tout prévu, tu peux combiner les options de \setupcaption :

\setupcaptions[location={right,low}]

Et pour le tableau :

\setupcaptions[location={right,high}]


N’oublie pas les { }

Tableau.

Légende dans la marge

Bien entendu il faut avoir une marge assez grande pour contenir la légende, ou une toute petite légende si non ça déborde :

\setupcaptions[location=leftmargin]

Et pour le tableau :

\setupcaptions[location=rightmargin]
<

Tableau.

Il faut quand même jouer sur la largeur de la légende, qui ce fait avec width

\setupcaptions[location=leftmargin,width=2cm]

Et pour le tableau :

\setupcaptions[location=rightmargin,width=2cm]

Tableau.

Avant de continuer je vais définir les différentes parties de la légende afin de bien savoir de quoi on cause. Il y a d'abord l'entête, le numéro, le label ,enfin la partie comprenant le nom du type de flottant (Figure, Tableau,…) et le numéro. Moi dans la suite je vais appeler ça le label qui est composé du nom et du numéro. Ensuite il y a le séparateur, les : ou le — puis la légende proprement dite.

Légende sans numéro de figure

\setupcaptions[number=no]

Tableau.

Changer le type de numérotation

\setupcaptions[numberconversion=Romannumerals]

Tableau.

Tu peux utiliser aussi :

Numérotation continue, par chapitre, par section,…

Par défaut la numérotation des figure ce fait par chapitre, c'est à dire qu'à chaque chapitre la numérotation recommence à 1.

Tableau.

Tableau.

Comme tu peux le voir dans les exemples ci-dessous la numérotation est en deux parties, avec le premier chiffre qui correspond au numéro de la section qui déclenche la ré-initialisation de la numérotation, ici le chapitre et après le point le numéro de figure dans la section.

Tu changes la section qui déclenche la ré-initialisation de la numérotation avec la commande way à laquelle tu attribue les valeurs : bychapter pour une numérotation par chapitre (valeur par défaut), bysection pour une numérotation par section, bysubsection pour une numérotation par sous-section,…

Tu modifies le premier chiffre, celui qui indique le numéro de la section qui déclenche la ré-initialisation de la numérotation avec prefixsegments qui prend les valeur chapter pour un numéro de chapitre (valeur par défaut), section pour un numéro de section, subsection pour un numéro de sous-section,… Si tu ne veux pas que ce numéro apparaisse tu écris prefixsegments=none

\setupcaptions[way=bysection,prefixsegments=section]

Donne une numérotation des figures par section.

Pour avoir une numérotation de 1 à n pour tout le texte sans tenir compte des sections :

\setupcaptions[way=bytext, prefixsegments=none]

Modifier le séparateur

Tu le crée (car par défaut il n'y en a pas) ou le modifie avec numberstopper

\setupcaptions[numberstopper=:]

Tableau.

Par défaut ConTeXt ne met pas d'espace entre le numéro et le séparateur.

\setupcaptions[numberstopper={ :}]

Tableau.

La distance entre le séparateur et le texte de la légende se règle par distance

Par défaut cette distance est = 1em

\setupcaptions[numberstopper={ :}, distance=5em]

Tableau.

Modifier le nom du label

Pour transformer Figure 1 en Fig. 1, il faut utiliser \setuplabeltext

\setuplabeltext[figure=Fig.]


Attention c'est figure avec un f minuscule car ça renvoie au nom du flottant et pas au nom du label. Pour modifier un Tableau 1 en Tab. 1 tu utilises table=Tab.

Tableau.

Modifier la fonte

Pour modifier la fonte de toute la légende (texte, label et numéro) tu utilises style

\setupcaptions[style=\tfd]

Tableau.

\setupcaptions[style=\mono\tfd]

Tableau.

Par contre ça ne marche par si tu veux mettre toute la légende en italique.

\setupcaptions[style=\it]

Tableau.

En effet la fonte du label est défini en gras dans une autre commande : headstyle

\setupcaptions[style=\tfd\it, headstyle=\bi,numberstopper= :]

Tableau.

headstyle affecte aussi le séparateur



style=\tfd\it, fonctionne alors que style=\it\tfd, ne met pas en italique.

Modifier la couleur

color et headcolor sont à la couleur ce que style et headstyle sont à la fonte

\setupcaptions[style=\tfd, headcolor=darkgreen,color=red,numberstopper= :]

Tableau.

Espace vertical entre le label et la légende

\setupcaptions[numberstopper= :,spaceinbetween=5em]

Tableau.

Espace vertical entre la légende et l'illustration (spacebefore) et la légende et le texte qui suit (spaceafter)

\setupcaptions[numberstopper= :,spaceafter=4em,spacebefore=4em]

Tableau.