コードとスタイルタグを使用して新しいTikZキーを作成する

コードとスタイルタグを使用して新しいTikZキーを作成する

TikZ キー定義内で複雑な計算を実行したいとします。これを行うための推奨される方法は何ですか?

マニュアルを読み、他の質問を調べてみると、解決策は次のようになるのではないかと考えました。

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
\tikzset{mykey/.style args={#1,#2,#3}{mykey/.code={%
      % perform complicated calculation involving #1, #2 and #3 here
      \def\x{5}
    },
    scale=\x
}}

\begin{tikzpicture}[mykey={1,2,3}]
  \draw[->] (0,0) -- (1,0);
\end{tikzpicture}

\end{document}

ただし、これは機能しません。

! Undefined control sequence.
<argument> \x 

これを適切に行うにはどうすればいいでしょうか?

答え1

これを行う方法の例を次に示します。

\documentclass[varwidth,border=10]{standalone}
\usepackage{tikz}

\begin{document}

\tikzset{
  mykey/.code args={#1,#2,#3}{
    % perform complicated calculation involving #1, #2 and #3 here
    % for example
    \pgfmathparse{(#2-#1)*#3}
    \pgfkeysalso{/tikz/scale=\pgfmathresult}
  }
}

\begin{tikzpicture}
  \draw[->, mykey={1,2,3}] (0,0) -- (1,0);
  \draw[->, thick, red] (0,0) -- (1,0);
\end{tikzpicture}

\end{document}

ここに画像の説明を入力してください

関連情報