将非斜体字符放入等式中

将非斜体字符放入等式中

我正在写一个方程式,我希望其中的一些字符不斜体。所有其他与此类似的问题似乎都是关于全局更改方程式中的斜体,但我只有 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}

\mathrm 示例

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}

\symup 示例

我认为结果匹配得很好,但 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}

Asana/Pagella/Euler 示例

答案2

将相关文本放在{\rm }括号中即可解决问题。因此,使用您的示例,

$$f(x) = x^2$$ 

会成为

$${\rm f}(x) = x^2$$

只需替换f{\rm f}

{\rm }需要注意的一点是不是更改数学间距,这样写一些单词时,字符将以罗马字体显示,而不是斜体显示,但没有间距。我认为这\mathtext{}就是解决方案。

相关内容