为什么 prooftrees 要把所有东西都放在同一条线上?

为什么 prooftrees 要把所有东西都放在同一条线上?

我正在尝试做一个像这样的 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 ]是根,因此是整棵树。树规范之后的所有内容都传递给 TiZ,但这里没有相关命令,因此[ B ][ C ]被解析为文本。由于我们在环境中tikzpicture,我们使用null字体,文本被忽略。因此,我们实际上有

\begin{forest}
  [ A ]
\end{forest}

环境行为不同的原因prooftree是用户指定的树实际上是环境排版的树的子树。将prooftree用户的树规范嵌入到更大的树中,该树包括行号、理由和“证明”行(视情况而定)。因此,内部forest环境读取

  [ A ]
  [ B ]
  [ C ]

作为树规范的一部分,因此这些最终成为节点tikzpicture并以正常字体排版,由 Ti 切换回来Z 代表节点文本。

用户提供的根prooftree“永远”不是排版树的根。我不确定是否可以尝试prooftree设置无根树,尽管我不想排除这种可能性,但我可以说,任何人都不可能意外这样做。

相关内容