当我们使用“下标”时,公式是否使用非斜体字体?

当我们使用“下标”时,公式是否使用非斜体字体?

我读这个答案Subscript关于公式的非斜体字体,但是,当我们在公式中使用它时它不起作用:

\begin{equation}
  \mbox{$ abc_{d} $} 
\end{equation}

有没有办法让这样的等式不以斜体显示?

答案1

假设您只想让下标垂直,那么您应该使用\mathrm此处而不是该\mbox技术,因为\mbox不会保留下标中您期望的字体大小减小。还请注意,您不需要$环境中的equation

\documentclass{article}
\begin{document}

\begin{equation}
  abc_{\mathrm{d}}
\end{equation}

\end{document}

代码输出

如果您希望整个表达式是直立的,只需将其包装起来\mathrm即可,但可能有更好的方法来实现您想要的效果,例如使用命令amsmath创建\DeclareMathOperator应直立呈现的自定义运算符。有关此内容的更多详细信息,请参阅以下问题:

答案2

在现代工具链中

使用unicode-math,更好的解决方案是abc_{\symup d},否则设置为默认\mathrm工作。命令设置在主文本字体中。symup\mathrmd

这里有一个例子来说明为什么您可能希望直立的数学字母与主字体不同,其中一些例子是上标。

\documentclass[varwidth, preview]{standalone}

\usepackage{mathtools}
\usepackage[math-style=ISO]{unicode-math}

\setmainfont{TeX Gyre Pagella}
\defaultfontfeatures{Scale=MatchLowercase}

\setmathfont{Asana Math}
\setmathfont[range={up/{Latin,latin,Greek,greek}, 
                    bfup/{Latin,latin,Greek,greek}},
             script-features={}, sscript-features={}
            ]{Neo Euler}

\newcommand\upe{\symup{e}}
\newcommand\upi{\symup{i}}

\begin{document}
\begin{align*}
  \upe^{\upi x} &= \cos{x} + \upi \sin{x} \\
  \upe^{\upi \uppi} + 1 &= 0
\end{align*}
\end{document}

欧拉方程

这将欧拉方程设置为 ISO 样式,其中常数 e、i 和 π 被竖直放置。它还将竖直数学字母设置为 Neo Euler,这是 Hermann Zapf 的 AMS Euler 数学字体的 OTF 转换。它与他著名的字体 Palatino 非常匹配,我使用 Palatino 的克隆作为文本和数学字体。数字、斜体x符号和竖直运算符名称 sin 和 cos 来自 Palatino(通过 Adob​​e、URW Palladio、pxfonts 和 Asana Math)。

如果不改变\symup字母表并使用它,虚数单位的符号看起来就像 sin 和 d 中的字母 iX看起来就像你正在整合变量X

如果您使用默认的 Latin Modern Math 字体,您可以尝试使用 CMU Serif Upright Italic ( cmunui.otf) 来替代直立数学字母。这是 Donald Knuth 的无斜体 Computer Modern Italic 字体的 OpenType 转换。

使用旧式编码

也可以通过加载newpxmathnewpxtexttgpagella,然后加载 AMS Euler 作为符号字体,在 PDFLaTeX 中实现非常相似的输出。由于许多数学文本希望将少数常数设置为直立字母,因此这是另一种可行的方法。

\documentclass[varwidth, preview]{standalone}

\usepackage{mathtools}
\usepackage{newpxtext}
\usepackage{newpxmath}

\DeclareSymbolFont{eulerup}{U}{zeur}{m}{n}
\DeclareMathSymbol{\uppi}{\mathalpha}{eulerup}{"19}
\DeclareMathSymbol{\upi}{\mathalpha}{eulerup}{"69}
\DeclareMathSymbol{\upe}{\mathalpha}{eulerup}{"65}

\begin{document}
\begin{align*}
  \upe^{\upi x} &= \cos{x} + \upi \sin{x} \\
  \upe^{\upi \uppi} + 1 &= 0
\end{align*}
\end{document}

PDFLaTeX 中的欧拉方程

AMS Euler 是其中的一部分amsfonts,所以我采用了字符代码从手册中. 标准遗留编码全部在LaTeX 字体编码指南. 其他具有 U 编码的传统字体应该在其文档中包含字体表。

如果您使用默认的 Computer Modern 字体,您可以尝试使用 Computer Modern ( ) 的直立斜体形状cmr{m}{ui}来获取直立的拉丁字母,并使用该upgreek包来获取直立的希腊字母。

相关内容