
Рассмотрим следующую модель 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
давало ожидаемые результаты, т.е. чтобы (круглые) скобки и пределы были набраны правильно?
Обратите внимание, что проблема не связана с самими шрифтами. Она также не является следствием использованиябм как таковой. Следующий код работает нормально:
\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
и bold
maths зарезервированы для другого семейства шрифтов. Поэтому просто не объявлять версии heavy
или varnormal
maths не является решением, хотя это было бы очевидным ответом в MWE.
Эту проблему можно обойти, определив второй пакет,варбм, так что varbm.sty
это для математической версии varbold
то же самое, что bm.sty
и для математической версии bold
. (В этом случае, конечно, heavy
не нужно использовать вообще.) Это прекрасно работает, и это то, что я сделал вмой исправленный ответ. Однако это кажется излишним, поскольку подразумевает дублирование почти всего bm.sty
. Даже если это, по сути, лучшее решение, я все равно хотел бы точно знать, что в данном случае идет не так.
решение1
Если вы объявляете версию с тяжелым математическим шрифтом, вам нужно определить для нее некоторые шрифты, здесь я просто делаю их такими же, как и жирные (что просто означает, что вы более или менее наверняка исчерпаете 16 математических шрифтов, но получите жирные скобки).
\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}