![TikZ座標での合計による除算](https://rvso.com/image/476230/TikZ%E5%BA%A7%E6%A8%99%E3%81%A7%E3%81%AE%E5%90%88%E8%A8%88%E3%81%AB%E3%82%88%E3%82%8B%E9%99%A4%E7%AE%97.png)
和で割った項を含む数学的に計算された座標をTiに入力したいけZ.
たとえば、次のような構文のものを使用したいと思います。\def \cmd {1/(1+1)}
そしてその結果をTiに入力するけZ は次のような構文を使用します:\coordinate (P) at (0,\cmd);
私が質問する理由は、ループ\def
内でコマンドを使用しており\foreach
、定義されたコマンドの値が\foreach
ループの各値ごとに変化するためです。
MWE は次のとおりです。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
%\fill[green] (3,\myFraction) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}
分数の「2+1」構造が維持されることが重要です。
答え1
: を括弧で囲みます\myFraction
:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\def \myFraction {3/(2+1)}
\fill[red] (0,0) circle [radius=\myFraction]; % Works!
\fill[green] (3,{\myFraction}) circle [radius=1]; % Does not work. :(
\end{tikzpicture}
\end{document}
あるいは、\myFraction
追加の中括弧を使って定義することもできます
\def \myFraction {{3/(2+1)}}
そして\myFraction
(括弧なしで)
\fill[green] (3,\myFraction) circle [radius=1];
答え2
declare function
定数を定義し、変数を計算するために使用します。現代の見方では、すべての定数、パラメータ、変数、関数は、変数コードが少しきれいになりました。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[declare function={a=-2;b=a+4;}]
\def\myFraction{3/(2+1)}
\fill[red] (0,0) circle(\myFraction);
\fill[green] (3,{\myFraction}) circle(1);
\fill[blue] (3,a) circle(1);
\fill[magenta] (7,a+1) circle(b);
\end{tikzpicture}
\end{document}
circle(2)
PS:新しい構文よりも古い構文の方が好きですcircle[rađius=2cm]
。