鉴于 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}