定理环境中的非斜体自定义命令

定理环境中的非斜体自定义命令

我通常\text{}在宏中使用它来表示函数名称,例如deg应该以非斜体形式出现在数学环境中的函数名称。只要宏不在定理环境中使用,它就可以正常工作,参见图片。

我该如何避免这种情况,例如如何编写命令使其像预定义的那样工作deg(类似于max等)。

问题示例

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{amsmath}

\newcommand{\mydeg}{\text{deg}}
\newtheorem{theorem}{Theorem}

\begin{document}
    
    This is how \emph{regular} degree looks like: $\deg(v) = 1$.
    
    This is how \emph{my} degree looks like: $\mydeg(v) = 1$.
    
    This is how \emph{regular} degree looks like in a theorem environment:
    
    \begin{theorem}
        It is true that $\deg(v) = 1$.
    \end{theorem}
    
    This is how \emph{my} degree looks like in a theorem environment:
    
    \begin{theorem}
        It is true that $\mydeg(v) = 1$.
    \end{theorem}
    
\end{document}

答案1

这就是为什么你不应该使用它\text作为数学标识符,它用于访问当前文本字体,使用\mathrm{deg}或更好\DeclareMathOperator\deg{deg}

答案2

您通常需要\operatorname{deg}或 (正如 David Carlisle 所推荐的) \DeclareMathOperator。这些将为您提供带有间距的类似对数的运算符\mathop。 (所有这些命令都依赖于amsmath。)

使用\mathrm{deg}将删除所有空格,就像您取数学常数 d、e 和 g 的乘积一样。

如果您想要文本间距,要清除所有字体设置的命令是\textnormal{deg}。我经常使用的另一种方法是\textup,我可以将其与 一起使用\bfseries\boldmath,以使运算符名称、文本和数学符号全部加粗。最后,您可以在 中放入任意文本模式命令\text,例如在使用或\text{\upshape\ulcshape deg}时关闭斜体和小型大写字母,但保持粗细不变。您还可以使用它来选择不同的字体,而无需用尽符号字体字母表。fontaxesfontspec

相关内容