
TikZ 和 PGF 版本 3.0.1a 的手冊在第 14 頁的樣式描述中進行了說明/tikz/every picture
。 125:
您不應該使用
\tikzset
直接設定選項。例如,如果您想使用1pt
預設的線寬,請不要嘗試\tikzset{line width=1pt}
在文件的開頭說明。這將不起作用,因為許多地方的線寬都改變了。相反,說\tikzset{每張圖片/.style={線寬=1pt}}
這將達到預期的效果。
為什麼線寬在很多地方改變會影響直接選項,但不會影響樣式內的相同選項?
答案1
TikZ 在每個開始處設定一個預設參數集圖片。它利用了 TeX 行為的優勢沒有刪除任何內容,只是覆蓋。
因此,在設定 TikZ 圖片時,它也會設定線寬、預設顏色等,而在初始化結束時它會執行every ...
按鍵。
所以非常粗略地變成
\tikzset{ line width = 0.3 pt,
line join = miter,
...,
every picture,
every path,
every node
every label
...
}
(我只是猜測我根本沒有檢查的順序)。
因此,密鑰有一個順序every ...
,如果其中任何一個包含line width
密鑰,它將覆蓋前面的密鑰,這就是所提到的。
但如果只設定一次,那麼它總是會被許多其他鍵覆蓋。