%<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> % % Copyright 2010 by Jakob Voss % % This file is based on works by Till Tantau. It contains additions and/or % modifications by Jakob Voss and Rouben Rostamian. It 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 LICENSE for more details. %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pgfmanualstyle}[2010/01/24 v0.1 pgfmanualstyle] \RequirePackage{tikz}[2009/09/04] %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> % code from pgfmanual-en-macros.tex %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> \definecolor{graphicbackground}{rgb}{0.96,0.96,0.8} \definecolor{codebackground}{rgb}{0.8,0.8,1} \makeatletter \begingroup \catcode`|=0 \catcode`[= 1 \catcode`]=2 \catcode`\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|find@example#1\end{codeexample}[|endofcodeexample[#1]] |endgroup % \begingroup \catcode`\^=7 \catcode`\^^M=13 \catcode`\ =13% \gdef\returntospace{\catcode`\ =13\def {\space}\catcode`\^^M=13\def^^M{}}% \endgroup % \begingroup \catcode`\%=13 \catcode`\^^M=13 \gdef\commenthandler{\catcode`\%=13\def%{\@gobble@till@return}} \gdef\@gobble@till@return#1^^M{} \gdef\typesetcomment{\catcode`\%=13\def%{\@typeset@till@return}} \gdef\@typeset@till@return#1^^M{{\def%{\char`\%}\textsl{\char`\%#1}}\par} \endgroup % \define@key{codeexample}{width}{\setlength\codeexamplewidth{#1}} \define@key{codeexample}{graphic}{\colorlet{graphicbackground}{#1}} \define@key{codeexample}{code}{\colorlet{codebackground}{#1}} \define@key{codeexample}{execute code}{\csname code@execute#1\endcsname} \define@key{codeexample}{code only}[]{\code@executefalse} \define@key{codeexample}{pre}{\def\code@pre{#1}} \define@key{codeexample}{post}{\def\code@post{#1}} % \def\code@pre{} \def\code@post{} % \newdimen\finalcodeexamplewidth % XXX \newdimen\codeexamplewidth \newif\ifcode@execute \newbox\codeexamplebox \def\codeexample[#1]{% \code@executetrue \setlength\codeexamplewidth{4cm}% \addtolength\codeexamplewidth{7pt}% \setkeys{codeexample}{#1}% \parindent0pt \begingroup% \par% \medskip% \let\do\@makeother% \dospecials% \obeylines% \@vobeyspaces% \catcode`\%=13% \catcode`\^^M=13% \find@example} \def\endofcodeexample#1{% \endgroup% \ifcode@execute% \setbox\codeexamplebox=\hbox{% {% {% \returntospace% \commenthandler% \xdef\code@temp{#1}% removes returns and comments }% \colorbox{graphicbackground}{\color{black}\ignorespaces% \code@pre\expandafter\scantokens\expandafter{\code@temp\ignorespaces}\code@post\ignorespaces}% }% }% \ifdim\wd\codeexamplebox>\codeexamplewidth% \def\code@start{\par}% \def\code@flushstart{}\def\code@flushend{}% \def\code@mid{\parskip2pt\par\noindent}% %\def\code@width{\linewidth-6pt}% XXX \setlength\finalcodeexamplewidth{\linewidth} % XXX \addtolength\finalcodeexamplewidth{-6pt} % XXX \def\code@end{}% \else% \def\code@start{% \linewidth=\textwidth% \parshape \@ne 0pt \linewidth \leavevmode% \hbox\bgroup}% \def\code@flushstart{\hfill}% \def\code@flushend{\hbox{}}% \def\code@mid{\hskip6pt}% %\def\code@width{\linewidth-12pt-\codeexamplewidth}% XXX \setlength\finalcodeexamplewidth{\linewidth} % XXX \addtolength\finalcodeexamplewidth{-12pt} % XXX \addtolength\finalcodeexamplewidth{-\codeexamplewidth} % XXX \def\code@end{\egroup}% \fi% \code@start% \noindent% \begin{minipage}[t]{\codeexamplewidth}\raggedright \hrule width0pt% \footnotesize\vskip-1em% \code@flushstart\box\codeexamplebox\code@flushend% \vskip-1ex \leavevmode% \end{minipage}% \else% \def\code@mid{\par} %\def\code@width{\linewidth-6pt}% XXX \setlength\finalcodeexamplewidth{\linewidth} % XXX \addtolength\finalcodeexamplewidth{-6pt} % XXX \def\code@end{} \fi% \code@mid% \colorbox{codebackground}{% % \begin{minipage}[t]{\code@width}% XXX \begin{minipage}[t]{\the\finalcodeexamplewidth}% {% \let\do\@makeother \dospecials \frenchspacing\@vobeyspaces \normalfont\ttfamily\footnotesize \typesetcomment% \@tempswafalse \def\par{% \if@tempswa \leavevmode \null \@@par\penalty\interlinepenalty \else \@tempswatrue \ifhmode\@@par\penalty\interlinepenalty\fi \fi}% \obeylines \everypar \expandafter{\the\everypar \unpenalty}% #1} \end{minipage}}% \code@end% \par% \medskip \end{codeexample} } \def\endcodeexample{} %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> % code from various pgf/tikz source files and own modifications or additions %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> \newenvironment{pgfmanualentry}{\list{}{\leftmargin=2em\itemindent-\leftmargin\def\makelabel##1{\hss##1}}}{\endlist} \newcommand\pgfmanualentryheadline[1]{\itemsep=0pt\parskip=0pt\item\strut{#1}\par\topsep=0pt} \newcommand\pgfmanualbody{\parskip3pt} \definecolor{darkred}{rgb}{0.75,0,0} \definecolor{green}{rgb}{0,.75,0} \def\bschar{{\char`\\}} \newcommand{\stylekeyheadline}[2][\pgfutil@empty]{% \pgfmanualentryheadline{\texttt{\color{darkred}/tikz/#2}% \def\pgf@test{#1}% \ifx\pgf@test\pgfutil@empty% \else% \texttt{=}#1% \fi% \index{#2@\texttt{#2} key}}% } \newenvironment{stylekey}[2][]{ \begin{pgfmanualentry} \stylekeyheadline[#1]{#2} \pgfmanualbody }{ \end{pgfmanualentry} } \newcommand{\commandentry}[2][]{% \texttt{\color{darkred}\textbackslash #2}#1% \index{#2@\texttt{\textbackslash #2}} } \newenvironment{command}[2][]{ \begin{pgfmanualentry} \pgfmanualentryheadline{\commandentry{#2}{#1}} \pgfmanualbody }{ \end{pgfmanualentry} } \newcommand\arrowtip[1]{ \texttt{#1}\index{Arrow tips!mandatory@\protect\texttt{mandatory}}% } \newcommand{\opt}[1]{\color{green}#1} \newcommand{\meta}[1]{$\langle$\textit{#1}$\rangle$} \newcommand{\marg}[1]{\texttt{\textbraceleft}\meta{#1}\texttt{\textbraceright}} \newcommand{\oarg}[1]{\texttt{\textbraceleft} \texttt{\textbraceright}} % Global styles: \tikzset{ shape example/.style={ color=black!30, draw, fill=yellow!30, line width=.25cm, % .5 inner xsep=1.25cm, % 2.5 inner ysep=0.25cm} % 0.5 } \def\tikzname{Ti\emph{k}Z} \makeatother %%% Enable '|' to type verbatim \usepackage{fancyvrb} \DefineShortVerb{\|} %<–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––> \endinput