\mathrm
与 相比,它似乎是数学模式中直立字母符号的实际标准。一般\text
使用它会不会更好?\text
我想到的一个特殊问题是在无衬线字体的文档中书写时(例如beamer
)。在这里的很多情况下,你的文本和math 设置为无衬线字体(我猜是为了便于屏幕阅读)。\mathrm
在这种情况下,使用会导致参数以罗马字体(带衬线)显示,而使用\text
似乎可以正确识别文档中的文本样式是无衬线,并以直立无衬线显示参数。
那么,在数学模式中通常使用\text
而不是“直立”符号不是更好吗?\mathrm
答案1
正如前面所说,\text
是针对文本的,并且会根据周围的字体而变化。但文档中的数学符号应该始终看起来相同:符号的含义还取决于所使用的字体。因此,您不应将其用作\text
数学符号。
如果您想要一个适合主文档的直立数学字体,请使用以下命令定义它\familydefault
:
\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand\familydefault{\sfdefault} %comment to see the difference
\DeclareMathAlphabet {\mathup}{OT1}{\familydefault}{m}{n}
\begin{document}
abc
$ a=\text{b}=\mathup{b}$
\itshape abc
$ a=\text{b}=\mathup{b}$
\sffamily abc
$ a=\text{b}=\mathup{b}$
\end{document}
答案2
\text
如果我们用而不是来写相同的方程,它会变得多么复杂\mathrm
?
\documentclass[preview,varwidth]{standalone}
\usepackage{amsmath}
\begin{document}
\preview
$\int f(x)\, \mathrm{d_a}x$
$\int f(x)\, \text{d$_\text{a}$}x$
\endpreview
\end{document}
答案3
这取决于你的问题。\mathrm{...}
始终使用 Computer Modern 和\text{...}
当前文本字体:
\documentclass{article}
\usepackage{libertine}
%% instead of libertine use the following two lines:
%\usepackage[T1]{fontenc}
%\usepackage{mathpazo}
\usepackage{amsmath}
\begin{document}
\Huge\sffamily
$\mathrm{Foo} \text{Foo}$
\end{document}