![将非斜体字符放入等式中](https://linux22.com/image/376383/%E5%B0%86%E9%9D%9E%E6%96%9C%E4%BD%93%E5%AD%97%E7%AC%A6%E6%94%BE%E5%85%A5%E7%AD%89%E5%BC%8F%E4%B8%AD.png)
我正在写一个方程式,我希望其中的一些字符不斜体。所有其他与此类似的问题似乎都是关于全局更改方程式中的斜体,但我只有 2 个字母不想斜体。方程式不对齐,所以我不能直接结束方程式并开始一个新的方程式。
例如,假设我正在写$$f(x) = x^2$$
,但我希望 f(且只有 f)不显示斜体。我该怎么做?
答案1
正如评论中提到的,\mathrm{f}
将插入文本字体中的字母作为数学符号。以下是在传统 NFSS 模式下以 ISO 样式设置的示例。常数 i、e 和 π 都是直立的,但变量X是斜体。您会注意到直立字母与文本字体相同。可以选择另一种字体\mathrm
,例如isomath
。
\documentclass[varwidth, preview]{standalone}
\usepackage[T1]{fontenc}
\usepackage{textcomp, amssymb}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\newcommand\upe{\mathord{\mathrm{e}}}
\newcommand\upi{\mathord{\mathrm{i}}}
\newcommand\uppi{\mathord{\mathrm{\pi}}}
\begin{document}
\begin{align*}
\upe^{\upi x} &= \cos{x} + \upi \sin{x} \\
\upe^{\upi \uppi} + 1 &= 0
\end{align*}
\end{document}
该unicode-math
包区分了数学模式下的文本字母 ( \mathrm
) 和直立数学符号 ( \symup
)。但是,您需要更改直立数学字母表才能注意到外观上的任何差异。下面是一个示例,将直立数学符号替换为 CMU Serif Upright Italic,这是 Computer Modern 斜体字体的非倾斜版本。(数字除外,因为$10$
和10
应该保持不变。)请注意,unicode-math
能够区分直立数学符号和运算符名称。
\documentclass[varwidth, preview]{standalone}
\usepackage{mathtools}
\usepackage[math-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=up/{Latin,latin,Greek,greek}]{CMU Serif Upright Italic}
\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}
我认为结果匹配得很好,但 Knuth 的 Computer Modern 斜体字体从来就不是打算不倾斜的。(e 的尾部最初并没有像这样突出。)所以这是另一个例子,它将 Asana Math 与来自新欧拉。这些是 Hermann Zapf 的两种著名字体(Palatino 和 AMS Euler)的克隆,它们相互补充得非常好。文本字体(也用于运算符名称)是 Palatino 的另一个克隆。
\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}
答案2
将相关文本放在{\rm }
括号中即可解决问题。因此,使用您的示例,
$$f(x) = x^2$$
会成为
$${\rm f}(x) = x^2$$
只需替换f
为{\rm f}
{\rm }
需要注意的一点是不是更改数学间距,这样写一些单词时,字符将以罗马字体显示,而不是斜体显示,但没有间距。我认为这\mathtext{}
就是解决方案。