科学印刷术对斜体字和罗马(直立)字进行了重要区分(示例来源)。
动能的符号是 E_k,其中 E 以斜体印刷,k 以罗马字体印刷。
通常,我会将其写为E_{\mathrm{k}}
。
但是,这不适用于beamer
。该包将普通数学更改为无衬线字体,但保留了\mathrm
衬线字体。下标 k 将以衬线字体排版,但它应该与默认数学字体匹配,只是直立。
那么,如何在 beamer 中获得预期的行为?
\documentclass{beamer}
\begin{document}
\begin{frame}
$E_{\mathrm{k}}$
\end{frame}
\end{document}
(其他切换到无衬线数学字体的软件包也重新定义mathrm
为无衬线,当然也是直立的,例如 cmbright、sfmath 和 arevmath。)
答案1
答案2
可以使用$E_{\mathsf{k}}$
,但便携性不强。
摘自 Beamer 手册:
注意:该命令
\mathrm
将始终生成直立(不倾斜)的衬线文本,而该命令\mathsf
将始终生成直立的无衬线文本。该命令\mathbf
将生成直立、粗体、无衬线或衬线文本,具体取决于是否使用mathsans
或mathserif
。要生成直立、无衬线或衬线文本(具体取决于是否使用mathsans
或 )mathserif
,您可以使用例如\operatorname
来自amsmath
包的命令。如果您从无衬线切换到衬线或反之,则直接使用此命令而不是 \mathrm 或 \mathsf 将自动调整直立数学文本。
所以,投影机方式做事就是定义一个运算符然后使用它。但操作员不完全是一回事。
以我个人拙见,这个beamer
方案在这方面是有缺陷的。
答案3
我认为问题在于,在选择数学字母表的名称时,无衬线数学并不是数学排版员的真正议程。虽然我确实理解你为什么希望 \mathrm 给出无衬线直立字体,但如果R M导致科幻字体(例如 arevmath\mathsf
会给出倾斜的 sf 字体)。
因此,对于 pdflatex,我将使用(假设已加载 amsmath)\operatorfont
:
\documentclass{beamer} %or article
\usepackage{amsmath}
\usepackage{ifluatex}
\ifluatex
\usepackage{unicode-math}
\setmathfont{Cambria Math}
\else
\def\symup{\mathrm}
\fi
\begin{document}
sin
$\sin{x}\quad{\operatorfont sin}{x}\quad\symup{sin}{x}\quad\mathrm{sin}{x}$
\end{document}
使用 beamer + pdflatex 输出
输出文章+pdflatex
我可能更喜欢使用 unicode 数学\symup
(我不太明白为什么 unicode-math 对运算符使用文本字体而不是数学字体):