当 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 渲染良好,第二次,分支与文本分离。
答案1
我完全同意@egreg的评论。森林与tikz的冲突确实在于remember picture
。
话虽如此,我想提出一个可行的解决方案,在这种情况下,tikzmark
假设您确实想连接单个图形,同时remember picture
从中删除tikzstyle
。结果如下:
\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}