newcommand 返回数学模式错误

newcommand 返回数学模式错误

我不明白为什么在文本模式下编写类似内容时自定义(温度)命令\newcommand{\deg}{$^\circ$F}会返回错误。更令人困惑的是,如果我使用,它会编译,提示命令名称已被使用。但无论命令名称是什么,都会返回相同的错误。"missing $ inserted"350\deg\renewcommand\deg

答案1

不过有点题外:

  • 华氏度不是标准单位,使用摄氏度才是正确的。
  • 如果您由于某种原因坚持使用它,那么将它们定义为siunitx包的一部分是明智的:
\documentclass{article}

\usepackage{siunitx}    % <---
\DeclareSIUnit{\fahrenheit}{^\circ\mkern-1mu\mathrm{F}} % <---

\begin{document}

proposed solution: \qty{350}{\fahrenheit};

by your solution: 350$^\circ$F

\end{document}

因为它的使用提供了比您想要的定义更正确的印刷形式:

在此处输入图片描述

答案2

有了\newcommand,我得到

! LaTeX Error: Command \deg already defined.
               Or name \end... illegal, see p.192 of the manual.

我假设您在使用该版本的命令时忽略了它。\deg是 LaTeX 提供的文本运算符号之一。它用于图论中,表示类似

度()= 2||

当您运行错误时,\deg并没有重新定义,而是得到了原始的数学命令,从而得到了错误。

当我更改为时,\renewcommand我没有收到错误。

答案3

您还可以使用gensymb包或siunitx作为此示例,而无需声明名为的预定义命令\deg

\documentclass[12pt]{article}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{gensymb}

\begin{document}
Your angle is \ang{350} (siunitx package) or 350{\degree} (gensymb package).
\end{document}

在此处输入图片描述

MWE 也在数学模式下工作:$\ang{350}$, $350{\degree}$

相关内容