数式で新しいコマンドを使用すると、欠落した文字が挿入される

数式で新しいコマンドを使用すると、欠落した文字が挿入される

解決できない問題があります。テキスト全体で頻繁に使用する数学記号を定義し、コード スニペットに表示したいのですが、この同じ記号を数式内に含めようとすると、「挿入された文字が見つかりません」というエラーが頻繁に発生し、反対側の書式設定が間違っています。

\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}

関連情報