tikz-pgf – ¿Debería usarse \ tikzset o \ tikzstyle para definir estilos TikZ?

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:

  1. La respuesta completa se puede encontrar en línea en http://osdir.com/ml/tex.pgf.user/2007-08/msg00004.html

  2. 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 .

  3. 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 configurar pgfplots opciones de pgfplots .

    Aunque \tikzstyle todavía es compatible con algunas pgfplotsoptions más pgfplotsoptions , 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.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım