这看起来可能有点微不足道,但我正在编写包含大量未标记节点的 TikZ 代码。我必须{}
在每个节点声明的末尾输入,这让我很沮丧。有没有一些简单的方法可以避免输入这些?省略会导致{}
编译错误:A node must have a (possibly empty) label text.
答案1
该node contents
选项可以用来代替花括号。
您可以将其应用于所有节点:
\documentclass{article}
\usepackage{tikz}
\tikzset{
every node/.append style = {
node contents =,
},
}
\begin{document}
\begin{tikzpicture}
\node[fill=red];
\end{tikzpicture}
\end{document}
或者您可以定义一个应用于所有相关节点的自定义样式:
\documentclass{article}
\usepackage{tikz}
\tikzset{
notext/.style = {
node contents =,
},
}
\begin{document}
\begin{tikzpicture}
\node[notext, fill=red];
\end{tikzpicture}
\end{document}
看TikZ 文档第215页。
请注意“当在节点的选项中使用选项 [ node contents
] 时,节点的解析会在选项块结束后立即停止。”
但仍然可以使用该name
选项来命名节点。
答案2
是{}
内部使用的语法的一部分,无法避免(只能用 替换\bgroup \egroup
,但这对您没有帮助)。
如果您的\node
s 没有任何内容和大小,仅用于存储坐标,那么我会改用\coordinate
(或\path coordinate
)。它基本上是\node
没有内容的。IIRC 它在内部使用\node [..] {};
。
或者只需编写自己的宏来插入正确的\node
语法。