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