在数学模式下,\mathup 相当于直立文本吗?

在数学模式下,\mathup 相当于直立文本吗?

要在数学模式中插入文本,有几个命令:

  • \mathrm对于罗马字母,
  • \mathbf为了加粗,
  • \mathit对于斜体形状,
  • \mathsf对于无衬线字体,

等等。现在,有时我想将一些数学实体排版为直立(例如如何最好地排版“特殊”常数(复杂单位 i、欧拉数 e,...)?)我理解\mathrm将文本设置为罗马数字直立,但在某些情况下我不需要衬线(例如,在演示文稿中)。该命令\mathup似乎不存在。

在数学模式下设置直立文本的推荐方法是什么?

答案1

\mathrm我想当您使用衬线字体时您会看到以下内容:

示例输出

\documentclass{beamer}

\usepackage{amsmath}

\begin{document}

\begin{frame}
  \( x y \mathrm{x} \text{\textup{x}}\)
\end{frame}

\end{document}

有两种方法可以解决这个问题:一种相当激进的选择是

\renewcommand{\rmdefault}{cmss}

但这可能会传递到你意想不到的地方。另一种方法是将两个相关定义替换beamerbasefont.sty

\AtBeginDocument{%
  \SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{cmss}{\mddefault}{n}
  \SetMathAlphabet{\mathrm}{bold}{\encodingdefault}{cmss}{\bfdefault}{n}}

在你的序言中。在 beamer 样式文件中{cmss}{\rmdefault}

应用于上面的例子,无论哪种方法都可以得到:

第二个示例

答案2

unicode-mathXeLaTeX 和 LuaLaTeX包可以完成这项工作并提供\mathup

答案3

您的问题是:在什么情况下在数学中使用无衬线字体。

在捷克传统印刷术中(也许在中欧也是如此),矢量和矩阵的符号为无衬线粗体倾斜(或直立)的变体。此数学字母表默认未在纯 TeX(及其派生格式)中预加载,因此我们看到衬线不幸的是,在典型的 TeX 文档中,这种情况会被加粗。

Unicode 数学字体包含许多数学字母,包括粗体无衬线直立字母和倾斜拉丁字母和希腊字母,因此没有问题。但是,尽管我们今天使用 Unicode 数学字体时没有技术限制,但 TeX 文档中仍然有使用衬线粗体的强烈传统。

答案4

如果使用带有 xelatex 引擎的 pandoc 来呈现 PDF对我来说是正确的解决方案,那么就\symup可以拥有像这样的直立单位。\symup{{\mu}m}

我的 tex 模板正在加载unicode 数学代替数学规范尽管使用了 xelatex。幸运的是,我可以补充一点,因为 mathspec 中一个未解决的错误阻止了它与 一起使用\siunitx,因为它需要\amsmath在之前加载,并且即使我在 pandoc 使用的模板中这样做也会抛出此错误。

相关内容