TikZ 中的节点层

TikZ 中的节点层

有人知道以下最小示例中是否以及如何:

\documentclass[12pt]{standalone}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{fontspec}

\usepackage{amssymb}
\usepackage{tikz}


\usetikzlibrary{positioning,fit,backgrounds}



\begin{document}
\begin{tikzpicture}
    \node(fin){$\square$};
    \path[draw](fin)--node [midway, above] {\textit{4 mois}}(10,0)node(repere) {$\square$};

\end{tikzpicture}
\end{document}

我可以轻松地将第二个节点放置在与第一个节点相同的位置(即在节点和线之间有小的缩进)?

答案1

让我解释一下你的代码发生了什么。

\node(fin){$\square$};

放置一个以 为中心的节点,(0,0)其中包含$\square$。这是绘制的正方形,而不是节点本身。每个节点inner sep的内容和节点边界之间都有一定的距离。如果你想看到真正的边界,使用选项draw( \node[draw](fin)...)

\path[draw](fin)--node [midway, above] {\textit{4 mois}}(10,0) node[draw=red,right](repere) {$\square$};

(fin.center)现在在和之间(10,0)画了一条线。虽然这条线从 开始(fin.center),但直到到达fin边界才画出来。这就是你在方案中看到的间隙。

一旦线在点处结束,(10,0)就会以该坐标为中心绘制一个新节点。这就是将正方形放在线上的原因。

如果要保持相同的距离,repere边框应该位于线的结束处,这意味着将其锚定到west锚点(right选项)。

\documentclass[12pt]{standalone}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{amssymb}
\usepackage{tikz}

\usetikzlibrary{positioning,fit,backgrounds}

\begin{document}
\begin{tikzpicture}
    \node[draw=red](fin){$\square$};
    \path[draw](fin)--node [midway, above] {\textit{4 mois}}(10,0) node[draw=red,right](repere) {$\square$};

\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容