Список доступных библиотек TikZ с кратким введением

Быстрые ссылки:

ОбзорБиблиотека перекрестковБиблиотека советов по стрелкамБиблиотеки декоровБиблиотека расчетовБиблиотека MindmapБиблиотека фигурБиблиотека для складывания бумагиБиблиотека цепочекБиблиотека фигурВклад в TikZ


Очень часто я ищу специальную библиотеку ТикЗ. На данный момент не существует пакета, который загружал бы все библиотеки.

*Есть ли список всех доступных библиотек с кратким введением (2-3 предложения)?

Возможно, мы можем собрать их здесь

Комментарии к вопросу (10)
Решение

Резюме

Вот список библиотек и краткое описание назначения каждой из них (любой приведенный код предназначен для LaTeX и/или Plain TeX, а не для ConTeXt):

  • Библиотека наконечников стрелок с \usetikzlibrary{arrows.meta} (\usetikzlibrary{arrows} устарела). См. подробности ниже..
  • Библиотека рисования автоматов, доступная по \usetikzlibrary{automata}, используется для рисования "конечных автоматов состояния и машин Тьюринга". Для рисования этих графов определяется каждый узел, его имя и относительное положение, а также типы путей между каждым из них.
  • Библиотека фонов, доступ к которой осуществляется по команде \usetikzlibrary{backgrounds}, и "определяет фон для картинок". Чтобы использовать ее в Tikzpicture, передается опция, например, \begin{tikzpicture}[show background rectangle], при этом стиль фонового прямоугольника определяется перед картинкой. (например, \tikzset{background rectangle/.style={}})
  • Библиотека Calc, доступ к которой осуществляется через \usetikzlibrary{calc} для выполнения сложных вычислений координат. См. подробности ниже.
  • Библиотека Calendar, доступ к которой осуществляется через \usetikzlibrary{calendar}. Эта библиотека используется для отображения календарей (я полагаю, это фишка Ronseal). Вы определяете календарь как \calendar[display options and date options](Name (optional))).
  • Библиотека цепочек для выравнивания узлов и цепочек. Подробности см. ниже.
  • Библиотека Decorations для украшения путей. См. подробности ниже.
  • Библиотека Entity Relationship Diagram, доступ к которой осуществляется по \usetikzlibrary{er}, как и в библиотеке рисования автоматов, определяется каждый узел, каждое ребро между узлами, а также любые атрибуты. В качестве предупреждения, для атрибутов должно использоваться подчеркивание, но оно не используется, так как это некрасиво и трудно реализуемо. Вместо этого используется курсив.
  • Библиотека пересечений, доступ к которой осуществляется через \usetikzlibrary{intersections}, для вычисления пересечений путей. Подробности см. ниже.
  • Библиотека Mind Map, доступ к которой осуществляется через \usetikzlibrary{mindmap}. Подробности см. ниже.
  • Библиотека матриц, доступ к которой осуществляется через \usetikzlibrary{matrix}. Матрицы определяются так же, как и в режиме математики, однако каждому элементу матрицы присваивается значение в виде узла, начиная с 1. Каждый узел можно идентифицировать и манипулировать им. Разделители также могут быть выбраны в опциях матрицы и могут быть "любыми разделителями, которые приемлемы для команды TeX \left".
  • Библиотека для складывания бумаги \usetikzlibrary{folding}. Подробности см. ниже.
  • Библиотека шаблонов \usetikzlibrary{patterns}. Этот пакет "определяет шаблоны для заполнения областей". В документации каждый паттерн назван и приведен пример.
  • Библиотека сетей Петри. Используется для рисования сетей Петри, используемых для математического моделирования. Как и в других подобных диаграммах в стиле блок-схем, определяется каждый узел и ребро, а также их стиль и положение. Токены также могут быть встроены в узлы, рассматривая их как дочерние и дочерние узлы.
  • Библиотека обработчиков сюжетов, доступ к которой осуществляется через \usetikzlibrary{plothandlers}. TikZ загружает эту библиотеку автоматически. Каждая точка определяется (как узел) для графика, и для каждой точки размещается кривая.
    • Библиотека Plot Mark, доступ к которой осуществляется через \usetikzlibrary{plotmarks}, используется для определения дополнительных стилей для графиков, используемых выше. Каждая точка определяется как \pgfuseplotmark{Описание участка}.
  • Библиотека фигур, используется для определения фигур, отличных от прямоугольника, круга и координат. Доступ к ней осуществляется через \usetikzlibrary{shapes} или \usetikzlibrary{shapes.shape type}. Доступны следующие дополнительные типы: геометрические фигуры, либо именованные фигуры (звезда, алмаз и т.д.), либо многоугольники с заданным количеством сторон; фигуры-символы, например, "запрещающий знак", используемый в знаках No Smoking; "многочастные" фигуры, имеющие "несколько (текстовых) частей"; и, наконец, "миск" фигуры, которые "не подходят под предыдущие категории", например, зачеркнутые кресты. См. подробности ниже..
  • Библиотека Snake, доступ к которой осуществляется через \usetikzlibrary{snakes} и может быть описана как изогнутые линии, которые используются либо между узлами, либо как граница фигуры, либо как самостоятельные фигуры.
  • К библиотеке Path, доступ к которой осуществляется через \usetikzlibrary{topaths}. Эта библиотека используется для определения путей между двумя точками и загружается автоматически. Кроме того, он может принимать форму кривых линий между двумя фигурами или в виде петли, возвращающейся к узлу.
  • Библиотека деревьев, доступ к которой осуществляется через \usetikzlibrary{trees}. Каждая точка на дереве определяется как узел, имеющий детей, и каждый ребенок может иметь своих собственных детей. Направление дерева также может быть задано, как и угол, под которым появляются дети, однако, если оставить все на самотек, результаты получаются приемлемыми. Источники: Все, что указано в инвертированных запятых, взято из tikzpgfmanual, а также из образца календаря.
