\mathbf コマンドの問題

\mathbf コマンドの問題

この MWE では、文字「H」の太字を取得したいと考えています (2 つの「H」を比較してください)。

\documentclass[10 pt]{beamer}
\usetheme{default}
\usepackage{lmodern} % load a font with all the characters
\usepackage{fontspec}
\usepackage{cmbright}
\SetSymbolFont{largesymbols}{normal}{OMX}{iwona}{m}{n}
\usepackage{amsmath}%loads amsmath that should go before unicode-math
\usefonttheme{professionalfonts}
\defaultfontfeatures{Mapping=tex-text}  % This seems to be important for mapping glyphs properly

\begin{document}
\begin{frame}
\[
\mbox{First bold H : }\|x\|_{\mathbf{H}},\; \mbox{Second bold H : }\mathbf{H} 
\]
\end{frame}
\end{document}

しかし、やり方がわかりません。このMWEで生成される「H」は小さいですが、太字の効果はありません。

\SetSymbolFont{largesymbols}{normal}{OMX}{iwona}{m}{n}

太字の小さな「H」が表示されますが、使用されるフォントはまだ同じではありません。

答え1

10pt 未満のサイズの場合、cmbright パッケージは太字フォント (存在しない) をサブセット化し、代わりに通常の太さを使用します。cmbright の背後に次のコードを追加することでこれを変更できます。

\usepackage{cmbright}
\fontencoding{OT1}\fontfamily{cmbr}\selectfont %to load ot1cmbr.fd
\DeclareFontShape{OT1}{cmbr}{bx}{n}{% change bx definition
<->cmbrbx10%
}{}
\normalfont % back to normalfont

答え2

簡単にロードできますunicode-math

MWE:

\documentclass[10 pt]{beamer}
\usetheme{default}
\usepackage{lmodern} % load a font with all the characters
\usepackage{fontspec}
\usepackage{amsmath}%loads amsmath that should go before unicode-math
\usepackage{unicode-math}
\usepackage{cmbright}
\SetSymbolFont{largesymbols}{normal}{OMX}{iwona}{m}{n}
\usefonttheme{professionalfonts}
\defaultfontfeatures{Mapping=tex-text}  % This seems to be important for mapping glyphs properly

\begin{document}
\begin{frame}
\[
\|x\|_{\mathbf{H}}
\]
\end{frame}
\end{document} 

ここに画像の説明を入力してください

答え3

私も同様の問題を抱えていました。unicode-math@karlkoeller が提案した方法は、 を使用しているため機能しませんでしたpdflatex

mbox上付き文字の単語がありました。通常のテキストを使用して、両方を太字にすることができましたbfseries(2 回書く必要がありました)。

$\mbox{\bfseries Ge}^{\mbox{\bfseries 76}}$

関連情報