我想在书中的\section
命令中添加字母间距。\setsecheadstyle
memoir
我尝试使用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}}
可以\setsecheadstyle
以soul
某种方式在其中设置命令吗?
答案1
该类memoir
使用两个可选参数作为分段命令;第一个可选参数用于目录,第二个可选参数用于运行标题。
在包的帮助下,xparse
您可以定义一个新命令,其行为与标准命令类似\section
,memoir
但添加您的\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
给出一个更简单的解决方案(无需新命令):titlesec
explicit
\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}