字體:小 中 大 | |
|
|
2015/04/20 15:18:13瀏覽1223|回應0|推薦0 | |
廻圈foreach TiKz 提供了一個廻圈foreach,用法: \foreach 變數[參數] in {列值} {命令} 先在latex 下,觀察foreach的規則: \foreach \x in {1,2,3,0} {\x, } 會在文件上面印出 1,2,3,0, 每一個列值都會被執行。 其中的列值部分,可以用"...",如果是 1,2,...,n,意味是1, 1+1, 1+2, 1+3, ...,1+md, 如果 1+md 小於等於 n 時成立,大於 n時則不會被執行。如: \foreach \x in {2,4,...,11} {\x, } 會是 2,4,6,8,10, 列值的差如果是浮點數,使用時就要注意,以免效果不好: \foreach \x in {0,0.1,...,0.5} {\x, } 會是0,0.1, 0.20001, 0.30002, 0.40002, 因為下一個值比0.5大,所以不會被執行。 列值也可以遞減,那判斷方式就相反: \foreach \x in {9,8,...,3.5} {\x, } 會是9,8,7,6,5,4。 如果列值直接只有頭尾二數,則預設的遞增(減)值為1: \foreach \x in {0.5,...,5} {\x, } 為0.5, 1.5, 2.5, 3.5, 4.5, foreach的列值也可使用字母: \foreach \x in {a,d,...,z} {\x, } 結果為a, d, g, j, m, p, s, v, y, 如果列值中的值含有某些語法,那麼使用上要注意不要中斷語法結構: \foreach \x in {2^0,2^...,2^6} {$\x$, } 會是輸出2^0, 2^1, 2^2, 2^3, 2^4, 2^5, 2^6, 多個變數的foreach 例如使用二個變數,\x, \y,則: \foreach \x / \y in {1/2, a/b} {"\x \ and \y"} 會是 "1 and 2""a and b" 接下來是一個從TiKz文件上面的例子,畫一個鐘面,使用二個變數\angle, \label: \begin{tikzpicture}[line cap=round, line width=3pt] \draw (0,0) circle (2cm); \foreach \angle / \label in {0/3, 30/2, 60/1, 90/12, 120/11, 150/10, 180/9, 210/8, 240/7, 270/6, 300/5,330/4} { \draw[line width=1pt] (\angle:1.8cm)--(\angle:2cm); \draw(\angle:1.4cm) node {\textsf{\label}}; } \foreach \angle in {0, 90, 180, 270} {\draw[line width=2pt] (\angle:1.7cm)--(\angle:2cm);} \draw (0,0) --(120:0.8cm); \draw (0,0) --(90:1cm); \end{tikzpicture} |
|
( 知識學習|科學百科 ) |