TikZで異なる環境のnodeを参照する方法

TikZで異なるtikzpicture環境のnodeを参照する方法を書く。

説明はコメントを参照。

1. コードと実行結果
コード
\RequirePackage{luatex85}
\documentclass{ltjsarticle}
\usepackage{tikz}
%
% tikzpictureのオプションにremember pictureを追加すれば,異なるtikzpicture環境をのnodeを参照することができる。毎回remember pictureを書くのが面倒なので,オプションのデフォルトにremember pictureを追加する。
%
\tikzstyle{every picture}+=[remember picture]
\begin{document}
%
% 一つ目のtikzpicture
%
\begin{tikzpicture}
  \node[fill=red!30,circle] (A) {today};
\end{tikzpicture}
%
morning afternoon evening midnight
%
% 二つ目のtikzpicture
%
\begin{tikzpicture}
  \node[circle,fill=blue!30] (B) {tomorrow};
\end{tikzpicture}

%
% 一つ目と二つ目のtikzpicture間をまたいでnode (A)とnode (B)をつなぐ。overlayオプションをつけないと,画像を重ねられないので注意。
%
\begin{tikzpicture}[overlay]
  \path[line width=1mm] (A) edge[color=purple!50,->,>=latex] (B);
\end{tikzpicture}

\end{document}
実行結果
2. 応用例
コード
\RequirePackage{luatex85}
\documentclass{ltjsarticle}
\usepackage{tikz}
%
% オプションのデフォルトにremember pictureを追加。
%
\tikzstyle{every picture}+=[remember picture]
\begin{document}
%
% インラインtikzで画像を準備。
%
\begin{equation}
  \int \tikz[baseline]{\node[anchor=base,fill=red!10] (a) {$f^\prime (x)$};} g(x)dx = \tikz[baseline]{\node[anchor=base,fill=red!10] (b) {$f(x)$};}\tikz[baseline]{\node[anchor=base,fill=blue!10] (c) {$g(x)$};}  - \int f(x)\tikz[baseline]{\node[anchor=base,fill=blue!10] (d) {$g^\prime(x)$};}dx
\end{equation}
%
% インラインtikz間をまたいで,nodeを矢印でつなぐ。overlayオプションをつけないと,bounding boxを重ねられないので注意。
%
\begin{tikzpicture}[overlay]
  \path (a) edge[out=90,in=90,->,>=latex] node[circle,fill=red!10]{積分} (b);
  \path (c) edge[out=270,in=270,->,>=latex] node[circle,fill=blue!10,font=\small]{微分} (d);
\end{tikzpicture}
\end{document}
実行結果

おしまい。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください