如何使用 \tikzset 设置代码块

如何使用 \tikzset 设置代码块

我总是发现自己对固定的 TikZ 代码块进行了大量重复操作,而这些代码块我不得不一遍又一遍地重写。我的问题是,是否可以在单个参数内创建一个 TikZ 可执行命令块(不仅仅是样式),并将该参数称为样式?

考虑一下:

\usepackage{tikz}
\usetikzlibrary{calc}
\begin{tikzpicture}
\coordinate [label = below:A](A) at (0, 0);
\coordinate [label = above:B](B) at (3, 3);
\draw (A) -- (B);
\draw [|-|, thin] ($(A)! 8mm !90:(B)$)  -- node [sloped, midway, fill = white]{$3$cm}
($(B)! -8mm !90:(A)$);%This is too long and It would awesome to abstract it
\end{tikzpicture}

在此处输入图片描述

我想知道的是,是否有类似的事情

\tikzset{
dimension line/.code arg={from#1to#2value#3}
    draw the dimension line between (A) and (B),
    add a node in the middle with blah style and blau value
}

因此使用

\draw[dimension line=from A to B value 3cm] (A)--(B);

将产生相同的输出。这将有助于以最小的努力完成工作并允许抽象,我发现这个例子足够简单,可以理解如何在 TikZ 中创建代码块。谢谢。

答案1

这更像是一个长评论而不是真正的答案。

尽管所有tikz-dimline示例都使用笛卡尔坐标,但也可以采用命名坐标:

\documentclass[border=2mm,tikz]{standalone}
\usepackage{tikz-dimline}

\begin{document}
\begin{tikzpicture}

\draw[red] (0,0) coordinate (A) -- (45:3) coordinate (B);
\dimline[color=blue]{([shift={(-3mm,3mm)}]A)}{([shift={(-3mm,3mm)}]B)}{3cm};
\end{tikzpicture}
\end{document}

在此处输入图片描述

无论如何,我终于找到了我正在寻找的问题:

在 TikZ 中绘制线条尺寸作为装饰

相关内容