You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code...

148 lines
4.5 KiB

% 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 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