
Estou tentando fazer uma árvore linguística usando o forest
pacote, 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 pgf
versã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, pgf
3.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:
Certos grupos de opções agora estão organizados em bibliotecas e devem ser carregados separadamente.
Certas opções foram renomeadas ou não existem mais.
triangle
não existe mais como opção. A nova opção é roof
. Porém, para acessar roof
, você precisa carregar a linguistics
biblioteca.
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 linguistics
biblioteca e mudar triangle
para 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}
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.