Комментарии (17)

Библиотека советы стрелку

Доступна \usetikzlibrary{стрелки.мета}

Описание: Предоставляет различные новый и настраиваемый советы стрелку

Пример

\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}

Ссылка

ТіКЗ/ПГФ 3.0.1 руководство раздел стрелок.

Комментарии (2)

Библиотека "Перекрестки

_Пользовался \usetikzlibrary{intersections}__.

Описание. Позволяет автоматически рассчитывать пересечения путей.

Пример 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}

Пример 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}

Ссылка pgfmanual.pdf, pp. 131 et sec.

Комментарии (3)

Библиотека расч

Обращаться на \usetikzlibrary{калькулятор}

Описание Позволяет расширить вычисления координат

Пример

\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}

Ссылка pgfmanual.формате PDF.

Комментарии (3)

Библиотека по складыванию бумаги

Принято \usetikzlibrary{folding}__

Описание

Содержит всего одну команду, но она полезна для создания настоящих календарей (как на рабочем столе).

Пример

\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}

Reference pgfmanual.pdf, pp. 202 et sec.

Комментарии (2)

Библиотека форм

Обращаться на \usetikzlibrary{формы}

Описание Позволяет формы, чтобы быть размещены в рамках схемы

Пример

\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}

Ссылка http://www.texample.net/tikz/examples/simple-flow-chart/ Используется в качестве основы, чтобы начать работу, дополнительный стиль (пустой) используется в качестве опоры, например, вопрос, заданный в интервью университета.

Комментарии (0)

Библиотека Схемы

Обращаться на \usetikzlibrary{схемы}

Описание

Главный фокус-точка, находится посередине, с суб-точек ответвления. Каждый узел определяется, как и ее дети. Узлы также могут быть отделены друг от друга, и каждый узел может также быть окрашены по-разному и взаимосвязано. Аннотации также доступны.

Пример

\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}

Ссылка pgfmanual.формате PDF, стр. 207 Эт сек.

Комментарии (0)

Библиотека Цепями

Обращаться на \usetikzlibrary{цепи}

Описание

Цепи-это последовательность узлов, которые расположены в ряд или столбец и, как правило, Соединенных краями. В более общем плане, они могут быть использованы для установки узлов разветвления сети на систематической основе. Для позиционирования узлов в строках и столбцах можно также использовать матрицы (см. Раздел 17 pgfmanual .в формате PDF), но цепи также могут быть использованы для описания связей между узлами, которые уже были подключены с помощью, скажем, матрицы. Таким образом, часто имеет смысл использовать матрицы для позиционирования элементов и цепей для описания подключений.

Пример с цепями

\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}

Пример с матрицы и цепи

\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}

Цепочек с этикетками

Иногда нужно добавить labes к краям, созданные библиотеки цепи (это случилось со мной перед). Хотя это не поддерживается в Библиотеке, вы можете сделать это настройки библиотеке.

Пример:

\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}

Ссылка

pgfmanual.в формате PDF, стр. 284 Эт сек. Примерами являются упрощенной версией учебника: ввод схемы в цепях, на стр. 60

Комментарии (0)

Библиотека форм

Обращаться на \usetikzlibrary{формы, формы.геометрические фигуры.символы, фигуры.стрелок, фигур.многосекционные, формы.выноски, фигуры.смешанная}

Описание Предлагаем несколько форм, кроме стандартных

Пример

\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}

Ссылка pgfmanual.формате PDF, стр. 419 до 461

Комментарии (1)

Я создал PDF-файл со всеми библиотеками и короткое определение из pfdmanual.

Вы можете найти здесь в формате PDF таблица-библиотеки

Это'ы первый вариант и я не перечитала или исправлены и думаю, что порядок не в порядке. Последний библиотек графики нужно luatexбыл.

