TikZ/PGF-Fehler bei Verwendung von Forest

TikZ/PGF-Fehler bei Verwendung von Forest

Ich versuche, mit dem forestPaket einen linguistischen Baum zu erstellen, wie im zweiten Beispiel indieser Thread. Den Baum konnte ich größtenteils erzeugen, aber aus irgendeinem Grund kann ich das Dreieck nicht zeichnen.

Hier ist mein 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}

Wenn ich dies ausführe, erhalte ich die folgende Fehlermeldung:

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

Ich verwende Texmaker 4.4.1 auf MiKTeX 2.9. Meine pgfVersion ist 3.0.1a und ich verwende pdfTeX Version 3.1415926-2.5-1.40.14. Ein Redditor konnte den Code auf pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) ausführen.

Interessanterweise war ich auch auf meinem MacBook mit Texmaker 4.2, TeX Live 2014, pgf3.0.0 und pdfTeX 3.1415926-2.6-1.40.15 erfolgreich.

Gibt es vielleicht eine Möglichkeit, meine Version von herunterzustufen pgf? Oder liegt der Fehler woanders her?

Antwort1

Als erstes sollten Sie die Version vonWalddu hast.WennDu hast die Version 2, dann gilt folgende Antwort. Hast du noch die Version 1, dann ist das irrelevant.


Vorausgesetzt, Sie haben Version 2 ...

Die neue Version vonWaldführt einige Änderungen ein, die nicht abwärtskompatibel sind. In diesem Fall betreffen uns zwei davon:

  1. Bestimmte Optionscluster sind jetzt in Bibliotheken organisiert und müssen separat geladen werden.

  2. Bestimmte Optionen wurden umbenannt oder existieren nicht mehr.

triangleist als Option überhaupt nicht mehr vorhanden. Die neue Option ist roof. Um darauf zuzugreifen roof, müssen Sie jedoch die linguisticsBibliothek laden.

Der Prozess ist aus der Dokumentation nicht sehr klar ersichtlich. Das erste Problem ist, dass

texdoc forest

gibt Ihnen jetzt den dokumentierten Code, aber nicht das Benutzerhandbuch.

texdoc -l forest

bietet Ihnen die Möglichkeit, das Benutzerhandbuch anzuzeigen, das jetzt im Format vorliegt forest-doc.pdf.

Der Mechanismus zum Laden von Bibliotheken wird auf Seite 20 erläutert.

Im Wesentlichen,

\useforestlibrary{<list of libraries>}

lädt eine Liste von Bibliotheken und

\forestapplylibrarydefaults{<list of libraries>}

wendet ihre Standardeinstellungen an und macht alle zusätzlichen Optionen usw. verfügbar.

\useforestlibrary{}, wie \usepackage{}und \usetikzlibrary{}ist nur zur Verwendung in der Präambel bestimmt.

\forestapplylibrarydefaults{}kann in der Präambel oder im Dokument verwendet werden und gilt im aktuellen TeX-Bereich.

Eine Alternative besteht darin, den Namen der Bibliothek beim Laden als Option zu übergebenWald

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

Dies hat zur Folge, dass die Bibliotheken geladen und die Standardeinstellungen im gesamten Dokument angewendet werden.

Beachten Sie, dass

\forestapplylibrarydefaults{<libraries>}

hat keine Wirkung, sofern <libraries>es nicht geladen wurde. Verwirrenderweise wird jedoch kein Fehler ausgegeben.

Das Ergebnis davon ist in jedem Fall, dass wir die linguisticsBibliothek laden und anwenden und triangleFolgendes ändern müssen 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}

Wald Version 2 Dächer in der Linguistik

Beachten Sie, dass sich dadurch auch die Anker und damit das Erscheinungsbild der Kanten ändern. Hoffentlich ist dies das, was Sie wollen, da ich glaube, dass dieser Stil in der Linguistik normal ist. Es bedeutet jedoch, dass Ihre Bäume etwas anders aussehen werden, wenn Sie zuvor den Standardstil für Anker und Kanten verwendet haben.

verwandte Informationen