Дерево с tikz выглядит так, как и должно выглядеть, но ошибки все равно появляются

Дерево с tikz выглядит так, как и должно выглядеть, но ошибки все равно появляются

Я только начал изучать LaTeX и для этого попытался создать PDF моего последнего логического задания. Поэтому мне пришлось создать дерево разрешения. Погуглив, я нашел несколько примеров использования tikz-деревьев на этой платформе. Мой результат таков:

\documentclass[12pt, a4paper]{article}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[ansinew]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usepackage{pdflscape}
\usetikzlibrary{calc,fit,trees}

\begin{document}
        \begin{landscape}
        \begin{tikzpicture}[
          grow'=up,
          level 1/.style={sibling distance=16em},
          level 2/.style={sibling distance=15em},
          level 3/.style={sibling distance=15em},
          level 4/.style={sibling distance=12em}]
        \node (f) {$\Box$} 
        child { node (1l) {
            \begin{tabular}
            $\varphi_{T32}$ \\
            $Q(a, f(g(a)))$ \\
            \end{tabular}}
          child { node (2ll) {
            \begin{tabular}
            $\varphi_{T31}$ \\
            $Q(a, f(g(a))) \lor R(g(a), f(g(a)))$
            \end{tabular}}
                child {node (3lll) {
                    \begin{tabular}
                    $(\varphi_2)_{[x/a \text{, } y/f(g(a))]}$ \\
                    $Q(a, f(g(a))) \lor R(g(a), f(g(a))) \lor \lnot P(g(a))$ \\
                    \end{tabular}}}
                child {node (3llr) {
                    \begin{tabular}
                    $\varphi_{T1}$ \\
                    $P(g(a))$
                    \end{tabular}}
                    child { node(llrl) {
                        \begin{tabular}
                        $(\varphi_3)_{[x/f(a) \text{, } y/b]}$ \\
                        $Q(f(a),g(b)) \lor P(g(a))$ \\
                        \end{tabular}}}
                    child { node(llrr) {
                        \begin{tabular}
                        $\varphi_4$ \\
                        $\lnot Q(f(a),g(b)) \\
                        \end{tabular}}}}}
          child { node (2lr) {
            \begin{tabular}
            $\varphi_{T2}$ \\
            \lnot R(g(a), f(g(a))) \\
            \end{tabular}}
            child {node (3lrl) {
                \begin{tabular}
                $\varphi_{T1}$ \\
                $P(g(a))$
                \end{tabular}}}
            child {node (3lrr) {
                \begin{tabular}
                $\varphi_1_{[x/g(a)]}$ \\
                $\lnot R(g(a), f(g(a)) \lor \lnot P(g(a)))$ \\
                \end{tabular}}}}
        }
        child {node (1r) {\begin{tabular}
            $(\varphi_5)_{[y/a]}$ \\
            $\lnot Q(a, f(g(a)))$ \\
        \end{tabular}}};
        \end{tikzpicture}
        \end{landscape}
\end{document}

И это выглядит именно так, как я хотел, но тем не менее все еще появляются некоторые ошибки, и в целях обучения я хотел бы спросить вас, в чем мои ошибки, потому что на этот раз все работает, но, возможно, я сделаю ту же ошибку в следующий раз, и код больше не будет компилироваться.

решение1

Это должно решить проблемы.

Что я сделал?

  • добавлены недостающие $знаки там, где это необходимо (всего я добавил 3 таких знака);
  • избегайте «двойных нижних индексов», например, если вы говорите, $x_i_1$что получите ошибку — вам нужно сгруппировать элементы: $x_{i_1}$, например;
  • удалены tabularненужные окружения, если вы добавляете их align=centerдля изображения, и удалены последние переносы строк (просто для аккуратности);
  • Я удалил inputencтолько потому, что не использую эту кодировку в своем редакторе (но настоятельно рекомендую рассмотреть возможность использования utf8);
  • Я заменил amsmathна mathtools- это грузы amsmathплюс несколько исправлений/улучшений.

Если выпрочитайте ошибкипри компиляции многие из них говорят вам, в чем проблема. Не всегда, но определенно в случае с отсутствующими $знаками, например.

\documentclass[12pt, a4paper]{article}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{pdflscape}
\usetikzlibrary{calc,fit,trees}

\begin{document}
        \begin{landscape}
        \begin{tikzpicture}[
          align=center,
          grow'=up,
          level 1/.style={sibling distance=16em},
          level 2/.style={sibling distance=15em},
          level 3/.style={sibling distance=15em},
          level 4/.style={sibling distance=12em}]
        \node (f) {$\Box$}
        child { node (1l) {
            $\varphi_{T32}$ \\
            $Q(a, f(g(a)))$
          }
          child { node (2ll) {
            $\varphi_{T31}$ \\
            $Q(a, f(g(a))) \lor R(g(a), f(g(a)))$
            }
                child {node (3lll) {
                     $(\varphi_2)_{[x/a \text{, } y/f(g(a))]}$ \\
                    $Q(a, f(g(a))) \lor R(g(a), f(g(a))) \lor \lnot P(g(a))$
                    }}
                child {node (3llr) {
                    $\varphi_{T1}$ \\
                    $P(g(a))$
                    }
                    child { node(llrl) {
                        $(\varphi_3)_{[x/f(a) \text{, } y/b]}$ \\
                        $Q(f(a),g(b)) \lor P(g(a))$
                        }}
                    child { node(llrr) {
                        $\varphi_4$ \\
                        $\lnot Q(f(a),g(b))$
                        }}}}
          child { node (2lr) {
            $\varphi_{T2}$ \\
            $\lnot R(g(a), f(g(a)))$
            }
            child {node (3lrl) {
                $\varphi_{T1}$ \\
                $P(g(a))$
                }}
            child {node (3lrr) {
                $\varphi_{1_{[x/g(a)]}}$ \\
                $\lnot R(g(a), f(g(a)) \lor \lnot P(g(a)))$
                }}}
        }
        child {node (1r) {
            $(\varphi_5)_{[y/a]}$ \\
            $\lnot Q(a, f(g(a)))$
        }}
    ;
        \end{tikzpicture}
        \end{landscape}
\end{document}

фиксированное дерево

Связанный контент