Комментарии (6)

Различный вклад в ТикZ (в общей сложности 70)

Может быть, это не правильное место, чтобы поставить этот ответ, но я думаю, что это может помочь кому-то. Вот ссылка, которая содержит несколько взносов в Тикз, некоторые из них должны быть загружены в виде пакетов, и некоторые из них могут быть загружены и, как правило, библиотеках через \usetikzlibrary но не описаны в ТиКЗ/ПГФ руководство, вместо этого они имеют свою собственную документацию, как пакеты. Я'МР перечислю некоторые из пакетов/библиотек и очень краткое описание что она делает

  • узлов (tikz библиотека): обеспечить среду для рисования узлы легко вычислительной пересечения и автоматически разделив путь на несколько дорожек друг над другом.
  • небольшом (tikz библиотека): реализация Иоанна хобби'ы алгоритм, чтобы произвести гладкую кривую через набор точек, это позволяет в дальнейшем настройки кривой, чем обычный "сюжет" оператор и его результат без какой-либо настройки значительно лучше, чем "сюжет".
  • "лес": предлагает значительно улучшена дерева чертеж механизма, который не только тиКЗ, должна определенно быть рассмотрены, прежде чем рисовать дерево с ТикЗ.
  • tikz-компакт: обеспечивает поддержку через предопределенные макросы и параметры по умолчанию для построения коммутативных диаграмм.
  • prooftree: обеспечивает поддержку для рисования prooftrees, пакет ориентирован на математика prooftrees использован для обучения математике.
  • пгф-спектров: использует простой синтаксис, чтобы привлечь спектра элементов (в настоящее время 99 доступен)
  • bloques: обеспечивает набор макросов для облегчения рисования блок-схем, используемых в теории управления (машиностроение).
  • circuitikz: используется для рисования электронных схем.
  • tikzscale: обеспечивает интерфейс между tikzpicture и \includegraphics предлагает шкалирование методы tikzpictures. Я насчитал 65 вклады в бывшем ссылка, приведенная выше не самые лучшие, ни Специальной в любом случае, это's просто те, что я'вэ наткнулась.

    Изолированные взносов#:

    Я've также нашли пользователя'ы @Qrrbrbirlbel (как это сказать?) 5 неет библиотеки (да, они'вновь загружается с \usetikzlibrary), к сожалению без инструкции и не доступен через архива ctan (надеюсь, они'll получить там), но может быть загружен в Qrrbrbirlbel'ы на GitHub аккаунт, тем ниже находится рядом копировать вставить его на "Обо мне" в профиле текст:

  • узел-семей Библиотеки узлов семей была разработана в ответ на “зависит от размера узла”, где ОП просит для автоматического изменения размеров смежных узлов, так что они имеют те же минимальный размер. Используйте следующие клавиши для назначения узла для определенного семейства узлов, которые должны иметь одинаковые размеры. Это работает на картинку основу и использует.файл AUX`, так что вам понадобится как минимум два сборника.
  • Минимальные ширина=<семья>`;
  • Минимальная высота=<семья>;
  • Высота текста=<семья>;
  • Текст ширина=<семья>`.
  • пути.Орто([файл вот код](https://github.com/Qrrbrbirlbel/pgf/blob/master/tikzlibrarypaths.ortho.tex) и [файл здесь Либ](https://github.com/Qrrbrbirlbel/pgf/blob/master/tikzlibrarypaths.ortho.tex)) Эта библиотека представляет путь операторов как по горизонтали-вертикали ти*К*З естественно (|-и -|), но и более продвинутые, такие как|-|и-|-`. Это answer и этот тоже содержат более подробную информацию о библиотеке.
  • paths.rectangle На пути.библиотека прямоугольникобеспечивает два подобных таймера (функции, разместить узлы вдоль пути) для операторапрямоугольникпуть. Обычно, когда делаешь\ничья (0,0) прямоугольник узла[пос=х]{а} (1,1)узелабудет помещен в позицию вдоль линии, соединяющей две координаты, с пути.прямоугольник, х может принимать значения, больше чем 1 (до 2), которые представляют собой реальный путь прямоугольника, а не строка между координатами, как лучше объяснить в этот ответ.
  • patterns.images Эта библиотека позволяет формы должны быть заполнены моделей изображения, очень полезно для создания изображений с текстурами. Это'ы объясняется в этот ответ.
  • positioning-plus На этот раз предлагает способ определения местоположения одного узла в связи с несколькими другими, предоставляя также возможность сделать узел как набор узлов он состоит. Помимо этого он имеет больше возможностей позиционирования, чем у оригинала позиционирование библиотека, так как нет руководства информация должна быть собрана из Tex.Поисковик ЗХ (этой ссылке автоматический поиск с соответствующего фильтров)
