我想使用“\mathcal
符号”txfonts
,但其他方面都使用标准符号。包括包txfonts
会更改所有字体,我想避免这种情况。命令
\DeclareSymbolFont{symbols}{OMS}{txsy}{m}{n}
使用 中的所有数学符号txfonts
,但我认为它们太粗(而且量化器看起来很丑),尤其是与现代计算机常用的文本字体相比。可能
\DeclareMathAlphabet{\mathcal}{T1}{TX}{m}{n}
应该可以,其中 TX 必须替换为正确的 txfonts 系列名称。哪一个才是正确的?我已经尝试了一些名称,但到目前为止都没有奏效。
答案1
就这么简单:
\documentclass{article}
\DeclareMathAlphabet{\mathcal}{OMS}{ntxsy}{m}{n} % or txsy
\SetMathAlphabet{\mathcal}{bold}{OMS}{ntxsy}{b}{n} % or txsy
\begin{document}
$x\mathcal{ABCDEF}y$
\boldmath$x\mathcal{ABCDEF}y$
\end{document}
解释。TX/NewTX 包不会改变基本数学字体设置,其中\mathcal
定义为
\DeclareSymbolFontAlphabet{\mathcal}{symbols}
为了不浪费一个数学组。对于您的目的来说,一个新的数学组显然是必要的,所以我们只需要查看newtxmath.sty
数学符号字体的定义是什么symbols
,我们发现
178 \DeclareSymbolFont{symbols}{OMS}{ntxsy}{m}{n}
179 \SetSymbolFont{symbols}{bold}{OMS}{ntxsy}{b}{n}
(添加了行号以供参考)。因此,只需更改\DeclareSymbolFont{symbols}
为\DeclareMathAlphabet{\mathcal}
和即可。\SetSymbolFont{symbols}
\SetMathAlphabet{\mathcal}
最好使用 NewTX 提供的字体,因为与旧版 TX 包相比,其指标更加精细,而且与旧版包不同,其字体也得到了积极维护。
答案2
的标准定义\mathcal
是fontmath.ltx
:
\DeclareSymbolFontAlphabet{\mathcal} {symbols}
因此,要使用不同的字体,我们需要做两件事:
- 定义一个新的符号字体,并赋予其一个独特的名字(因为我们不希望其他所有内容都来自该
txfonts
symbol
字体); - 重新定义
\mathcal
以便它使用新字体。
那么,让我们使用新字体。在 中symbolstx
查找 的定义,我们发现:symbols
txfonts.sty
\DeclareSymbolFont{symbols}{OMS}{txsy}{m}{n}
\SetSymbolFont{symbols}{bold}{OMS}{txsy}{bx}{n}
因此,我们只需要调整这些行来指定symbolstx
而不是symbols
:
\DeclareSymbolFont{symbolstx}{OMS}{txsy}{m}{n}
\SetSymbolFont{symbolstx}{bold}{OMS}{txsy}{bx}{n}
然后我们可以\mathcal
相应地定义:
\DeclareSymbolFontAlphabet{\mathcal}{symbolstx}
综上所述:
\documentclass{article}
\DeclareSymbolFont{symbolstx}{OMS}{txsy}{m}{n}
\SetSymbolFont{symbolstx}{bold}{OMS}{txsy}{bx}{n}
\DeclareSymbolFontAlphabet{\mathcal}{symbolstx}
\begin{document}
\[
\mathcal{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\]
\end{document}