
forest
私はパッケージを使って言語ツリーを作成しようとしています。このスレッド木は大体生成できたのですが、なぜか三角形が描けません。
これが私の 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}
これを実行すると、次のエラーが発生します。
! 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}
私は MiKTeX 2.9 で Texmaker 4.4.1 を実行しています。私のpgf
バージョンは 3.0.1a で、pdfTeX バージョン 3.1415926-2.5-1.40.14 を使用しています。redditor は pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) でコードを実行することができました。
pgf
興味深いことに、Texmaker 4.2、TeX Live 2014、3.0.0 、pdfTeX 3.1415926-2.6-1.40.15 を使用して、MacBook でも成功しました。
のバージョンをダウングレードする方法はあるのでしょうかpgf
? それとも、何か他の原因でエラーが発生しているのでしょうか?
答え1
まず最初に確認すべきは、森あなたが持っている。もしバージョン 2 をお持ちの場合は、次の回答が適用されます。バージョン 1 をお持ちの場合は、無関係です。
バージョン 2 をお持ちだと仮定します...
新しいバージョンの森下位互換性のない変更がいくつか導入されています。この場合、次の 2 つが問題となります。
特定のオプション クラスターはライブラリに整理されており、個別にロードする必要があります。
一部のオプションは名前が変更されたか、存在しなくなりました。
triangle
はオプションとして存在しなくなりました。新しいオプションは ですroof
。ただし、 にアクセスするにはroof
、ライブラリをロードする必要がありますlinguistics
。
ドキュメントからプロセスがあまり明確ではありません。最初の問題は
texdoc forest
文書化されたコードは提供されますが、ユーザーマニュアルは提供されません。
texdoc -l forest
では、現在 になっているユーザー マニュアルを表示するかどうかを選択できますforest-doc.pdf
。
ライブラリをロードするメカニズムについては 20 ページで説明します。
本質的には、
\useforestlibrary{<list of libraries>}
ライブラリのリストを読み込み、
\forestapplylibrarydefaults{<list of libraries>}
デフォルト設定が適用され、追加のオプションなどが利用できるようになります。
\useforestlibrary{}
、および\usepackage{}
と同様に、\usetikzlibrary{}
前文でのみ使用されます。
\forestapplylibrarydefaults{}
プリアンブルまたはドキュメント内で使用でき、現在の TeX スコープ内に適用されます。
代替案としては、ロード時にライブラリ名をオプションとして渡す方法があります。森
\usepackage[<list of libraries>]{forest}
ライブラリをロードし、ドキュメント全体にデフォルトを適用する効果があります。
ご了承ください
\forestapplylibrarydefaults{<libraries>}
ロードされていないと効果はありません<libraries>
。ただし、紛らわしいことに、エラーは発生しません。
いずれにせよ、結局のところ、linguistics
ライブラリをロードして適用し、triangle
次のように変更する必要があります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}
これにより、アンカーも変更され、エッジの外観も変更されることに注意してください。このスタイルは言語学では標準的であると思われるため、これが希望どおりであることを願っています。ただし、以前にアンカーとエッジにデフォルトのスタイルを使用していた場合、ツリーの外観が少し変わることになります。