tikz 的树看起来与预期一致,但仍然弹出错误

tikz 的树看起来与预期一致,但仍然弹出错误

我刚开始学习 LaTeX,为此我尝试创建我上一个逻辑作业的 PDF。因此我必须创建一个解析树。在谷歌搜索后,我找到了一些在这个平台上使用 tikz-trees 的示例。我的结果是这样的:

\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);
  • 我将其替换amsmathmathtools- 此加载项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}

固定树

相关内容