我需要在信中使用标题,更准确地说是在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}
我不确定您是否也想要节编号。如果不想要,只需省略计数器定义或设置secnumdepth
为0
。
\@startsection
指定的参数
- 用于此级别的计数器
- 切片级别
- 标题的缩进
- 标题上方的垂直跳过(负长度表示该部分的第一段没有段落缩进,这不会产生任何影响
dinbrief
) - 标题后的跳过(如果为正数,则为垂直跳过;如果为负数,则为水平跳过,并且标题后没有换行符,例如
\paragraph
类似于部分级别) - 最后,标题使用的字体(这里,我使用了您示例中的字体大小,尽管在我看来它看起来有点大)
当然,您可以随意调整长度。另外,我不确定是否dinbrief
与页面底部齐平,因此您甚至可能不需要橡胶长度来设置间距。
编辑:
您可能还需要调整长度以补偿dinbrief
垂直段落间距......