我刚开始学习 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
); - 我将其替换
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}