我想将文档标题上移以节省空间。我不知道该怎么做。
这是我在 LyX 中拥有的
这是它在 PDF 中的显示方式。我想将其上移。
答案1
在默认设置下Article (Standard Class)
(参见“文档”>“设置...”>“文档类别”选项卡),标题(作者和日期)是使用宏设置的\@maketitle
(在里面)article.cls
。这个宏如下所示:
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
您会注意到,它插入一个\newpage
,然后设置\null
(将其视为只是“启动页面”的东西),并v
在开始设置实际标题(在ed 环境中)之前插入skip
一个。2em
center
您可以通过在文档 > 设置... > LaTeX 序言中添加以下内容来摆脱这种垂直跳跃:
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@maketitle}% <cmd>
{\newpage\null\vskip 2em}{}% <search><replace>
{}{}% <success><failure>
\makeatother
上述补丁使用etoolbox
\newpage \null \vskip 2em
从 中删除构造\@maketitle
,从而使标题立即从调用它的地方开始。如果需要,可以添加类似的操作来删除环境末尾的v
垂直线(由 给出):skip
\vskip 1.5em
\makeatletter
\patchcmd{\@maketitle}% <cmd>
{\par\vskip 1.5em}{\par}% <search><replace>
{}{}% <success><failure>
\makeatother
仅使用第一个补丁,你的文档现在应该类似于:
在上面的输出中我还添加了showframe
包裹突出显示文本框的位置,只是表明在实际标题之前没有设置空白。
由于两个补丁都处于活动状态,标题下方的空间会变小(不多):
当然,我们可以不删除它,而是插入一个负空间。
答案2
如果使用 KOMA 文章类别而不是标准文章类别,则必须修改上述解决方案,因为在 .cls 中,命令不是\newpage\null\vskip 2em
,而是\null\vskip 2em
。因此
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@maketitle}% <cmd>
{\newpage\null\vskip 2em}{}% <search><replace>
{}{}% <success><failure>
\makeatother
必须改为
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@maketitle}% <cmd>
{\null\vskip 2em}{}% <search><replace>
{}{}% <success><failure>
\makeatother
让它发挥作用(至少对我来说)。
为了减少标题下方的空间而不在序言中添加任何内容,我找到了这个解决方案减少标题下方的空间
在文档中看起来像
使用 Evil Red Code。对于刚接触 LyX 的人来说,这可能更容易。但是,它不能将标题推到页面上方,只能减少副标题、日期和文本之间的空间。
经过调整\vspace