侧支架-有人能确保我读得正确吗?

侧支架-有人能确保我读得正确吗?

经过反复尝试,以及一些帮助堆栈溢出问题我能够整理出以下代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}

\begin{document}

\begin{itemize}
    \item one length
    \tikz[remember picture] \node[coordinate, yshift=0.7em] (n1) {};
    \item another length
    \tikz[remember picture] \node[coordinate, yshift=-0.2em] (n2) {};
    \item the longest length
    \tikz[remember picture] \node[coordinate, yshift=-0.2em] (n3) {};
    \item short
    \tikz[remember picture] \node[coordinate, yshift=-0.2em] (n4) {};
\end{itemize}

\begin{tikzpicture}[overlay,remember picture]
    \path (n4) -| node[coordinate] (n5) {} (n3);
    \path (n1) -| node[coordinate] (n6) {} (n3);
    \draw[thick,decorate,decoration={brace, amplitude=4pt}] 
        (n6) -- (n5) node[midway, right=3pt]{brace text};
\end{tikzpicture}

\end{document}

产生

侧撑示例

就像期望的那样。但是,我有点不确定它为什么会起作用。

路径线是不是\path (n4) -| node[coordinate] (n5) {} (n3);读起来像“在直角坐标系中创建一个与n4x 和n3y 对齐的节点”?

答案1

您基本上是对的,但我通常对此的看法略有不同:我认为这行代码应该为“在从 到n4的矩形路径的中间位置创建一个节点n5”。结果几乎相同,但区别在于您不仅指定坐标,而且实际上是指定完整路径,并在其上放置一个节点。

表达方式

\path (0,0) -| node {X} (3,1);

\path (0,0) -| (3,1) node [pos=0.5] {X};

是等效的,它们都将节点定位在坐标 处(3,0)。位置0.5定义为线性路径的中点,以及矩形路径的角点。node在线类型(--|--|)和第二个坐标之间使用关键字将节点放置在位置 处0.5,在第一个坐标和线类型之间使用它将节点放置在位置 处0,在第二个坐标之后使用它将节点放置在位置 处1

上述表达式还将边界框(以及图片的大小)设置为包含点(0,0)和,因为您定义了从到的(3,1)整个路径。(0,0)(3,1)

如果你只想定位节点而不改变边界框,则应该使用语法

\node at (0,0 -| 3,1) {X};

它指定了和之间的直角坐标系中的坐标(0,0),而(3,1)无需指定整个路径。

相关内容