在这个 MWE 中,我想要获得字母“H”的粗体字母(比较两个“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
梅威瑟:
\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
(需要写两次)。
$\mbox{\bfseries Ge}^{\mbox{\bfseries 76}}$