为什么以下内容渲染效果不佳(与 tikz 和 forest 冲突?)

为什么以下内容渲染效果不佳(与 tikz 和 forest 冲突?)

当 tikz 和 forest 一起使用时,以下内容无法很好地呈现:

\documentclass[border=10pt]{standalone}
\usepackage[linguistics]{forest}
\usepackage{tikz}
\usetikzlibrary{automata,positioning,decorations.text,topaths,arrows.meta,decorations.pathmorphing,quotes}
\tikzstyle{every picture}+=[remember picture,inner xsep=0,inner ysep=0.25ex]

\begin{document}
\Forest{[A[a][B, calign with current [A, calign with current][a]]]}
\end{document}

要看到糟糕的效果,您必须对 .tex 文件运行两次 pdflatex。第一次,pdf 渲染良好,第二次,分支与文本分离。

这与如何使用 qtree 制作直线骨架?

答案1

我完全同意@egreg的评论。森林与tikz的冲突确实在于remember picture

话虽如此,我想提出一个可行的解决方案,在这种情况下,tikzmark假设您确实想连接单个图形,同时remember picture从中删除tikzstyle。结果如下:

tikz 森林

\subnode{ }请注意通过合并命令并添加以下内容创建的箭头overlay tikzpicture

\documentclass[border=10pt]{standalone}

\usepackage{forest}
\usetikzlibrary{automata,positioning,decorations.text,topaths,arrows.meta,decorations.pathmorphing,quotes}
\usetikzlibrary{tikzmark}
\tikzstyle{every picture}+=[inner xsep=0,inner ysep=0.25ex]

\begin{document}

\begin{forest}
[A[a][B, calign with current [{A}, calign with current][\subnode{argA1}{a}]]]
\end{forest}

\begin{forest}
[A[\subnode{argB2}{a}][{B}, calign with current [A, calign with current][a]]]
\end{forest}

\begin{tikzpicture}[overlay,remember picture]
\draw[-latex, bend angle=40, bend right] (argA1.north) to (argB2.south);
\end{tikzpicture}

\end{document}

相关内容