
私は LaTeX の勉強を始めたばかりで、そのために前回の論理課題の PDF を作成しようとしました。そのため、解決ツリーを作成する必要がありました。Google で検索したところ、このプラットフォームで 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}