2008-12-31 95 views
3

我是LaTeX的新手,我必須說我非常努力。我發現了\ newcommand命令,它類似於常規編程語言中的函數/方法。你可以給它參數和一切。你可以在LaTeX中迭代嗎?

我想知道,但我可以以某種方式在LaTeX中迭代?基本上,我想要做的是創建一個N + 1列的表,其中第一行只包含空白單元格,然後是其他列中的數字1,2,...,N。我只想給N作爲這個'函數'(newcommand)的參數。

這裏是不是有什麼事情看起來像一個例子就是我正在尋找(雖然這顯然是行不通的):

\newcommand{\mytable}[2]{ 
\begin{tabular}{l|*{#1}{c|}} % table with first argument+1 columns 
    for(int i = 1; i <= #1; i++) "& i" % 'output' numbers in different columns 
    \\\hline 
    letters & #2 % second argument should contain actual content for row 
    \\\hline 
\end{tabular} 
}

與調用它:

\mytable{3}{a & b & c}

輸出應是:

  | 1 | 2 | 3 | 
--------+---+---+---+ 
letters | a | b | c | 
--------+---+---+---+

有誰知道這樣的事情是否可能?

謝謝!

+0

乳膠是宏包TeX和TeX的是圖靈完備的,它應該是可能的,雖然你會需要一些嚴重的TeX黑客 – bandi 2008-12-31 02:06:59

+0

[迭代在乳膠]可能的重複(http://stackoverflow.com/questions/2561791/iteration-in-latex) – Gilles 2012-04-07 02:02:48

回答

3

Auntie Google說yes

2

確定這是可能的。你也可以重複。 eplain在其中有迭代宏,參見例如here

3

您可以使用\ loop或\ repeat標記。或者multido軟件包。

3

只需將以下內容變爲新命令,並確保使用包ifthen

\begin{tabular}{l|*{10}{c|}} 
\newcounter{count} 
\whiledo{\value{count}<10}{ 
\ifthenelse{\value{count}=0}{}{\the\value{count}} 
\ifthenelse{\value{count}<9}{&}{\\} 
\stepcounter{count} 
} 
letters&a&b&c&d&e&f&g&h&i\\ 
\end{tabular} 
2

另一種可能性(如果你偷懶跟我一樣)是perltex

相關問題