\tikzmath{function....? の構文

\tikzmath{function....? の構文

\tikzmathここでの 2 つの関数定義関数の構文の何が問題なのでしょうか?

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}
\tikzmath{function f(\x) { return sin(\x);
  }

\begin{document}

\begin{tikzpicture}    

  \tikzmath{function g(\x) { return cos(\x);
  };

\end{tikzpicture}

\end{document}

(どうかお手柔らかに: 私はまだ の初心者ですTikZ!)

答え1

以下に使用例を少し示します。と\tikzmathの間で使用しており、プリアンブルでは使用していないことに注意してください。\begin{document}\end{document}

セミカラムの配置について:マニュアルには次のように記載されていますすべての(tikzmath)ステートメントはセミコロンで終わる必要があります

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}

\begin{document}

\tikzmath{
    function f(\x) { 
        return sin(\x);
        };
    real \f;
    \f = f(90);
    print \f;
    print \newline; % new line; the next line begins with no indent
    print f(45); % prints "f(45)" verbatim
    % No blank line allowed
    print \par; % new paragraph; the next line begins with an indent
    \f = f(-45);
    print \f;
}

Foo

\begin{tikzpicture}    

\tikzmath{
    function g(\x) {
        return cos(\x);
        };
    real \g;
    \g = g(180);
    };
\node at (0,0) {\g}; % use \g outside of \tikzmath, in a tikz node 
\end{tikzpicture}

\end{document}

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

編集:ステートメントとは何かについてさらに詳しく。

pgf/TiによるとZ マニュアルでは、コマンドにはさまざまな種類のステートメントがあります\tikzmath

  • 割り当て(例:\a = 3 + 4;またはlet \x = 2*3;
  • 「型宣言」(int \i;real \z;またはcoordinate \c;
  • 反復(例for \n in {1,...,5} {⟨other statements⟩};
  • 条件文(例if ⟨condition⟩ then ⟨statements⟩ else ⟨statements⟩;
  • 関数宣言 (例えばfunction product(\x,\y) {return \x*\y;};、ここにreturn \x*\y;もステートメントがあり、;最初のコードの 2 番目は関数宣言ステートメントであることに注意してください)

文が中括弧で始まる場合{、閉じ括弧}の後にセミコロンが続く必要があります。

ここではpgf/Tiの例を取り上げます。Zマニュアル、追加コメント付き(セクション58.7パーサー外でのコードの実行(現在のマニュアルの708ページ):

\begin{tikzpicture}
\draw [help lines] grid (3,2); % a common `\draw` TikZ command,
                               % which ends with a ";"
\tikzmath{ % begin of the \tikzmath command. Not a statemnt
  coordinate \c;               % a statement
  for \x in {0,10,...,360} {   % begin of a statement, no ";" here
    \c = (1.5cm, 1cm) + (\x:1cm and 0.5cm); % a statement inside
                                            % the for statement
    { \fill (\c) circle [radius=1pt]; }; % a second statement
                                         % inside the for statement.
                                         % In it, a common TikZ command
                                         % (`\draw`) which ends as usual
                                         % by a semi-column.
  }; % the end of the for statement. Ended by a semi-column
} % end of \tikzmath command. It's not a statement
\end{tikzpicture}

\draw内のTikzコマンドは中\tikzmath括弧で囲まれているため、;の終わりのの後には、閉じ括弧の後に\drawも があることに注意してください。;

関連情報