我想为 Frontpage 添加标题并手动控制换行符。当我添加\\
以添加新行时,第一行和第二行之间会出现额外的空格,但第二行和最后一行似乎没有问题。为什么会发生这种情况?我该如何修复?
\documentclass[12pt,twoside,a4paper]{book}
\usepackage{setspace}
\begin{document}
\begin{center}
\onehalfspacing
\thispagestyle{empty}
\textsf{\LARGE{what is going on\\why this linespacing?\\why vertical space is so screwed?}}
\end{center}
\end{document}
答案1
你问:发生了什么事,为什么是这个行距?答案在这里。
您的代码是
\textsf{\LARGE{what is going on\\why this linespacing?\\why vertical space is so screwed?}}
LaTeX 宏\textsf{parameter}
打开 TeX 组,选择所需的字体和排版parameter
。然后关闭 TeX 组。
LaTeX 宏\LARGE
选择所需字体并将更大的值设置为\baselineskip
寄存器。然后您有{
打开第二个 TeX 组的,然后您有文本,然后第二个 TeX 组由关闭}
。如果您删除这个不相关的括号对,结果是相同的:
\textsf{\LARGE what is going on\\why this linespacing?\\why vertical space is so screwed?}
现在,为什么要使用这种行距? LaTeX 宏在此上下文中\\
运行\par
TeX 基元。因此,您的示例相当于:
\textsf{\LARGE what is going on\endgraf why this linespacing?\endgraf why vertical space is so screwed?}
第一个\endgraf
(即\par
)创建一行段落。第二个\endgraf
创建第二个一行段落,当它分发到主垂直列表时,\baselineskip
由于宏的原因,寄存器的值更大\LARGE
。因此,这两个段落之间的行间距更大。
接下来:打开第三段,即打开水平模式。然后确定的why vertical ...
参数,宏关闭 TeX 组。这意味着返回到宏启动时有效的先前较小值。然后,标记处理器扫描上述代码后的空行,并在此处创建。这确定了第三段,并将其连接到垂直列表中的前两个段落,但现在更小,因此行间跳跃更小。\textsf
\textsf
\baselineskip
\textsf
\par
\par
\baselineskip
答案2
您缺少尾随\\
,但有更好的方法来完成您的任务。
\documentclass[12pt,twoside,a4paper]{book}
\begin{document}
% set up the front page
\thispagestyle{empty}
%the author
\begin{center}
\sffamily\large
Dumbo
\end{center}
\addvspace{5cm}
\begin{center}
\linespread{1.25} % or \onehalfspacing if you're using setspace
\sffamily\LARGE
what is going on\\
why this linespacing?\\
why vertical space is so screwed?
\end{center}
\end{document}