Erro TikZ/PGF ao usar floresta

Erro TikZ/PGF ao usar floresta

Estou tentando fazer uma árvore linguística usando o forestpacote, como no segundo exemplo emeste tópico. Consegui gerar a maior parte da árvore, mas não consigo desenhar o triângulo por algum motivo.

Aqui está meu 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}

Quando executo isso, recebo o seguinte erro:

! 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}

Estou executando o Texmaker 4.4.1 no MiKTeX 2.9. Minha pgfversão é 3.0.1a e estou usando o pdfTeX versão 3.1415926-2.5-1.40.14. Um redditor conseguiu executar o código no pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian).

Curiosamente, também tive sucesso no meu MacBook, usando Texmaker 4.2, TeX Live 2014, pgf3.0.0., e pdfTeX 3.1415926-2.6-1.40.15.

Existe talvez alguma maneira de fazer o downgrade da minha versão do pgf? Ou há erro de outra coisa?

Responder1

A primeira coisa que você deve verificar é a versão doflorestavocê tem.Sevocê tem a versão 2, então a seguinte resposta se aplica. Se você ainda possui a versão 1, isso é irrelevante.


Supondo que você tenha a versão 2...

A nova versão doflorestaintroduz algumas mudanças incompatíveis com versões anteriores. Neste caso, dois deles nos preocupam:

  1. Certos grupos de opções agora estão organizados em bibliotecas e devem ser carregados separadamente.

  2. Certas opções foram renomeadas ou não existem mais.

trianglenão existe mais como opção. A nova opção é roof. Porém, para acessar roof, você precisa carregar a linguisticsbiblioteca.

O processo não está muito claro na documentação. O primeiro problema é que

texdoc forest

agora fornece o código documentado, mas não o manual do usuário.

texdoc -l forest

oferece a opção de visualizar o manual do usuário, que agora está no formato forest-doc.pdf.

O mecanismo para carregar bibliotecas é explicado na página 20.

Essencialmente,

\useforestlibrary{<list of libraries>}

carrega uma lista de bibliotecas e

\forestapplylibrarydefaults{<list of libraries>}

aplica suas configurações padrão, disponibilizando quaisquer opções adicionais, etc.

\useforestlibrary{}, like \usepackage{}e \usetikzlibrary{}deve ser usado apenas no preâmbulo.

\forestapplylibrarydefaults{}pode ser usado no preâmbulo ou no documento e se aplica dentro do escopo atual do TeX.

Uma alternativa é passar o nome da biblioteca como opção ao carregarfloresta

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

o que tem o efeito de carregar as bibliotecas e aplicar os padrões em todo o documento.

Observe que

\forestapplylibrarydefaults{<libraries>}

não tem efeito a menos que <libraries>tenha sido carregado. Confusamente, no entanto, não dá um erro.

De qualquer forma, o resultado disso é que precisamos carregar e aplicar a linguisticsbiblioteca e mudar trianglepara 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}

versão florestal 2 telhados em linguística

Observe que isso também altera as âncoras e, portanto, a aparência das arestas. Esperançosamente, é isso que você deseja, pois acredito que esse estilo é normal em linguística. No entanto, significa que suas árvores parecerão um pouco diferentes se você usou anteriormente o estilo padrão para âncoras e arestas.

informação relacionada