![如果使用两次移动,则prooftree的边缘将采用其他边缘的样式](https://linux22.com/image/392120/%E5%A6%82%E6%9E%9C%E4%BD%BF%E7%94%A8%E4%B8%A4%E6%AC%A1%E7%A7%BB%E5%8A%A8%EF%BC%8C%E5%88%99prooftree%E7%9A%84%E8%BE%B9%E7%BC%98%E5%B0%86%E9%87%87%E7%94%A8%E5%85%B6%E4%BB%96%E8%BE%B9%E7%BC%98%E7%9A%84%E6%A0%B7%E5%BC%8F.png)
我使用这个包prooftrees
,基于 Ti钾Z forest
。由于我必须绘制具有许多分支的证明,因此我希望某些节点较低,这可以通过“移动”选项实现。但是,如果我使用移动选项两次,似乎第二次使用时会使用第一条边的样式来填充第二条边内的跳跃。
我在以下示例中简化了证明:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{prooftrees}
\begin{document}
\begin{prooftree}{close with=$\times$, single branches=true, align=center}
[Mary: \neg CatLady \sqcup \exists hasPet.Cat, just={$\sqsubseteq$}
[Mary: \exists hasPet.Cat, just={$\sqcup$}, close]
[Mary: \neg CatLady
[John: \neg CatLady \sqcup \exists hasPet.Cat, just={$\sqsubseteq$}, move by=1, edge=green
[John: \exists hasPet.Cat, just={$\sqcup$}, edge=dashed
[(John{, }Y): hasPet{, } Y: Cat, just={$\exists$}, close={$\sqsubseteq$}, move by=2, edge=dashed]
]
]
]
]
\end{prooftree}
\end{document}
这给出了以下结果:
4 和 5 之间的边缘应该完全是虚线和黑色,但不知何故,有一个绿色的实线部分(从 2 和 3 之间的边缘复制而来)。通过从两个边缘中的任何一个中删除 move by 选项,不会发生这种效果。此外,这仅在第一行之前有一个带有 move by 选项的封闭分支时才会发生。
有人知道如何防止使用“移动”选项的第一个边的样式被复制到同样使用移动选项的其他边吗?
答案1
0.7 版prooftrees
修复了此错误。更新已上传至 CTAN,因此应很快可用。
\documentclass[tikz,border=10pt]{standalone}
\usepackage{prooftrees}
\begin{document}
\begin{prooftree}{close with=$\times$, single branches=true, align=center}
[Mary: \neg CatLady \sqcup \exists hasPet.Cat, just={$\sqsubseteq$}
[Mary: \exists hasPet.Cat, just={$\sqcup$}, close]
[Mary: \neg CatLady
[John: \neg CatLady \sqcup \exists hasPet.Cat, just={$\sqsubseteq$}, move by=1, edge=green
[John: \exists hasPet.Cat, just={$\sqcup$}, edge=dashed
[(John{, }Y): hasPet{, } Y: Cat, just={$\exists$}, close={$\sqsubseteq$}, move by=2, edge=dashed, ]
]
]
]
]
\end{prooftree}
\end{document}