在这个例子中,我期望所有“MMM”都彼此对齐。但事实并非如此:
\documentclass{article}%
\usepackage{amsmath}%
\newcommand{\before}{mmm}%
\newcommand{\after}{MMM}%
\newlength{\myplus}%
\begin{document}%
\begin{multline}%
\settowidth{\myplus}{\before}%
\the\myplus\hfill\\%
\before,\after\hfill\\%
%
\hspace{\myplus},\after\hfill\\%
\hspace*{\myplus},\after\hfill\\%
%
\setlength{\myplus}{25pt}%
\hspace{\myplus},\after\hfill\\%
\hspace*{\myplus},\after\hfill\\%
%
\hspace{25pt},\after\hfill\\%
\hspace*{25pt},\after\hfill\\%
\end{multline}%
\end{document}
尤其是,\mylength
和25pt
即使在 之后表现也会有所不同\setlength{\myplus}{25pt}
。此外,settowidth
将宽度设置为25pt
,但\myplus
在此之后表现会有所不同。
这是为什么呢?我该如何结合来实现间距setlength
?
答案1
您已在本地组中设置了长度,因此在下一行它再次为 0pt,并且您已将其设置为mmm
文本字体的宽度,但以数学斜体显示它,
也许你想要
\settowidth{\myplus}{$\before$}%
外面(之前)multline
,取决于您的实际使用情况。