
Ich ertappe mich immer dabei, dass ich viele Wiederholungen mit festen TikZ-Codeblöcken mache, die ich immer wieder neu schreiben muss. Meine Frage ist, ob es möglich ist, einen Block aus ausführbaren TikZ-Befehlen (nicht nur Stile) innerhalb eines einzelnen Arguments zu erstellen und dieses Argument als Stil aufzurufen?
Bedenken Sie:
\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}
Was ich gerne wissen würde ist, ob es so etwas gibt wie
\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
}
Damit die Verwendung
\draw[dimension line=from A to B value 3cm] (A)--(B);
wird dieselbe Ausgabe liefern. Das wird helfen, die Arbeit mit minimalem Aufwand zu erledigen und Abstraktion zu ermöglichen. Ich finde dieses Beispiel einfach genug, um zu verstehen, wie man Codeblöcke in TikZ erstellt. Danke.
Antwort1
Dies ist eher ein langer Kommentar als eine echte Antwort.
Obwohl in allen tikz-dimline
Beispielen kartesische Koordinaten verwendet werden, ist es möglich, benannte Koordinaten zu verwenden:
\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}
Auf jeden Fall habe ich endlich die Frage gefunden, nach der ich gesucht habe:
Zeichnen Sie die Dimension einer Linie als Dekoration in TikZ