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][1]
\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}
Pour que toutes les figures aient ce comportement, je rajoute souvent dans le préambule LaTeX:
\everymplib{verbatimtex \leavevmode etex;}
qui permet d’ajouter ce code en début de chaque environnement LaTeX `mplibcode`.
[1]: https://publications.gutenberg-asso.fr/cahiers/article/view/34/175