我会放置浮动中心,而它留在原处。
\documentclass[11pt]{article}
\usepackage[charter,uppercase = upright]{mathdesign}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\usepackage{luamplib}
\usepackage{float}
\def\a{blabla blabla blabla blabla blabla blabla }
\begin{document}
\selectlanguage{USenglish}
\begin{enumerate}
\item \a
\begin{figure}[h!]
\centering
\begin{mplibcode}
beginfig(1);
u:=1cm;
defaultscale := 0.9;
z0=(0,0);
z1=(4u,0);
z2=(6u,3u);
z3=(2u,3u);
z4=whatever[z0,z2]=whatever[z1,z3];
path p ;
p=z0--z3;
draw z0--z1--z2--z3--cycle;
draw z1--z3;
draw z2--z0;
label.lrt("B",z1);
label.urt("C",z2);
label.ulft("D",z3);
label.llft("A",z0);
label.top("E",z4 shifted(0,0.1u));
draw (1u,0) withpen pencircle scaled 3bp withcolor red;
draw point (1/3)*length(p) of p withpen pencircle scaled 3bp withcolor red;
label.bot(btex $\color{red}I$ etex,(1u,0));
label.lft(btex $\color{red}J$ etex,point (1/3)*length(p) of p);
endfig;
\end{mplibcode}
\end{figure}
\a
\begin{enumerate}
\item \a
\item \a
\end{enumerate}
\end{enumerate}
\end{document}
答案1
对于其他内容,使用 就足够了\centering
,但这对 没有影响,mplibcode
因为此环境的内容放在 内\hbox
;但是,您可以使用\hfill
s:
\documentclass[11pt]{article}
\usepackage[charter,uppercase = upright]{mathdesign}
\usepackage[no-math]{fontspec}
\usepackage{polyglossia}
\usepackage{luamplib}
\usepackage{float}
\def\A{blabla blabla blabla blabla blabla blabla }
\def\a{\A\A\A}
\begin{document}
\selectlanguage{USenglish}
\begin{enumerate}
\item \a
\begin{figure}[H]
\hfill\begin{mplibcode}
beginfig(1);
u:=1cm;
defaultscale := 0.9;
z0=(0,0);
z1=(4u,0);
z2=(6u,3u);
z3=(2u,3u);
z4=whatever[z0,z2]=whatever[z1,z3];
path p ;
p=z0--z3;
draw z0--z1--z2--z3--cycle;
draw z1--z3;
draw z2--z0;
label.lrt("B",z1);
label.urt("C",z2);
label.ulft("D",z3);
label.llft("A",z0);
label.top("E",z4 shifted(0,0.1u));
draw (1u,0) withpen pencircle scaled 3bp withcolor red;
draw point (1/3)*length(p) of p withpen pencircle scaled 3bp withcolor red;
label.bot(btex $\color{red}I$ etex,(1u,0));
label.lft(btex $\color{red}J$ etex,point (1/3)*length(p) of p);
endfig;
\end{mplibcode}\hfill\null
\end{figure}
\a
\begin{enumerate}
\item \a
\item \a
\end{enumerate}
\end{enumerate}
\end{document}
由于您不希望图形浮动,并且您已经在使用float
,因此我使用了H
位置说明符来抑制浮动。另一个选项是使用minipage
而不是,并使用或包中的figure
提供标题(如果需要);但是,在这种情况下,您仍然必须使用来使内容居中。\captionof
caption
capt-of
\hfill
答案2
如果您使用
\leavevmode\begin{mplibcode}
环境可能应该提供\leavevmode
自身来匹配所有其他乳胶盒约束,但显然事实并非如此。