![为什么 \mathrm{\varphi} 有效,而 \text{\varphi} 无效?](https://linux22.com/image/258208/%E4%B8%BA%E4%BB%80%E4%B9%88%20%5Cmathrm%7B%5Cvarphi%7D%20%E6%9C%89%E6%95%88%EF%BC%8C%E8%80%8C%20%5Ctext%7B%5Cvarphi%7D%20%E6%97%A0%E6%95%88%EF%BC%9F.png)
这:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\mathrm{\varphi}$
\end{document}
相对:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
$\text{\varphi}$
\end{document}
第一个有效,最后一个无效。为什么?特别是当用\text
这个定义宏时会导致问题。有什么办法吗?
答案1
\varphi
是数学符号,需要数学模式。由于\mathrm
仍然“提供”数学模式,\varphi
因此不会出现问题。另一方面,\text
(来自amstext
;加载者amsmath
) 是一个宏,可以在切换到文本模式时正确选择字体大小 - 在指数/下标中排版测试时非常方便。但是,它仍然会切换到文本模式。
如果你希望\varphi
在文本模式下使用而不必明确切换到数学模式,请使用类似
\newcommand{\textphi}{\ensuremath{\varphi}}
这使得您可以\textphi
在文本或数学模式下使用。\ensuremath
条件仅在必要时(例如,当您处于文本模式时)切换到数学模式。
\documentclass{article}
\newcommand{\textphi}{\ensuremath{\varphi}}
\begin{document}
$\varphi^\varphi\ \textphi^\textphi$\ \textphi\textsuperscript{\textphi}
\end{document}
答案2
因为\varphi
只有数学模式。就我而言,没有文本模式可供选择。
唯一的文本模式替代方案是\textphi
,但要使用它,您必须包含包tipa
。此外,它只是一个普通的 phi。