回忆录章节标题的字母间距

回忆录章节标题的字母间距

我想在书中的\section命令中添加字母间距。\setsecheadstylememoir

我尝试使用soul

\sodef\soSection{}{.1em}{.5em plus.1em}{.1em plus.1em minus.1em}
\setsecheadstyle{\sectionFont\MakeUppercase\soSection}

当然,这无法编译,因为它应该是\soSection{...},但是memoir插入\secheadstyle方式如下:

\newcommand{\section}{%
  \sechook%
  \@startsection{section}{1}%  level 1
      {\secindent}%            heading indent
      {\beforesecskip}%        skip before the heading
      {\aftersecskip}%         skip after the heading
      {\normalfont\secheadstyle}} % font

可以使用一种快速的解决方法,但是使用样式来实现会更加简洁。

\section[Suffering and Self-View]{\soSection{Suffering and Self-View}}

可以\setsecheadstylesoul某种方式在其中设置命令吗?

答案1

该类memoir使用两个可选参数作为分段命令;第一个可选参数用于目录,第二个可选参数用于运行标题。

在包的帮助下,xparse您可以定义一个新命令,其行为与标准命令类似\sectionmemoir但添加您的\soSection命令:

\documentclass{memoir}
\usepackage{soul}
\usepackage{xparse}

\sodef\soSection{}{.1em}{.5em plus.1em}{.1em plus.1em minus.1em}

\DeclareDocumentCommand\Section{oom}{
\IfNoValueTF{#1}
  {\section{#3}}
  {\IfNoValueTF{#2}{\section[#1]{#3}}{\section[#1][#2]{#3}}}
}

\begin{document}

\Section[Suffering and Self-View][Test]{Suffering and Self-View}

\end{document}

如果您永远不会使用第二个可选参数,则可以使用该包及其选项\section给出一个更简单的解决方案(无需新命令):titlesecexplicit

\documentclass{memoir}
\usepackage{soul}
\usepackage[explicit]{titlesec}

\sodef\soSection{}{.1em}{.5em plus.1em}{.1em plus.1em minus.1em}

\titleformat{\section}
  {\normalfont\Large\bfseries}{\thesection}{1em}{\soSection{#1}}

\begin{document}

\section[Suffering and Self-View]{Suffering and Self-View}

\end{document}

相关内容