# Change the distance dimension of a line as a decoration in TikZ

How I can change the distance dimension like the picture below. In the \dim={add dim, distance} have two parameter I want to add 1 parameter for distance of dimesion like picture 1 , and rolate the text in picture 2.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations,decorations.markings,decorations.text}

\begin{document}
\pgfkeys{/pgf/decoration/.cd,
distance/.initial=10pt,
distance2/ .initial=10pt
}

\state{final}{%
\pgfmathsetmacro{\dist}{45pt*\pgfkeysvalueof{/pgf/decoration/distance}
/abs(\pgfkeysvalueof{/pgf/decoration/distance})}
\pgfpathmoveto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{0pt}{\dist}}
\pgfpathmoveto{\pgfpoint{\pgfdecoratedpathlength}{0pt}}
\pgfpathlineto{\pgfpoint{(\pgfdecoratedpathlength}{\dist}}
\pgfsetarrowsstart{latex}
\pgfsetarrowsend{latex}
\pgfpathmoveto{\pgfpoint{0pt}{\dist}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedpathlength}{\dist}}
\pgfusepath{stroke}
\pgfpathmoveto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedpathlength}{0pt}}
}}

decorate,
postaction={decorate,decoration={text along path,
raise=#2,
text align={align=center},
text={#1}}}}}

\begin{tikzpicture}
\coordinate (A) at (0,0);
\coordinate (B) at (4,2);

\draw[dim={35 cm,34pt,34pt}]  (A) --  (B);

\draw[fill=gray] (A) circle(2pt);
\draw[fill=gray] (B) circle(2pt);

\end{tikzpicture}

\end{document}

• What is the difference between #2 and #3. – Symbol 1 Jul 20 '17 at 12:00
• And what is distance2 for? – cfr Jul 20 '17 at 18:43
• distance2 is #3 it's dist in the code. – Le Quan Plus Jul 21 '17 at 7:38