如何更改文档标题的边距?

如何更改文档标题的边距?

我想将文档标题上移以节省空间。我不知道该怎么做。

这是我在 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一个。2emcenter

您可以通过在文档 > 设置... > 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 在此处输入图片描述

经过调整\vspace

在此处输入图片描述

相关内容