LaTex newcommand的替代输入

时间:2010-11-03 02:11:07

标签: latex

是否有另一种方法可以为LaTex新命令构造输入多个参数?我已经定义了

\newcommand{\nuc}[2]{\ensuremath{^{\text{#1}}\text{#2}}}

我想通过

调用命令
\nuc{12,C}

而不是

\nuc{12}{C}.

我创建了更多参数的其他命令,而我的可怜的小指不能处理所有括号。

谢谢!

4 个答案:

答案 0 :(得分:1)

也许你会喜欢它。

\def\nuc #1,#2.{\ensuremath{^{\text{#1}}\text{#2}}}

使用样本:

\nuc 12,C.

请注意。最后使用点。

答案 1 :(得分:1)

我喜欢赞美perltex来定义复杂的函数。这并不复杂,但你可以非常令人印象深刻地扩展它。

%myfile.tex
\documentclass{article}
\usepackage{perltex}

\perlnewcommand{\commafrac}[1]{
  $input = shift;
  @inputs = split(/,/, $input);
  return "\\ensuremath{\\frac{$inputs[0]}{$inputs[1]}}";
}

\begin{document}
One half is $\commafrac{1,2}$.
\end{document}

perltex --latex=pdflatex myfile.tex汇编。我知道\ frac不是你的榜样,但我发现它是一个视觉上吸引人的。

答案 2 :(得分:0)

使用普通TeX \def

\makeatletter
\newcommand*{\nuc}[1]{\nuc@#1\@nil}
\newcommand*{\nuc@}{}
\protected\def\nuc@#1,#2\@nil{\ensuremath{^{\text{#1}}\text{#2}}}
\makeatother

答案 3 :(得分:-1)

我知道\nuc{12}{c}是唯一的方法。如果您不想放置所有“} {”,请让编辑器执行此操作。先写\nuc{12,c},然后用“} {”s替换所有逗号。