diff options
author | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-06-17 23:22:38 +0000 |
commit | 5c5c7843fbd37c6960799b6e1a32d5948966316c (patch) | |
tree | ea73f6b5ba799656992ebe2f34beccd2555f1342 /Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex | |
parent | f0c1f4cdb9fad83f293fd91d194538425f9f7633 (diff) |
pgf 1.18 (15jun07)
git-svn-id: svn://tug.org/texlive/trunk@4459 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex')
-rw-r--r-- | Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex new file mode 100644 index 00000000000..4bb3de3da93 --- /dev/null +++ b/Master/texmf-dist/doc/generic/pgf/text-en/pgfmanual-en-library-matrices.tex @@ -0,0 +1,250 @@ +% Copyright 2006 by Till Tantau +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Free Documentation License. +% +% See the file doc/generic/pgf/licenses/LICENSE for more details. + + +\section{Matrix Library} + +\begin{tikzlibrary}{matrix} + This library packages defines additional styles and options for + creating matrices. +\end{tikzlibrary} + + +\subsection{Matrices of Nodes} + +A \emph{matrix of nodes} is a \tikzname\ matrix in which each cell +contains a node. In this case it is bothersome having to write +|\node{| at the beginning of each cell and |};| at the end of each +cell. The following style simplifies typesetting such matrices. + +\begin{itemize} + \itemstyle{matrix of nodes} + Conceptually, this style adds |\node{| at the beginning and |};| at + the end of each cell and sets the |anchor| of the node to + |base|. Furthermore, it adds the option |name| option to each node, + where the name is set to \meta{matrix name}|-|\meta{row + number}|-|\meta{column number}. For example, if the matrix has + the name |my matrix|, then the node in the upper left cell will get + the name |my matrix-1-1|. +\begin{codeexample}[] +\begin{tikzpicture} + \matrix (magic) [matrix of nodes] + { + 8 & 1 & 6 \\ + 3 & 5 & 7 \\ + 4 & 9 & 2 \\ + }; + + \draw[thick,red,->] (magic-1-1) |- (magic-2-3); +\end{tikzpicture} +\end{codeexample} + + You may wish to add options to certain nodes in the matrix. This can + be achieved in three ways. + \begin{enumerate} + \item You can modify, say, the + |row 2 column 5| option to pass special options to this particular + cell. + +\begin{codeexample}[] +\begin{tikzpicture} + \tikzstyle{row 2 column 3}=[red] + \matrix [matrix of nodes] + { + 8 & 1 & 6 \\ + 3 & 5 & 7 \\ + 4 & 9 & 2 \\ + }; +\end{tikzpicture} +\end{codeexample} + + \item At the beginning of a cell, you can use a special syntax. If a + cell starts with a vertical bar, then everything between this bar + and the next bar is passed on to the |node| command. +{\catcode`\|=12 +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of nodes] + { + 8 & 1 & 6 \\ + 3 & 5 & |[red]| 7 \\ + 4 & 9 & 2 \\ + }; +\end{tikzpicture} +\end{codeexample} +} + You can also use an option like \verb!|[red] (seven)|! to give a + different name to the node. + + Note that the |&| character also takes an optional argument, which + is an extra column skip. +{\catcode`\|=12 +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of nodes] + { + 8 &[1cm] 1 &[3mm] |[red]| 6 \\ + 3 & 5 & |[red]| 7 \\ + 4 & 9 & 2 \\ + }; +\end{tikzpicture} +\end{codeexample} +} + \item If your cell starts with a |\path| command or any command that + expands to |\path|, which includes |\draw|, |\node|, |\fill| and + other, the |\node{| startup code and the |};| code are + suppressed. This means that for this particular cell you can + provide a totally different contents. + +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of nodes] + { + 8 & 1 & 6 \\ + 3 & 5 & \node[red]{7}; \draw(0,0) circle(10pt);\\ + 4 & 9 & 2 \\ + }; +\end{tikzpicture} +\end{codeexample} + \end{enumerate} + \itemstyle{matrix of math nodes} + This style is almost the same as the previous style, only |$| is %$ + added at the beginning and at the end of each node, so math mode + will be switched on in all nodes. +{\catcode`\|=12 +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of math nodes] + { + a_8 & a_1 & a_6 \\ + a_3 & a_5 & |[red]| a_7 \\ + a_4 & a_9 & a_2 \\ + }; +\end{tikzpicture} +\end{codeexample} +} + \itemoption{nodes in empty cells}\opt{|=|\meta{true or false}} + When set to |true|, a node (with an empty contents) is put in empty + cells. Normally, empty cells are just, well, empty. The style can be + used together with both a |matrix of nodes| and a + |matrix of math nodes|. +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of math nodes,nodes={circle,draw}] + { + a_8 & & a_6 \\ + a_3 & & a_7 \\ + a_4 & a_9 & \\ + }; +\end{tikzpicture} +\end{codeexample} +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of math nodes,nodes={circle,draw},nodes in empty cells] + { + a_8 & & a_6 \\ + a_3 & & a_7 \\ + a_4 & a_9 & \\ + }; +\end{tikzpicture} +\end{codeexample} +\end{itemize} + + +\subsection{Delimiters} + +Delimiters are parantheses or braces to the left and right of a +formula or a matrix. The matrix library offers options for adding such +delimiters to a matrix. However, delimiters can actually be added to +any node that has the standard anchors |north|, |south|, |north west| +and so on. In particular, you can add delimiters to any |rectangle| +box. They are implemented by ``measuring the height'' of the node and +then adding a delimiter of the correct size to the left or right using +some after node magic. + +\begin{itemize} + \itemoption{left delimiter}|=|\meta{delimiter} + This option can be given to a any node that has the standard anchors + |north|, |south| and so on. The \meta{delimiter} can be any + delimiter that is acceptable to \TeX's |\left| command. +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of math nodes,left delimiter=(,right delimiter=\}] + { + a_8 & a_1 & a_6 \\ + a_3 & a_5 & a_7 \\ + a_4 & a_9 & a_2 \\ + }; +\end{tikzpicture} +\end{codeexample} + +\begin{codeexample}[] +\begin{tikzpicture} + \node [fill=red!20,left delimiter=(,right delimiter=\}] + {$\displaystyle\int_0^1 x\,dx$}; +\end{tikzpicture} +\end{codeexample} + + \itemstyle{every delimiter} + This style is executed for every delimiter. You can use it to shift + or color delimiters or do whatever. + + \itemstyle{every left delimiter} + This style is additionally executed for every left delimiter. +\begin{codeexample}[] +\begin{tikzpicture} + \tikzstyle{every left delimiter}=[red,xshift=1ex] + \tikzstyle{every right delimiter}=[xshift=-1ex] + \matrix [matrix of math nodes,left delimiter=(,right delimiter=\}] + { + a_8 & a_1 & a_6 \\ + a_3 & a_5 & a_7 \\ + a_4 & a_9 & a_2 \\ + }; +\end{tikzpicture} +\end{codeexample} + + \itemoption{right delimiter}|=|\meta{delimiter} + Works as above. + + \itemstyle{every right delimiter} + Works as above. + + \itemoption{above delimiter}|=|\meta{delimiter} + This option allows you to add a delimiter above the node. It is + implementing by rotating a left delimiter. +\begin{codeexample}[] +\begin{tikzpicture} + \matrix [matrix of math nodes,% + left delimiter=\|,right delimiter=\rmoustache,% + above delimiter=(,below delimiter=\}] + { + a_8 & a_1 & a_6 \\ + a_3 & a_5 & a_7 \\ + a_4 & a_9 & a_2 \\ + }; +\end{tikzpicture} +\end{codeexample} + + \itemstyle{every above delimiter} + Works as above. + + \itemoption{below delimiter}|=|\meta{delimiter} + works as above. + + \itemstyle{every below delimiter} + Works as above. +\end{itemize} + + + +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "pgfmanual-pdftex-version" +%%% End: |