这会有点复杂:本着 Bringhurst 的精神,我试图将斜体 & 符号合并到标题中。我使用的是 classicthesis 的 LuaLaTeX 修改版本,因此布局相对复杂。我希望以下内容可以说明问题。我尝试生成 MWE,但 classicthesis 的目录生成对我来说有点太复杂了。
classicthesis 使用间隔大写字母作为章节标题,使用小写字母作为节标题。标准大小的 & 符号对于章节来说还行,但对于节来说太大了。我创建了两个版本\amper
:\ampersmall
\newcommand{\amper}{\protect\textit{\&}\xspace}
\newcommand{\ampersmall}{\protect\footnotesize\textit{\&}\xspace\normalsize}
文本中的结果很好:
带有大号 & 号的章节
带有小“&”符号的部分
问题在于目录,因为这里的布局是相反的:章节标题采用小写字母,而节标题采用普通文本:
因此,我希望目录中的内容完全相反:章节使用小“&”符号,章节使用普通“&”符号。
有人对如何在目录中切换 & 符号宏有什么建议吗?
答案1
将与字体相关的内容放入移动参数中通常不是一个好主意,因为如您所见,内容在不同的地方可能会被格式化为不同的格式。
我尝试过了
- 检查当前字体是否为小写字母,以及
- 使用相对尺寸变化。
结果:
\documentclass{article}
\usepackage{xspace}
\usepackage{relsize}
\newcommand*\scname{sc}
\makeatletter
\DeclareRobustCommand{\amper}{%
\ifx\f@shape\scname
{\smaller\textit{\&}}%
\else
\textit{\&}%
\fi
\xspace}
\makeatother
\begin{document}
\textbf{cat \amper dog}
\textsc{cat \amper dog}
\end{document}
享受!
答案2
这并不能直接回答您的问题,但是\amper
在目录中和其他地方对 & 朋友使用不同的定义怎么样?例如:
\documentclass{article}
\usepackage{xcolor}
\DeclareRobustCommand{\strong}[1]{\textcolor{red}{#1}}
\DeclareRobustCommand{\renewstrong}{%
\DeclareRobustCommand{\strong}[1]{\textcolor{blue}{##1}}%
}
\AtBeginDocument{\addtocontents{toc}{\renewstrong}}
\begin{document}
\tableofcontents
\section{A section with a special \strong{emphasis}}
\end{document}