回忆录章节的格式化

回忆录章节的格式化

我正在尝试重现此章节标题(为我的部分/章节设置样式) 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}}}}

相关内容