直接設定全域 tikz 選項與在「每張圖片」樣式內設置

直接設定全域 tikz 選項與在「每張圖片」樣式內設置

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密鑰,它將覆蓋前面的密鑰,這就是所提到的。

但如果只設定一次,那麼它總是會被許多其他鍵覆蓋。

相關內容