我在使用 Roboto 字体创建自定义 Theorem 环境时遇到了麻烦。基本上,我希望使用 theorem 标题\fontseries{medium}
而不是\bfseries
。在处理这个问题时,我做了两个观察:
- 只有定理的数字采用了这种新字体。
- 如果我将定理主体样式更改为
\fontseries{medium}
,则只有使用 强调的文本\emph{}
才会采用新字体。
以下是 MWE 和结果输出:
\documentclass[10pt]{article}
\usepackage[sfdefault, light]{roboto}
\usepackage{mathtools, amssymb, amsthm, bm}
\newtheoremstyle{mytheoremstyle}
{\topsep}
{\topsep}
{\fontseries{medium}} % only changes emphasized text
{}
{\fontseries{medium}} % only changes theorem number
{}
{0.5em}
{}
\theoremstyle{mytheoremstyle}
\newtheorem{theorem}{Theorem}
\usepackage[margin = 1in]{geometry}
\begin{document}
\begin{theorem}
The \emph{expected value} of a continuous random variable \(X\) with support \(\Omega\) is given by
\begin{align*}
\mathbb{E}(X) \coloneqq \int_{\Omega} \mathrm{d} F(x) = \int_{\Omega} f(x) \;\mathrm{d} x,
\end{align*}
where \(f\) and \(F\) denote the pdf and cdf, respectively.
\end{theorem}
\end{document}
输出如下:
这里发生了什么?
答案1
light
当您使用 Type 1 字体时,该包的选项会roboto
重新定义中等粗细。这里您需要的是命令\robotomedium
:
\documentclass[10pt]{article}
\usepackage[sfdefault, light]{roboto}
\usepackage{mathtools, amssymb, amsthm, bm}
\newtheoremstyle{mytheoremstyle}
{\topsep}
{\topsep}
{\robotomedium} % changed
{}
{\robotomedium} % changed
{}
{0.5em}
{}
\theoremstyle{mytheoremstyle}
\newtheorem{theorem}{Theorem}
\usepackage[margin = 1in]{geometry}
\begin{document}
\begin{theorem}
The \emph{expected value} of a continuous random variable \(X\) with support \(\Omega\) is given by
\begin{align*}
\mathbb{E}(X) \coloneqq \int_{\Omega} \mathrm{d} F(x) = \int_{\Omega} f(x) \;\mathrm{d} x,
\end{align*}
where \(f\) and \(F\) denote the pdf and cdf, respectively.
\end{theorem}
\end{document}
这也适用于roboto
使用 OTF 字体的 LuaLaTeX 或 XeLaTeX。