Je ne réussis pas à centrer une figure MetaPost, même avec l'environnement figure et la commande \centering (et je crois bien qu'avec MetaPost, on peut s'en passer).

Qu'est-ce qui cloche dans le code suivant, en termes de centrage ?

% pour composer cet ECM selon des usages vaguement européens
\documentclass[french]{scrartcl}
% choix de la fonte plex dans sa version sans empattements
\usepackage[sfdefault]{plex-sans}
% pour intégrer des dessins MetaPost compilés directement avec LuaLaTeX
\usepackage{luamplib}
% pour franciser la chose selon le paramètre passé à la classe
\usepackage{babel}
\begin{document}
Voici un carré :
\hspace{10pt}
% Centrage dans un environnement MetaPost
\begin{mplibcode}
beginfig(1);
% Dimensions et points
numeric u;
u := 72; % Taille d'un côté (1 inch en points typographiques)
pair A, B, C, D;
A = (0, 0);
B = (u, 0);
C = (u, u);
D = (0, u);
% Dessin du carré
draw A--B--C--D--cycle withpen pencircle scaled 1pt;
% Centrage
currentpicture := currentpicture shifted - center currentpicture;
endfig;
\end{mplibcode}
\hspace{10pt}
Et le texte continue ici, ce qui montre bien que cette figure n'est pas centrée !
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Posée 23 Nov '24, 07:37

Pathe's gravatar image

Pathe ♦♦
7.6k49208252
Taux d'acceptation : 55%

Modifiée 23 Nov '24, 08:11


Lors de la production d’une figure avec mplibcode, luamplib ne force ni le mode horizontal ni le mode vertical. Les figures ainsi pro-duites ne respectent donc pas, par défaut, les commandes d’alignement comme \centering ou \raggedleft, à moins d’utiliser explicitement la commande \leavevmode grâce au mécanisme verbatimtex. Voir l’article dans les cahiers : https://publications.gutenberg-asso.fr/cahiers/article/view/34/175

\documentclass{article}
% pour intégrer des dessins MetaPost compilés directement avec LuaLaTeX
\usepackage{luamplib}
\begin{document}
Voici un carré :
\begin{center}
% Centrage dans un environnement MetaPost
\begin{mplibcode}
verbatimtex \leavevmode etex;
beginfig(1);
% Dimensions et points
numeric u;
u := 72; % Taille d'un côté (1 inch en points typographiques)
pair A, B, C, D;
A = (0, 0);
B = (u, 0);
C = (u, u);
D = (0, u);
% Dessin du carré
draw A--B--C--D--cycle withpen pencircle scaled 1pt;
% Centrage
currentpicture := currentpicture shifted - center currentpicture;
endfig;
\end{mplibcode}
\end{center}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pour que toutes les figures aient ce comportement, je rajoute souvent dans le préambule LaTeX:

\everymplib{verbatimtex \leavevmode etex;}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

qui permet d’ajouter ce code en début de chaque environnement LaTeX mplibcode.

Lien permanent

Publiée 23 Nov '24, 08:34

Maxime's gravatar image

Maxime ♦
1.5k42839
Taux d'acceptation : 61%

Modifiée 23 Nov '24, 09:51

@Maxime : j'ai utilisé l'instruction \everymplib{verbatimtex \leavevmode etex;} après \begin{document} et ça fonctionne parfaitement pour toutes les figures. Je marque donc la question comme résolue.

En revanche, attention : l'ECM proposé en réponse ne compile pas en ligne.

(23 Nov '24, 08:58) Pathe ♦♦ Pathe's gravatar image
1

L'ecm est corrigé.

(23 Nov '24, 09:51) Maxime ♦ Maxime's gravatar image
1

On peut aussi utiliser \mplibforcehmode dans le préambule qui est une commande du package luamplib qui force le mode horizontal pour les figures des environnements {mplibcode}

(24 Nov '24, 19:35) logamath logamath's gravatar image
Votre réponse
[Masquer l'aperçu]

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Mots-clés de la question :

×8
×5
×4
×2
×1

Question posée : 23 Nov '24, 07:37

Question vue : 591 fois

Dernière mise à jour : 24 Nov '24, 19:37

C'est votre première visite ici ? Consultez la FAQ !

×