%% %% This is file `drawmatrix.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% drawmatrix.dtx (with options: `package') %% %% This is a generated file. %% %% Copyright (C) 2016 by Elmar Peise %% %% This package is distributed under the MIT license. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{drawmatrix}[2016/12/20 v1.4.0 drawmatrix package] \RequirePackage{tikz} \newif\ifdrawmatrix@externalize \pgfkeys{ drawmatrix/.is family, drawmatrix/.cd, picture/.style={}, path/.style={}, baseline/.style={picture/.append style={baseline=(drawmatrix #1)}}, scale/.style={path/.append style={scale=#1}}, x/.style={path/.append style={x=#1}}, y/.style={path/.append style={y=#1}}, baseline=label.base, bbox/.style={}, bbox style/.style={bbox/.append style={#1}}, bbox height/.initial, bbox width/.initial, bbox size/.style={bbox height=#1, bbox width=#1}, offset height/.initial=0, offset width/.initial=0, offset/.style={offset height=#1, offset width=#1}, height/.initial=1, width/.initial=1, size/.style={height=#1, width=#1}, lower bandwidth/.initial, upper bandwidth/.initial, bandwidth/.style={lower bandwidth=#1, upper bandwidth=#1}, lower banded/.style={lower bandwidth=.3}, upper banded/.style={upper bandwidth=.3}, banded/.style={lower banded, upper banded}, lower/.style={upper bandwidth=0}, upper/.style={lower bandwidth=0}, diag/.style={lower, upper}, label text/.initial, label/.style={}, label pos/.style={label/.append style={at=(drawmatrix #1)}}, label pos=bbox.center, label anchor/.style={label/.append style={anchor=#1}}, label anchor=mid, label base/.initial, label outer/.style={}, label base anchor/.style={label outer/.append style={ anchor=#1, at=(drawmatrix label.#1) }}, label base anchor=base west, exponent/.style={ label base/.expanded=\pgfkeysvalueof{/drawmatrix/label text}, label text/.append=^{#1} }, drawmatrix/.style={}, .unknown/.code={% \let\dm@currname\pgfkeyscurrentname% \let\dm@currval\pgfkeyscurrentvalue% \ifx#1\pgfkeysnovalue\pgfkeysalso{ drawmatrix/.append style/.expand once={\dm@currname} }\else\pgfkeysalso{ drawmatrix/.append style/.expand twice={% \expandafter\dm@currname\expandafter=\dm@currval% } }\fi% }, every picture/.style={}, every bbox/.style={ name=drawmatrix bbox, inner sep=0 }, every drawmatrix/.style={ fill=white, draw=gray }, every label/.style={ name=drawmatrix label, outer sep=0, inner sep=0 }, every node/.style={ name=drawmatrix matrix, outer sep=0, inner sep=0, anchor=north west, at=(drawmatrix north west) }, externalize/.is if=drawmatrix@externalize, externalize=true } \newcommand\drawmatrixset[1]{\pgfqkeys{/drawmatrix}{#1}} \newcommand\drawmatrix[2][]{{% \drawmatrixset{ label text={#2}, #1, label text/.get=\dm@labeltext, height/.get=\dm@height, width/.get=\dm@width, lower bandwidth/.get=\dm@lowerbandwidth, upper bandwidth/.get=\dm@upperbandwidth, offset height/.get=\dm@offsetheight, offset width/.get=\dm@offsetwidth, bbox height/.get=\dm@bboxheight, bbox width/.get=\dm@bboxwidth, label base/.get=\dm@labelbase }% \ifmmode\edef\dm@labeltext{$\dm@labeltext$}\fi% \expandafter\ifx\dm@labelbase\pgfkeysnovalue\else% \let\dm@labeltextouter\dm@labeltext% \edef\dm@labelbase{% \ifmmode$\dm@labelbase$\else\dm@labelbase\fi% }% \def\dm@labeltext{\phantom{\dm@labelbase}}% \fi% \ifdrawmatrix@externalize\else% \ifx\tikz@library@external@loaded\undefined\else% \tikzset{external/export=false}% \fi% \fi% \begin{tikzpicture}[/drawmatrix/every picture, /drawmatrix/picture] \path[/drawmatrix/path] (\dm@width, \dm@height); \pgfgetlastxy\dm@width\dm@height \path[/drawmatrix/path] (\dm@offsetwidth, \dm@offsetheight); \pgfgetlastxy\dm@offsetwidth\dm@offsetheight \pgfmathsetlengthmacro\dm@minsize{min(\dm@width, \dm@height)} \pgfmathsetlengthmacro\dm@zero{0.0} \expandafter\ifx\dm@lowerbandwidth\pgfkeysnovalue \def\dm@lowerbandwidth{\dm@minsize} \else \path[/drawmatrix/path] (\dm@lowerbandwidth, 0); \pgfgetlastxy\dm@lowerbandwidth\dm@zero \fi \expandafter\ifx\dm@upperbandwidth\pgfkeysnovalue \def\dm@upperbandwidth{\dm@minsize} \else \path[/drawmatrix/path] (0, \dm@upperbandwidth); \pgfgetlastxy\dm@zero\dm@upperbandwidth \fi \pgfmathsetlengthmacro\dm@lowerbandwidth{ min(\dm@minsize, \dm@lowerbandwidth) } \pgfmathsetlengthmacro\dm@upperbandwidth{ min(\dm@minsize, \dm@upperbandwidth) } \expandafter\ifx\dm@bboxheight\pgfkeysnovalue \pgfmathsetlengthmacro\dm@bboxheight{ \dm@height + \dm@offsetheight } \else \path[/drawmatrix/path] (0, \dm@bboxheight); \pgfgetlastxy\dm@zero\dm@bboxheight \fi \expandafter\ifx\dm@bboxwidth\pgfkeysnovalue \pgfmathsetlengthmacro\dm@bboxwidth{ \dm@width + \dm@offsetwidth } \else \path[/drawmatrix/path] (\dm@bboxwidth, 0); \pgfgetlastxy\dm@bboxwidth\dm@zero \fi \pgfresetboundingbox \node[/drawmatrix/every bbox, /drawmatrix/bbox, minimum height=\dm@bboxheight, minimum width=\dm@bboxwidth] {}; \path (drawmatrix bbox.north west) ++(\dm@offsetwidth, -\dm@offsetheight) ++(.5\pgflinewidth, -.5\pgflinewidth) coordinate (drawmatrix north west) ++(\dm@width, 0) +(-\dm@minsize + \dm@upperbandwidth, 0) coordinate (drawmatrix north) +(0, -\dm@minsize + \dm@upperbandwidth) coordinate (drawmatrix east) ++(0, -\dm@height) coordinate (drawmatrix south east) ++(-\dm@width, 0) +(\dm@minsize - \dm@lowerbandwidth, 0) coordinate (drawmatrix south) +(0, \dm@minsize - \dm@lowerbandwidth) coordinate (drawmatrix west); \node[/drawmatrix/every node, minimum height=\dm@height, minimum width=\dm@width] {}; \filldraw[/drawmatrix/every drawmatrix, /drawmatrix/drawmatrix] (drawmatrix north west) \ifx\dm@upperbandwidth\dm@zero \ifx\dm@width\dm@minsize\else -- (drawmatrix north) \fi \ifx\dm@height\dm@minsize\else -- (drawmatrix east) \fi \else -- (drawmatrix north) \ifx\dm@upperbandwidth\dm@minsize\else -- (drawmatrix east) \fi \fi -- (drawmatrix south east) \ifx\dm@lowerbandwidth\dm@zero \ifx\dm@width\dm@minsize\else -- (drawmatrix south) \fi \ifx\dm@height\dm@minsize\else -- (drawmatrix west) \fi \else -- (drawmatrix south) \ifx\dm@lowerbandwidth\dm@minsize\else -- (drawmatrix west) \fi \fi -- cycle; \node[/drawmatrix/every label, /drawmatrix/label] {\dm@labeltext}; \expandafter\ifx\dm@labelbase\pgfkeysnovalue\else \node[/drawmatrix/every label, /drawmatrix/label, /drawmatrix/label outer] {\dm@labeltextouter}; \fi \end{tikzpicture}% }} \endinput %% %% End of file `drawmatrix.sty'.