使用 svjour 类进行 mathcal 和 mathdesign

使用 svjour 类进行 mathcal 和 mathdesign

我想使用 mathdesign,但我仍然想要普通的 mathcal。在这个问题建议使用

\let\mathcal\undefined
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n} 

它与 \documentclass{amsart} 配合得很好。但我想使用斯维尤尔 。我收到错误消息不是在我第一次使用 \mathcal 时,而是在使用它、分节符,然后再次使用它时。这是一个最小的工作示例:

\documentclass [invmat]{svjour} 
\usepackage[garamond]{mathdesign}
\let\mathcal\undefined
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n} 
\begin{document}
$\mathcal{R}$
\section{New Section}
$\mathcal{S}$
\end{document}

我得到的错误是

Use of \reserved@a doesn't match its definition. [$\mathcal{S}]
Undefined control sequence. [$\mathcal{S}]

重复几次然后

LaTeX Error: Too many math alphabets used in version normal. [$\mathcal{S}]

答案1

svjour和之间存在一种奇怪的互动mathdesign:他们互相争斗,\mathcal而你失败了。

使用不同的名称:

\DeclareMathAlphabet{\mcal}{OMS}{cmsy}{m}{n}
\SetMathAlphabet{\mcal}{bold}{OMS}{cmsy}{b}{n}

示例(同svjour3,但应该是一样的):

\documentclass{svjour3}
\usepackage[garamond]{mathdesign}

\DeclareMathAlphabet{\mcal}{OMS}{cmsy}{m}{n}
\SetMathAlphabet{\mcal}{bold}{OMS}{cmsy}{b}{n}

\begin{document}
$\mcal{R}$
\section{New Section $\mcal{X}$}
$\mcal{S}$
\end{document}

在此处输入图片描述

实际上,这不是一个特定的问题svjour;以下示例显示了相同的问题:

\documentclass{article}
\usepackage[garamond]{mathdesign}

\let\mathcal\relax
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}

\begin{document}

$\mathcal{R}${\boldmath}$\mathcal{T}$
\end{document}

声明是在类中\boldmath自动发出的,这是问题的根源。罪魁祸首显然是\sectionsvjourmathdesign


更新

mathdesign包有一个特殊的定义策略\mathcal:它用\DeclareSymbolFont和来定义它\DeclareSymbolFontAlphabet。这显然是错误的,因为与其关联的数学组被浪费了,即使\mathcal从未在文档中使用过。

就你的情况来说,这没什么区别,因为你使用\mathcal

\documentclass{svjour3}
\usepackage[garamond]{mathdesign}

\DeclareSymbolFont{cmcal}{OMS}{cmsy}{m}{n}
\SetSymbolFont{cmcal}{bold}{OMS}{cmsy}{b}{n}
\DeclareSymbolFontAlphabet{\mathcal}{cmcal}

\begin{document}

$\mathcal{R}$
\section{New Section $\mathcal{X}$}
$\mathcal{T}$

\end{document}

这会产生与上面相同的输出。

相关内容