Daftar TikZ perpustakaan dengan pengenalan singkat

Tautan cepat:

RingkasanPersimpangan perpustakaanPanah tips perpustakaanDekorasi perpustakaanCalc perpustakaanMindmap perpustakaanBentuk perpustakaanMelipat kertas perpustakaanRantai perpustakaanBentuk perpustakaanAneka kontribusi TikZ


Sangat sering saya cari perpustakaan khusus TikZ. Saat ini tidak ada paket yang memuat setiap perpustakaan.

Apakah ada daftar semua pustaka yang tersedia dengan pengenalan singkat (2-3 kalimat)?

Mungkin kita bisa mengumpulkan mereka di sini

Mengomentari pertanyaan (10)
Larutan

Ringkasan

Berikut ini's daftar pustaka, dan ringkasan singkat dari tujuan masing-masing (setiap kode yang disediakan adalah untuk Lateks dan/atau Polos TeX, bukan Konteks):

  • Ujung panah perpustakaan dengan \usetikzlibrary{panah.meta} (\usetikzlibrary{panah} deprecated). Lihat rincian di bawah ini.
  • Automata Menggambar Perpustakaan, diakses oleh \usetikzlibrary{automata}, dan digunakan untuk menggambar "finite state automata dan Mesin Turing". Untuk menggambar grafik tersebut, masing-masing node, nama dan posisi relatif didefinisikan, serta jenis jalan antara masing-masing.
  • Latar belakang Perpustakaan, diakses oleh \usetikzlibrary{latar belakang}, dan "mendefinisikan latar belakang untuk gambar". Untuk menggunakan ini dalam Tikzpicture, pilihan berlalu, misal \begin{tikzpicture}[lihat latar belakang persegi panjang], dengan latar belakang persegi panjang gaya didefinisikan sebelum gambar. (misalnya: \tikzset{background persegi/.style={<menentukan latar belakang gaya persegi panjang di sini>}}
  • Calc perpustakaan, diakses melalui \usetikzlibrary{calc} untuk membuat kompleks mengkoordinasikan perhitungan. Lihat rincian di bawah ini.
  • Kalender Perpustakaan, diakses melalui \usetikzlibrary{kalender}. Perpustakaan ini digunakan untuk menampilkan kalender (saya kira itu's Ronseal hal). Anda menentukan kalender sebagai \kalender[pilihan tampilan dan pilihan tanggal](Nama (opsional)).
  • Rantai perpustakaan untuk menyelaraskan node o rantai. Lihat rincian di bawah ini.
  • Dekorasi perpustakaan untuk menghias jalan. Lihat rincian di bawah ini.
  • Entity Relationship Diagram Perpustakaan, diakses oleh \usetikzlibrary{er}, seperti dalam automata menggambar perpustakaan, masing-masing simpul didefinisikan, karena masing-masing tepi antara setiap node, serta setiap atribut. Sebagai catatan peringatan, menggarisbawahi harus digunakan untuk atribut, tapi ini tidak digunakan karena keduanya jelek dan sulit untuk diterapkan. Huruf miring digunakan sebagai pengganti.
  • Persimpangan perpustakaan, diakses melalui \usetikzlibrary{persimpangan}, untuk menghitung persimpangan jalan. Lihat rincian di bawah ini.
  • Peta pikiran perpustakaan, diakses melalui \usetikzlibrary{mindmap}. Lihat rincian di bawah ini.
  • Matrix Perpustakaan, diakses melalui \usetikzlibrary{matrix}. Matriks yang didefinisikan dalam cara yang sama seperti dalam matematika mode, namun, masing-masing item dalam matriks seperti diberi nilai sebagai node, mulai dari 1. Setiap node kemudian dapat diidentifikasi dan dimanipulasi. Pembatas juga dapat dipilih dalam matriks pilihan dan dapat "setiap pembatas yang dapat diterima TeX s ' \kiri command".
  • Melipat kertas perpustakaan \usetikzlibrary{folding}. Lihat rincian di bawah ini.
  • Pola Perpustakaan \usetikzlibrary{pola}. Paket ini "mendefinisikan pola untuk mengisi daerah". Dalam dokumentasi, pola masing-masing diberi nama dan contoh yang diberikan.
  • Petri Net Perpustakaan. Ini digunakan untuk menarik Petri Nets, seperti yang digunakan untuk pemodelan matematika. Seperti dengan lainnya mirip flowchart diagram gaya, masing-masing node dan tepi didefinisikan, serta gaya dan posisi. Token juga dapat tertanam dalam node, dengan memperlakukan mereka sebagai anak-anak dan node anak.
  • Plot handler Perpustakaan, diakses melalui \usetikzlibrary{plothandlers}. TikZ beban perpustakaan ini secara otomatis. Setiap titik yang ditetapkan (sebagai node) untuk plot dan masing-masing titik memiliki kurva ditempatkan
  • Plot Mark Perpustakaan, diakses melalui \usetikzlibrary{plotmarks} digunakan untuk menentukan gaya tambahan untuk plot seperti yang digunakan di atas. Masing-masing titik didefinisikan sebagai \pgfuseplotmark{Plot description}.
  • Bentuk perpustakaan, yang digunakan untuk mendefinisikan bentuk lain dari persegi panjang, lingkaran dan co-ordinat. Diakses baik melalui \usetikzlibrary{bentuk} atau \usetikzlibrary{bentuk.bentuk}. Berikut tambahan jenis yang tersedia: bentuk-bentuk geometris, baik bernama bentuk (bintang, berlian, dll.) atau poligon ditentukan sisi angka; simbol bentuk, misalnya "dilarang masuk" seperti yang digunakan dalam Ada Asap tanda-tanda; "multipart" bentuk, dengan "beberapa (teks) bagian"; dan akhirnya, "lain-lain" bentuk yang "tidak masuk dalam kategori sebelumnya", seperti pemogokan-melalui salib. Lihat rincian di bawah ini.
  • Ular perpustakaan, seperti yang diakses melalui \usetikzlibrary{ular} dan dapat digambarkan sebagai garis lengkung, dan digunakan antara node atau sebagai perbatasan untuk bentuk , atau sebagai bentuk independen.
  • Untuk Jalan perpustakaan, diakses melalui \usetikzlibrary{topaths}. Perpustakaan ini digunakan untuk menentukan jalur antara dua titik, dan dimuat secara otomatis. Selain itu, hal ini dapat mengambil bentuk garis lengkung antara dua bentuk atau sebagai loop kembali ke node.
  • Pohon perpustakaan, diakses melalui \usetikzlibrary{pohon}. Setiap titik pada pohon didefinisikan sebagai sebuah simpul, dengan anak-anak, dan setiap anak dapat memiliki anak-anak sendiri. Pohon's arah juga dapat ditentukan, serta sudut di mana anak-anak muncul, namun, ketika dibiarkan sendiri, hasil yang dapat diterima. Sumber: Sesuatu dalam tanda kutip telah diangkat dari tikzpgfmanual, serta kalender sampel.
Komentar (17)

Tips panah perpustakaan

Diakses oleh \usetikzlibrary{panah.meta}

Keterangan: Menyediakan berbagai baru dan customizable panah tips

Contoh

\documentclass[tikz,border=2mm]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}
\foreach \arrowtipkind[count=\i from 0] in {
Circle,
Diamond,
Ellipse,
Kite,
Latex,
Rectangle,
Square,
Stealth,
Triangle,
Turned Square,
Arc Barb,
Bracket,
Hooks,
Tee Barb,
Parenthesis,
Implies,
Butt Cap,
Fast Round,
Fast Triangle,
Round Cap,
Triangle Cap}{\foreach \specs[count=\j from 0] in {round, open, fill=red, {round, fill=blue, length=2.5mm, slant=.5}}{\draw[-{\arrowtipkind[\specs]}, yshift=-1.5*\i cm -0.2*\j cm] (0,0) -- +(1,0)\ifnum\j=0 node[above,midway,font=\scriptsize\ttfamily]{\arrowtipkind}\fi;};};
%%% Tips with particular options:
% Arc Barb[sep, arc=, length=, line width=, width=, reversed, round, slant=, harpoon, left, right, ]
% Bracket[sep, reversed, round, slant=, left, right, harpoon, reversed, ]
% Hooks[sep, arc=, length=, line width=, width=, reversed, round, slant=, harpoon, left, right, ]
% Tee Barb[sep, inset=, inset'= , line width=, reversed, round, slant=, harpoon, left, right, ] thin thick
% Implies[]
\end{tikzpicture}
\end{document}

Referensi

TikZ/PGF 3.0.1 Manual bagian Panah.

Komentar (2)

Persimpangan perpustakaan

Diakses oleh \usetikzlibrary{persimpangan}

Keterangan Memungkinkan perhitungan otomatis dari persimpangan jalur.

Contoh 1

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{intersections}

\begin{document}
\begin{tikzpicture}
    % Draw to path and give a name to them
    \draw [red, name path={red line}] (0,0) -- (4,3);
    \draw [blue, name path={blue curve}] (1,-0.5) to[out=80, in=100] (3,2);
    % use the intersections on a path to giv them coordinates
    % and draw a line between them
    \draw [green, name intersections={of=red line and blue curve, 
           by={first intersect, second intersect}}]
       (first intersect) -- (second intersect);
    % one can use the coordinates furtheron
    \node [above] at (first intersect) {A};
    \node [below] at (second intersect) {B};
\end{tikzpicture}
\end{document}

Contoh 2

\documentclass{standalone}% or wathever you want

% load packages
\usepackage{tikz, xcolor}
% load libraries
\usetikzlibrary{intersections,shapes.arrows,calc}

% define light and dark gray
\definecolor{lgray}{cmyk}{0,0,0,0.2}
\definecolor{dgray}{cmyk}{0,0,0,0.7}

% make some settings
\tikzset{%
    % style for the intersecting path, which
    % are nessesary for the calculation but
    % shouldn't be drawn in the final image
    ipath/.style={
%       draw,% comment this aout after construction
        red
    },
    % style for an arrow used as object
    optical arrow/.style={%
        fill=dgray,
        inner sep=3pt,
        shape=single arrow,
        minimum width=0.5cm,
        minimum height=1.5cm,
        outer sep=0pt,
        shape border rotate=90,
    },
    % style for the virtual image
    virtual optical arrow/.style={%
        fill=lgray,
        inner sep=3pt,
        shape=single arrow,
        minimum width=0.5cm,
        minimum height=1.5cm,
        outer sep=0pt,
        shape border rotate=90,
    },
    % style for the mirror
    mirror/.style={%
        line width=2pt,
    },
    % style for the axis
    optical axis/.style={%
        thin,
    },
    % style for light rays
    ray/.style={%
        thin,
        ->,
    },
    % style for imagined rays, which ar not real
    % but help by constructin the image
    imagined ray/.style={%
        ray, dgray, -,
    },
    % alias
    virtual ray/.style={imagined ray},
    % style for (focal) points
    point/.style={%
        fill=black,
        radius=0.8pt,
        inner sep=1pt,
        shape=circle,
        minimum size=2pt,
        outer sep=2pt
    },
}

% set three layers
\pgfdeclarelayer{background}
\pgfdeclarelayer{foreground}
\pgfsetlayers{background,main,foreground}
% and define shortcuts to access them
\newcommand{\bglayer}[1]{%
    \begin{pgfonlayer}{background}%
    #1%
    \end{pgfonlayer}%
}
\newcommand{\fglayer}[1]{%
    \begin{pgfonlayer}{foreground}%
    #1%
    \end{pgfonlayer}%
}

\begin{document}
\begin{tikzpicture}
    % define the bounding box is nessesarx because the ipaths
    % make it bigger than needed
    \path [use as bounding box] (-5.2,-5) rectangle (6.2,5);
    % define variables, you may vary them a little
    %% radius
    \def\radius{5}
    \def\radiusII{5.05}
    %% focal distancs = \radius/2
    \def\focal{2.5}
    %% object size
    \def\size{1.cm}
    %% object width
    \def\owidth{1.25}
    % draw mirror
    %% the extra ipath is nessesary to get nicer rays
    \path [ipath, name path=M] (\radius,0) ++(90:\radius)
          arc (90:270:\radius);
    \fglayer{%
        \draw [mirror] (\radiusII-0.05,0) ++(130:\radiusII)
              arc (130:240:\radiusII);
    }
    % draw focal point
    \node (B) at (\focal,0) [point] {};
    % draw object
    \node (O) [optical arrow,anchor=tail, minimum height=\size] %
          at (\owidth,0) {};
    %% description
    \node [above right] at (O.tip) {object};
    % rays
    %% draw axis ray
    \draw [ray] (O.tip) -- (0,0) -- ($(0,0)!3!(\owidth,-\size)$);
    %% draw parallel ray
    \path [ipath, name path=PS] (O.tip) -- ++(-3,0);
    \draw [ray, name intersections={of=M and PS, by=M-PS}]
        (O.tip) -- (M-PS) -- ($(M-PS)!2!(B)$);
    %% caculate virtual axis ray
    \path [ipath, name path=AS-V] ($(0,0)!-4!(\owidth,-\size)$) -- (0,0);
    %% calculate virtual parallel ray
    \path [ipath, name path=PS-V] ($(M-PS)!-4!(B)$) -- (M-PS);
    %% draw virtual axis ray
    \draw [imagined ray, name intersections={of=AS-V and PS-V, by=Tip-V}]
        (Tip-V) -- (0,0);
    %% draw virtual axis ray
    \draw [imagined ray] (Tip-V) -- (M-PS);
    % draw virtual object
    \bglayer{\path let \p{1}=(Tip-V) in 
        (Tip-V) node (V) [minimum height=\size,
                          scale={\y{1}/\size*0.665},
                          virtual optical arrow,anchor=tip
                         ] {};}
    %% description
    \path (V.west) node [left] {virtual image};
    % draw optical axis
    \fglayer{\draw [optical axis] (-5,0) --++(11,0);}
\end{tikzpicture}
\end{document}

Referensi pgfmanual.pdf, hlm 131 et detik.

Komentar (3)

Calc perpustakaan

Diakses oleh \usetikzlibrary{calc}

Keterangan Memungkinkan diperpanjang perhitungan koordinat

Contoh

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
    % make some mathematical calculations
    \node (a) at (1,1) {A};
    \fill [red] ($(a) + 1/3*(1cm,0)$) circle (2pt);
    % draw a segment of a path between two points
    \coordinate (b) at (0,0);
    \coordinate (c) at (0.5,3);
    \fill (b) circle (1pt) (c) circle (1pt);
    \draw [blue!50!green, ->] (b) -- ($(b)!1.5!(c)$);
    \draw [blue, ->] (b) -- ($(b)!0.5!(c)$);
    % draw a parallel line
    \draw [green] (2,0) coordinate (d) -- (3,4) coordinate (e);
    \draw [green, dashed] (2.5,1) -- ++($(e)-(d)$);
\end{tikzpicture}
\end{document}

Referensi pgfmanual.pdf.

Komentar (3)

Melipat Kertas Perpustakaan

Diakses oleh \usetikzlibrary{folding}

Keterangan

Ini berisi satu perintah, tetapi hal ini berguna untuk memproduksi real kalender (seperti yang digunakan pada desktop).

Contoh

\documentclass{standalone}

\usepackage{tikz, xcolor}
\usetikzlibrary{folding,calendar}
\begin{document}
\sffamily\scriptsize
\begin{tikzpicture}[transform shape]
\tikzstyle{every calendar}=
[
    %Formats calendars and sets positions
    at={(-8ex,4ex)},
    week list,
    month label above centered,
    month text=\bfseries\textcolor{red}{\%mt} \%y0,
    if={(Sunday) [black!50]}
    ]
\tikzfoldingdodecahedron
[
    %Sets size of calendar
    folding line length=2.5cm,
    %Adds calendar image to each face
    face 1={ \calendar [dates=\the\year-01-01 to \the\year-01-last];},
    face 2={ \calendar [dates=\the\year-02-01 to \the\year-02-last];},
    face 3={ \calendar [dates=\the\year-03-01 to \the\year-03-last];},
    face 4={ \calendar [dates=\the\year-04-01 to \the\year-04-last];},
    face 5={ \calendar [dates=\the\year-05-01 to \the\year-05-last];},
    face 6={ \calendar [dates=\the\year-06-01 to \the\year-06-last];},
    face 7={ \calendar [dates=\the\year-07-01 to \the\year-07-last];},
    face 8={ \calendar [dates=\the\year-08-01 to \the\year-08-last];},
    face 9={ \calendar [dates=\the\year-09-01 to \the\year-09-last];},
    face 10={\calendar [dates=\the\year-10-01 to \the\year-10-last];},
    face 11={\calendar [dates=\the\year-11-01 to \the\year-11-last];},
    face 12={\calendar [dates=\the\year-12-01 to \the\year-12-last];},
];
\end{tikzpicture}
\end{document}

Referensi pgfmanual.pdf, hlm 202 et detik.

Komentar (2)

Bentuk perpustakaan

Diakses oleh \usetikzlibrary{bentuk}

Keterangan Memungkinkan bentuk yang akan ditempatkan sebagai bagian dari sebuah flowchart

Contoh

\documentclass{standalone}

\usepackage{tikz, xcolor}
\usetikzlibrary{shapes,arrows}

\tikzstyle{decision} = [diamond, draw, text width=4.5em, 
                        text badly centered, node distance=2cm, 
                        inner sep=0pt]
\tikzstyle{block} = [rectangle, draw, text width=5em, 
                     text centered, rounded corners, 
                     minimum height=4em, node distance=3cm]
\tikzstyle{line} = [draw, -latex']
\tikzstyle{cloud} = [draw, ellipse, node distance=2.5cm, minimum height=2em]
\tikzstyle{blank} = [node distance=1cm]

\begin{document}
\begin{tikzpicture}[node distance = 3cm, auto]
    % Place nodes
    \node [cloud] (init) {n};    
    \node [blank, below of=init] (sup) {};
    \node [decision, below of=sup] (square) {$n^2 \le 1$};
    \node [cloud, right of=square] (end) {End};
    \node [block, left of=square] (newN) {$n = \frac{2}{n}$};

    % Draw edges
    \path [line] (init) -- (square);
    \path [line] (square) -- node [near start] {yes} (end);
    \path [line] (square) -- node [near start] {no} (newN);
    \path [line] (newN) |- (sup);
\end{tikzpicture}
\end{document}

Referensi http://www.texample.net/tikz/examples/simple-flow-chart/ Digunakan sebagai dasar untuk memulai, gaya tambahan (kosong) yang digunakan sebagai pendukung, contoh dari pertanyaan yang diajukan di universitas wawancara.

Komentar (0)

Mindmap Perpustakaan

Diakses oleh \usetikzlibrary{mindmap}

Keterangan

Titik fokus utama, ditempatkan di tengah, dengan sub-poin bercabang. Masing-masing simpul didefinisikan, termasuk juga anak-anak. Node juga dapat terpisah dari satu sama lain, dan masing-masing node dapat juga menjadi berwarna berbeda dan saling berhubungan. Anotasi juga tersedia.

Contoh

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{mindmap,backgrounds}

\begin{document}
\tikzstyle{root concept}+=[concept color=blue!20,minimum size=2cm]
\tikzstyle{level 1 concept}+=[sibling angle=45]

\begin{tikzpicture}[mindmap]
\node [concept] (n1) {Stack Exchange Sites}
    child[concept color=red,grow=45] {node[concept] (c1) {Meta}}
    child[concept color=orange,grow=0] {node[concept] (c2) {Q \& A}}
    child[concept color=green,grow=-45] {node[concept] (c3) {Chat}};
\begin{pgfonlayer}{background}
\draw [concept connection] (c1) edge (c2)
                                edge (c3)
                           (c2) edge (c3);
\end{pgfonlayer}

\node [extra concept] at (0,10) (n2) {\TeX {} and \LaTeX {}Stack Exchange}
    child[concept color=red,grow=45] {node[concept] (s1) {Meta}}
    child[concept color=orange,grow=0] {node[concept] (s2) {Q \& A}}
    child[concept color=green,grow=-45] {node[concept] (s3) {Chat}};

\begin{pgfonlayer}{background}
    \draw [concept connection] (s1) edge (s2)
                                    edge (s3)
                               (s2) edge (s3)
                               (n1) edge (n2);
\end{pgfonlayer}
\end{tikzpicture}

\end{document}

Referensi pgfmanual.pdf, hal 207 et detik.

Komentar (0)

Rantai Perpustakaan

Diakses oleh \usetikzlibrary{rantai}

Keterangan

Rantai urutan dari node-node yang diatur dalam satu baris atau kolom dan yang, biasanya, dihubungkan dengan tepi. Lebih umumnya, mereka dapat digunakan untuk posisi node percabangan jaringan dalam cara yang sistematis. Untuk posisi node dalam baris dan kolom yang anda dapat juga menggunakan matriks (lihat Pasal 17 dari pgfmanual.pdf) tapi rantai juga dapat digunakan untuk menggambarkan hubungan antara node-node yang telah terhubung menggunakan, mengatakan, matrik. Dengan demikian, sering masuk akal untuk menggunakan matrik untuk posisi elemen dan rantai untuk menggambarkan koneksi.

Contoh dengan Rantai

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
                chains,% provides the chains
                scopes}% allows to replace \begin{scope} \end{scope} with {}

\begin{document}
\begin{tikzpicture}[
  nonterminal/.style={
    rectangle, 
    minimum size=6mm, 
    very thick, 
    draw=red!50!black!50, 
    top color=white, % a shading that is white at the top...
    bottom color=red!50!black!20, % and something else at the bottom
    font=\itshape
  },
  terminal/.style={
    rectangle,minimum size=6mm,rounded corners=3mm,
    very thick,draw=black!50,
    top color=white,bottom color=black!20,
    font=\ttfamily
  },
  node distance=5mm, every on chain/.style={join}, every join/.style={->}
]
{ [start chain]
  \node [on chain,nonterminal] {unsigned integer};
  \node [on chain,terminal] {.};
  \node [on chain,terminal] {digit};
  \node [on chain,terminal] {E};
  { [start branch=plus]
    \node (plus) [terminal,on chain=going above right] {+};
  }
  { [start branch=minus]
    \node (minus) [terminal,on chain=going below right] {-};
  }
  \node [on chain, nonterminal, join=with chain/plus-end, join=with chain/minus-end] {unsigned integer};
}
\end{tikzpicture}
\end{document}

Misalnya dengan Matriks dan Rantai

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
                chains,% provides the chains
                scopes}% allows to replace \begin{scope} \end{scope} with {}

\begin{document}
\begin{tikzpicture}[
  nonterminal/.style={
    rectangle, 
    minimum size=6mm, 
    very thick, 
    draw=red!50!black!50, 
    top color=white, % a shading that is white at the top...
    bottom color=red!50!black!20, % and something else at the bottom
    font=\itshape
  },
  terminal/.style={
    rectangle,minimum size=6mm,rounded corners=3mm,
    very thick,draw=black!50,
    top color=white,bottom color=black!20,
    font=\ttfamily
  },
  every on chain/.style={join}, every join/.style={->}
]

\matrix[column sep=4mm] {
  % First row:
  & & & & \node (plus) [terminal] {+};&\\
  % Second row:
  \node (ui1)   [nonterminal] {unsigned integer};&
  \node (dot)   [terminal]    {.};               &
  \node (digit) [terminal]    {digit};           &
  \node (e)     [terminal]    {E};               &
  & % space in between
  \node (ui2) [nonterminal] {unsigned integer};\\
  % Third row:
  & & & & \node (minus)[terminal] {-};&\\
  };

{ [start chain]
  \chainin (ui1);
  \chainin (dot);
  \chainin (digit);
  \chainin (e);
  { [start branch=plus]
    \chainin (plus);
  }
  { [start branch=minus]
    \chainin (minus);
  }
  \chainin (ui2) [join=with chain/plus-end, join=with chain/minus-end];
}
\end{tikzpicture}
\end{document}

Rantai dengan Label

Beberapa kali salah satu kebutuhan untuk menambahkan labes ke tepi yang dibuat oleh rantai perpustakaan (itu terjadi kepada saya sebelum). Meskipun hal ini tidak didukung secara native oleh perpustakaan, anda dapat melakukannya dengan tweaking perpustakaan.

Contohnya adalah:

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,% for the rectangle
                chains,% provides the chains
                scopes}% allows to replace \begin{scope} \end{scope} with {}

