tikz-qtree における自動セグメンテーション表現

tikz-qtree における自動セグメンテーション表現

これが私が達成したいことです

「mu」から「a」へのリンク

この:

「O」から「l」への連結

しかし、私が tikz-qtree で作成できたのは次のものだけです。

\documentclass[12pt,a4]{article}
\usepackage[utf8]{inputenc}
\usepackage{tipa,tikz,tikz-qtree}
\begin{document}

\begin{tikzpicture} [baseline]
\tikzset{frontier/.style={distance from root=90pt}}
\Tree
[.$\sigma$ [.O [ p ] ]
[.R [.$\mu$ a ] [.$\mu$ : ] ] ]
\end{tikzpicture}
\begin{tikzpicture} [baseline]
\tikzset{frontier/.style={distance from root=90pt}}
\Tree
[.$\sigma$ [.O [ p ] ]
[.R [.$\mu$ a ]  ] ]
\end{tikzpicture}

この:

\begin{tikzpicture}[baseline]
\tikzset{frontier/.style={distance from root=90pt}}
\Tree
[.$\sigma$ [.O [ l ] ]
[.R [.$\mu$ a ] [.$\mu$ l ] ] ]
\end{tikzpicture}
\begin{tikzpicture} [baseline]
\tikzset{frontier/.style={distance from root=90pt}}
\Tree
[.$\sigma$ [.O [ : ] ]
[.R [.$\mu$ a ] [ l ] ] ]
\end{tikzpicture}
\end{document}

レンダリング:

ここに画像の説明を入力してください

そして

ここに画像の説明を入力してください

ここで重要なのは、葉から複数の親へのリンクです (破線にするオプションもあったらよかったのですが)。現在、pst-asr では、私の望みどおりにはいきません。モーラ (「mu」) があることが重要です。(また、これは pstricks パッケージなので、DVIPSPDF でタイプセットする必要があります。) forest パッケージ (特に forest-GP1) を少し試してみましたが、これも望みどおりには動作しません。最後に、xyling を勧める人もいますが、このパッケージは非常に使いにくいと思います。

何かおすすめはありますか?

ありがとう。

答え1

実際、あなたの考えは間違いなく正しいものでした。コードに少し追加するだけでうまく機能します。これは、がtikz-qtree.styを使用でき\node、 に名前を付けることができ、その名前が の座標として使用されるという事実に基づいています\draw。2 番目の例は、2 つの木の間に線が引かれ、2 つの木が隣り合って表示されるようにする必要がある点で、もう少し複雑です。\begin{scope}...\end{scope}量を変更することで、2 番目の木の位置を調整できますxshift

\documentclass{article}

\usepackage{tikz}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture} [baseline]
\begin{scope}
\Tree
[.$\sigma$ [.O [ p ] ]
[.R [.$\mu$ \node[red](a){a}; ] \node(m){$\mu$}; ] ]
\draw (m.south) -- (a.north);
\end{scope}
\begin{scope}[xshift=0.65in]
\tikzset{frontier/.style={distance from root=90pt}}
\Tree
[.$\sigma$ [.O [ p ] ]
[.R [.$\mu$ a ]  ] ]
\end{scope}
\end{tikzpicture}

\begin{tikzpicture}[baseline]
\begin{scope}
\Tree
[.$\sigma$ [.O [ l ] ]
[.R [.$\mu$ a ] [.$\mu$ \node(l){l}; ] ] ]
\end{scope}
\begin{scope}[xshift=0.75in]
\Tree
[.$\sigma$ [.\node(O){O};  ]
[.R [.$\mu$ a ] [ l ] ] ]
\draw[dashed] (O.south) -- (l.north);
\end{scope}
\end{tikzpicture}

\end{document}

その結果は次のようになります:

最新の出力。

答え2

