
考慮以下 MWE,其修改自我的回答在這裡:
\documentclass{article}
\newcommand\gmfamily{\fontfamily{mdugm}\selectfont}
\DeclareMathVersion{varnormal}
\DeclareMathVersion{heavy}
\newcommand\mdmath{\mathversion{varnormal}}
\newcommand\mdboldmath{\mathversion{heavy}}
\newcommand\heavymath{\mathversion{heavy}}
\SetSymbolFont{letters}{varnormal}{OML}{mdugm}{m}{it}
\SetSymbolFont{letters}{heavy}{OML}{mdugm}{b}{it}
\SetSymbolFont{operators}{varnormal}{OT1}{mdugm}{m}{n}
\SetSymbolFont{operators}{heavy}{OT1}{mdugm}{b}{n}
\SetSymbolFont{symbols}{varnormal}{OMS}{mdugm}{m}{n}
\SetSymbolFont{symbols}{heavy}{OMS}{mdugm}{b}{n}
\SetSymbolFont{largesymbols}{varnormal}{OMX}{mdugm}{m}{n}
\SetSymbolFont{largesymbols}{heavy}{OMX}{mdugm}{b}{n}
\SetMathAlphabet{\mathrm}{varnormal}{OT1}{mdugm}{m}{n}
\SetMathAlphabet{\mathrm}{heavy}{OT1}{mdugm}{b}{n}
\SetMathAlphabet{\mathit}{varnormal}{OT1}{mdugm}{m}{it}
\SetMathAlphabet{\mathit}{heavy}{OT1}{mdugm}{b}{it}
\usepackage{bm}
\begin{document}
\gmfamily\mdmath
This is Garamond font. $a^2 + b^2 = c^2$. Math font
\[
\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0
\]
and bold math font
{\mdboldmath\[
\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0
\]}
\[
\hm{\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0}
\]
\end{document}
這會產生以下意想不到的(對我來說)結果:
問題:我如何修改這個範例,以便數學版本的組合varnormal
和heavy
激活\mdmath
並\hm
產生預期的結果,即,以便正確排版(圓)括號和限制?
請注意,該問題並非字體本身所固有的。也不是使用的效果BM 本身。下面的程式碼工作正常:
\documentclass{article}
\renewcommand\rmdefault{mdugm}
\DeclareSymbolFont{letters}{OML}{mdugm}{m}{it}
\SetSymbolFont{letters}{bold}{OML}{mdugm}{b}{it}
\DeclareSymbolFont{operators}{OT1}{mdugm}{m}{n}
\SetSymbolFont{operators}{bold}{OT1}{mdugm}{b}{n}
\DeclareSymbolFont{symbols}{OMS}{mdugm}{m}{n}
\SetSymbolFont{symbols}{bold}{OMS}{mdugm}{b}{n}
\DeclareSymbolFont{largesymbols}{OMX}{mdugm}{m}{n}
\SetSymbolFont{largesymbols}{bold}{OMX}{mdugm}{b}{n}
\DeclareMathAlphabet{\mathrm}{OT1}{mdugm}{m}{n}
\SetMathAlphabet{\mathrm}{bold}{OT1}{mdugm}{b}{n}
\DeclareMathAlphabet{\mathit}{OT1}{mdugm}{m}{it}
\SetMathAlphabet{\mathit}{bold}{OT1}{mdugm}{b}{it}
\usepackage{bm}
\begin{document}
This is Garamond font.
$a^2 + b^2 = c^2$.
Maths font
\[
\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0
\]
and bold maths font
\[
\bm{\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0}
\]
\end{document}
這按預期工作:
重要的:在我原來的答案中,我使用常規 Garamond 作為varnormal
版本,使用粗體 Garamond 作為heavy
版本,並為不同的字體系列保留normal
和maths 版本。bold
因此,簡單地不聲明heavy
或varnormal
數學版本並不是解決方案,儘管這顯然是 MWE 中顯而易見的答案。
可以透過定義第二個套件來解決這個問題,瓦伯姆,這varbm.sty
就是數學版本varbold
什麼bm.sty
是數學版本bold
。 (當然,在這種情況下,heavy
根本不需要使用。)這工作正常,並且是我在我修改後的答案。然而,這似乎有點矯枉過正,因為它涉及複製幾乎所有的bm.sty
.即使事實上這是最好的解決方案,我仍然想確切地知道這種情況下出了什麼問題。
答案1
如果你聲明一個沉重的數學版本,你需要為其定義一些字體,這裡我只是將它們設置為與粗體相同(這只是意味著你或多或少肯定會用完16 個數學fam,但你會得到粗體括號)
\documentclass{article}
\DeclareMathVersion{heavy}
\renewcommand\rmdefault{mdugm}
\newcommand\heavymath{\mathversion{heavy}}
\DeclareSymbolFont{letters}{OML}{mdugm}{m}{it}
\SetSymbolFont{letters}{bold}{OML}{mdugm}{b}{it}
\SetSymbolFont{letters}{heavy}{OML}{mdugm}{b}{it}
\DeclareSymbolFont{operators}{OT1}{mdugm}{m}{n}
\SetSymbolFont{operators}{bold}{OT1}{mdugm}{b}{n}
\SetSymbolFont{operators}{heavy}{OT1}{mdugm}{b}{n}
\DeclareSymbolFont{symbols}{OMS}{mdugm}{m}{n}
\SetSymbolFont{symbols}{bold}{OMS}{mdugm}{b}{n}
\DeclareSymbolFont{largesymbols}{OMX}{mdugm}{m}{n}
\SetSymbolFont{largesymbols}{bold}{OMX}{mdugm}{b}{n}
\SetSymbolFont{largesymbols}{heavy}{OMX}{mdugm}{b}{n}
\DeclareMathAlphabet{\mathrm}{OT1}{mdugm}{m}{n}
\SetMathAlphabet{\mathrm}{bold}{OT1}{mdugm}{b}{n}
\SetMathAlphabet{\mathrm}{heavy}{OT1}{mdugm}{b}{n}
\DeclareMathAlphabet{\mathit}{OT1}{mdugm}{m}{it}
\SetMathAlphabet{\mathit}{bold}{OT1}{mdugm}{b}{it}
\SetMathAlphabet{\mathit}{heavy}{OT1}{mdugm}{b}{it}
\usepackage{bm}
\begin{document}
This is Garamond font.
$a^2 + b^2 = c^2$.
Maths font
\[
\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0
\]
and bold maths font
\[
\bm{\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0}
\]
and heavy maths font (which should just be bold?)
\[
\hm{\sum_i \int_a^b \left( \frac1{K+1} \oplus\alpha_i \right) \,\mathrm{d}x = 0}
\]
\end{document}