数学表达式里面的数学表达式

数学表达式里面的数学表达式

让我们假设以下例子:

\documentclass{article}
\usepackage{amsmath}
\newcommand{\pt}{$p_{T}$}
\begin{document}

We analyse all cases of the transverse momentum \pt. First, let us 
assume that $p_{T} \leq 50 \text{GeV}$.

\end{document}

结果是

在此处输入图片描述

邀请\pt在第二个数学表达式中使用命令并像这样写

$\pt \leq 50 \text{GeV}$

如果我这样做,我会得到错误

! Missing $ inserted.
<inserted text> 
                $
l.6 ...omentum \pt. First, let us assume that $\pt
                                                   \leq 50 \text{GeV}$.

有什么建议吗?

答案1

\documentclass{article}
\usepackage{amsmath}
\usepackage{xspace}
\newcommand{\pt}{\ensuremath{p_T^{}}\xspace}
\begin{document}

We analyse all cases of the transverse momentum \pt. First, let us
assume that $\pt \leq 50 \text{GeV}$.

\end{document}

在此处输入图片描述

xspace确保使用后间距正确\pt

答案2

问题在于\pt宏包含$...$。解决方案是使用\ensuremath,以便$...$在需要时添加 ,

\documentclass{article}
\usepackage{amsmath}
\newcommand{\pt}{\ensuremath{p_{T}}}
\begin{document}

We analyse all cases of the transverse momentum \pt. First, let us
assume that $p_{T} \leq 50 \text{GeV}$.

\end{document}

或者使用:

\documentclass{article}
\usepackage{amsmath}
\newcommand{\pt}{p_{T}}
\begin{document}

We analyse all cases of the transverse momentum $\pt$. First, let us
assume that $p_{T} \leq 50 \text{GeV}$.

\end{document}

就我个人而言,我更喜欢后者,因为显式比隐式更好,而且这可能更适合编辑器中的语法高亮显示。另请参阅何时不应使用 \ensuremath 作为数学宏?

答案3

错误是因为您嵌套了两个数学环境。请将命令定义更改为:

\newcommand{\pt}{\ensuremath{p_{T}}}

相关内容