Neuer Befehl in TikZ mit pgfkeys

Neuer Befehl in TikZ mit pgfkeys

Die Grundidee stammt vonWie kann ich in TikZ neue Befehle erstellen?

\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}

Es funktioniert. Aber leider, wenn ich benutze

\myvector[text align={right,right indent=1cm},raise=-1.25mm](0,0);

Das Ergebnis ist

! Fehler im Paket pgfkeys: Ich kenne den Schlüssel „/pgf/decoration/text align/righ t,right indent=1cm“ nicht und werde ihn ignorieren. Vielleicht haben Sie ihn falsch geschrieben.

Ich habe über Schlüsselhandler gelesen, aber keinen Ausweg gefunden.

Antwort1

In diesem Fall .expand onceist der Handler nützlich. In der myvectorMakrodefinition steht irgendwo:

text align=\mbftextalign

text alignSie möchten die Erweiterung des Makros festlegen \mbftextalign. Dies können Sie ganz einfach mit folgendem Befehl tun:

text align/.expand once=\mbftextalign

Natürlich sollten Sie die gleiche Änderung mit den anderen Schlüsseln vornehmen, bei denen eine Erweiterung erforderlich ist.

verwandte Informationen