F 的右子节点由于左子节点否定(r)而被隐藏。这是我的 latex 文件现在的样子
\documentclass[12pt,letterpaper]{article}
\usepackage[margin = 1in]{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{center}
\begin{tikzpicture}[sibling distance=10em,
every node/.style = {
shape=rectangle,
rounded corners,
draw,
align=center,
top color=white,
bottom color=blue!5}]]
\node {$\varnothing$}
child{node {F}
child{node {$\lnot$p}
child{node {$\lnot$p$\lor$ q}}
child{node {$\lnot$q}}
}
child{node {p}}
}
child{node {$\lnot$r}
child{node {$\lnot$r$\lor$ s}}
child{node {$\lnot$s}}
}
child{node {r}};
\end{tikzpicture}
\end{center}
\end{document}
我该如何解决这个问题?提前致谢!
答案1
解决树问题的基本方法是不要使用基本的 TikZ 树方法。它们的语法很笨重,并且不会自动定位节点(正如您所发现的)。而是用于forest
制作树。它的语法要简单得多,可以自动打包节点以使树尽可能紧凑,但允许您根据需要使它们不那么紧凑。
但是你展示的代码中还有许多其他错误。看来你需要阅读一篇关于如何更广泛地使用 LaTeX 的基本介绍。以下是我注意到并修复的一些问题(可能还有其他我遗漏的问题)。有关初学者常犯的错误列表,请参阅(La)TeX 及其它初学者最常犯的错误是什么?。 也可以看看对于 LaTeX 初学者来说有哪些好的学习资源?尤其是新的 https://www.learnlatex.org/地点。
- 手动编号。LaTeX 最棒的功能之一就是它能够为您编号元素。您永远不必手动编号任何内容。因此,我用
\subsection
命令替换了您手动编号的段落。 itemize
如果某些东西看起来像一个逐项列表,那么就把它变成一个逐项列表:我已经用使用enumitem
包来格式化项目的环境替换了您的手册“我们将学到什么”部分。- 显示的数学运算通过使用
\[ ... \]
not来居中\begin{center} ... \end{center}
。在 LaTeX 中你应该绝不用于$$ ... $$
引入显示的数学。请参阅为什么 \[ ... \] 比 $$ ... $$ 更可取?并且$$、\[、align、equation 和 displaymath 之间有什么区别?以获得更多选项。 - 你永远不应该使用它
\\
来结束一个段落,并且在连续文本中你通常不应该使用它。参见何时使用 \par,何时使用 \\、\newline 或空行。
\documentclass[12pt,letterpaper]{article}
\usepackage[margin = 1in]{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}
\usepackage{enumitem}
\usepackage[small]{titlesec}
\usepackage{tikz}
\usepackage[linguistics]{forest}
\forestset{mynode/.style={ shape=rectangle,
rounded corners,
draw,
align=center,
top color=white,
bottom color=blue!5,
math content}}
\author{\emph{Muppuri Siva Jagadesh}}
\title{\textbf{Discrete Maths}}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyhf{}
\rhead{
Assignment 1
}
\rfoot{Page \thepage}
\begin{document}
\maketitle
\section{LECTURE 1: SAT PROBLEM}
\subsection{What will we learn?}
\begin{itemize}[label=$\rightarrow$]
\item Satifiability
\item Conjunctive Normal Forms
\end{itemize}
\subsection{Satisfiability}
A compound proposition is satisfiable if it is true for at least one truth assignment of the underlying propositional variables.
\[
\text{e.g.: } (p \lor \lnot q) \land (q \lor \lnot r)
\]
\subsection{}
\begin{enumerate}
\item Replace all $\Leftrightarrow$ symbol (if any)
\[
(p \Leftrightarrow q) \equiv (p \rightarrow q) \land (q \rightarrow p)
\]
\item \[\sum_{n=1}^{\infty} 2^{-n} = 1\]
\end{enumerate}
\subsection{}
\begin{forest}for tree={mynode, s sep=1cm}
[\varnothing
[F
[\lnot p
[\lnot p \lor q ]
[\lnot q ]
]
[p ]
]
[\lnot r
[\lnot r \lor s ]
[\lnot s ]
]
[r]
]
\end{forest}
\end{document}
答案2
您应该只在这里放置您的问题所需的代码,与您的问题无关的个人信息和代码不应该放在问题中。
level 1
这里用和样式来调整子项之间的距离就足够了level 2
。
level 1/.style={sibling distance=10em},
level 2/.style={sibling distance=5em},
\documentclass[border=5mm]{standalone}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[%sibling distance=10em,
level 1/.style={sibling distance=10em},
level 2/.style={sibling distance=5em},
every node/.style = {
shape=rectangle,
rounded corners,
draw,
align=center,
top color=white,
bottom color=blue!5}]]
\node {$\varnothing$}
child{node {F}
child{node {$\lnot$p}
child{node {$\lnot$p$\lor$ q}}
child{node {$\lnot$q}}
}
child{node {p}}
}
child{node {$\lnot$r}
child{node {$\lnot$r$\lor$ s}}
child{node {$\lnot$s}}
}
child{node {r}};
\end{tikzpicture}
\end{document}