在方程中使用新命令时插入的字符缺失

在方程中使用新命令时插入的字符缺失

我遇到了一个似乎无法解决的问题。我想定义一个数学符号,并显示在代码片段中,我在整篇文章中经常使用它。当我想在等式中包含这个相同的符号时,我收到很多“插入字符缺失”错误,而另一端的格式是错误的。

\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}

\newcommand{\WPT}{$p_{\text{T}}^W$}

\begin{document}
The result for \WPT is shown below.

\begin{equation}
  r_s^{\WPT} &= 100.00
\end{equation}

\end{document}

在此先感谢您的帮助。

答案1

如果我运行您发布的代码,我会收到错误:

! Missing } inserted.
<inserted text> 
                }
l.10   r_s^{\WPT
                } = 100.00
?

发生此错误是因为当您的命令扩展时您基本上(直到发生错误为止)有:

$$ r_s^{ $

这不是一个有效的 TeX 构造。你开始显示数学运算,开始一个组,然后结束内联数学运算。稍后 TeX 会说:

! Display math should end with $$.
<to be read again> 
                   p
l.13   r_s^{$p
              _{\text{T}}^W$} = 100
?

并且在尝试解决所有这些问题时会变得更加困惑。


您可以使用\ensuremath它,正如名称所示,确保其内容在数学模式下排版(请注意此处文本中的额外内容){}\WPT

\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}

\newcommand{\WPT}{\ensuremath{p_{\text{T}}^W}}

\begin{document}
The result for \WPT{} is shown below.

\begin{equation}
  r_s^{\WPT} = 100.00
\end{equation}

\end{document}

但是,由于\WPT本质上是数学内容,我会选择适当的标记并在文本中用...\WPT包装:$$

\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}

\newcommand{\WPT}{p_{\text{T}}^W}

\begin{document}
The result for $\WPT$ is shown below.

\begin{equation}
  r_s^{\WPT} = 100.00
\end{equation}

\end{document}

相关内容