
Eu sempre me pego fazendo muitas repetições com blocos de código TikZ fixos que tenho que reescrever continuamente. Minha pergunta é: é possível criar um bloco de comandos executáveis TikZ (não apenas estilos) dentro de um único argumento e chamar esse argumento como um estilo?
Considere isto:
\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}
O que eu gostaria de saber é se existe algo assim
\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
}
Então isso usando
\draw[dimension line=from A to B value 3cm] (A)--(B);
produzirá a mesma saída. Isso ajudará a fazer o trabalho com o mínimo de esforço e permitirá a abstração. Acho este exemplo simples o suficiente para entender como criar blocos de código no TikZ. Obrigado.
Responder1
Este é mais um comentário longo do que uma resposta real.
Embora todos tikz-dimline
os exemplos usem coordenadas cartesianas, é possível usar coordenadas nomeadas:
\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}
De qualquer forma, finalmente encontrei a pergunta que procurava: