dutchcal 包和 \let 命令没有像我预期的那样一起运行

dutchcal 包和 \let 命令没有像我预期的那样一起运行

鉴于 MWE

\documentclass{article}

\let\tempcal \mathcal
\usepackage{dutchcal}
\let\dutchcal\mathcal
\let\mathcal\tempcal

\begin{document}
\(\dutchcal H~~~\mathcal H~~~\tempcal H\)
\end{document}

我期望编译后的文档中后两个 H 是原始\mathcal格式,但是当我编译时,所有三个都是\dutchcal版本。

欲望: 我想将标准\mathcal应用于大写字母,并使用(适当定义的)\dutchcal用于小写字母。当我尝试上述操作时,大写字体被覆盖,尽管\let使用了。

答案1

\let单独使用是不够的,因为所涉及的命令具有更复杂的内部结构和辅助宏,其定义也必须复制过来。显然甚至\LetLtxMacro何时使用 \LetLtxMacro?) 在这里就足够了。

幸运的是,dutchcal.sty不是很长,相关部分可以轻松复制到文档前言并进行修改

\documentclass{article}

\DeclareMathAlphabet{\dutchcal}{U}{dutchcal}{m}{n}
\SetMathAlphabet{\dutchcal}{bold}{U}{dutchcal}{b}{n}
\DeclareMathAlphabet{\dutchbcal} {U}{dutchcal}{b}{n}

\begin{document}
\(\dutchcal{H} \quad \mathcal{H}\)
\end{document}

两个“H”,一个在 <code>\dutchal</code> 中,另一个在 <code>\mathcal</code> 中

相关内容