使用字母/垂直空间的标题

使用字母/垂直空间的标题

我需要在信中使用标题,更准确地说是在documentclass dinbrief

知道 LaTeX 不支持此文档类中的section命令,subsection我使用以下解决方法:

\newcommand{\section}[1]{ { \huge \textbf{#1}} }
\newcommand{\subsection}[1]{ {\Large \textbf{#1}} }

问题是,如果我比较下面的两个代码片段,垂直空间是不同的。无论在哪里,使用article这两种方法的文档类,LaTeX 都使用相同的空间。

方法 1

\section{test}
Lorem ipsum dolor sit amet.

方法 2

\section{test}

Lorem ipsum dolor sit amet

有没有更好的替代标题的方法?如果没有,如何实现相同的垂直空间?

谢谢。

答案1

如果您想要重现article类中的间距,您可以或多或少地复制来自的分段命令的定义article.cls,该命令在内部使用 LaTeX 基本宏\@startsection来排版标题和适当的间距。

\documentclass{dinbrief}
\usepackage{lipsum}

\makeatletter
\setcounter{secnumdepth}{2}
\newcounter{section}
\newcounter{subsection}[section]
\renewcommand\thesection{\@arabic\c@section}
\renewcommand\thesubsection{\thesection.\@arabic\c@subsection}
\newcommand*\section{\@startsection{section}{1}{\z@}%
                    {-3.5ex \@plus -1ex \@minus -.2ex}%
                    {2.3ex \@plus.2ex}%
                    {\normalfont\huge\bfseries}}
\newcommand*\subsection{\@startsection{subsection}{2}{\z@}%
                       {-3.25ex\@plus -1ex \@minus -.2ex}%
                       {1.5ex \@plus .2ex}%
                       {\normalfont\Large\bfseries}}
\makeatother

\signature{Mr.\ Happy}

\begin{document}
  \begin{letter}{Mr.\ Grumpy}
    \opening{Hello,}
    \section{A Section}
    \lipsum[1]
    \subsection{A Subsection}
    \lipsum[2-3]
    \closing{Yours truly,}
  \end{letter}
\end{document}

我不确定您是否也想要节编号。如果不想要,只需省略计数器定义或设置secnumdepth0

\@startsection指定的参数

  1. 用于此级别的计数器
  2. 切片级别
  3. 标题的缩进
  4. 标题上方的垂直跳过(负长度表示该部分的第一段没有段落缩进,这不会产生任何影响dinbrief
  5. 标题后的跳过(如果为正数,则为垂直跳过;如果为负数,则为水平跳过,并且标题后没有换行符,例如\paragraph类似于部分级别)
  6. 最后,标题使用的字体(这里,我使用了您示例中的字体大小,尽管在我看来它看起来有点大)

当然,您可以随意调整长度。另外,我不确定是否dinbrief与页面底部齐平,因此您甚至可能不需要橡胶长度来设置间距。

编辑:

您可能还需要调整长度以补偿dinbrief垂直段落间距......

相关内容