非斜体字体的数学方程式

非斜体字体的数学方程式

我尝试写以下内容$T_E$,但它以斜体显示。我也尝试过,$\text{T_E}$但 LaTeX 给出了错误。

答案1

取决于你实际上是在写数学还是文本:

 \documentclass{article}

\begin{document}
$\mathrm{T}_{\mathrm{E}}$ or T\textsubscript{E}

\end{document}

在此处输入图片描述

答案2

以下示例说明了几种可能的解决方案。

\documentclass{scrartcl}
\usepackage{amsmath}

\newcommand{\testline}{Text $\mathrm{T}_\mathrm{E}$ or $\text{T}_\text{E}$ or $\textup{T}_\textup{E}$ or T\textsubscript E}

\begin{document}

\testline

\itshape\testline

\sffamily\upshape\testline

\itshape\testline

\rmfamily\upshape\bfseries%as before but bold   

\testline

\itshape\testline

\sffamily\upshape\testline

\itshape\testline

\end{document}

在此处输入图片描述

观察其中一些采用了文本的样式和字体。

答案3

使用现代工具链

使用unicode-math包(我个人推荐,尽管不是每个人都同意)\mathrm仍然支持向后兼容,但同义词\mathup和密切相关的也是如此\symup

如果使用\symup,则可以指定与常规文本字体不同的直立字体,以及与、 和 等运算符名称不同的直立字体。我常用的示例是以 ISO 样式设置欧拉恒等式,即以直立字体设置符号常数log,常数 e、π 和 i 为欧拉常数,其他所有常数为 Palatino 常数。这是一个很好的例子,说明了为什么您可能需要为数学变量使用不同的直立字体。sinlim

\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}

Neo Euler 示例

(如果您想使用默认字体执行类似的操作,您可以尝试 Latin Modern Roman Unslanted 或 CMU Serif Upright Italic。以下是后者的示例:

\documentclass[varwidth, preview]{standalone}

\usepackage{amsmath}
\usepackage[math-style=ISO]{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range=up/{Latin,latin,Greek,greek}]{CMU Serif Upright Italic}

\begin{document}
\begin{align*}
  \symup{e}^{\symup{i} x} &= \cos{x} + \symup{i} \sin{x} \\
  \symup{e}^{\symup{i \pi}} + 1 &= 0
\end{align*}
\end{document}

CMU Serif 直立斜体示例

\symup命令旨在以这种方式使用。\mathrm\mathup命令更多用于方程中的单词,例如命名变量 TIME 和 ENERGY。 另一个很好的替代方法是使用\operatornamefrom 来处理整个单词amsmath。 这会将文本格式化为\log\sin,即插入空格,如 2 logX而不是 2logx。

\mathtt类似地,也有\mathsfup适用于等宽字体和无衬线字母的。

例如,您还可以使用\newcommand\TIME{\mathop{\mbox{\scshape time}}}运算符的间距来获取小写字母 TIME。

您可以通过加载包将直立数学变量设为默认变量\usepackage[math-style=upright]{unicode-math}

使用旧版工具链

eulerpx软件包实现了欧拉数学变量和 Palatino 文本的流行组合,以及来自的符号newpxmath。如果你想要在 PDFLaTeX 中显示直立字母,我认为这是最适合他们的软件包。

cfr-lm包使直立斜体变得容易使用;有了这个包,你可以写出\DeclareRobusTCommand\mathui[1]{\mbox{\uishape #1}}直立斜体。我之前给出的小型大写字母示例\scshape也可以正常工作。

要以默认字体格式化变量名,\operatornamefromamsmath是一个不错的选择。

对于更复杂的用例,有\DeclareMathAlphabet\DeclareMathSymbol

相关内容