派生树未呈现

派生树未呈现

我正在尝试使用 绘制一个简单语法的派生树tikz-qtree

这是我当前的代码:

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,calc}
\usepackage{tikz-qtree}

% ----------

\begin{document}
    \begin{tikzpicture}
        \tikzset{grow'=right}
        \tikzset{every tree node/.style={anchor=base west}}
        \Tree [.$SS$ [.$(S)$ $()$]
                [.$(S)$
                    [.$((S))$ $(())$]
                ]
            ]
    \end{tikzpicture}
\end{document}

我预期的结果如下:

                -(S)------------()                
              -/                                  
            -/                                    
          -/                                      
        -/                                        
      -/                                          
   SS -\                                          
        -\                                        
          -\                                      
            -\                                    
              -\                                  
                -\                                
                  -(S)---------((S))----------(())

当我编译该文档时,我收到一堆缺少结束括号的投诉“。/main.tex:21: Missing } inserting”,但\Tree据我所知,其中的方括号是平衡的。

我究竟做错了什么?

答案1

以下是绘制图形的三种不同方法

tikz-qtree解决方案

注意留白!

\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,calc}
\usepackage{tikz-qtree}

% ----------

\begin{document}
\begin{tikzpicture}
\tikzset{grow'=right}
\tikzset{every tree node/.style={anchor=base west}}
\Tree [.$SS$ [.$(S)$ $()$ ] [.$(S)$ [.$((S))$ $(())$ ] ] ]
\end{tikzpicture}
\end{document}

在此处输入图片描述

纯钛Z 解决方案

\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}[node distance=0.5cm]
\node (ss) {$SS$};
\node[above right=of ss] (sa) {$(S)$};
\node[right=of sa] (br1) {$()$};
\node[below right=of ss] (sb) {$(S)$};
\node[right=of sb] (ssb) {$((S))$};
\node[right=of ssb] (br2) {$(())$};
\draw (br1) -- (sa) -- (ss) -- (sb) -- (ssb) -- (br2);
\end{tikzpicture}
\end{document}

在此处输入图片描述

tikzcd解决方案

\documentclass{standalone}
\usepackage{tikz-cd}
\begin{document}
\begin{tikzcd}[every arrow/.append style={dash}]
& (S) \arrow[r] & ()\\
SS \arrow[ru]\arrow[rd] & &\\
& (S) \arrow[r] & ((S)) \arrow[r] & (())
\end{tikzcd}
\end{document}

在此处输入图片描述

答案2

我想说服你改用forest

\documentclass{article}
\usepackage[edges]{forest}
\begin{document}
\begin{forest}
for tree={grow=east}
 [$SS$ 
   [$(S)$ $()$]
                [$(S)$
                    [$((S))$ $(())$]
                ]
            ]
\end{forest}
\end{document}

在此处输入图片描述

相关内容