是否可以同时定义带有数字名称和不带有数字名称的宏?

是否可以同时定义带有数字名称和不带有数字名称的宏?

我想用字母和数字定义变量。但变量有和没有数字值的名称相同。以下是示例:

基本上我想定义

  \def\lam{\lambda}
  \newcommand{lam}{\lambda}
  \def\lam#1{\lambda^{#1}}

在我的表达中

  F = \lam + \lam2 + \lam3

输出应该是

  F = \lambda + \lambda^2 + \lambda^3

答案1

例如,你可以这样做:

\newcount\tmpnum
\def\lam{\lambda\afterassignment\lamA\tmpnum=0}
\def\lamA{\ifnum\tmpnum=0 \else ^{\the\tmpnum}\fi}

$ F = \lam + \lam2 + \lam3 $

答案2

我找到了如何检查参数是否为数字这里。然后你只需输出“如果那不是一个数字”:

\documentclass{article}

\newcommand{\lam}[1]{%
  \ifnum0<0#1\relax
    $\lambda^{#1}$%
  \else
     $\lambda$~{#1}%
  \fi
}

\begin{document}
  
 F = \lam + \lam2 + \lam3
  
\end{document}

相关内容