pgfkeys를 사용한 TikZ의 새로운 명령

pgfkeys를 사용한 TikZ의 새로운 명령

기본 아이디어는 다음과 같습니다.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}

효과가있다. 하지만 불행히도 내가 사용한다면

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

결과는

! 패키지 pgfkeys 오류: '/pgf/장식/텍스트 정렬/오른쪽,오른쪽 들여쓰기=1cm' 키를 모르므로 무시하겠습니다. 아마도 철자가 틀렸을 수도 있습니다.

키 핸들러에 대해 읽었지만 탈출구를 찾지 못했습니다.

답변1

.expand once핸들러가 유용한 경우입니다 . 매크로 정의 에는 myvector다음 위치가 있습니다.

text align=\mbftextalign

원하는 것은 text align매크로 확장으로 설정하는 것입니다 \mbftextalign. 다음을 사용하여 이 작업을 쉽게 수행할 수 있습니다.

text align/.expand once=\mbftextalign

물론 확장이 필요한 다른 키에도 동일한 수정을 수행해야 합니다.

관련 정보