% Copyright 2018 by Till Tantau % % This file may be distributed and/or modified % % 1. under the LaTeX Project Public License and/or % 2. under the GNU Public License. % % See the file doc/generic/pgf/licenses/LICENSE for more details. \ProvidesFileRCS{tikzlibrarybackgrounds.code.tex} % Layers \pgfdeclarelayer{background}% \pgfsetlayers{background,main}% % Switch command \tikzset{on background layer/.style={ execute at begin scope={% \pgfonlayer{background}% \let\tikz@options=\pgfutil@empty% \tikzset{every on background layer/.try,#1}% \tikz@options}, execute at end scope={\endpgfonlayer} } }% % Main style \tikzset{background rectangle/.style= {draw}}% \tikzset{background top/.style= {draw}}% \tikzset{background bottom/.style= {draw}}% \tikzset{background left/.style= {draw}}% \tikzset{background right/.style= {draw}}% \tikzset{background grid/.style= {help lines,draw}}% \tikzoption{inner frame sep}{\def\tikz@framexsep{#1}\def\tikz@frameysep{#1}}% \tikzoption{inner frame xsep}{\def\tikz@framexsep{#1}}% \tikzoption{inner frame ysep}{\def\tikz@frameysep{#1}}% \def\tikz@framexsep{1ex}% \def\tikz@frameysep{1ex}% \tikzoption{outer frame sep}{\def\tikz@outerframexsep{#1}\def\tikz@outerframeysep{#1}}% \tikzoption{outer frame xsep}{\def\tikz@outerframexsep{#1}}% \tikzoption{outer frame ysep}{\def\tikz@outerframeysep{#1}}% \def\tikz@outerframexsep{0ex}% \def\tikz@outerframeysep{0ex}% % Looseness \tikzset{loose background/.style= {inner frame sep=2ex}}% \tikzset{tight background/.style= {inner frame sep=0ex}}% % Showing background styles \tikzset{framed/.style= {style=show background rectangle}}% \tikzset{gridded/.style= {style=show background grid}}% \tikzset{show background rectangle/.style={execute at end picture=\tikz@background@framed}}% \tikzset{show background top/.style= {execute at end picture=\tikz@background@top}}% \tikzset{show background bottom/.style= {execute at end picture=\tikz@background@bottom}}% \tikzset{show background left/.style= {execute at end picture=\tikz@background@left}}% \tikzset{show background right/.style= {execute at end picture=\tikz@background@right}}% \tikzset{show background grid/.style= {execute at end picture=\tikz@background@grid}}% % Implementation \def\tikz@background@save{% \pgftransformreset% \ifx\tikz@bg@minx\@undefined% \pgf@xb=\pgf@picminx% \pgf@yb=\pgf@picminy% \pgf@xc=\pgf@picmaxx% \pgf@yc=\pgf@picmaxy% \pgfmathsetlength{\pgf@x}{\tikz@framexsep}% \pgfmathsetlength{\pgf@y}{\tikz@frameysep}% \advance\pgf@xb by-\pgf@x% \advance\pgf@yb by-\pgf@y% \advance\pgf@xc by\pgf@x% \advance\pgf@yc by\pgf@y% \edef\tikz@bg@minx{\the\pgf@xb}% \edef\tikz@bg@miny{\the\pgf@yb}% \edef\tikz@bg@maxx{\the\pgf@xc}% \edef\tikz@bg@maxy{\the\pgf@yc}% \pgfmathsetlength{\pgf@x}{\tikz@outerframexsep}% \pgfmathsetlength{\pgf@y}{\tikz@outerframeysep}% \advance\pgf@xb by-\pgf@x% \advance\pgf@yb by-\pgf@y% \advance\pgf@xc by\pgf@x% \advance\pgf@yc by\pgf@y% \edef\tikz@bg@outerminx{\the\pgf@xb}% \edef\tikz@bg@outerminy{\the\pgf@yb}% \edef\tikz@bg@outermaxx{\the\pgf@xc}% \edef\tikz@bg@outermaxy{\the\pgf@yc}% \fi% }% \def\tikz@background@framed{% \tikz@background@save% \pgfonlayer{background} \path[style=background rectangle] (\tikz@bg@minx,\tikz@bg@miny) rectangle (\tikz@bg@maxx,\tikz@bg@maxy); \endpgfonlayer }% \def\tikz@background@top{% \tikz@background@save% \pgfonlayer{background} \path[style=background top] (\tikz@bg@outerminx,\tikz@bg@maxy) -- (\tikz@bg@outermaxx,\tikz@bg@maxy); \endpgfonlayer }% \def\tikz@background@bottom{% \tikz@background@save% \pgfonlayer{background} \path[style=background bottom] (\tikz@bg@outerminx,\tikz@bg@miny) -- (\tikz@bg@outermaxx,\tikz@bg@miny); \endpgfonlayer }% \def\tikz@background@left{% \tikz@background@save% \pgfonlayer{background} \path[style=background left] (\tikz@bg@minx,\tikz@bg@outerminy) -- (\tikz@bg@minx,\tikz@bg@outermaxy); \endpgfonlayer }% \def\tikz@background@right{% \tikz@background@save% \pgfonlayer{background} \path[style=background right] (\tikz@bg@maxx,\tikz@bg@outerminy) -- (\tikz@bg@maxx,\tikz@bg@outermaxy); \endpgfonlayer }% \def\tikz@background@grid{% \tikz@background@save% \pgfonlayer{background} \path[style=background grid] (\tikz@bg@minx,\tikz@bg@miny) grid (\tikz@bg@maxx,\tikz@bg@maxy); \endpgfonlayer }% \endinput