
Siempre me encuentro haciendo muchas repeticiones con bloques de código fijos de TikZ que tengo que reescribir una y otra vez. Mi pregunta es: ¿es posible crear un bloque de comandos ejecutables de TikZ (no solo estilos) dentro de un solo argumento y llamar a ese argumento como un estilo?
Considera esto:
\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}
Lo que me gustaría saber es si hay algo como
\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
}
Así que usando
\draw[dimension line=from A to B value 3cm] (A)--(B);
producirá el mismo resultado. Eso ayudará a hacer el trabajo con un mínimo esfuerzo y permitirá la abstracción. Este ejemplo me parece lo suficientemente simple como para entender cómo crear bloques de código en TikZ. Gracias.
Respuesta1
Este es más un comentario largo que una respuesta real.
Aunque todos tikz-dimline
los ejemplos usan coordenadas cartesianas, es posible usar coordenadas con nombre:
\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}
En cualquier caso, finalmente encontré la pregunta que estaba buscando: