为了尝试像在 LaTeX 中那样连接两个内联节点,我编写了以下代码:
\usemodule[tikz]
\starttext
\starttikzpicture[remember picture]
\node (A) {Node 1};
\stoptikzpicture
Hi world
\starttikzpicture[remember picture]
\node (B) {Node 2};
\stoptikzpicture
\starttikzpicture[overlay,remember picture]
\draw (B) --++(0,0.5) -| (A);
\stoptikzpicture
\stoptext
但运行时什么都没有出现,被认为是致命错误。我想知道 TikZ 中是否有一些 LaTeX 独有的库或选项。如果诸如remember picture
Context 中的选项无法使用,还有其他选择吗?
答案1
这是 ConTeXt 中的一个问题,定义
\def\lastxpos{\clf_lastxpos}
\def\lastypos{\clf_lastypos}
和再向下
\let\pdflastxpos\lastxpos
\let\pdflastypos\lastypos
其中\clf_lastxpos
和\clf_lastypos
只是扩展为数字。这意味着\pdflastxpos
和\pdflastypos
不能再用作寄存器。一个简单的解决方法是将它们包装在\numexpr
。我已在邮件列表中报告了此问题:https://mailman.ntg.nl/pipermail/dev-context/2019/003602.html
\unprotect
% This fixes the present bug
\unexpanded\def\pdflastxpos{\numexpr\clf_lastxpos\relax}
\unexpanded\def\pdflastypos{\numexpr\clf_lastypos\relax}
% This might be needed if you run PGF 3.1.3
% see https://github.com/pgf-tikz/pgf/issues/675
\def\XC@tgt@mod#1{#1}
\def\XC@sdef#1#2{\edef#1{#2}}
\protect
\usemodule[tikz]
\starttext
\starttikzpicture[remember picture]
\node (A) {Node 1};
\stoptikzpicture
Hi world
\starttikzpicture[remember picture]
\node (B) {Node 2};
\stoptikzpicture
\starttikzpicture[overlay,remember picture]
\draw (B) --++(0,0.5) -| (A);
\stoptikzpicture
\stoptext