Комментарии (0)

Украшение библиотеки

Доступна \usetikzlibrary{украшений.<имя декорирования библиотека>} Описание Как говорит название, эти библиотеки украшают путь. Иногда путь даже заменяется другой путь. Каждое украшение библиотеки указано ниже. Использовать <и>сочетание клавиш Ctrl</роз> + <и>Ф</КБД и GT; (Windows), чтобы попасть в библиотеку нужно.

Путь морфинга украшения

Доступна \usetikzlibrary{украшений.pathmorphing} Описание [с ТиКЗ руководство] Путь морфинга украшения на "превращается" или "кривыми" В К-быть-оформлен пути. Это означает, что прямая линия может быть после изгиба и ударов. Пример

\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}

Замена путь украшения

Доступна \usetikzlibrary{украшений.pathreplacing} Описание [с ТиКЗ руководство] В этой библиотеке определены украшения, которые заменить будет оформлен пути на другой путь. В отличие от морфинга украшения, заменены путь может быть совершенно разной, например, прямая линия может быть заменена на множество кружков. Пример

  • Большинство украшений латекс \documentclass[tikz,маржа=1]{автономный} \usetikzlibrary{украшений.pathreplacing} \деф\у{0} и \caption\оформлены[1]{ \tikzset{украшения=#1} \рисовать[тонкий,красный] (0,\Y) в[сгиба левой] (1,\г); \рисовать[украшения,очень толстая] (0,\Y) в[сгиба левой] (1,\г) узел[справа,шрифт=\ttfamily] {#1}; \пусть\auxy\г \pgfmathsetmacro\г{\auxy+1} } \начать{документ} всегда \begin{tikzpicture}[г=-1см,х=3см] \оформленный{границы} % Мы не сможем использовать нашу команду здесь :( \tikzset{украшения=скобка} \рисовать[тонкий,красный] (0,\г) -- (1,\г); \рисовать[украсить,очень толстая] (0,\г) -- (1,\г) узел[правая,шрифта=\ttfamily] {скобки}; \пусть\auxy\г \pgfmathsetmacro\г{\auxy+3} % % \оформленный{расширяющейся волны} \пусть\auxy\г \pgfmathsetmacro\г{\auxy+1.5} \оформленный{клещи} \оформленный{волны} \конец{tikzpicture} \конец{документ}
  • Специальные декорации: показать путь строительства. ``латекс % Источник: TikZ - ТФР ручной версии 3.1.3, 9 мая 2019, стр. 636 \documentclass[tikz,маржа=1]{автономный} \usetikzlibrary{украшений.pathreplacing} \начать{документ} всегда \begin{tikzpicture}[

    =стелс, каждый узел/.стиль={полпути, наклонный, шрифт=\крошечных}, украшения={ показать путь строительства, метод MoveTo код={ \заполнить [красный] (\tikzinputsegmentfirst) круг (2 пунктов) узел [заполнить=нет, ниже] {ПЕРЕЙТИ};}, строки, чтобы код={ \рисовать [синий,->] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) узел [выше] {концы lineto};}, curveto код={ \рисовать [зеленый!75!черный,->] (\tikzinputsegmentfirst) .. контролирует (\tikzinputsegmentsupporta) и (\tikzinputsegmentsupportb) ..(\tikzinputsegmentlast) узла [выше] {curveto};}, closepath код={ \рисовать [оранжевый,->] (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast) узел [выше] {closepath};} }]

\рисовать [линии] сетки (3,2); путь [украшения] (0,0) -- (3,1) и Arc (0:180:1.5 и 1) -- цикл; \конец{tikzpicture} \конец{документ} ``

Произвольной маркировки

Доступна \usetikzlibrary{украшений.маркировка} Описание [с ТиКЗ руководство] Маркировка может быть мысль о том, что "картинку" или точнее "и какая-то сфера содержание", что находится на "дальше" Путь в определенном положении Пример

\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}

Отпечатки ног маркировки

Доступна \usetikzlibrary{украшений.след} Описание [с ТиКЗ руководство] Украшения из этой библиотеки можно использовать, чтобы украсить путь с маленькие следы, как будто кто-то на "шел" и по пути. Пример

\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}

Форма фоновой маркировки

Доступна \usetikzlibrary{украшений.форм} Описание [с ТиКЗ руководство] Н/Д Пример

\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}

Текст украшения

Доступна \usetikzlibrary{украшений.текст} Описание [с ТиКЗ руководство] Украшения в этой библиотеке украшает путь на какой-либо текст. Это может использоваться, чтобы рисовать текст, который следует за кривой. Пример

\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}

Фрактальные украшения

Доступна \usetikzlibrary{украшений.фракталы} Описание [с ТиКЗ руководство] Украшения из этой библиотеки можно использовать для создания фрактальных линий. Пример

\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}

Комментарии (0)