如何在标题中正确使用不同的字体和形状字符?

如何在标题中正确使用不同的字体和形状字符?

我使用 Kpfonts 来显示文档文本,但我想在标题中使用 Computer Modern 斜体 & 符号。为此,我定义了一个命令\amp来插入正确的字符。第一次尝试是

\newcommand\amp{{\fontfamily{cmr}\fontshape{it}\selectfont\&}}

但那不起作用,因为没有粗体斜体 CM,所以我不得不使用 bx 系列:

\newcommand\amp{{\usefont{T1}{cmr}{bx}{it}\&}}

成功了。但现在我在页眉中使用了粗体“&”符号(这是一篇论文,因此我在非标题页的顶部使用了章节标题)。经过一番调整,我得到了以下结果:

\makeatletter
\newcommand\amp{{\if\f@series b\usefont{T1}{cmr}{bx}{it}\else\usefont{T1}{cmr}{m}{it}\fi\&}}
\makeatother

这使我在标题和页眉的正确位置获得了正确的粗细,但是现在目录获得了错误的字体,因为\amp在将内容添加到 .toc 文件时进行了扩展,并且那时的字体系列是 m 而不是 b。

有什么方法可以让它在三个地方都正确执行吗?我想我必须以某种适当的方式延迟宏的扩展,但我不知道该怎么做……

答案1

使用\protect\amp就可以了。

\documentclass{article}

\usepackage{kpfonts}

\makeatletter
\newcommand\amp{{\if\f@series b\usefont{T1}{cmr}{bx}{it}\else\usefont{T1}{cmr}{m}{it}\fi\&}}
\makeatother

\begin{document}

\tableofcontents

\section{Barnes \protect\amp\ Noble}

Some text.

\end{document}

相关内容