我在LuaLatex中使用metapost绘制图表,比先用metapost创建图表再插入图表方便多了,但是我不知道如何把两个图表放在同一行,比如下面两个图表如何放在同一行?谢谢。
\RequirePackage{luatex85}
\documentclass[12pt]{amsart}
\usepackage{float}
\usepackage{luamplib}
\begin{document}
\begin{figure}[H]
\begin{mplibcode}
beginfig(1)
pair A[],L[],R[],N[];
A[1] := (0,2cm);
for i=2 upto 5:
A[i] := A[i-1] rotated -360/5;
endfor;
draw A[1]--A[2];
draw A[2]--A[3];
draw A[3]--A[4];
draw A[4]--A[5];
draw A[5]--A[1];
draw A[1]--A[4];
endfig;
\end{mplibcode}
\end{figure}
\begin{figure}[H]
\begin{mplibcode}
beginfig(1)
pair A[],L[],R[],N[],t[];
path p[];
A[1] := (0,2cm);
for i=2 upto 5:
A[i] := A[i-1] rotated -360/5;
endfor;
draw A[1]..A[2]..A[3]..A[4]..A[5]..A[1];
endfig;
\end{mplibcode}
\end{figure}
\end{document}
答案1
在您的文档中使用了两个图形。LaTeX 绝不会将多个图形放在同一行,因此您必须将两个mplibcode
环境放在同一个figure
环境中。(您也可以将它们组合成一个mplibcode
具有多个组的环境beginfig(...) endfig;
,但使用不同的mplibcode
环境可以更轻松地分离图形。
然后还有一个问题:在 之后\begin{figure}
,TeX 处于垂直模式。如果在垂直模式处于活动状态时添加多个\hbox
es(通过mplibcode
),TeX 会垂直堆叠它们。因此您需要先进入水平模式:\leavevmode
在第一个mplibcode
环境之前添加:
\RequirePackage{luatex85}
\documentclass[12pt]{amsart}
\usepackage{float}
\usepackage{luamplib}
\begin{document}
\begin{figure}[H]
\leavevmode
\begin{mplibcode}
beginfig(1)
pair A[],L[],R[],N[];
A[1] := (0,2cm);
for i=2 upto 5:
A[i] := A[i-1] rotated -360/5;
endfor;
draw A[1]--A[2];
draw A[2]--A[3];
draw A[3]--A[4];
draw A[4]--A[5];
draw A[5]--A[1];
draw A[1]--A[4];
endfig;
\end{mplibcode}% <- Omit this comment to add a space between the graphs.
\begin{mplibcode}
beginfig(1)
pair A[],L[],R[],N[],t[];
path p[];
A[1] := (0,2cm);
for i=2 upto 5:
A[i] := A[i-1] rotated -360/5;
endfor;
draw A[1]..A[2]..A[3]..A[4]..A[5]..A[1];
endfig;
\end{mplibcode}
\end{figure}
\end{document}