使用 TikZ 的 fit 库时出现“\pgfkeys@@normal 的参数有一个额外的 }”错误

使用 TikZ 的 fit 库时出现“\pgfkeys@@normal 的参数有一个额外的 }”错误

以下 LaTeX 文档保存在路径为 的文件中~/test.tex

\documentclass[tikz,border=1cm]{standalone}
%\usetikzlibrary{fit}
\begin{document}

\begin{tikzpicture}
   \draw (0,0) rectangle (1,1);
%   \node[draw, fit=(0,0) (1,1)] {};
\end{tikzpicture}

\end{document}

当在终端执行以下命令时:

cd ~
pdflatex 测试

在路径 处生成一个 PDF 文件~/test.pdf。在 PDF 查看器中打开时,文件显示如下:

一个正方形

如果现在取消注释这两行注释,并pdflatex test重新运行该命令,则执行会失败,并且文件~/test.log包含以下代码片段:

! Argument of \pgfkeys@@normal has an extra }.
<inserted text> 
                \par 
l.9    \node[draw, fit=(0,0) (1,1)]
                                    {};
? 
! Emergency stop.
<inserted text> 
                \par 
l.9    \node[draw, fit=(0,0) (1,1)]
                                    {};
End of file on the terminal!

为什么执行失败?我该如何修复该问题?

答案1

要使用数字坐标,您必须隐藏,Ti[]=Z 解析器(如果您在坐标规范中使用任何一个,那么您应该执行相同的操作)。

fit库通常与符号坐标或(更常见的是)节点名称一起使用(在这种情况下,它使用节点的地理坐标):

\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{fit}
\begin{document}

\begin{tikzpicture}
   \draw (0,0) coordinate(a) rectangle (1,1) coordinate(b);
   \node[draw=red, fit=(a) (b)] {};
   \node[draw=blue, dashed, fit={(0,0) (1,1)}, inner sep=1pt] {};
   \node[draw=green, fit={([xshift=0.5cm]a) (b)}] {};
\end{tikzpicture}

\end{document}

上述代码片段的输出

注意inner sep效果。

相关内容