Как установить блок кода с помощью \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

Связанный контент