当沿着节点边界框​​的一侧绘制线时,如何消除线起点和终点处的间隙?

当沿着节点边界框​​的一侧绘制线时,如何消除线起点和终点处的间隙?

存在一些差距。

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
  \begin{tikzpicture}
    \path node(n1){text};
    \path[draw](n1.north east)--(n1.north west);
    % uncomment following line to see gaps clearly
    %\path[draw](n1.north west)--(n1.south west);
  \end{tikzpicture}
\end{document}

答案1

\documentclass[tikz]{standalone}
\begin{document}
  \begin{tikzpicture}
    \path node(n1){text};
    \path[draw,line cap=rect](n1.north east)--(n1.north west);
    % uncomment following line to see gaps clearly
    %\path[draw](n1.north west)--(n1.south west);
  \end{tikzpicture}
\end{document}

在此处输入图片描述

这是怎么回事?让我们先来

\documentclass[tikz]{standalone}
\begin{document}
  \begin{tikzpicture}
    \path node[draw](n1){text};
    \path[fill=blue](n1.north east) circle[radius=0.1pt]
    (n1.north west)circle[radius=0.1pt];
    \path[draw,red](n1.north east)--(n1.north west);
  \end{tikzpicture}
\end{document}

在此处输入图片描述

这没有任何不必要的差距。如果你取消注释

 \path[draw,red](n1.north east)--(n1.north west);

你得到

在此处输入图片描述

所以差距是存在的。这是因为 TiZ 对边界框相当“慷慨”,在这里它添加了当你这样做时出现的线的“自然延伸”。line cap=rect。请注意,边界框被“高估”得更多,例如这里。据我所知,没有内置方法来获取精确的边界框。

相关内容