当我绘制图形时,边缘与某些节点重叠。如何使节点位于边缘之上,而不是边缘位于节点之上?我尝试使用 backgrounds 包,但似乎不起作用。这是我的代码供参考。
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary[topaths]
\begin{document}
\begin{tikzpicture}[transform shape]
\foreach \x in {1,...,16}{%
\pgfmathparse{(\x-1)*360/16}
\node[draw,circle,inner sep=0.05cm,minimum width = 13pt,font=\scriptsize] (N-\x) at (\pgfmathresult:1.4cm) {$\x$};
}
\foreach \x [count=\xi from 1] in {1,...,15}{%
\foreach \y in {\x,...,16}{%
\begin{scope}[on background layer]
\path (N-\x) edge[ultra thin,-] (N-\y);
\end{scope}
}
}
\end{tikzpicture}
\end{document}
答案1
在您的示例中,节点已位于前景中,而边缘位于背景(层)中。但节点本身具有透明背景。因此,您可以看到节点后面的边缘背景。您只需将节点填充为白色即可使背景边缘不可见:
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usetikzlibrary[topaths]
\begin{document}
\begin{tikzpicture}[transform shape]
\foreach \x in {1,...,16}{%
\pgfmathparse{(\x-1)*360/16}
\node[draw,circle,fill=white,inner sep=0.05cm,minimum width = 13pt,font=\scriptsize] (N-\x) at (\pgfmathresult:1.4cm) {$\x$};
}
\foreach \x [count=\xi from 1] in {1,...,15}{%
\foreach \y in {\x,...,16}{%
\begin{scope}[on background layer]
\path (N-\x) edge[ultra thin,-] (N-\y);
\end{scope}
}
}
\end{tikzpicture}
\end{document}
要得到