我正在尝试重现此章节标题(为我的部分/章节设置样式) memoir
。这或多或少与以下代码一起工作:
\documentclass[11pt,oneside]{memoir}
\usepackage{blindtext}
\makechapterstyle{uno}{%
\setlength{\midchapskip}{5pt}
\renewcommand{\chapnumfont}{\Huge\bfseries}
\renewcommand{\printchaptername}{}%
\renewcommand*{\chapternamenum}{}
\renewcommand{\printchapternum}{}%
\renewcommand{\chaptitlefont}{\Huge\bfseries\scshape}
\renewcommand{\printchaptertitle}[1]{%
\hspace*{-0.1\textwidth}\chaptitlefont ##1}
\renewcommand{\afterchaptertitle}{%
\vskip -2pt \hspace*{-\marginparwidth}\rule{0.7\textwidth}{5pt}}
}
\chapterstyle{uno}
\begin{document}
\chapter{Es war einmal ein Mann}
\blindtext[1]
\end{document}
但我的问题是:为什么会出现以下代码:
\renewcommand{\afterchaptertitle}{%
\vskip\midchapskip\hspace*{-\marginparwidth}\rule{0.7\textwidth}{5pt}}
}
把这么大的分隔留给规则?据我所知,\vskip
这是在创建一个新段落。但如果我用
\renewcommand{\afterchaptertitle}{%
\vskip\midchapskip\hrule}
}
根本没有分离(只有的5pt
)\midchapskip
。\rule
和的\hrule
行为不同,但我不明白为什么,也没有看到很好的解释。
答案1
\hrule
是一个垂直模式命令,因此在垂直模式下直接堆叠在前一个命令之下。
LaTeX\rule
以 开始\leavevmode
,因此是水平模式命令,因此如果在垂直模式下使用,您将获得垂直\parskip
空间和水平空间\parindent
。
\hbox{hello}
如果你比较一下,你会看到同样的行为\mbox[hello}
(此外,在您的示例中,您有一个类似水平命令的示例。\hspace*
)\rule
也许这更接近您的需求
\renewcommand{\afterchaptertitle}{{%
\par\offinterlineskip\hbox{\hspace*{-\marginparwidth}\rule{0.7\textwidth}{5pt}}}}