how to draw syntactic trees latex previewer by troy henderson

How to create syntactic trees and align them in LaTeX?

You will need

  • tikz package
  • tikz-qtree package

This code will get you pretty near what you are trying to achieve:

            \documentclass[]{article} \usepackage[margin=1cm]{geometry} \usepackage{tikz} \usepackage{tikz-qtree} \newcommand{\superscript}[1]{\ensuremath{^{\textrm{#1}}}} \newcommand{\subscript}[1]{\ensuremath{_{\textrm{#1}}}} \begin{document}   \tikzset{level 1/.style={level distance=20pt}} \tikzset{level 2/.style={level distance=30pt}} \tikzset{level 3+/.style={level distance=20pt}} \tikzset{frontier/.style={distance from root=10\baselineskip}} \begin{tikzpicture}[remember picture] \Tree [.{ST}     [.{NP}         [.NNP \node[](john){John}; ]         [.NNP \node[](smith){Smith}; ] ]%done     [.{VP} % level 2 VP contains VP1 CC VP2        [.{VP\subscript{1}}          [.{VBD} \node[](walked){walked}; ]         [.{NP}             [.{PRP\$} \node[](his){his}; ]             [.{NN} \node[](dog){dog}; ] ] ]         [.{CC} \node[](and){and}; ]          [.{VP\subscript{2}}              [.ADVP                  [.{RB} \node[] (afterwards) {afterwards}; ] ]             [.{VBD} \node[] (met) {Met}; ]             [.{NP}                  [.{NNP} \node[] (mary) {Mary}; ] ] ] ]     [.{.}         [[[\node[](dot){.}; ] ] ] ] ] ]  \begin{scope}[yshift=-9.5cm,xshift=-3cm,grow'=up] \Tree [.{ST}     [.{NP}          [.{NNP} \node[] (john2) {John}; ]         [.{NNP} \node[] (smith2) {Smith}; ]]     [.{VP}          [.{VBD} \node[] (walked2) {walked}; ]         [.{NP}              [.{PRP\$} \node[] (his2) {his}; ]             [.{NN} \node[] (dog2) {dog}; ] ]]     [.{.}         [[[[\node[] (dot2){.}; ]]]] ] ] \end{scope}  \begin{scope}[yshift=-9.5cm,xshift=3cm,grow'=up] \Tree [.{ST}     [.{NP}         [.{PRP} \node[] (he2) {He}; ] ]     [.{VP}         [.{VBD} \node[] (met2) {met}; ]         [.{NP}             [.{NNP} \node[] (mary2) {Mary}; ] ]         [.{ADVP}             [.{RB} \node[] (later2) {later}; ] ] ]         [.{.}             [[[[{.} ]]]] ] ] \end{scope}         %draw the lines \begin{scope}[remember picture, overlay]     \draw[black,dotted,thick](john)     to (john2);     \draw[black,dotted,thick] (smith)   to (smith2);     \draw[black,dotted,thick] (walked)to (walked2);     \draw[black,dotted,thick] (his)     to (his2);     \draw[black,dotted,thick] (dog)     to (dog2);     \draw[black,dotted,thick] (dot)     to [out=220,in=50] (dot2);     \draw[black,dotted,thick] (met)     to (met2);     \draw[black,dotted,thick] (mary)  to (mary2); \end{scope} \end{tikzpicture}   \end{document}   \end{document}                      

I will post updated code once I get the leaf nodes aligned! I am not sure why the . leaf is not being aligned with the rest of the leaves.

UPDATE The solution to the problem of getting the . leaf nodes aligned with the other leaves is to nest it within brackets [[[]]], which puts it on a deeper level.


Sample Output

sample output updated to match code

If you are looking for more information, check out Alan Munn's informative answer here.

Comments

  • I want to create syntactic trees and align them in LaTeX as in the picture below.

    enter image description here

    Can you help me?

    • The tikz-qtree package gives an example similar to this in its documentation. Try that and come back with a sample document if you're having problems. There are also lots of tikz-qtree questions on the site.

    • I would recommend that you tag this question with linguistics, because it is a linguistics-related question; and tikz because it deals with graphics. This will grab more attention to your question.

    • @macmadness86 although it's likely that your answer will be the only one in this case, it's usually considered polite to wait some time before reminding people about accepting your answer. There's a fine line between informing new users about how the site works and badgering them to accept your answer. Also, tags are for questions, not answers, so while the linguistics tag is entirely appropriate, the tikz-qtree tag is really based on your answer and not the question; there are other viable ways to create trees in LaTeX.

    • @Alan Munn, duly noted! I only said that in this case because he wrote a comment (which has since been deleted because it was inappropriate-a typical new-user thank you very much comment-) which made it seem like my answer had solved his question. As he is a very new user, I wanted to ensure that he checks the mark without just ignoring it like many new users. You are right about the tikz-qtree tag. I wasn't sure if I should include that tag. I will keep that in mind for next time. I will also delete my comment. I want to show good manners!

    • @justlife Since macmadness has definitely provided an answer to your question, it would now be helpful to click on the green checkmark beside it to "accept" the answer.

Recents

What is the matrix and directed graph corresponding to the relation $\{(1, 1), (2, 2), (3, 3), (4, 4), (4, 3), (4, 1), (3, 2), (3, 1)\}$?

Related

cummingswoemorre.blogspot.com

Source: https://9to5science.com/how-to-create-syntactic-trees-and-align-them-in-latex

0 Response to "how to draw syntactic trees latex previewer by troy henderson"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel