Error de TikZ/PGF al usar el bosque

Error de TikZ/PGF al usar el bosque

Estoy intentando hacer un árbol lingüístico usando el forestpaquete, como en el segundo ejemplo deeste hilo. Pude generar el árbol en su mayor parte, pero por alguna razón no puedo dibujar el triángulo.

Aquí está mi MWE:

\documentclass{article}
\usepackage{forest}
\usepackage{amsmath,amsfonts,amssymb}
\begin{document}
\begin{forest}
for tree={
  if n children =0{
    font=\itshape,
    tier=terminal
  }{},
}
[TP
    [NP
        [Det
            [The]
        ]
        [$\bar{N}$
            [N
                [ice]
            ]
        ]
    ]
    [$\bar{T}$
        [T
            [+pst,font=\scshape]
        ]
        [VP
            [$\bar{V}$
                [V
                    [melt]
                ]
            ]
            [AdvP
                [quickly,triangle]
            ]
        ]
    ]
]
\end{forest}
\end{document}

Cuando ejecuto esto, aparece el siguiente error:

! Package pgfkeys Error: I do not know the key '/tikz/triangle' and I am going to ignore it. Perhaps you misspelled it. See the pgfkeys package documentation for explanation. Type H for immediate help.... \end{forest}

Estoy ejecutando Texmaker 4.4.1 en MiKTeX 2.9. Mi pgfversión es 3.0.1a y estoy usando la versión 3.1415926-2.5-1.40.14 de pdfTeX. Un redditor pudo ejecutar el código en pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian).

Curiosamente, también tuve éxito en mi MacBook, usando Texmaker 4.2, TeX Live 2014, pgf3.0.0. y pdfTeX 3.1415926-2.6-1.40.15.

¿Existe quizás alguna forma de degradar mi versión de pgf? ¿O hay un error por otra cosa?

Respuesta1

Lo primero que debes comprobar es la versión debosquetienes.Sitiene la versión 2, entonces se aplica la siguiente respuesta. Si todavía tienes la versión 1, entonces es irrelevante.


Suponiendo que tengas la versión 2...

La nueva versión debosqueintroduce algunos cambios incompatibles con versiones anteriores. En este caso nos conciernen dos de ellos:

  1. Ciertos grupos de opciones ahora están organizados en bibliotecas y deben cargarse por separado.

  2. Algunas opciones han cambiado de nombre o ya no existen.

triangleya no existe como opción en absoluto. La nueva opción es roof. Sin embargo, para acceder roof, es necesario cargar la linguisticsbiblioteca.

El proceso no queda muy claro en la documentación. El primer problema es que

texdoc forest

ahora le proporciona el código documentado pero no el manual del usuario.

texdoc -l forest

le ofrece la opción de ver el manual del usuario, que ahora se encuentra en formato forest-doc.pdf.

El mecanismo para cargar bibliotecas se explica en la página 20.

Esencialmente,

\useforestlibrary{<list of libraries>}

carga una lista de bibliotecas y

\forestapplylibrarydefaults{<list of libraries>}

aplica su configuración predeterminada, haciendo que cualquier opción adicional, etc., esté disponible.

\useforestlibrary{}, me gusta \usepackage{}y \usetikzlibrary{}es para uso únicamente en el preámbulo.

\forestapplylibrarydefaults{}se puede utilizar en el preámbulo o en el documento y se aplica dentro del alcance actual de TeX.

Una alternativa es pasar el nombre de la biblioteca como opción al cargarbosque

\usepackage[<list of libraries>]{forest}

lo que tiene el efecto de cargar las bibliotecas y aplicar los valores predeterminados en todo el documento.

Tenga en cuenta que

\forestapplylibrarydefaults{<libraries>}

no tiene ningún efecto a menos que <libraries>haya sido cargado. Sin embargo, lo que resulta confuso es que no da ningún error.

En cualquier caso, el resultado de esto es que necesitamos cargar y aplicar la linguisticsbiblioteca y cambiar trianglea roof:

\documentclass[tikz, border=10pt, multi]{standalone}
\usepackage{forest}
\usepackage{amsmath,amsfonts,amssymb}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\begin{document}
\begin{forest}
for tree={
  if n children =0{
    font=\itshape,
    tier=terminal
  }{},
}
[TP
    [NP
        [Det
            [The]
        ]
        [$\bar{N}$
            [N
                [ice]
            ]
        ]
    ]
    [$\bar{T}$
        [T
            [+pst,font=\scshape]
        ]
        [VP
            [$\bar{V}$
                [V
                    [melt]
                ]
            ]
            [AdvP
                [quickly,roof]
            ]
        ]
    ]
]
\end{forest}
\end{document}

bosque versión 2 techos en lingüística

Tenga en cuenta que esto también cambia los anclajes y, por tanto, la apariencia de los bordes. Con suerte, esto es lo que quieres, ya que creo que este estilo es normal en lingüística. Sin embargo, sí significa que sus árboles se verán un poco diferentes si anteriormente utilizó el estilo predeterminado para anclajes y bordes.

información relacionada