Globale Tikz-Optionen direkt festlegen vs. im Stil „Jedes Bild“

Globale Tikz-Optionen direkt festlegen vs. im Stil „Jedes Bild“

Im TikZ- und PGF-Handbuch für Version 3.0.1a heißt es in der Beschreibung des /tikz/every pictureStils auf S. 125:

Sie sollten nicht verwenden, um Optionen direkt festzulegen. Wenn Sie beispielsweise standardmäßig \tikzseteine Linienbreite von verwenden möchten , versuchen Sie nicht , am Anfang Ihres Dokuments zu sagen. Dies funktioniert nicht, da die Linienbreite an vielen Stellen geändert wird. Sagen Sie stattdessen1pt\tikzset{line width=1pt}

\tikzset{jedes Bild/.style={Zeilenbreite=1pt}}

Dies wird den gewünschten Effekt haben.

Warum wirkt sich eine Änderung der Linienstärke an vielen Stellen auf die direkte Option aus, nicht aber auf die gleiche Option innerhalb eines Stils?

Antwort1

TikZ richtet einen Standardargumentsatz zu Beginn jedesBild. Es nutzt das TeX-Verhalten vones wird nichts gelöscht sondern nur überschrieben.

Daher werden beim Einrichten des TikZ-Bildes auch Linienbreite, Standardfarbe usw. festgelegt, während gegen Ende der Initialisierung every ...Tasten ausgeführt werden.

Ganz grob gesagt wird es also

\tikzset{ line width = 0.3 pt,
          line join = miter, 
          ...,
          every picture, 
          every path,
          every node
          every label
          ...
          }

(Ich rate nur die Reihenfolge, ich habe sie überhaupt nicht überprüft).

Es gibt also eine Reihenfolge für die every ...Schlüssel und wenn einer von ihnen line widtheinen Schlüssel enthält, überschreibt er die vorherigen und das ist, was angegeben wird.

Wenn dieser Schlüssel jedoch nur einmal festgelegt wird, wird er immer von vielen anderen Schlüsseln überschrieben.

verwandte Informationen