我读这个答案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
\mathrm
d
这里有一个例子来说明为什么您可能希望直立的数学字母与主字体不同,其中一些例子是上标。
\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(通过 Adobe、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 转换。
使用旧式编码
也可以通过加载newpxmath
、newpxtext
或tgpagella
,然后加载 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}
AMS Euler 是其中的一部分amsfonts
,所以我采用了字符代码从手册中. 标准遗留编码全部在LaTeX 字体编码指南. 其他具有 U 编码的传统字体应该在其文档中包含字体表。
如果您使用默认的 Computer Modern 字体,您可以尝试使用 Computer Modern ( ) 的直立斜体形状cmr{m}{ui}
来获取直立的拉丁字母,并使用该upgreek
包来获取直立的希腊字母。