我可以“装饰”一个简单的“qtree”吗?

我可以“装饰”一个简单的“qtree”吗?

我有以下代表包qtree树的代码:

\Tree[.${((q \to (\neg r)) \land (\neg(p\lor q)))}$ 
        [.${(q \to (\neg r))}$ 
            [.$q$ ]
            [.${(\neg r)}$ $r$ ] 
        ]
        [.${(\neg (p \lor q))}$
            [.${(p \lor q)}$  
                [.$p$ ]
                [.$q$ ]
            ]
        ]
    ]

其结果如下:

配额树

结果是正确的,完全符合我的预期,但是我希望可以对其进行修饰,使其更具风格,更易于阅读。具体来说,我想配置树节点之间的分隔,并将线条转换为箭头。

我想要的结果是这样的:

期望结果

是否可以使用qtree库来实现这一点?我怎样才能以最简单的方式做到这一点?我应该使用tkiz-qtree还是tkiz-tree?以及如何使用?

答案1

  • 看起来这个tkiz-qtree包是特意设计来生成图表的,就像你在第一张图片中展示的那样
  • 您想要实现的目标,都可以通过使用forest包轻松实现。

编辑:

  • 添加了被遗忘的箭头,因为@Jasper Habicht 还留有我的。现在已添加。
\documentclass[border=3.141592]{standalone}
\usepackage{forest}

\begin{document}
  
    \begin{forest}
for tree = {math content, 
            edge=->,
            l sep=5mm,
            s sep=7mm,
            }
[((q \to (\neg r)) \land (\neg(p\lor q))) 
    [(q \to (\neg r))
        [q]
        [(\neg r)
            [r]
        ]
    ]
    [(\neg (p \lor q))
        [(p \lor q)
            [p]
            [q]
        ]
    ]
]
    \end{forest}
\end{document}

在此处输入图片描述

笔记:
对于箭头,你可以使用arrows.metaTikZ 库来定义。例如

\documentclass[border=3.141592]{standalone}
\usepackage{forest}
\usetikzlibrary{arrows.meta}     % <---

\begin{document}
  
    \begin{forest}
for tree = {math content,
            edge=-Straight Barb, % <---
            l sep=5mm,
            s sep=7mm,
            }
% rest the same as before

树变成:

在此处输入图片描述

相关内容