答案1
在“正常”文本中\newline
,\\
基本相同。但是,\centering
更改如下:
\def\centering{%
\let\\\@centercr
\rightskip\@flushglue\leftskip\@flushglue
\parindent\z@\parfillskip\z@skip}
因此,在minipage
with中\centering
,\newline
仍然具有其原始定义,而\\
现在是\@centercr
。经过几次扩展(我省略了),最终您将得到
\newline
本质上\unskip\relax{\relax\relax}\nobreak\hfil\break
,\\
本质上是\unskip\par\addvspace{-\parskip}\ignorespaces
。
这意味着\newline
仍然具有“正常文本定义” \hfil
,即 ,它应该填充行的其余部分。在对齐文本中完全合理,但在居中文本中是错误的,因为它添加了额外的 粘在右边。
长话短说:使用\\
。
\documentclass{article}
\begin{document}
\fbox{\begin{minipage}{3cm}
\centering
X\newline
XXX\newline
XXXXX\newline
$XXXXXXX$\newline
X
\end{minipage}}
\fbox{\begin{minipage}{3cm}
\centering
X\\
XXX\\
XXXXX\\
$XXXXXXX$\\
X
\end{minipage}}
\end{document}