tikzで作成した図の位置を指定し表示したいです。

tikzで作成した図の位置を指定し表示したいです。

- ishii akira の投稿
返信数: 7

tikzで作成した図を思い通りの位置に表示する方法について

\begin{tikzpictuer}から\end{tikzpictuer}までで作った図全体を指定した位置に表示したいのですがどうすればよいのでしょうか。

tikzで別々に作成した2つの図を横に並べて表示(配置)するのにはどうすればよいのでしょうか。

やってみたのですが出来ないといいますか、分かりません。

どなたか方法を教えてください。

よろしくお願いします。

以上

ishii akira への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- x の投稿

図を2つ並べるだけなら以下のようにすればよいのではないでしょうか:

\begin{tikzpicture}
  ...
\end{tikzpicture}%
\begin{tikzpicture}
  ...
\end{tikzpicture}

縦方向に揃えたいのであれば

\begin{tikzpicture}[baseline=5cm]

のようにすれば調節できます.

あるいは,2つの図を一つのtikzpictureで作ってしまった方が楽かもしれません.

ishii akira への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- KUROKI Yusuke の投稿
「思い通り」の「思い」をもう少し具体的に表現していただいたほうが,適切な回答が得られると思います.


(c) はy-座標値に従って (a) と (b) のほぼ真ん中に表示されてほしい,と考えて次のように書いたが,(c) は (a) と揃ってしまうという,意図と異なる結果が得られた.元のy-座標値が反映されたように配置するにはどうしたらよいか?

\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}
\path (0,0) node[circle,draw](a) {a};
\path (0,2) node[circle,draw](b) {b};
\draw (a) -> (b);
\end{tikzpicture}
\begin{tikzpicture}
\path (0,1) node[circle,draw] {c};
\end{tikzpicture}

\end{document}


思いが仮に上のようだとするとだとすると,undefined さんが書かれている解決策も参照していただくとして,私の示せる解決策は以下のようなものです.これ以外にもさまざまな方法が考えられるでしょう.

\documentclass[dvipdfmx]{jsarticle}
\usepackage{tikz}
\begin{document}

\hrule

% 一つ目の解決策
\begin{tikzpicture}
\path (0,0) node[circle,draw](a) {a};
\path (0,2) node[circle,draw](b) {b};
\draw (a) -> (b);
\begin{scope}[xshift=1cm]
\path (0,1) node[circle,draw] {c};
\end{scope}
\end{tikzpicture}

\hrule

% 二つ目の解決策
\begin{tikzpicture}
\path (0,-.5) rectangle (0,2.5);% 仮想の箱を書いておく
\path (0,0) node[circle,draw](a) {a};
\path (0,2) node[circle,draw](b) {b};
\draw (a) -> (b);
\end{tikzpicture}
\begin{tikzpicture}
\path (0,-.5) rectangle (0,2.5);% 仮想の箱を書いておく
\path (0,1) node[circle,draw] {c};
\end{tikzpicture}

\hrule

\end{document}
ishii akira への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- ishii akira の投稿

皆様ご回答ありがとうございます。

私のしたいことは以下のようなことです。

図を作ると文章が表示される範囲の左端から表示されるので、表示される位置を自分で指定したところから表示したいのです。たとえば、

tikzで長方形を1つ作る。

この長方形を用紙の左端から右端に向って5cmところに表示したい。

のです。

tex初心者でよく分からないので、よろしくお願いします。

ishii akira への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- 飯島 徹 の投稿
次のような感じでしょうか?
最初のは pdflatex で,二番目のは ptex2pdf でコンパイルしてみました.
ただし,jsarticle の場合若干ずれるようです.
図だけであれば最初のでいいかと思います.

%#!pdflatex temp
\documentclass[a4]{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [xshift=1cm,yshift=1cm] at (current page.south west)
[text width=7cm,fill=red!20,rounded corners,above right]
{
This is absolutely positioned text in the
lower left corner. No shipout-hackery is used.
(pgfmanual p.249)
};
\draw([xshift=-5cm,yshift=-5cm]current page.north east)rectangle+(-2cm,-2cm);
\draw[-{Stealth},very thick](current page.center)--([xshift=-1cm,yshift=1cm]current page.south east);
\foreach \N in {0,...,10}{%
\draw([xshift=\N cm,yshift=-\N cm]current page.north west)rectangle+(1cm,-1cm);
}%
\end{tikzpicture}
\end{document}

%#!ptex2pdf -u -l temp
\documentclass[uplatex,dvipdfmx]{jsarticle}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{pxpgfmark}% jsarticle ではちょっとずれる
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
\node [xshift=1cm,yshift=1cm] at (current page.south west)
[text width=7cm,fill=red!20,rounded corners,above right]
{
This is absolutely positioned text in the
lower left corner. No shipout-hackery is used.
(pgfmanual p.249)
};
\draw([xshift=-5cm,yshift=-5cm]current page.north east)rectangle+(-2cm,-2cm);
\draw[-{Stealth},very thick](current page.center)--([xshift=-1cm,yshift=1cm]current page.south east);
\foreach \N in {0,...,10}{%
\draw([xshift=\N cm,yshift=-\N cm]current page.north west)rectangle+(1cm,-1cm);
}%
\end{tikzpicture}
\end{document}
飯島 徹 への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- ishii akira の投稿

せっかく教えて頂いた方法ですが、pdflatexでコンパイルしたところエラーがでました。pdflatex用の書き方を私が、していないようです。

自由にインターネットを使える環境にないために、エラー表示等入力するのが非常に難しく、また、私はまだ、tex初心者のために、いまだ実行不可能です。texで使う環境は美文第6版のDVDにあるものしか使えない状況です。ですので、

教えて頂いた方法を参考にして、自分でも考えてみます。

ありがとうございました。

ishii akira への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- S T の投稿
横に並べるだけなら、難しいことを考えずに単純にtabularを使えばよいと思います。
%#!lualatex
\documentclass{ltjsarticle}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\begin{tabular}{cc}
{\scriptsize \input{1}}&{\scriptsize \input{2}}\\
\end{tabular}
\caption{横並びのテスト}
\end{figure}
\end{document}

1.texと2.texはそれぞれ\begin{tikzpicture}から始まって\end{tikzpicture}で終わるファイル
S T への返信

Re: tikzで作成した図の位置を指定し表示したいです。

- ishii akira の投稿

ご回答ありがとうございます。

ご回答の通り入力して実行しましたところ、図がページの上のところに表示されたので、どうして?と思いましたが、\begin{figure}に[h]をつけてコンパイルしたところ、記述されたその位置に表示されました。

ありがとうございました。