答案1
您引用的答案并非特定于mathdesign
,本质上显示了 的默认值\mathcal
。字体包可能会更改它。
和mathdesign
是同义词,\mathcal
除非将\mathscr
(未记录的)选项cal=cmcal
传递给包。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[charter,cal=cmcal]{mathdesign}
\begin{document}
$H \quad \mathcal{H} \quad \mathscr{H}$
\end{document}
避免\mathcal H
并更喜欢\mathcal{H}
。相信我。
如何找到未记录的选项?
Charter 字体由子包管理mdbch.sty
,该子包具有
\if@MD@cmcal
\DeclareSymbolFont{mdcal}{OMS}{xmdcmsy}{m}{n}%
\SetSymbolFont{mdcal}{bold}{OMS}{xmdcmsy}{b}{n}%
\else
\DeclareSymbolFont{mdcal}{OMS}{mdbch}{m}{n}%
\SetSymbolFont{mdcal}{bold}{OMS}{mdbch}{b}{n}%
\fi
\DeclareSymbolFontAlphabet{\mathcal}{mdcal}
\DeclareSymbolFont{mdscr}{OMS}{mdbch}{m}{n}%
\DeclareSymbolFontAlphabet{\mathscr}{mdscr}%
\SetSymbolFont{mdscr}{bold}{OMS}{mdbch}{b}{n}%
我不会这么写,但那是另一回事。这似乎很合理,指的是xmdcmsy
现代计算机\mathcal
。事实上,mdfont.def
%% ----------------------------------------------------------------
%% Computer Modern Symbol
%% ----------------------------------------------------------------
\def\MD@font@name{xmdcmsy}
\DeclareFontFamily{OMS}{\MD@font@name}{\skewchar\font48 }
\DeclareFontShape{OMS}{\MD@font@name}{m}{n}{%
<5><6><7><8><9><10>sgen*[\cmsy@ratio]cmsy%
<10.95><12><14.4><17.28><20.74><24.88> s*[\cmsy@ratio] cmsy10%
}{}
\DeclareFontShape{OMS}{\MD@font@name}{b}{n}{%
<5><6><7><8><9>sgen*[\cmsy@ratio]cmbsy%
<10><10.95><12><14.4><17.28><20.74><24.88> s*[\cmsy@ratio] cmbsy10%
}{}
\DeclareFontShape{OMS}{\MD@font@name}{mb}{n}{%
<5><6><7><8><9>sgen*[\cmsy@ratio]cmbsy%
<10><10.95><12><14.4><17.28><20.74><24.88> s*[\cmsy@ratio] cmbsy10%
}{}
这本质上意味着cmsy
字体需要经过适当的缩放才能与主字体兼容。
好的,现在不该看如何让\if@MD@cmcal
return true 了。如果我们在 中查找mathdesign.sty
,我们会发现
%% Type of calligraphic alphabet
\newif\if@MD@cmcal \@MD@cmcalfalse
\define@key{MD}{cal}[cmcal]{%
\ifthenelse{\equal{#1}{cmcal}}{\@MD@cmcaltrue }
{\ifthenelse{\equal{#1}{script}}{\@MD@cmcalfalse}{}}}
这意味着如果传递了选项cal=cmcal
,则条件将返回 true。如果传递了任何选项或cal=absolutelywhatever
条件将返回 false,\mathcal
并且\mathscr
成为同义词。
实际上打字也cal
可以,这样你就可以节省一些击键时间,然后说
\usepackage[charter,cal]{mathdesign}
为什么手册中没有提到此选项?谁知道?