Pregunta:
El manual de PGF / TikZ establece en la sección 12.4 Uso de opciones gráficas , página 120 (v2.10), que los estilos TikZ se pueden configurar usando:
\tikzset{my style/.style={<tikz options>},...}
Sin embargo, en varios lugares del mismo manual se utiliza la macro \tikzstyle
otro modo no \tikzstyle
documentada, para los estilos de configuración:
\tikzstyle{my style}=[<tikz options>]
También he visto este uso en varios ejemplos de código en línea.
¿Por qué hay dos formas de configurar los estilos de TikZ y cuál debería usarse para el nuevo código?
Nota: De hecho, conozco la respuesta, pero creo que una pregunta así con buenas respuestas sería beneficiosa para otros usuarios.
Respuesta:
Alguien en la lista pgf-users escribe a T Tantau:
Sugiero mantener la sintaxis anterior,
\tikzstyle{my style}=[some options,...]
ya que es mucho más fácil de leer y comprender. La nueva sintaxis sería para los usuarios y redactores de bibliotecas más "avanzados".
Respuesta de Till Tantau:
Estoy un poco indeciso sobre esto.
Primero, por razones de compatibilidad,
\tikzstyle
estará disponible indefinidamente, por lo que la verdadera pregunta es qué será mejor para el nuevo código.La razón por la que intento eliminar el
\tikzstyle
es que me gustaría animar a la gente a mantener la configuración de estilo lo más local posible. Entonces, normalmente, las definiciones de estilo deben darse al comienzo de una imagen como en\begin{tikzpicture} [some options, first style/.style={blah}, second style/.style={blub}] ... \end{tikzpicture}
Luego, si la imagen
tikzpicture
se mueve / copia / lo que sea, los estilos se mueven con ella. Además, los estilos dados como opciones siempre se aplican a todo el alcance y terminan con él automáticamente.Sin embargo, tampoco estoy muy seguro de si este argumento es tan convincente. Los estilos globales todavía deben configurarse globalmente usando
\tikzset anyway...
Comencé a cambiar todo el código de la documentación al nuevo sistema y no parece cambiar mucho la legibilidad.
Ahora creo que si encuentras algún estilo \tikzstyle
en varios lugares del manual es porque no es muy importante en estos casos y quizás el autor olvidó corregir el documento muy grande.
Observaciones:
-
La respuesta completa se puede encontrar en línea en http://osdir.com/ml/tex.pgf.user/2007-08/msg00004.html
-
La respuesta continuó:
De todos modos, ahora puedes decir cosas como
\tikzstyle{my style}=[draw=#1,fill=#1!20]
y de hecho he extendido la sintaxis de
\tikzstyle
para que también se pueda proporcionar un argumento predeterminado como en\tikzstyle{my style}[red]=[draw=#1,fill=#1!20]
Nunca intento esto porque no uso
\tikzstyle
. -
Para pgfplots, consulte la página 8 del manual de pgfplots [revisión 1.8]:
A partir de
pgfplots
1.1,\tikzstyle
ya no debería usarse para configurarpgfplots
opciones depgfplots
.Aunque
\tikzstyle
todavía es compatible con algunaspgfplotsoptions
máspgfplotsoptions
, debes reemplazar cualquier aparición de\tikzstyle
con\pgfplotsset{style name/.style={key-value-list}}
o la variante de/.append style
asociada/.append style
.Luego, en la página 280:
Tenga en cuenta que no es posible utilizar el comando TikZ
\tikzstyle{stylename}=[]
. Esto era posible en una versión anterior y todavía se admite por compatibilidad con versiones anteriores. Pero en algunos casos, es posible que no funcione como se esperaba.