当我在等式中插入图形时,遇到了一个奇怪的错误,我将其简化为以下最小(非)工作示例tikzmark
:tikz
以下文件bug.tex
,
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\begin{document}
\tikz[remember picture]{\node (a) {a};}
\tikz[remember picture]{\node[rounded rectangle] (c) {c};}
\begin{tikzpicture}[remember picture, overlay]
\draw (a) -- (c);
\end{tikzpicture}
\end{document}
编译时,触发以下错误:
! Package PGF Math Error: You asked me to calculate `1/0.0', but I cannot divid
e any number by zero.
See the PGF Math package documentation for explanation.
Type H <return> for immediate help.
...
l.14 \draw (a) -- (c)
;
如果您执行以下任何一项操作,则不会出现此错误:
- 消除
[rounded rectangle]
- 删除
\draw
命令 \draw (c) -- (a);
代替(a) -- (c)
- 随机改变节点的内容,例如:
(a)
如果你将的内容更改为{b}
,它就会起作用(c)
如果你将的内容更改为{b}
,它就会起作用- 如果你改变两者的内容
(a)
和(c)
至{b}
,它不起作用。
另外两点说明:
- 这
[remember picture, overlay]
似乎不是问题的根源:当我删除它时,错误仍然会出现。我将其保留在 MWE 中,因为当此错误不会中断编译链时,删除它会在以后导致其他问题。 - 如果您更改我上面提到的元素之一以使其能够编译,然后撤消此更改并在不删除文件的情况下重新编译它
.aux
,则它可能会顺利编译。
这是一个错误还是我做错了什么?这种行为究竟是什么原因造成的?
答案1
在 tikz 节点内部,使用\subnode
提供的tikzmark
,而不是\tikzmarknode
。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark, shapes.misc}
\begin{document}
\begin{tikzpicture}[remember picture]
\node {\subnode{a}{a} \subnode[rounded rectangle]{c}{c}};
\draw (a) -- (c);
\end{tikzpicture}
\end{document}