Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
12
Help us understand the problem. What is going on with this article?
@CareleSmith9

TikZ 簡易チートシート

More than 1 year has passed since last update.

TikZ on $\mathrm{\LaTeX}$するときのためのチートシートです。画像が用意できていなくて申し訳ない。

個人用のメモとしての一面が強いです。何か間違ったことを言っていたらコメントか何かで教えてください。

TikZとは

$\mathrm{\TeX}$で図を書くためのパッケージです。

TikZを使う

だいたいのことは texdoc visualtikz で表示されるPDF文書を参考にしたらわかります。

ここでは、わざわざ texdoc するのが面倒な、頻繁に使う構文だけを紹介します。

使い方

プリアンブル
%% \documentclass[dvipdfmx]{jsarticle}
%% のように、ドライバオプションは指定しておきましょう。
\usepackage{tikz}
\usetikzlibrary{calc} %TikZに計算をさせるおまじない
文書中
\begin{tikzpicture}
%% この環境中にコマンドを書く。
%% コマンドは必ず`;'で行が終わる。
\end{tikzpicture}

使うにあたって

TikZでは座標を元にして色々なモノを配置します。あらかじめ作りたい図があるならば、それを方眼紙に書き出して何がどこの座標にあるかを把握しておいた方が良いです。

コマンド

座標の指定

(3,4) のようにしてX座標、Y座標を指定する。座標は描画領域の左下を原点として、右がXの正の向き、上がYの正の向き。単位は1が1cmです。多分js系のクラスでは真の1cmからずれたりすると思う。

相対的な配置もできるらしいけどよくわからない。

極座標も指定できるようだけど、私はうまくいかなかったので割愛。

ノードを配置する

\node(P) at (3,4) {Text};
%% (3,4)にPという名前のノード(点)を配置して、Textというラベルをつける。
%% ラベルは必須。空のラベルでもOK。
\coordinate(Q) at (12,5);
%% こちらはラベルの指定をしない方法。

上の例の、PとかQとか言った点の名前は後で呼び出せる。

ラベルとして指定した文字列は出力される。

線を引く

\draw(P) -- (Q);
%% 直線を引く。
\draw[->] (P) -- (Q);
%% 矢印を引く。
\draw[<->] (P) -- (Q);
%% 両矢印を引く。

\nodeで設定したノードには大きさがあるので、

\node(O) at (0,0) {原点$\mathrm{O}$}; %ラベルで数式モードに入ってもOK。
\node(P) at (1,0) {}; 
\node(Q) at (2,0) {};
\draw(O) -- (P) -- (Q);
%% 3点を直線で結ぶこともできる。

みたいに書くと、点Pのところに空白ができてしまう。

\coordinate でノードを設定すれば、ノードの大きさは0になるので、

\coordinate(O) at (0,0); %ラベルは書けない。
\coordinate(P) at (1,0); 
\coordinate(Q) at (2,0);
\draw(O) -- (P) -- (Q);

ちゃんと直線になる。

\coordinate しながらラベルをつけたい欲張りな方には、

\coordinate(O) at (0,0);
\coordinate(P) at (1,0); 
\coordinate(Q) at (2,0);
\draw(O) node {原点$\mathrm{O}$} -- (P) -- (Q);

とすればラベルがつけられる。

文字を配置する(ラベルの位置変更)

\node(P1) at (3,4) [right] {Text1};
\node(P2) at (12,5) [left] {Text2};
\node(P3) at (4,5) [above] {Text3};
\node(P4) at (7,9) [below] {Text4};

\coordinate(Q1) at (0,0);
\coordinate(Q2) at (1,0); 
\draw(Q1) node [above] {原点$\mathrm{O}$} -- (Q2);

のようにずらす方向を指定して、少しずらすことができる。

12
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
CareleSmith9
アナログゲーマーでたまに趣味としてWeb開発をする程度。HTMLもCSS手打ちしている人間。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
12
Help us understand the problem. What is going on with this article?