La idea básica es de¿Cómo puedo crear nuevos comandos en TikZ?
\documentclass[10pt]{article}
\usepackage[a4paper,top=1in, bottom=1in, left=1in, right=1in]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc,arrows.meta,bending,decorations.text,positioning}
\def\centerarct[#1](#2)(#3:#4:#5)% Syntax: [draw options] (center) (start angle:end angle:radius)
{ \path[#1] ($(#2)+({#5*cos(-#3+90)},{#5*sin(-#3+90)})$) arc [start angle={-#3+90}, end angle={-#4+90}, radius=#5)]; }
\pgfkeys{
myvector/.is family,
myvector,
radius/.initial=4.5cm,
line width/.initial =5mm,
color/.initial=orange,
text align/.initial=center,
text/.initial=Label,
raise/.initial=0mm
}
\newcommand\myvectorset[1]{\pgfkeys{myvector,#1}}
\def\myvector[#1](#2){
\myvectorset{#1,
radius/.get=\mbfradius,
line width/.get=\mbflinewidth,
color/.get=\mbfcolor,
text align/.get=\mbftextalign,
text/.get=\mbftext,
raise/.get=\mbfraise
}
\centerarct[{Triangle[width=9mm,length=5mm]}-,draw=\mbfcolor,line width=\mbflinewidth,postaction={decorate,decoration={text along path,text align=\mbftextalign,text=\mbftext,raise=\mbfraise}}](#2)(180:1:\mbfradius);
}
\begin{document}
\begin{tikzpicture}
\myvector[text align=right,raise=-1.25mm](0,0);
\end{tikzpicture}
\end{document}
Funciona. Pero desafortunadamente si uso
\myvector[text align={right,right indent=1cm},raise=-1.25mm](0,0);
el resultado es
! Error del paquete pgfkeys: No conozco la clave '/pgf/decoration/text align/right,right indent=1cm' y la voy a ignorar. Quizás lo escribiste mal.
Leí sobre los manejadores de claves pero no encontré una salida.
Respuesta1
Este es el caso en el que el .expand once
controlador resulta útil. En la myvector
definición de macro tienes en alguna parte:
text align=\mbftextalign
Lo que quieres es configurar text align
la expansión de la \mbftextalign
macro. Puedes hacer esto fácilmente con:
text align/.expand once=\mbftextalign
Por supuesto, debes hacer la misma modificación con las otras claves donde se necesita expansión.