Definir opções globais do tikz diretamente versus dentro do estilo 'cada imagem'

Definir opções globais do tikz diretamente versus dentro do estilo 'cada imagem'

O manual TikZ & PGF para versão 3.0.1a afirma na descrição do /tikz/every pictureestilo na pág. 125:

você não deve usar \tikzsetpara definir opções diretamente. Por exemplo, se você quiser usar uma largura de linha 1ptpadrão, não tente dizer \tikzset{line width=1pt}no início do documento. Isso não funcionará porque a largura da linha é alterada em muitos lugares. Em vez disso, diga

\tikzset{cada imagem/.style={largura da linha=1pt}}

Isso terá o efeito desejado.

Por que o fato de a largura da linha ser alterada em muitos lugares afeta a opção direta, mas não a mesma opção dentro de um estilo?

Responder1

TikZ configura um argumento padrão definido no início de cadafoto. Ele aproveita o comportamento do TeX denada é excluído, apenas substituído.

Portanto, ao configurar a imagem TikZ, ele também define a largura da linha, a cor padrão, etc., enquanto no final da inicialização ele executa every ...as teclas.

Então, muito aproximadamente, torna-se

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

(Só estou adivinhando o pedido que não verifiquei).

Portanto há uma ordem para as every ...chaves e se alguma delas incluir line widthchave irá sobrescrever as anteriores e é isso que é mencionado.

Mas se for definido apenas uma vez, sempre será substituído por muitas outras chaves.

informação relacionada