bm 패키지에서 \hm을 사용할 때 간격과 기호 선택을 변경하지 않고 무거운 수학 버전을 선언하려면 어떻게 해야 합니까?

bm 패키지에서 \hm을 사용할 때 간격과 기호 선택을 변경하지 않고 무거운 수학 버전을 선언하려면 어떻게 해야 합니까?

다음에서 수정된 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}

이로 인해 다음과 같은 예상치 못한 결과가 발생했습니다.

예상치 못한 결과

질문:수학 버전 varnormalheavy활성화된 조합이 예상된 결과를 생성 \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버전 bold은 다른 글꼴 모음용으로 예약되어 있습니다. 따라서 단순히 MWE에서는 분명한 대답이 되더라도 수학 버전을 선언하지 않는 것은 해결책이 아닙니다 heavy.varnormal

두 번째 패키지를 정의하여 이 문제를 해결할 수 있습니다.varbm, varbm.sty수학 버전 은 수학 버전과 varbold같습니다 . (이 경우에는 전혀 사용할 필요가 없습니다.) 이것은 잘 작동하며 제가 한 작업입니다.bm.styboldheavy내 수정된 답변. 그러나 거의 모든 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}

관련 정보