如何在 beamer 中正确排版 E_{\mathrm{k}}

如何在 beamer 中正确排版 E_{\mathrm{k}}

科学印刷术对斜体字和罗马(直立)字进行了重要区分(示例来源)。

动能的符号是 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

通过添加\usefonttheme[onlymath]{serif},我们找到了数学公式中的衬线字体。

\documentclass{beamer}
\usefonttheme[onlymath]{serif}
\begin{document}
\begin{frame}
  $E_\mathrm{k}$
\end{frame}
\end{document}

输出:电影能量

答案2

可以使用$E_{\mathsf{k}}$,但便携性不强。

摘自 Beamer 手册:

注意:该命令\mathrm将始终生成直立(不倾斜)的衬线文本,而该命令 \mathsf将始终生成直立的无衬线文本。该命令\mathbf将生成直立、粗体、无衬线或衬线文本,具体取决于是否使用mathsansmathserif。要生成直立、无衬线或衬线文本(具体取决于是否使用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 对运算符使用文本字体而不是数学字体):

使用 beamer 和 lualatex 输出

在此处输入图片描述

带有文章和lualatex的输出:

在此处输入图片描述

相关内容