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.
98 lines
2.8 KiB
98 lines
2.8 KiB
% Copyright 2015 by Mark Wibrow
|
|
%
|
|
% 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.
|
|
|
|
\usepgflibrary{patterns.meta}%
|
|
|
|
\tikzset{%
|
|
pattern color/.code=\edef\tikz@pattern@color{#1},
|
|
pattern/.code={%
|
|
\edef\tikz@temp{#1}%
|
|
\ifx\tikz@temp\tikz@nonetext%
|
|
\tikz@addmode{\tikz@mode@fillfalse}%
|
|
\else%
|
|
\ifx\tikz@temp\pgfutil@empty%
|
|
\else%
|
|
\tikz@addoption{\pgfsetfillpattern{#1}{\tikz@pattern@color}}%
|
|
\def\tikz@pattern{#1}%
|
|
\fi%
|
|
\tikz@addmode{\tikz@mode@filltrue}%
|
|
\fi%
|
|
}
|
|
}%
|
|
|
|
\def\tikz@pattern@color{black}%
|
|
\def\tikz@pattern{}%
|
|
|
|
\tikzset{patterns/.cd,
|
|
.unknown/.code={%
|
|
\let\tikz@pat@key=\pgfkeyscurrentname%
|
|
\pgfkeys{/pgf/patterns/\tikz@pat@key/.try={#1}}%
|
|
},
|
|
bottom left/.style={/pgf/patterns/bottom left={\tikz@scan@one@point\pgf@pat@process#1}},
|
|
top right/.style={/pgf/patterns/top right={\tikz@scan@one@point\pgf@pat@process#1}},
|
|
bounding box/.style args={#1(#2)#3and#4(#5)#6}{%
|
|
/tikz/patterns/bottom left={(#2)},
|
|
/tikz/patterns/top right={#4(#5)},
|
|
},
|
|
tile size/.style={/pgf/patterns/tile size={\tikz@scan@one@point\pgf@pat@process#1}},
|
|
tile transformation/.style={/pgf/patterns/tile transformation={%
|
|
\let\tikz@transform=\relax\pgfkeys{/tikz/.cd,#1}}%
|
|
},
|
|
infer tile bounding box/.code={
|
|
\def\pgf@pat@codeafter{%
|
|
\xdef\tikz@pat@installbb{%
|
|
\noexpand\pgfkeys{/tikz/patterns/bounding box={%
|
|
(\the\pgf@picminx-#1,\the\pgf@picminy-#1) and
|
|
(\the\pgf@picmaxx+#1,\the\pgf@picmaxy+#1)
|
|
},
|
|
/tikz/patterns/tile size={%
|
|
(\the\pgf@picmaxx-\the\pgf@picminx,
|
|
\the\pgf@picmaxy-\the\pgf@picminy)}}}%
|
|
}%
|
|
\let\pgf@pat@declarepost=\tikz@pat@installbb%
|
|
},
|
|
infer tile bounding box/.default=0pt,
|
|
}%
|
|
|
|
\def\tikzdeclarepattern#1{%
|
|
\begingroup%
|
|
\def\pgf@pat@codebefore{%
|
|
\let\tikz@transform=\relax%
|
|
\pgftransformreset% <- Hmm?
|
|
\tikz@declarepattern@install%
|
|
\ifnum\pgf@pat@type=0\relax%
|
|
\let\pgfsetstrokecolor=\pgfutil@gobble%
|
|
\let\pgfsetfillcolor=\pgfutil@gobble%
|
|
\fi%
|
|
\def\tikz@fig{%
|
|
\tikzerror{You cannot use nodes inside a pattern}%
|
|
}%
|
|
\tikzset{pattern/.code={\tikzerror{You cannot nest patterns}},
|
|
pattern color/.style={pattern}}%
|
|
}%
|
|
\pgfdeclarepattern{/tikz/patterns/.cd,#1}%
|
|
\endgroup%
|
|
}%
|
|
|
|
\def\tikz@declarepattern@install{%
|
|
\let\tikz@compat@color@set=\tikz@compat@color@set@insidepatttern%
|
|
\tikz@installcommands%
|
|
}%
|
|
|
|
\let\tikz@compat@color@set@orig=\tikz@compat@color@set
|
|
\def\tikz@compat@color@set@insidepatttern#1{%
|
|
\tikz@compat@color@set@orig{#1}%
|
|
\pgfsetfillcolor{#1}\pgfsetstrokecolor{#1}%
|
|
}%
|
|
|
|
|
|
%%% Local Variables:
|
|
%%% mode: latex
|
|
%%% TeX-master: t
|
|
%%% End:
|
|
|