我想创建三行文本。每行文本的起始位置应与页面左侧的距离相同。但该距离不只是左边距的结束位置;相反,文本应位于页面中间。
为了实现这一点,我尝试了以下方法:
\noindent\makebox[\textwidth][c]
{\begin{minipage}{0.5\textwidth}
\Large
Alpha\\
\vspace{2mm}
Beta\\
\vspace{2mm}
Gamma\\
\end{minipage}}
但这给了我以下输出:
我有两个问题:
1)为什么三行没有对齐?
2) 改变和vspace
之间的值实际上只会影响和之间的间隙。因此,三行之间的间隙不相等(为 2mm)。为什么?Alpha
Beta
Beta
Gamma
谢谢!
答案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
\vadjust
LaTeX 宏生成的图元将\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
原始的(而不是\vspace
LaTeX 宏),那么行为会更直观,因为\vskip
在水平模式下会关闭当前段落。更准确地说,在这种情况下,在自身之前\vskip
添加\par
标记。所以代码:
Alpha
\vskip2mm
Beta
\vskip2mm
Gamma
正是您需要的。但下一段的第一个词不能是Plus
或Minus
(有关详细信息,请参阅\vskip
TeX 文档)。