小页面内的文本对齐

小页面内的文本对齐

我想创建三行文本。每行文本的起始位置应与页面左侧的距离相同。但该距离不只是左边距的结束位置;相反,文本应位于页面中间。

为了实现这一点,我尝试了以下方法:

\noindent\makebox[\textwidth][c]
{\begin{minipage}{0.5\textwidth}
    \Large
    Alpha\\
    \vspace{2mm}
    Beta\\
    \vspace{2mm}
    Gamma\\
\end{minipage}}

但这给了我以下输出:

在此处输入图片描述

我有两个问题:

1)为什么三行没有对齐?

2) 改变和vspace之间的值实际上只会影响和之间的间隙。因此,三行之间的间隙不相等(为 2mm)。为什么?AlphaBetaBetaGamma

谢谢!

答案1

尝试

\documentclass{article}
\usepackage{showframe}

\begin{document}
\noindent\makebox[\textwidth]
{\begin{minipage}{0.5\textwidth}
    \Large
    Alpha\\[2mm]
    Beta\\[2mm]
    Gamma
\end{minipage}}
\end{document}

或者

\documentclass{article}
\usepackage{showframe}

\begin{document}
\noindent\makebox[\textwidth]
{\begin{minipage}{0.5\textwidth}
    \Large
    Alpha\par\vspace{2mm}
    Beta\par\vspace{2mm}
    Gamma
\end{minipage}}
\end{document}

如果这能满足您的要求。

在此处输入图片描述

答案2

当你写作时

Alpha\\
\vspace{2mm}
Beta\\
\vspace{2mm}
Gamma\\

然后你只创建一个包含说明的段落:

Alpha\hfil\break\vadjust{\vskip2mm} Beta\hfil\break\vadjust{\vskip2mm} Gamma\hfil\break\par

Beta注意和之前的空格Gamma。这些空格从写有 的最后一行开始出现\vsapce{2mm}<space>(由标记处理器生成的空格)。

现在,这一段被分解成以下几行:

Alpha\hfil
\vadjust{\vskip2mm} Beta\hfil
\vadjust{\vskip2mm} Gamma\hfil

\vadjustLaTeX 宏生成的图元将\vspace其垂直材质放在当前行下方,因此线条看起来像:

Alpha\hfil
<space>Beta\hfil
\vskip2mm
<space>Gamma\hfil
\vskip2mm

这是 LaTeX 用户对宏的典型误解\vspace。你需要:了解更多关于 TeX 原理,关于垂直模式、水平模式、标记器、\vadjust原始等。但不幸的是,这些内容在常见的 LaTeX 手册中没有记录。

编辑\\您的代码中还有另一个问题(或 LaTeX 文档中的常见错误):段落末尾的使用,即:

...Gamma\\

这是处理为

...Gamma\hfil\break<space>\par

\par原始运行\unskip(删除<space>行尾)并添加\nobreak\hskip\parfillskip\break,因此我们有:

...Gamma\hfil\break\nobreak\hskip\parfillskip\break

\nobreak\penalty10000这里的和表示。值大于 的 和是可丢弃(可移除)项,只有(别名)是不可丢弃的。因此,除了最后一个之外,第一个之后的所有项都会被移除\break,我们有:\penalty-10000\hskip\penalty-10000\penalty-10000\break\break\break

...Gamma\hfil\break\break

当将此材料分成几行时,会在 first 之后创建空行\break。但是此行没有任何可拉伸的材料,因此Underfull hbox badnes 10000会出现警告:。您的示例肯定会生成如下段落:

Alpha\hfil
<space>Beta\hfil
\vskip2mm
<space>Gamma\hfil
\vskip2mm
<empty line plus warning Underfull hbox>

那么你能做什么呢?不要\\在段落内或段落末尾使用。如果你需要达到同样的效果,只需关闭当前段落即可。你的例子可以打印成三个段落。如果你使用\vskip原始的(而不是\vspaceLaTeX 宏),那么行为会更直观,因为\vskip在水平模式下会关闭当前段落。更准确地说,在这种情况下,在自身之前\vskip添加\par标记。所以代码:

Alpha
\vskip2mm
Beta
\vskip2mm
Gamma

正是您需要的。但下一段的第一个词不能是PlusMinus(有关详细信息,请参阅\vskipTeX 文档)。

相关内容