我正在尝试做一个像这样的 prooftrees 树:
\documentclass[letterpaper, 12pt]{article}
\usepackage{prooftrees}
\begin{document}
\begin{prooftree}
{
to prove={ A \lor B \lor C \lor D \lor E }
}
[ A ]
[ B ]
[ C ]
\end{prooftree}
\end{document}
但它目前输出的是:
当我尝试获取具有多条线路的分支的树时,它们全都在同一条线路上。有人能告诉我我做错了什么吗?
编辑:试过森林树,也不起作用。线条画出来了,但字母仍然像图片中那样挤在一起。
答案1
它是一棵树,所以它需要一根和枝。
例如
\documentclass{article}
\usepackage{prooftrees}
\begin{document}
\begin{prooftree}
{
to prove={A \lor B \lor C \lor D \lor E}
}
[A
[ B ]
[ C
[ D ]
]
]
\end{prooftree}
\end{document}
请注意,为了看到真实的结果,您必须查看 PDF 输出(运行pdflatex
或)latex+dvips+ps2pdf
;DVI 文件将不会显示正确的输出,因为prooftrees
基于的 TikZ/PGF 使用了 DVI 查看器无法显示的“特殊”。
答案2
egreg 的解决方案是正确的,但是诊断是错误的。问题不在于树没有根。它有一个完美的根。此外,如果使用适当的引擎(例如 pdfTeX)进行编译,它不会叠加节点。
\documentclass[border=10pt]{standalone}
\usepackage{prooftrees}
\begin{document}
\begin{prooftree}
{
to prove={ A \lor B \lor C \lor D \lor E }
}
[ A ]
[ B ]
[ C ]
\end{prooftree}
\end{document}
生产
现在,不可否认,这可能不是您想要的或想要的,但考虑到输入,这是合理的输出。
假设我们尝试
\begin{forest}
[ A ]
[ B ]
[ C ]
\end{forest}
产生
这是因为 Forest 需要[ A ]
是根,因此是整棵树。树规范之后的所有内容都传递给 Ti钾Z,但这里没有相关命令,因此[ B ]
和[ C ]
被解析为文本。由于我们在环境中tikzpicture
,我们使用null
字体,文本被忽略。因此,我们实际上有
\begin{forest}
[ A ]
\end{forest}
环境行为不同的原因prooftree
是用户指定的树实际上是环境排版的树的子树。将prooftree
用户的树规范嵌入到更大的树中,该树包括行号、理由和“证明”行(视情况而定)。因此,内部forest
环境读取
[ A ]
[ B ]
[ C ]
作为树规范的一部分,因此这些最终成为节点tikzpicture
并以正常字体排版,由 Ti 切换回来钾Z 代表节点文本。
用户提供的根prooftree
“永远”不是排版树的根。我不确定是否可以尝试prooftree
设置无根树,尽管我不想排除这种可能性,但我可以说,任何人都不可能意外这样做。