これは を使用するとずっと簡単になりますforestphantomオプションを使用してツリーを並べて配置できます。各音節はファントム ノードの娘であるため、マルチドメイン ブランチのノードに名前を付けることができます。これらの線は通常の TikZ コマンドで描画されるため、関連する娘ファントムも作成する必要があります。[dashed]通常の TiKZ オプションを使用して、線に任意の装飾 (例 ) を追加できます。2 つの例を次に示します。

syllまず、言語学でよく見られるように、ノードの接続を密にする というスタイルを設定しました。さらに、セグメントを互いに整列させ、ブランチをセグメント層まで拡張したいため、娘のないすべてのノードsegを層に割り当てました。また、音節とモーラ用のマクロもいくつか作成しました。

\documentclass{article}
\usepackage{forest}
\newcommand{\syl}{$\sigma$}
\newcommand{\mor}{$\mu$}
\forestset{syll/.style=
   {for tree={parent anchor=south,child anchor=north,
              align=center,inner sep=0pt,
              where n children=0{tier=seg}{}}}}
\begin{document}
\begin{forest}syll
[,phantom, s sep=1em
[\syl [O [p,tier=seg ]]
      [R [\mor [a,name=aa] ] [\mor,name=M [,phantom] ]]]
[\syl [O [p,tier=seg ]]
      [R [\mor [a] ]]]
]
\draw (M.south) -- (aa.north);
\end{forest}

\begin{forest}syll
[,phantom, s sep=1em
[\syl [O [l ]]
      [R [\mor [a]] [\mor [l,name=LL]]]]
[\syl [O,name=O [,phantom] ]
      [R [\mor [a] [l]]]]
]
\draw[dashed] (O.south) -- (LL.north);
\end{forest}


\end{document}

コードの出力

答え3

pst-asr で必要なことは達成できます。XeTeX を使用すれば問題なく実行できます (言語学ではこれが推奨されます)。今はコンピューターの前にいないので、コードと出力は後で行います。

編集

ここにコードがあります。

\documentclass{article}

\usepackage{pst-asr}
    \psset{everyasr=\tiershortcuts}
    \newpsstyle{dashed}{linestyle=dashed,dash=3pt 2pt}

\begin{document}

\newtier{con}
\psset{con=7ex (O)}
\newtier{sig}
\psset{sig=13ex (O)}
\asr[reptype=nots, sy=2ex ($\mu$)] |
    \@(0,ph){p}
    \@(1,ph){a}
    \@(3,ph){p}
    \@(4,ph){a}
    \@(1,sy){$\mu$}\-(1,ph)
    \@(2,sy){$\mu$}\-(1,ph)
    \@(4,sy){$\mu$}\-(4,ph)
    \@(0,con){O}\-(0,ph)
    \@(1,con){R}\-(1,sy)\-(2,sy)
    \@(3,con){O}\-(3,ph)
    \@(4,con){R}\-(4,sy)
    \@(.5,sig){$\sigma$}\-(0,con)\-(1,con)
    \@(3.5,sig){$\sigma$}\-(3,con)\-(4,con)
\endasr

\bigskip

\asr[reptype=nots, sy=2ex ($\mu$)] |
    \@(0,ph){l}
    \@(1,ph){a}
    \@(2,ph){l}
    \@(4,ph){a}
    \@(5,ph){l}
    \@(1,sy){$\mu$}\-(1,ph)
    \@(2,sy){$\mu$}\-(2,ph)
    \@(4,sy){$\mu$}\-(4,ph)
    \@(0,con){O}\-(0,ph)
    \@(1,con){R}\-(1,sy)\-(2,sy)
    \@(3,con){O}\-[style=dashed](2,ph)
    \@(4,con){R}\-(4,sy)\-(5,ph)
    \@(.5,sig){$\sigma$}\-(0,con)\-(1,con)
    \@(3.5,sig){$\sigma$}\-(3,con)\-(4,con)
\endasr

\end{document}

そして出力。

出力

関連情報