不带 3 个参数括号的新命令

不带 3 个参数括号的新命令

我希望实现使用该命令的结果\scell{111},并使结果输出$1\times 1\times 1$看起来像 1x1x1,但 x 是 \times 符号。

我编写了基本命令\newcommand{\scell}[3]{${#1}\times {#2}\times {#3}$},显然必须将其输入为\scell{1}{1}{1}。始终有 3 个数字个位参数,有没有办法通过简单地输入来使命令起作用\scell{111}

答案1

将参数传递给三参数宏:

\documentclass{article}

\newcommand{\scell}[1]{\doscell#1}
\newcommand{\doscell}[3]{$#1\times#2\times#3$}

\begin{document}

\scell{111}

\scell{1{29}3}
\end{document}

在此处输入图片描述

这是一个概括:

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\scell}{m}
 {
  \seq_set_split:Nnn \l_tmpa_seq { } { #1 }
  $\seq_use:Nn \l_tmpa_seq { \times }$
 }
\ExplSyntaxOff

\begin{document}

\scell{111}

\scell{1{29}3}

\scell{3}

\scell{12}

\scell{12345}

\end{document}

在此处输入图片描述

答案2

根据您现有的定义,您可以使用

\scell 1 1 1 

甚至

\scell111 

一般来说,{}可以省略单个标记参数。

相关内容