是否有另一種方法可以將多個參數輸入到LaTex newcommand結構中?我已經定義LaTex newcommand的替代輸入
\newcommand{\nuc}[2]{\ensuremath{^{\text{#1}}\text{#2}}}
,我想通過
\nuc{12,C}
,而不是
\nuc{12}{C}.
調用命令我創建其他命令甚至更多的參數和我的小指窮人」處理所有的括號。
謝謝!
是否有另一種方法可以將多個參數輸入到LaTex newcommand結構中?我已經定義LaTex newcommand的替代輸入
\newcommand{\nuc}[2]{\ensuremath{^{\text{#1}}\text{#2}}}
,我想通過
\nuc{12,C}
,而不是
\nuc{12}{C}.
調用命令我創建其他命令甚至更多的參數和我的小指窮人」處理所有的括號。
謝謝!
用平凡TeX \def
:
\makeatletter
\newcommand*{\nuc}[1]{\[email protected]#1\@nil}
\newcommand*{\[email protected]}{}
\protected\def\[email protected]#1,#2\@nil{\ensuremath{^{\text{#1}}\text{#2}}}
\makeatother
就像我知道的那樣,\nuc{12}{c}
是唯一的方法。如果你不想放置所有的「} {」,讓編輯去做。先寫\nuc{12,c}
,然後用「} {」s替換所有的逗號。
不幸的是,用{}替換逗號會導致文本其餘部分出現問題。現在也許使用「,,」可以工作,或者其他字符串不可能存在於文本的其他地方。 – 2010-11-04 02:27:39
也許你會喜歡它。
\def\nuC#1,#2.{\ensuremath{^{\text{#1}}\text{#2}}}
使用的樣本:
\nuc 12,C.
注意。最後使用點。
我喜歡用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不是你的榜樣,但我覺得它是一個有吸引力的視頻。
謝謝你的幫助。你的\ def工程。 – Sean 2010-11-03 16:52:09