替换 mathcal 加上 margin-note 导致 \reserved@a 与定义不匹配

替换 mathcal 加上 margin-note 导致 \reserved@a 与定义不匹配

这与MIT 论文包中的 \mathcal 问题;我在那里发布了下面的 MWE,但由于偏离了原作者的帖子,编辑被拒绝了。我不知道是否应该提出一个新问题,但如果我错了,请纠正我。

我正在使用带有数学字体的论文模板mathdesign,但不喜欢mathcal字体,所以我想替换它们。以下219091223843我尝试过

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

修复,但这会导致以下错误:

! Use of \reserved@a doesn't match its definition.
\reserved@b ->\relax
                     \ifmmode \else \non@alpherr \mathcal  \fi \use@mathgrou...
l.23 $\mathcal{A}
                 $
?

正如下面的 MWE 所建议的那样,它似乎与在参考书目中使用数学有关。这是我能想到的最接近的例子,抽象了大部分模板内容(这里的一个特别之处是引用被打印到边缘——删除命令中的这个补丁cite也会删除错误,但我想保留这个补丁cite

\begin{filecontents}{\jobname.bib}
@misc{example,
    author    = {Example},
    title     = {$\mathbf{F}_2^n$},
}
\end{filecontents}
\documentclass{article}
\usepackage[charter]{mathdesign}
\let\mathcal\undefined
\DeclareMathAlphabet{\mathcal}{OMS}{zplm}{m}{n}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\DeclareCiteCommand{\cite}[]{}{\marginpar{\footnotesize\printfield[citetitle]{labeltitle}}}{}{}
\begin{document}
$\mathcal{A}$
\cite{example}
$\mathcal{A}$
\end{document}

删除\footnotesize边距注释似乎也能解决问题,但在这里,我也想坚持使用字体大小。

答案1

取消定义 \mathcal 命令是一种糟糕的黑客行为,您会因此受到惩罚。使用 \SetMathAlphabet 更改字母表:

\begin{filecontents}{\jobname.bib}
@misc{example,
    author    = {Example},
    title     = {$\mathbf{F}_2^n$},
}
\end{filecontents}
\documentclass{article}
\usepackage[charter]{mathdesign}
\SetMathAlphabet{\mathcal}{normal}{OMS}{zplm}{m}{n}

\usepackage{biblatex}
\addbibresource{\jobname.bib}
\DeclareCiteCommand{\cite}[]{}{\marginpar{\footnotesize\printfield[citetitle]{labeltitle}}}{}{}
\begin{document}
$\mathcal{A}$
\cite{example}
$\mathcal{A}$
\end{document}

相关内容