\makeatletter
\def\tikz@lib@parse@join#1{%
  \def\tikz@temp{#1}%
  \ifx\tikz@temp\pgfutil@empty%
    \tikz@lib@parse@join@by by \pgf@stop%
  \else%
    \pgfutil@in@{with }{#1}% 
    \ifpgfutil@in@% 'with [by] [label]'
      \pgfutil@in@{by }{#1}%
      \ifpgfutil@in@% 'with by [label]'
        \pgfutil@in@{label }{#1}%
        \ifpgfutil@in@% 'with by label'
          \tikz@lib@parse@join@with@by@label#1\pgf@stop%
        \else% 'with by'
          \tikz@lib@parse@join@with@by#1\pgf@stop%
        \fi%
      \else% 'with [label]'
        \pgfutil@in@{label }{#1}%
        \ifpgfutil@in@% 'with label'
          \tikz@lib@parse@join@with@label#1\pgf@stop%
        \else% with
          \tikz@lib@parse@join@with@by#1 by \pgf@stop%
        \fi%
      \fi%
    \else% '[by] [label]'
      \pgfutil@in@{by }{#1}%
      \ifpgfutil@in@% 'by [label]'
        \pgfutil@in@{label }{#1}%
        \ifpgfutil@in@% 'by label'
          \tikz@lib@parse@join@by@label#1\pgf@stop%
        \else% 'by'
          \tikz@lib@parse@join@by#1\pgf@stop%
        \fi%
      \else% '[label]'
        \pgfutil@in@{label }{#1}%
        \ifpgfutil@in@% 'label'
          \tikz@lib@parse@join@label#1\pgf@stop%
        \else%
          \tikz@lib@parse@join@by#1 by \pgf@stop%
        \fi%
      \fi%
    \fi%
  \fi%
}
\def\tikz@lib@parse@join@with@by@label with #1 by #2 label #3\pgf@stop{%
  \tikzset{after node path={(#1)edge[every join,#2]#3(\tikzchaincurrent)}}%
}
\def\tikz@lib@parse@join@with@label with #1 label #2\pgf@stop{%
  \tikzset{after node path={(#1)edge[every join]#2(\tikzchaincurrent)}}%
}
\def\tikz@lib@parse@join@by@label by #1 label #2\pgf@stop{%
  \tikzset{after node path={\ifx\tikzchainprevious\pgfutil@empty\else(\tikzchainprevious)edge[every join,#1]#2(\tikzchaincurrent)\fi}}%
}
\def\tikz@lib@parse@join@label label #1\pgf@stop{%
  \tikzset{after node path={\ifx\tikzchainprevious\pgfutil@empty\else(\tikzchainprevious)edge[every join]#1(\tikzchaincurrent)\fi}}%
}
\makeatother

\begin{document}
\begin{tikzpicture}[
  nonterminal/.style={
    rectangle, 
    minimum size=6mm, 
    very thick, 
    draw=red!50!black!50, 
    top color=white, % a shading that is white at the top...
    bottom color=red!50!black!20, % and something else at the bottom
    font=\itshape
  },
  terminal/.style={
    rectangle,minimum size=6mm,rounded corners=3mm,
    very thick,draw=black!50,
    top color=white,bottom color=black!20,
    font=\ttfamily
  },
  every on chain/.style={join}, every join/.style={->}
]

\matrix[column sep=4mm] {
  % First row:
  & & & & \node (plus) [terminal] {+};&\\
  % Second row:
  \node (ui1)   [nonterminal] {unsigned integer};&
  \node (dot)   [terminal]    {.};               &
  \node (digit) [terminal]    {digit};           &
  \node (e)     [terminal]    {E};               &
  & % space in between
  \node (ui2) [nonterminal] {unsigned integer};\\
  % Third row:
  & & & & \node (minus)[terminal] {-};&\\
  };

{ [start chain]
  \chainin (ui1);
  \chainin (dot);
  \chainin (digit);
  \chainin (e);
  { [start branch=plus]
    \chainin (plus) [join=label {node[above left]{a label}}];
  }
  { [start branch=minus]
    \chainin (minus);
  }
  \chainin (ui2) [join=with chain/plus-end label {node[above right] {plus label}}, join=with chain/minus-end by dashed label {node [below right]{minus label}}];
}
\end{tikzpicture}
\end{document}

Referensi

pgfmanual.pdf, hal 284 et detik. Contoh-contoh ini adalah versi sederhana dari Tutorial: Menempatkan sebuah Diagram Rantai, dari hal 60

Komentar (0)

Bentuk perpustakaan

Diakses oleh \usetikzlibrary{bentuk, bentuk.geometris, bentuk.simbol, bentuk.panah, bentuk.multipart, bentuk.info, bentuk.misc}

Keterangan Menyediakan beberapa bentuk selain yang standar

Contoh

\documentclass[parskip]{scrartcl}
\usepackage[margin=5mm,a3paper]{geometry}
\usepackage{kerkis}
\usepackage{tikz}
\usetikzlibrary{
    shapes,
    shapes.geometric,
    shapes.symbols,
    shapes.arrows,
    shapes.multipart,
    shapes.callouts,
    shapes.misc}

\begin{document}

\tikzset{every node/.style={draw=red!20!black,fill=orange!50!red!50!white,text=black,inner sep=2pt}}

{\LARGE \textbf{Standard shapes}}\\
\foreach \shape in {circle,rectangle}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Geometric shapes}}\\
\foreach \shape in {diamond,ellipse,trapezium,semicircle,regular polygon,star,isosceles triangle,kite,dart,circular sector,cylinder}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Symbol shapes}}\\
\foreach \shape in {forbidden sign,magnifying glass,cloud,starburst,signal,tape}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Arrow shapes}}\\
\foreach \shape in {single arrow,double arrow,arrow box}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Multipart shapes}}\\
\foreach \shape in {circle split,circle solidus,ellipse split,rectangle split}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Callout shapes}}\\
\foreach \shape in {ellipse callout,rectangle callout,cloud callout}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}
\\\hrule

{\LARGE \textbf{Miscellaneous shapes}}\\
\foreach \shape in {cross out,strike out,rounded rectangle,chamfered rectangle}
{   \begin{tikzpicture}
        \node[shape=\shape] {\shape};
    \end{tikzpicture}
}

\end{document}

Referensi pgfmanual.pdf, halaman 419 461

Komentar (1)

Saya buat PDF dengan semua perpustakaan dan definisi singkat dari pfdmanual.

Anda dapat menemukan PDF berikut table-perpustakaan

It's versi pertama dan saya belum membaca kembali atau diperbaiki dan saya pikir pesanan tidak baik-baik saja. Terakhir pustaka tentang grafik perlu luatex.

Komentar (6)

Aneka kontribusi TikZ (total 70)

Mungkin ini bukan tempat yang tepat untuk menempatkan jawaban ini tapi saya pikir itu dapat membantu seseorang. Berikut ini adalah link yang berisi beberapa kontribusi yang dibuat untuk TikZ, beberapa dari mereka harus dimuat sebagai paket dan beberapa dapat dimuat umum seperti perpustakaan melalui \usetikzlibrary tapi tidak didokumentasikan di TikZ/PGF manual, sebaliknya mereka memiliki mereka sendiri dokumentasi seperti paket. I'll daftar beberapa paket/perpustakaan dan sangat deskripsi singkat dari apa yang dilakukannya

  • simpul (tikz perpustakaan): menyediakan lingkungan untuk menarik knot dengan mudah komputasi persimpangan dan secara otomatis Membelah jalan ke beberapa jalur satu di atas yang lain.
  • hobbys (tikz perpustakaan): sebuah implementasi dari John Hobi's algoritma untuk menghasilkan sebuah kurva mulus melalui himpunan titik, memungkinkan kustomisasi lebih lanjut dari kurva dari normal plot operator dan hasilnya tanpa ada kustomisasi secara signifikan lebih baik daripada plot.
  • hutan: ini sangat ditingkatkan pohon gambar mekanisme yang dari hanya TikZ, pasti dipertimbangkan sebelum menggambar pohon dengan TikZ.
  • tikz-cd: menyediakan dukungan melalui macro standar dan pengaturan default untuk menggambar diagram komutatif.
  • prooftree: menyediakan dukungan untuk menggambar prooftrees, paket difokuskan pada matematika prooftrees digunakan untuk mengajar matematika.
  • pgf-spectra: menggunakan mudah sintaks untuk menggambar spektrum dari unsur-unsur (saat ini 99 tersedia)
  • bloques: menyediakan set macro untuk memudahkan menggambar blok diagram yang digunakan dalam teori kontrol (teknik).
  • circuitikz: digunakan untuk menggambar rangkaian elektronik.
  • tikzscale: menyediakan antarmuka antara tikzpicture dan\includegraphics` menawarkan scaling metode untuk tikzpictures. Saya telah menghitung 65 kontribusi mantan link di atas dikutip tidak terbaik atau khusus dalam cara apapun,'s hanya orang-orang yang saya've datang di dengan.

    Terisolasi kontribusi:

    I've juga ditemukan di pengguna's @Qrrbrbirlbel (bagaimana anda mengatakan bahwa?) 5 neet perpustakaan (ya mereka're sarat dengan \usetikzlibrary), sayangnya tanpa manual dan tidak tersedia melalui CTAN (mudah-mudahan mereka'akan sampai di sana) tetapi dapat di-download di Qrrbrbirlbel's akun GitHub, di bawah ini adalah dekat copy paste-nya "Tentang saya" profil teks:

  • node-keluarga Para simpul-keluarga perpustakaan telah dikembangkan dalam menanggapi "Tergantung ukuran simpul" dimana OP meminta otomatis re-sizing terkait node sehingga mereka sama-sama memiliki ukuran minimum. Gunakan tombol berikut untuk menetapkan sebuah node tertentu keluarga node yang akan memiliki dimensi yang sama. Ini bekerja pada per-gambar dasar dan menggunakan .aux file sehingga anda akan perlu setidaknya dua kompilasi.
  • Lebar minimal=<keluarga>;
  • Ketinggian Minimum=<keluarga>;
  • Text Height=<keluarga>;
  • Text Width=<keluarga>.
  • jalan.ortho([kode file di sini](https://github.com/Qrrbrbirlbel/pgf/blob/master/tikzlibrarypaths.ortho.tex) dan [lib file di sini](https://github.com/Qrrbrbirlbel/pgf/blob/master/tikzlibrarypaths.ortho.tex)) Perpustakaan ini memperkenalkan jalur operator seperti horisontal-vertikal yang Ti*k*Z secara alami memiliki (|-dan-|) tapi yang lebih maju, seperti|-|dan-|-`. Ini answer dan ini juga mengandung lebih banyak info di perpustakaan.
  • paths.rectangle The jalan.persegi panjang perpustakaan menyediakan dua sama timer (fungsi yang menempatkan node sepanjang jalan) untuk persegi panjang path operator. Biasanya ketika melakukan \draw (0,0) persegi panjang node[pos=x]{A} (1,1) node A akan ditempatkan dalam posisi di sepanjang garis yang menghubungkan dua titik koordinat, dengan jalan.persegi panjang,xdapat mengasumsikan nilai yang lebih besar dari1(sampai2`) yang mewakili sebenarnya persegi panjang jalan, bukan garis antara titik koordinat, lebih baik dijelaskan dalam jawaban.
  • patterns.images Perpustakaan ini memungkinkan bentuk-bentuk dapat diisi dengan gambar pola, banyak yang berguna untuk membuat gambar dengan tekstur. It's dijelaskan dalam jawaban.
  • positioning-plus Yang satu ini menawarkan cara posisi satu node sehubungan dengan beberapa orang lain, juga menyediakan kemampuan membuat node sebagai besar sebagai himpunan dari node yang mencakup. Selain itu ia memiliki lebih banyak pilihan posisi dari yang asli positioning perpustakaan, karena tidak ada panduan informasi yang telah dikumpulkan dari TeX.SX mesin pencari (link ini auto pencarian dengan filter yang tepat)
Komentar (0)

Dekorasi perpustakaan

Diakses oleh \usetikzlibrary{dekorasi.<nama dekorasi perpustakaan>} Deskripsi Seperti namanya, perpustakaan ini menghiasi jalan. Kadang-kadang jalan bahkan diganti dengan jalan yang berbeda. Setiap dekorasi perpustakaan ini dinyatakan di bawah ini. Gunakan Pilih + A (Windows) untuk mendapatkan perpustakaan yang anda butuhkan.

Jalan morphing dekorasi

Diakses oleh \usetikzlibrary{dekorasi.pathmorphing} Deskripsi [dari TikZ manual] Jalan morphing dekorasi "morphs" atau "deformasi" untuk-akan dihiasi jalan. Ini berarti bahwa apa yang digunakan untuk menjadi sebuah garis lurus mungkin setelah itu menjadi mengular kurva dan memiliki benjolan. Contoh

\documentclass[tikz,margin=1]{standalone}
\usetikzlibrary{decorations.pathmorphing}
\def\y{0}
\newcommand\decorated[1]{
    \tikzset{decoration=#1}
    \draw[thin,red] (0,\y) to[bend left] (1,\y);
    \filldraw[decorate,fill=yellow!60,very thick] (0,\y) to[bend left] (1,\y)
        node[right,font=\ttfamily] {#1};
    \let\auxy\y
    \pgfmathsetmacro\y{\auxy+1}
}
\begin{document}
\begin{tikzpicture}[y=-1cm,x=3cm]
\decorated{lineto}
\decorated{straight zigzag}
\decorated{random steps}
\decorated{saw}
\decorated{zigzag}
% We are not able to use our command here :(
\tikzset{decoration=bent}
\draw[thin,red] (0,\y) -- (1,\y);
\filldraw[decorate,fill=yellow!60,very thick] (0,\y) -- (1,\y)
    node[right,font=\ttfamily] {bent};
\let\auxy\y
\pgfmathsetmacro\y{\auxy+1}
% %
\decorated{bumps}
\decorated{coil}
\decorated{curveto}
\decorated{snake}
\end{tikzpicture}
\end{document}

Path mengganti dekorasi

Diakses oleh \usetikzlibrary{dekorasi.pathreplacing} Deskripsi [dari TikZ manual] Perpustakaan ini mendefinisikan dekorasi yang menggantikan to-be-jalan dihiasi dengan jalan lain. Tidak seperti morphing dekorasi, diganti jalur yang mungkin cukup berbeda, misalnya garis lurus mungkin diganti dengan satu set dari lingkaran. Contoh

  • Sebagian besar dekorasi latex \documentclass[tikz,margin=1]{mandiri} \usetikzlibrary{dekorasi.pathreplacing} \def\y{0} \newperintah\dihiasi[1]{ \tikzset{dekorasi=#1} \menggambar[tipis,merah] (0,\y) untuk[tikungan kiri] (1,\y); \menggambar[menghias,sangat tebal] (0,\y) untuk[tikungan kiri] (1,\y) node[kanan,font=\ttfamily] {#1}; \let\ \ auxy\y \pgfmathsetmacro\y{\auxy+1} } \begin{document} \begin{tikzpicture}[y=-1 cm,x=3cm] \dihiasi{border} % Kita tidak dapat menggunakan perintah berikut ini :( \tikzset{dekorasi=brace} \menggambar[tipis,merah] (0,\y) -- (1,\y); \menggambar[menghias,sangat tebal] (0,\y) -- (1,\y) node[kanan,font=\ttfamily] {kurung kurawal}; \let\ \ auxy\y \pgfmathsetmacro\y{\auxy+3} % % \dihiasi{memperluas gelombang} \let\ \ auxy\y \pgfmathsetmacro\y{\auxy+1.5} \dihiasi{kutu} \dihiasi{gelombang} \end{tikzpicture} \end{document}
  • Khusus dekorasi: menunjukkan konstruksi jalan. ``latex % Sumber: TikZ - PGF manual versi 3.1.3, 9 Mei 2019, halaman 636 \documentclass[tikz,margin=1]{mandiri} \usetikzlibrary{dekorasi.pathreplacing} \begin{document} \begin{tikzpicture}[

    =siluman, setiap node/.style={midway, miring, font=\kecil}, dekorasi={ menunjukkan konstruksi jalan, moveto kode={ \mengisi [red] (\tikzinputsegmentfirst) lingkaran (2pt) node [isi=tidak ada, di bawah ini] {moveto};}, lineto kode={ \menggambar [biru,->] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) node [atas] {lineto};}, curveto kode={ \menggambar [hijau!75!hitam,->] (\tikzinputsegmentfirst) kontrol .. (\tikzinputsegmentsupporta) dan (\tikzinputsegmentsupportb) ..(\tikzinputsegmentlast) node [atas] {curveto};}, closepath kode={ \menggambar [oranye,->] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) node [atas] {closepath};} }]

\menggambar [garis bantu] kotak (3,2); \path [menghias] (0,0) -- (3,1) arc (0:180:1.5 dan 1) -- siklus; \end{tikzpicture} \end{document} ``

Sewenang-wenang tanda-tanda

Diakses oleh \usetikzlibrary{dekorasi.tanda-tanda} Deskripsi [dari TikZ manual] Penandaan dapat dianggap "sedikit gambaran" atau lebih tepatnya dari "beberapa ruang lingkup isi" adalah "on" jalan pada posisi tertentu Contoh

\documentclass[tikz,margin=1]{standalone}
\usetikzlibrary{decorations.markings}
\begin{document}
\colorlet{darkgreen}{green!70!black}
\begin{tikzpicture}[>=stealth]
\path (0,1) node[right,inner sep=0pt,font=\ttfamily] {markings};
\draw[postaction=decorate,decoration={
        markings,
        mark=at position 0.5 with \arrow{>}
      }] (0,0) -- (3,0) node[right=1ex] {One marking only};
\draw[postaction=decorate,decoration={
        markings,
        mark=at position 1/3 with {
          \draw[red,thick] (-2pt,-2pt) -- (2pt,2pt);
          \draw[red,thick] (-2pt,2pt) -- (2pt,-2pt);
        },
        mark=at position 2/3 with {
          \draw[darkgreen,thick] (-2pt,0) -- (0,-2pt) -- (2pt,2pt);
        }
      }] (0,-1) -- (3,-1) node[right=1ex] {Two markings};
\draw[postaction=decorate,decoration={
        markings,
        mark=between positions 0 and 1 step 0.2 with {
          \filldraw[fill=yellow] 
            (-3pt,-3pt) -- (3pt,-3pt) -- (0,3pt) -- cycle;
          \draw (0,2pt) -- (0,-1pt);
          \fill (0,-2pt) circle (.5pt);
        }
      }] (0,-2) to[bend left] (3,-2) node[right=1ex] {Several markings};
\end{tikzpicture}
\end{document}

Kaki cetakan tanda-tanda

Diakses oleh \usetikzlibrary{dekorasi.jejak kaki} Deskripsi [dari TikZ manual] Dekorasi dari perpustakaan ini dapat digunakan untuk menghias jalan dengan sedikit jejak, seolah-olah seseorang telah "berjalan" di sepanjang jalan. Contoh

\documentclass[tikz,margin=1]{standalone}
\usetikzlibrary{decorations.footprints}
\begin{document}
\begin{tikzpicture}[y=-1.5cm,x=3cm]
\path (0,0) node[right,inner sep=0pt,font=\ttfamily] {footprints};
\foreach \i [count=\j] in {gnome,human,bird,felis silvestris} {
    \tikzset{decoration={footprints,foot of=\i}}
    \draw[thin,red] (0,\j) to[bend left] (1,\j);
    \draw[decorate] (0,\j) to[bend left] (1,\j) node[right] {\i};
}
\end{tikzpicture}
\end{document}

Bentuk latar belakang tanda-tanda

Diakses oleh \usetikzlibrary{dekorasi.bentuk} Deskripsi [dari TikZ manual] N/A Contoh

\documentclass[tikz,margin=1]{standalone}
\usetikzlibrary{decorations.shapes}
\def\y{0}
\newcommand\decorated[1]{
    \tikzset{decoration=#1}
    \draw[thin,red] (0,\y) to[bend left] (1,\y);
    \draw[decorate] (0,\y) to[bend left] (1,\y)
        node[right,font=\ttfamily] {#1};
    \let\auxy\y
    \pgfmathsetmacro\y{\auxy+1}
}
\begin{document}
\begin{tikzpicture}[y=-1cm,x=3cm]
\decorated{crosses}
\decorated{triangles}
\decorated{shape backgrounds} % You can customize it. See more in the manual
\end{tikzpicture}
\end{document}

Teks dekorasi

Diakses oleh \usetikzlibrary{dekorasi.teks} Deskripsi [dari TikZ manual] Dekorasi di perpustakaan ini menghiasi jalan dengan beberapa teks. Hal ini dapat digunakan untuk menggambar teks yang mengikuti kurva. Contoh

\documentclass[tikz,margin=2]{standalone}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}[y=-1cm,x=3cm]
\draw[postaction=decorate,decoration=text along path,
      /pgf/decoration/text={Hello world}] 
    (0,0) to[bend left] (1,0) node[right=1ex,font=\ttfamily] {text along path};
% Source: The TikZ - PGF manual, version 3.1.3, 9 May 2019, page 652
\tikzset{
    decoration={
        text effects along path,
        text={Hello world}, 
        text align=center,
        text effects/.cd,
            character count=\i,
            characters={xslant=0.5, text along path, name=c-\i}
    }
}
\draw[postaction=decorate] (0,1) -- (1,3.5) 
    node[right=1ex,font=\ttfamily] {text effects along path};
\end{tikzpicture}
\end{document}

Fractal dekorasi

Diakses oleh \usetikzlibrary{dekorasi.fraktal} Deskripsi [dari TikZ manual] Dekorasi dari perpustakaan ini dapat digunakan untuk membuat fraktal garis. Contoh

\documentclass[tikz,margin=1]{standalone}
\usetikzlibrary{decorations.fractals}
\def\y{0}
\newcommand\decorated[3][]{
    \tikzset{decoration=#2}
    \draw[ultra thin,red] (0,\y) -- (1,\y);
    \draw[#1] decorate {
                decorate { 
                  decorate { 
                    (0,\y) -- (1,\y)
                  }
                }
              };
    \path (1,\y) node[right=1ex,font=\ttfamily] {#2};
    \let\auxy\y
    \pgfmathsetmacro\y{\auxy+#3}
}
\begin{document}
\begin{tikzpicture}[y=-1cm,x=3cm]
\decorated{Koch curve type 1}{1.5}
\decorated{Koch curve type 2}{2}
\decorated{Koch snowflake}{1}
\decorated[ultra thick]{Cantor set}{0}
\end{tikzpicture}
\end{document}

Komentar (0)