Menambahkan teks ke kedua sisi pohon SL

Saya perlu membuat pohon seperti pohon ini. Kode yang saya tulis sejauh ini adalah

\documentclass[11pt, a4paper]{article}

% Packages
\usepackage{amsmath, amssymb, amstext}
\usepackage[linguistics]{forest}

% Margins
\usepackage[a4paper,margin=2cm]{geometry}

% Renew Commands
\renewcommand{\land}{~\&~}
\renewcommand{\implies}{\supset}
\renewcommand{\iff}{\equiv}

% Document
\begin{document}
    \begin{forest}
        [$(E \implies \lnot (P \lor Q)) \land ((Q \land E) \lor (E \land P))$
            [$E \implies \lnot (P \lor Q)$ \\ $(Q \land E) \lor (E \land P)$
                [$E \land (Q \lor P)$
                    [$E$\\$Q \lor P$
                        [$\lnot (P \lor Q)$
                            [$\lnot P \land \lnot Q$
                                [$\lnot P$\\$\lnot Q$
                                    [$Q$
                                        [$\times$]
                                    ]
                                    [$P$
                                        [$\times$]
                                    ]
                                ]
                            ]
                        ]
                    ]
                ]
            ]
        ]
    \end{forest}
\end{document}

Yang menghasilkan pohon ini sejauh ini. Ketentuannya adalah saya memerlukan kolom paling kiri yang berisi penomoran rata kiri dan kolom kanan yang berisi penjelasan aturan rata kiri. Akan sangat membantu juga jika Anda dapat menyertakan cara agar semua node diberi jarak yang sama sehingga kolom kiri dan kanan sejajar dengan node. Terima kasih!


person Ethan Thoma    schedule 12.10.2020    source sumber


Jawaban (1)


Sudahlah, saya menyelesaikannya dengan menggunakan tikz-picture alih-alih hutan:

\begin{tikzpicture}[level/.style={sibling distance=100mm/#1},
                    baseline,
                    >=latex,
                    every text node part/.style={align=center},
                    font=\sffamily
                    ]
                    
    \node (1a){$(E \implies \lnot [P \lor Q]) \land ([Q \land E] \lor [E \land P])$}
        child {node {$E \implies \lnot (P \lor Q)$ \\ $(Q \land E) \lor (E \land P)$}
            child {node {$\lnot E$}
                child {node {$Q \land E$}
                    child {node {$Q$\\$E$}
                         child {node {$\times$}}}
                    }
                child {node {$E \land P$}
                    child {node {$E$\\$P$}
                        child {node {$\times$}}}
                    }
                }
            child {node {$\lnot (P \lor Q)$}
                child {node {$Q \land E$}
                    child {node {$Q$\\$E$}
                        child {node {$\lnot P$\\$\lnot Q$}
                            child {node {$\times$}}}
                        }
                    }
                child {node {$E \land P$}
                    child {node {$E$\\$P$}
                        child {node {$\lnot P$\\$\lnot Q$}
                            child {node {$\times$}}}
                        }
                    }
                }
            };
                    
    \node[left=3 of 1a] {1}edge from parent[draw=none]
        child {node {2\\3}edge from parent[draw=none]
            child {node {4}edge from parent[draw=none]
                child {node {5}edge from parent[draw=none]
                    child {node {6\\7}edge from parent[draw=none]
                        child {node {8\\9}edge from parent[draw=none]}
                    }
                }
            }
        };
                    
    \node[right=3 of 1a] {$\Phi$}edge from parent[draw=none]
        child {node {$1 \land$}edge from parent[draw=none]
            child {node {$2 \implies$}edge from parent[draw=none]
                child {node {$3 \lor$}edge from parent[draw=none]
                    child {node {$5 \land$}edge from parent[draw=none]
                        child {node {$4 \lnot \lor$}edge from parent[draw=none]}
                    }
                }
            }
        };
                
\end{tikzpicture}

Yang menghasilkan ini:

keluaran

Cara kerjanya dengan membuat pohon pertama, pohon utama, yang tumbuh ke bawah, pohon kedua di sebelah kiri untuk penomoran, dan pohon terakhir di sebelah kanan untuk aturan yang digunakan.

person Ethan Thoma    schedule 16.10.2020