diff options
author | Karl Berry <karl@freefriends.org> | 2023-02-21 20:44:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-02-21 20:44:29 +0000 |
commit | 757d7f753a95c21c0bffb7626e63d29395714f26 (patch) | |
tree | 34a029ca51cccf8bd08064e59519bdd00d0ef403 /Master | |
parent | 93cc8f93f278f65eb21d9db2aeef31d38bf364aa (diff) |
pgf-periodictable (21feb23)
git-svn-id: svn://tug.org/texlive/trunk@66010 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
14 files changed, 1768 insertions, 24 deletions
diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/README b/Master/texmf-dist/doc/latex/pgf-periodictable/README index ea34180f6b4..719079d5df7 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/README +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/README @@ -1,4 +1,4 @@ -This is pgf-PeriodicTable, version 1.0.1 (2022/11/08). +This is pgf-PeriodicTable, version 2.0.0 (2023/02/20). The purpose of this package is to provide the Periodic Table of Elements in a simple way. It relies on pgf/TikZ to offer a full or partial periodic table with @@ -20,6 +20,13 @@ ____________________________________________________________ ____________________________________________________________ Major changes: +*** v2.0.0 (20/02/2023) *** +New command \usepgfPTlibrary +New library 'colorschemes' for easy creation of color schemes with the commands: +- \pgfPTGroupColors +- \pgfPTPeriodColors +- \pgfPTCScombine +- \pgfPTCSwrite *** v1.0.1 (08/11/2022) *** Now compatible with pdfLaTex, LuaLaTeX and XeLaTeX engines. Fixed the 'String contains an invalid utf-8 sequence...' error. diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_DesignCS.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_DesignCS.tex index 6ef111febd7..323db65f630 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_DesignCS.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_DesignCS.tex @@ -1,7 +1,8 @@ -\hypertarget{colorscheme}{There are two} ways to make a new color scheme: +\hypertarget{colorscheme}{There are three} ways to make a new color scheme: \begin{itemize} \item[--]with the command \pgfPTMmacro{pgfPTnewColorScheme}[] -\item[--]and using the \textit{script} in the file \mbox{\href{run:pgfPTcolorSchemes.html}{pgfPTcolorSchemes.html}} +\item[--]using the \textit{script} in the file \mbox{\href{run:pgfPTcolorSchemes.html}{pgfPTcolorSchemes.html}} +\item[--]with the commands provided by the \hyperlink{lib:colorschemes}{colorschemes library} (see the \hyperlink{sec:lib}{libraries section}). \end{itemize}\ % \\ [-44pt]\ % \def\tmpSection{\textcolor{blue!50!black}{\textbackslash pgfPTnewColorScheme}}% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Examples.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Examples.tex index 8aa670a6f6a..bce897a17ce 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Examples.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_Examples.tex @@ -42,6 +42,21 @@ The following examples could be used for students or for any other purposes. ]% \\ [-4pt]\pgfPTMmacrobox{pgfPT}[eConfignl color=blue!70!black,Ar precision=2,DiscC font=\string\fontsize{4}{4}\string\selectfont,DiscY font=\string\fontsize{4}{4}\string\selectfont\string\bfseries]% \\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[eConfignl color=blue!70!black,Ar precision=2,DiscC font=\fontsize{4}{4}\selectfont,DiscY font=\fontsize{4}{4}\selectfont\bfseries]}}% +\newpage% +\pgfPTresetcell% +\pgfPTPeriodColors{period}{P5=red!20}% +\pgfPTGroupColors{group}{G14=green!20}% +\pgfPTCScombine{period,group,mix}% +\pgfPTMlibexample{% +\textbf{\bs{usepgfPTlibrary}\lb\red{colorschemes}\rb}% +\\ \bs{pgfPTPeriodColors}\lb\red{period}\rb\lb\red{P5=red!20}\rb% +\\ \bs{pgfPTGroupColors}\lb\red{group}\rb\lb\red{G14=green!20}\rb% +\\ \bs{pgfPTCScombine}\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.6}{\pgfPT[back color scheme=mix,show title=false]}% +\\ In the Periodic Table, a row is called a \textbf{\textcolor{red!40}{period}} and a column is called a \textbf{\textcolor{green!40}{group}}. +}% ----- \newpage\ % \vfill% \pgfPTbuildcell(8,3)[% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex index cccd7cb127b..5673c0d2283 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex @@ -73,7 +73,7 @@ Sets the first ionization energy and the electroaffnity precision, \ie, the deci \\ \textit{Therefore the values provided to this key should be any integer between -1 and 2, \ie, -1, 0, 1 or 2. Any other integer provided will be processed as -1.}};} } \vfill%\\ [10pt] -\pgfPTMbuildcellstyle{myE}(5,3)[(1;1-2;Z),(1;3;radio),(2-3;1.5-3.5;CS),(4;1-3;name),(5;1-2.5;Ei), % +\pgfPTresetstyle\pgfPTMbuildcellstyle{myE}(5,3)[(1;1-2;Z),(1;3;radio),(2-3;1.5-3.5;CS),(4;1-3;name),(5;1-2.5;Ei), % (5;2.5-3;eaff)]% \pgfPTbuildcellstyle{myE}(5,3)[(1;1-2;Z),(1;3;radio),(2-3;1.5-3.5;CS),(4;1-3;name),(5;1-2.5;Ei),(5;2.5-3;eaff)]% \\ [-4pt]\pgfPTMmacrobox[l]{pgfPTstyle}[Z list={1,...,54},cell style=myE,show title=false]% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_commands.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_commands.tex index a191a7cfa64..dde2c854d7f 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_commands.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_commands.tex @@ -132,7 +132,7 @@ It is possible to locally override the \textit{global style} defined: \\ [5pt]\pgfPTMline% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \\ [-32pt]\ % -\def\tmpSection{\bs{pgfPTnewColorScheme}\lb\red{name}\rb\lp\red{color list}\rp}% +\def\tmpSection{\bs{pgfPTnewColorScheme}\lb\red{name}\rb\lb\red{color list}\rb}% \subsection*{}{\normalfont\large\bfseries\raisebox{1.25pt}{$\mathbf{\blacktriangleright}$}\ Utilization of \tmpSection}% \label{command:pgfPTnewColorScheme}\addcontentsline{toc}{subsection}{\texorpdfstring{\tmpSection{}}{\textbackslash pgfPTnewColorScheme}}% \index{COMMANDS@\textbf{COMMANDS}!\textbackslash pgfPTnewColorScheme}% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_generallayout.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_generallayout.tex index 8ccd2a3bd64..58077991453 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_generallayout.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_generallayout.tex @@ -162,7 +162,7 @@ elements in molecular models. The scheme is named after the CPK molecular models \item[\raisebox{1pt}{\scriptsize$\vartriangleright\,$}]\sq{Blocks}, for showing the elements in each block of the Periodic Table with the same color. \item[\raisebox{1pt}{\scriptsize$\vartriangleright\,$}]\sq{solid}, to show the background of each cell of the Periodic Table with the same color specified by the key \sq{\red{back color}}. \end{itemize} -\item any \textbf{user defined} name via \bs{pgfPTnewColorScheme}\lb\red{name}\rb\lp\red{color list}\rp% +\item any \textbf{user defined} name via \bs{pgfPTnewColorScheme}\lb\red{name}\rb\lb\red{color list}\rb% \end{itembar}% }% \\ [-5pt]\pgfPTendoption% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_libCS.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_libCS.tex new file mode 100644 index 00000000000..9fedcc11f80 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_libCS.tex @@ -0,0 +1,353 @@ +%\subsection{\texorpdfstring{\ding{224} Color Schemes Library}{colorschemes}} +\subsection*{}{\normalfont\large\bfseries\raisebox{1.25pt}{$\mathbf{\blacktriangleright}$}\ Color Schemes Library}% +\label{command:pgfPTpreviewcell}\addcontentsline{toc}{subsection}{\texorpdfstring{Color Schemes Library}{colorschemes}}% +\index{LIBRARIES@\textbf{\cyan{LIBRARIES}}!colorschemes@\textbf{\red{Color Schemes Library}}}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Color Schemes Library +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\\ [4pt]\pgfPTlib{colorschemes}{This library extends the features provided by the command \bs{\mbox{pgfPTnewColorScheme}}. +It defines a set of commands that automatically generate a new color scheme. +\begin{itemize} +\item\bs{pgfPTGroupColors}\lb\red{name of the new color scheme}\rb\lb\red{list of colors,options}\rb% +\item\bs{pgfPTPeriodColors}\lb\red{name of the new color scheme}\rb\lb\red{list of colors,options}\rb% +\item\bs{pgfPTCScombine}\lp\red{proportion,mode}\rp\lb\red{name of the first color scheme,name of the second color scheme,name of the new color scheme}\rb% +\item\bs{pgfPTCSwrite}\lp\red{filename}\rp\lb\red{list of color schemes names}\rb% +\end{itemize} +Color arguments for this library's commands can use both the base package syntax -- \red{namedColor} or \red{namedColorA!\#\#!namedColorB<!\#\#><!named\myldots>} -- or any color model supported by the \txttt{xcolor} package\footnote{See \textit{Table 3: Supported color models} on page 10 of the documentation of \href{https://ctan.org/pkg/xcolor}{xcolor} v2.14 2022/06/12} using the \textit{special syntax} \red{*[model:values]}, \eg, \red{*[rgb:.5;.2;.3]} or \red{*[cmyk:.5;.2;.3;.3]} or \red{*[HTML:5FA287]}. \textbf{The values for the individual color components of a color specified this way must be separated by semicolons instead of commas}, except for the HTML, Gray and wave color models as explained in the \txttt{xcolor} package. +}% \pgfPTlib +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tmpSectionI{\bs{pgfPTGroupColors}}% +\def\tmpSection{\bs{pgfPTGroupColors}\lp\red{default group color}\rp\lb\red{name of the new color scheme}\rb\lb\red{list of \mbox{colors},options}\rb}% +\subsubsection*{}{\pgfPTMlibsubsubsection{\tmpSection}}% +\label{command:pgfPTGroupColors}\addcontentsline{toc}{subsubsection}{\texorpdfstring{\tmpSectionI{}}{\textbackslash pgfPTGroupColors}}% +\index{LIBRARIES@\textbf{\cyan{LIBRARIES}}!colorschemes@\textbf{\red{Color Schemes Library}}!\tmpSectionI}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\\ [10pt]This command \textbf{creates a Color Scheme} with the name \red{name of the new color scheme}. \textbf{Group colors} can be configured in three different ways: +\vspace{4pt} +\begin{itemlist} +\item\textbf{setting the colors one by one}, using the \textit{\red{key=value}} mechanism in the \red{list of colors}. For example: +\mymfbox{\bs{pgfPTGroupColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{G1=red,G2=red!50,G3=orange,<\myldots>,G18=blue},options}\rb} +\dcyan{\textit{This will set the specified color for each group. If no color is specified for a group, \red{default group color} will be used}.} +\\ [3pt]\blue{\textbf{NOTE}}: \red{default group color} is initially set to white. +\item\textbf{defining a gradient} using the keys \red{left color=<color>}, \red{middle color=<color>} and \red{right color=<color>} as the \red{list of colors}. Note that all the keys are optional, but at least one of them is required. This produces a gradient starting from group 1, with \textit{left color}, to group 18, with \textit{right color}. If the \textit{middle color} key is used then the gradient starts at group 1 with \textit{left color}, goes to the middle position of the groups (between groups 9 and 10) with \textit{middle color} and ends at group 18 with \textit{right color}. For example: +\mymfbox{\bs{pgfPTGroupColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{left color=red,right color=blue},options}\rb} +\dcyan{\textit{defines a gradient from red (group 1) to blue (group 18)}.} +\item\textbf{defining a custom gradient} as the \red{list of colors} by using the \textit{\red{key=value}} mechanism inside the \red{gradient} key. For example: +\mymfbox{\bs{pgfPTGroupColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{gradient=\{G1=red,G4=red!50,G18=blue\}},options\rb}} +\dcyan{\textit{defines a gradient from red (group 1) to red!50 (group 4) and to blue (group 18)}.} +\end{itemlist} +\vspace{10pt} +The \red{options} available to this command are: +\vspace{4pt} +\begin{itemlist} +\item\red{H=<color>}, sets the color of the \textit{hydrogen} cell. If not set, group 1's color will be used. If set, the color of the \textit{hydrogen} cell won't be affected by period blending. +\item\red{La=<color>}, sets the color of the \textit{lanthanum} cell. If not set, group 3's color will be used. +\item\red{Lanta=<color>}, sets the color of the \textit{lanthanoids} cells. If not set, \textit{lanthanum}'s color will be used. +\item\red{Ac=<color>}, sets the color of the \textit{actinium} cell. If not set, group 3's color will be used. +\item\red{Actin=<color>}, sets the color of the \textit{actinoids} cells. If not set, \textit{actinium}'s color will be used. +\item\red{period blending=\{color=<color>, percentage=<positive or negative integer>, mode=<add|sub|linear>\}}, performs a \textit{mode} blend over the periods up to the specified percentage with the provided color. +\\ [3pt]\blue{\textbf{NOTES}}: +\begin{itembar} +\item \red{percentage} refers to how much of the color, in total, was mixed over the 7 periods. For example 60\% adds 10\% to each period: P1\raisebox{.8pt}{$\blacktriangleright$}0\% $\rightsquigarrow$ P2\raisebox{.8pt}{$\blacktriangleright$}10\% $\rightsquigarrow$ P3\raisebox{.8pt}{$\blacktriangleright$}20\% $\rightsquigarrow$ \myldots\ $\rightsquigarrow$ P7\raisebox{.8pt}{$\blacktriangleright$}60\%. If the percentage is positive, the mixing is done in descending order (from P1 to P7); if the percentage is negative, the mixing is done in ascending order (from P7 to P1). +\item The \red{mode}'s values are \red{add} for \textit{additive} blending, \red{sub} for \textit{subtractive} blending and \red{linear} for \textit{linear} blending (as in the \texttt{\small xcolor} package). +\item \textbf{If \red{period blending} is used without further options} all the default values are used, so \red{period blending} is equivalent to \red{period blending=\{color=white,percentage=60,mode=linear\}}. +\item None of the keys \red{color}, \red{percentage} and \red{mode} are mandatory. If omitted the default value is used. +\end{itembar} +\end{itemlist} +\newpage% +% examples -------- +\pgfPTGroupColors{example}{G1=purple!10,G3=red!10}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{G1=purple!10,G3=red!10}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\\ \pgfPTGroupColors[black!10]{example}{G1=purple!10,G3=red!10}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lp\red{black!10}\rp\lb\red{example}\rb\lb\red{G1=purple!10,G3=red!10}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\\ \pgfPTGroupColors{example}{G1=*[HTML:FFAAAA],G2=*[HTML:AA3939],G3=*[HTML:FFD1AA],G4=*[HTML:D49A6A],G5=*[HTML:AA6C39],G6=*[HTML:804515],G7=*[HTML:552700],G8=*[HTML:003333],G9=*[HTML:0D4D4D],G10=*[HTML:226666],G11=*[HTML:407F7F],G12=*[HTML:669999],G13=*[HTML:88CC88],G14=*[HTML:55AA55],G15=*[HTML:2D882D],G16=*[HTML:116611],G17=*[HTML:004400],G18=*[HTML:801515]}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{G1=*[HTML:FFAAAA],G2=*[HTML:AA3939], +G3=*[HTML:FFD1AA],G4=*[HTML:D49A6A],G5=*[HTML:AA6C39], +G6=*[HTML:804515],G7=*[HTML:552700],G8=*[HTML:003333], +G9=*[HTML:0D4D4D],G10=*[HTML:226666],G11=*[HTML:407F7F], +G12=*[HTML:669999],G13=*[HTML:88CC88],G14=*[HTML:55AA55], +G15=*[HTML:2D882D],G16=*[HTML:116611],G17=*[HTML:004400], +G18=*[HTML:801515] +}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\newpage\pgfPTGroupColors{example}{left color=teal!70,right color=cyan!30}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,right color=cyan!30}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\vfill\pgfPTGroupColors{example}{left color=teal!70,middle color=yellow!30,right color=cyan!30,La=teal!70!yellow!50,% +Ac=teal!60!yellow!50,Lanta=teal!70!yellow!50!white!50,Actin=teal!60!yellow!50!white!50}% +\pgfPTGroupColors{example}{left color=teal!70,right color=cyan!30,period blending}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,right color=cyan!30,period blending}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\vfill\pgfPTGroupColors{example}{left color=teal!70,right color=cyan!30,period blending={color=orange!50,percentage=-40}}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,right color=cyan!30,\\ % +period blending=\{color=orange!50,percentage=-40\}}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\newpage\pgfPTGroupColors{example}{left color=teal!70,right color=cyan!30,period blending={color=orange!50,percentage=-40,mode=add},H={*[cmyk:.071,0,.055,.035]}}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,right color=cyan!30,\\ % +period blending=\{color=orange!50,percentage=-40,mode=add\},\\ % +H=\{*[cmyk:.071,0,.055,.035]\}}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\pgfPTGroupColors{example}{left color=teal!70,right color=cyan!30,period blending={color=orange!50,percentage=-40,mode=sub},H=*[cmyk:.071;0;.055;.035]}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,right color=cyan!30,\\ % +period blending=\{color=orange!50,percentage=-40,mode=sub\},\\ % +H=*[cmyk:.071;0;.055;.035]}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\\ \pgfPTGroupColors{example}{left color=teal!70,middle color=yellow!30,right color=cyan!30,La=teal!70!yellow!50,% +Ac=teal!60!yellow!50,Lanta=teal!70!yellow!50!white!50,Actin=teal!60!yellow!50!white!50}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{left color=teal!70,middle color=yellow!30,right color=cyan!30,% +La=teal!70!yellow!50,Ac=teal!60!yellow!50, Lanta=teal!70!yellow!50!white!50,Actin=teal!60!yellow!50!white!50}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\newpage% +\pgfPTGroupColors{example}{gradient={G1=teal!50!black,G2=teal,G10=green,G14=orange,G18=blue},period blending={mode=add}}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{gradient=\{G1=teal!50!black,G2=teal,G10=green, +G14=orange,G18=blue\},period blending=\{mode=add\}}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\vfill\pgfPTGroupColors{example}{gradient={G3=teal!80!black,G16=teal!80!black,G8=green}}% +\pgfPTMlibexample{% +\bs{pgfPTGroupColors}\lb\red{example}\rb\lb\red{gradient=\{G3=teal!80!black,G16=teal!80!black, +G8=green\}}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +\\ [6pt]\tikz{\node[text width=\linewidth-.6666em,text justified,font=\small\itshape] {\textbf{Note: the group numbers can be specified in any order and the gradient can start or end in any group}. In this example, the smallest group number is 3 and the greatest is 16, so the gradient is built from group 3 to group 16 and the colors from group 1 to 3 are equal to group 3's color, just like the colors from group 16 to 18 are equal to group 16's color. +};} +}% ----- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tmpSectionII{\bs{pgfPTPeriodColors}}% +\def\tmpSection{\bs{pgfPTPeriodColors}\lp\red{default period color}\rp\lb\red{name of the new color scheme}\rb\lb\red{list of \mbox{colors},options}\rb}% +\subsubsection*{}{\pgfPTMlibsubsubsection{\tmpSection}}% +\label{command:pgfPTPeriodColors}\addcontentsline{toc}{subsubsection}{\texorpdfstring{\tmpSectionII{}}{\textbackslash pgfPTPeriodColors}}% +\index{LIBRARIES@\textbf{\cyan{LIBRARIES}}!colorschemes@\textbf{\red{Color Schemes Library}}!\tmpSectionII}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\\ [10pt]This command \textbf{creates a Color Scheme} with the name \red{name of the new color scheme}. \textbf{Period colors} can be configured in three different ways: +\vspace{4pt} +\begin{itemlist} +\item\textbf{setting the colors one by one}, using the \textit{\red{key=value}} mechanism in the \red{list of colors}. For example: +\mymfbox{\bs{pgfPTPeriodColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{P1=red,P2=red!50,<\myldots>,P7=blue},options}\rb} +\dcyan{\textit{This will set the specified color for each period. If no color is specified for a period, \red{default period color} will be used}.} +\\ [3pt]\blue{\textbf{NOTE}}: \red{default period color} is initially set to white. +\item\textbf{defining a gradient} using the keys \red{top color=<color>}, \red{middle color=<color>} and \red{bottom color=<color>} as the \red{list of colors}. Note that all the keys are optional, but at least one of them is required. This produces a gradient starting from period 1, with \textit{top color}, to period 7, with \textit{bottom color}. If the \textit{middle color} key is used then the gradient starts at period 1 with \textit{top color}, goes to the middle position of the periods (period 4) with \textit{middle color} and ends at period 7 with \textit{bottom color}. For example: +\mymfbox{\bs{pgfPTPeriodColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{top color=red,middle color=yellow,bottom color=blue},options}\rb} +\dcyan{\textit{defines a gradient from red (period 1) to yellow (period 4) and from yellow (period 4) to blue (period 7)}.} +\item\textbf{defining a custom gradient} as the \red{list of colors} by using the \textit{\red{key=value}} mechanism inside the \red{gradient} key. For example: +\mymfbox{\bs{pgfPTPeriodColors}\lb\red{name of the new color scheme}\rb\gray{\%} +\\ \lb\red{\textbf{gradient=\{P1=red,P3=red!50,P7=blue\}},options\rb}} +\dcyan{\textit{defines a gradient from red (period 1) to red!50 (period 3) and to blue (period 7)}.} +\end{itemlist} +\vspace{10pt} +The \red{options} available to this command are: +\vspace{4pt} +\begin{itemlist} +\item\red{H=<color>}, sets the color of the \textit{hydrogen} cell. If not set, period 1's color will be used. If set, the color of the \textit{hydrogen} cell won't be affected by group blending. +\item\red{La=<color>}, sets the color of the \textit{lanthanum} cell. If not set, period 6's color will be used. +\item\red{Lanta=<color>}, sets the color of the \textit{lanthanoids} cells. If not set, \textit{lanthanum}'s color will be used. +\item\red{Ac=<color>}, sets the color of the \textit{actinium} cell. If not set, period 7's color will be used. +\item\red{Actin=<color>}, sets the color of the \textit{actinoids} cells. If not set, \textit{actinium}'s color will be used. +\item\red{group blending=\{color=<color>, percentage=<positive or negative integer>, mode=<add|sub|linear>\}}, performs a \textit{mode} blend over the groups up to the specified percentage with the provided color. +\\ [3pt]\blue{\textbf{NOTES}}: +\begin{itembar} +\item \red{percentage} refers to how much of the color, in total, was mixed over the 18 groups. For example 68\% adds 4\% to each period: G1\raisebox{.8pt}{$\blacktriangleright$}0\% $\rightsquigarrow$ G2\raisebox{.8pt}{$\blacktriangleright$}4\% $\rightsquigarrow$ G3\raisebox{.8pt}{$\blacktriangleright$}8\% $\rightsquigarrow$ \myldots\ $\rightsquigarrow$ G18\raisebox{.8pt}{$\blacktriangleright$}68\%. If the percentage is positive, the mixing is done from left to right (from G1 to G18); if the percentage is negative, the mixing is done from right to left (from G18 to G1). +\item The \red{mode}'s values are \red{add} for \textit{additive} blending, \red{sub} for \textit{subtractive} blending and \red{linear} for \textit{linear} blending (as in the \texttt{\small xcolor} package). +\item \textbf{If \red{group blending} is used without further options} all the default values are used, so \red{group blending} is equivalent to \red{group blending=\{color=white,percentage=68,mode=linear\}}. +\item None of the keys \red{color}, \red{percentage} and \red{mode} are mandatory. If omitted the default value is used. +\end{itembar} +\end{itemlist} +\newpage +% examples -------- +\pgfPTPeriodColors{example}{P1=*[RGB:86;139;137],P2=*[RGB:49;114;112],P3=*[RGB:23;91;88],P4=*[RGB:5;67;64],P5=*[RGB:35;54;100],P6=*[RGB:62;82;126],P7=*[RGB:101;117;153]}% +\pgfPTMlibexample{% +\bs{pgfPTPeriodColors}\lb\red{example}\rb\lb\red{P1=*[RGB:86;139;137],P2=*[RGB:49;114;112], +P3=*[RGB:23;91;88],P4=*[RGB:5;67;64],P5=*[RGB:35;54;100], +P6=*[RGB:62;82;126],P7=*[RGB:101;117;153]}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\vfill\pgfPTPeriodColors{example}{top color=*[Hsb:117;.57;.6]}% +\pgfPTMlibexample{% +\bs{pgfPTPeriodColors}\lb\red{example}\rb\lb\red{top color=*[Hsb:117;.57;.6]}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\vfill\pgfPTPeriodColors{example}{gradient={P1=*[Hsb:117;.57;.6],P5=*[Hsb:178;.57;.45]}}% +\pgfPTMlibexample{% +\bs{pgfPTPeriodColors}\lb\red{example}\rb\lb\red{gradient=\{P1=*[Hsb:117;.57;.6], P5=*[Hsb:178;.57;.45]\}}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=example,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=example,show title=false]}% +}% ----- +\newpage% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tmpSectionIII{\bs{pgfPTCScombine}}% +\def\tmpSection{\bs{pgfPTCScombine}\lp\red{prop1:prop2,mode}\rp\lb\red{name of color scheme one,name of color\\ \hfill scheme two,name of the new color scheme}\rb}% +\subsubsection*{}{\pgfPTMlibsubsubsection{\tmpSection}}% +\label{command:pgfPTCScombine}\addcontentsline{toc}{subsubsection}{\texorpdfstring{\tmpSectionIII{}}{\textbackslash pgfPTCScombine}}% +\index{LIBRARIES@\textbf{\cyan{LIBRARIES}}!colorschemes@\textbf{\red{Color Schemes Library}}!\tmpSectionIII}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\\ [10pt]This command \textbf{combines two named Color Schemes} and merges the result in a new Color Scheme with \red{name of the new color scheme}. +\\ For example \bs{pgfPTCScombine}\lb\red{myCSA,myCSB,myCSC}\rb\ adds the color scheme \red{myCSA} to the color scheme \red{myCSB} and their sum will be available as the color scheme \red{myCSC}. +\\ [3pt]\blue{\textbf{NOTE}}: if the Color Schemes have different sizes (\ie, different number of colors), the last color from the color scheme that ends first will be used until the other color scheme also ends. +\\ [3pt]The optional parameters \lp\red{prop1:prop2,mode}\rp\ are for controlling how the two Color Schemes are combined: +\vspace{4pt}% +\begin{itemlist} +\item The first parameter -- \red{prop1:prop2} -- controls the proportions used to mix the color schemes: \red{prop1} parts of \red{name of color scheme one} and \red{prop2} parts of \red{name of color} \red{scheme two}. Both \red{prop1} and \red{prop2} must be integer values between 1 and 999. +\\ [3pt]\blue{\textbf{NOTE}}: default proportion is \red{1:1}. +\\ For example, \red{1:4} \dcyan{\textit{will mix each color in the ratio of 1 to 4, \ie, the nth-color from the first color scheme is used as 1/5 of the mixed color and the nth-color from the second color scheme is used as 4/5 of the mixed color}}. +\item The \red{mode} refers to how the colors are mixed: use \red{add} for \textit{additive} mixing, \red{sub} for \textit{subtractive} mixing and \red{linear} for \textit{linear} mixing (as in the \texttt{\large xcolor} package). +\\ [3pt]\blue{\textbf{NOTE}}: default mode is \red{linear}. +\end{itemlist} +\vspace{4pt}% +% examples -------- +\pgfPTPeriodColors{period}{top color=red}% +\pgfPTGroupColors{group}{right color=green}% +\pgfPTCScombine{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTPeriodColors}\lb\red{period}\rb\lb\red{top color=red}\rb% +\\ \bs{pgfPTGroupColors}\lb\red{group}\rb\lb\red{right color=green}\rb% +\\ \bs{pgfPTCScombine}\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\newpage\pgfPTCScombine[sub]{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{sub}\rp\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\vfill\pgfPTCScombine[add]{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{add}\rp\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\vfill\pgfPTCScombine[3:1]{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{3:1}\rp\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\newpage\pgfPTCScombine[3:1,add]{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{3:1,add}\rp\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\vfill\pgfPTCScombine[add,2:3]{period,group,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{add,2:3}\rp\lb\red{period,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\vfill\pgfPTCScombine[add]{Soft,group,mix}% +\textit{Built-in color schemes can also be mixed}: +\\ [10pt]\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{add}\rp\lb\red{Soft,group,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\newpage\pgfPTCScombine[add,3:1]{Soft,PS,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{add,3:1}\rp\lb\red{Soft,PS,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +\\ [4pt]\pgfPTCScombine{Radio,Wikipedia,mix}% +\pgfPTMlibexample{% +\bs{pgfPTCScombine}\lp\red{add}\rp\lb\red{Radio,Wikipedia,mix}\rb% +\\ \pgfPTMmacro{pgfPT}[back color scheme=mix,show title=false]% +}{% +\scalebox{.425}{\pgfPT[back color scheme=mix,show title=false]}% +}% ----- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\tmpSectionIV{\bs{pgfPTCSwrite}}% +\def\tmpSection{\bs{pgfPTCSwrite}\lp\red{filename}\rp\lb\red{list of color schemes names}\rb}% +\subsubsection*{}{\pgfPTMlibsubsubsection{\tmpSection}}% +\label{command:pgfPTGroupColors}\addcontentsline{toc}{subsubsection}{\texorpdfstring{\tmpSectionIV{}}{\textbackslash pgfPTCSwrite}}% +\index{LIBRARIES@\textbf{\cyan{LIBRARIES}}!colorschemes@\textbf{\red{Color Schemes Library}}!\tmpSectionIV}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\\ [10pt]This command \textbf{writes the provided Color Schemes to a file} for later use without loading this library. It has a mandatory argument, the \red{list of the color schemes names} to be written and an optional argument, the \red{filename}. If no \red{filename} is provided the first name on the \red{list of the color schemes names} is used. +\\ For example, \bs{pgfPTCSwrite}\lp\red{myGroupColors}\rp\lb\red{myGroupGradGreenToRed,myGroupGreens, myGroupGradYellowToRed}\rb, \dcyan{\textit{will create (or overwrite), in the current working directory, a file with name} \texttt{\large myGroupColors.tex} \textit{with the follwing contents}}: +\mymfbox{\textsf{% +\textbackslash pgfPTnewColorScheme\{myGroupGradGreenToRed\}\{0/1/0,\myldots% +\\ \textbackslash pgfPTnewColorScheme\{myGroupGreens\}\{0/1/.1,\myldots% +\\ \textbackslash pgfPTnewColorScheme\{myGroupGradYellowToRed\}\{1/1/0,\myldots}% +}% +After that, it's possible to use \texttt{\large\textbackslash input\{myGroupColors.tex\}}, anywhere in any document (in the same working directory). The named color schemes defined in the loaded file are now available for use as usual: +% examples -------- +\\ \pgfPTGroupColors{myGroupGradGreenToRed}{gradient={G1=green!50!black,G18=red!30!black},H=green!40!white}% +\pgfPTGroupColors{myGroupGreens}{gradient={G1=green!50!black,G18=green!50!white},H=green!40!white}% +\pgfPTGroupColors{myGroupGradYellowToRed}{gradient={G1=yellow!50!white,G18=red!30!black},H=yellow!40!white}% +\pgfPTCSwrite[myGroupColors]{myGroupGradGreenToRed,myGroupGreens,myGroupGradYellowToRed}% +\begin{tikzpicture}% +\node[below right,text width=\textwidth-.6666em,draw=cyan!50!black,rounded corners=2pt,left color=black!10,right color=black!14] (a) at (0,0) {% +\bs{pgfPTPeriodColors}\lb\red{myGroupGradGreenToRed}\rb\lb\red{gradient=\{G1=green!50!black, G18=red!30!black\},H=green!40!white}\rb% +\\ \bs{pgfPTPeriodColors}\lb\red{myGroupGreens}\rb\lb\red{gradient=\{G1=green!50!black, G18=green!50!white\},H=green!40!white}\rb% +\\ \bs{pgfPTPeriodColors}\lb\red{myGroupGradYellowToRed}\rb\lb\red{gradient=\{G1=yellow!50!white, G18=red!30!black\},H=yellow!40!white}\rb% +\\ \bs{pgfPTCSwrite}\lp\red{myGroupColors}\rp\lb\red{myGroupGradGreenToRed,myGroupGreens, myGroupGradYellowToRed}\rb +};% +\end{tikzpicture}% +\\ [4pt]\pgfPTMlibexample{% +\gray{\%\textbackslash usepgfPTlibrary\{colorschemes\}}% +\\ \bs{input}\lb\dcyan{myGroupColors.tex}\rb\gray{\%}% +\\ \pgfPTMmacro{pgfPT}[back color scheme=myGroupGreens,show title=false]% +}{% +\scalebox{.5}{\pgfPT[back color scheme=myGroupGreens,show title=false]}% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex index d800fff1ed5..74917d18ba6 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex @@ -2,7 +2,7 @@ % Definitions for pgf-PeriodicTable Manual % Hugo Gomes @ 08/11/2022 v1.0.1 % Hugo Gomes @ 10/10/2022 v1.0.0 -\def\pgfPTversion{1.0.1}% +\def\pgfPTversion{2.0.0}% \def\pgfPTnewinversion#1{new in v#1}% \def\pgfPTchangedinversion#1{changed in v#1}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -65,6 +65,7 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, \usepackage{amssymb} \usepackage{amsmath} \usepackage{tabularx} +\usepackage{calc} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \makeatletter% \renewenvironment{theindex}% @@ -85,9 +86,14 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, {\if@restonecol\onecolumn\else\clearpage\fi}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\pack{\large\texttt{\color{blue!70!black}pgf-PeriodicTable}\normalsize}% +\def\txttt#1{\large\texttt{#1}\normalsize}% \def\txttikz{{\fontfamily{cmr}\selectfont Ti\emph{k}Z}}% -\def\ie{\textit{i.e.\/}} +\def\ie{\textit{i.e.\/}}% +\def\eg{\textit{e.g.\/}}% \def\myldots{\tikz{\fill (0,0) circle(.6pt);\fill (2.4pt,0) circle(.6pt);\fill (4.8pt,0) circle(.6pt);}}% +\def\cyan#1{\textcolor{cyan!50!black}{#1}}% +\def\dcyan#1{\textcolor{cyan!30!black}{#1}}% +\def\gray#1{\textcolor{black!50}{#1}}% \def\blue#1{\textcolor{blue!50!black}{#1}}% \def\lblue#1{\textcolor{blue!70!black}{#1}}% \def\green#1{\textcolor{green!50!black}{#1}}% @@ -163,6 +169,11 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, colframe=cyan!50!black,coltext=cyan!25!black,colback=cyan!10!white,fontupper=\scriptsize,% overlay={\begin{tcbclipinterior}\fill[cyan!50!white] (frame.south west)% rectangle node[text=white,font=\scriptsize\bfseries,anchor=mid] {USAGE:} ([xshift=15mm]frame.north west);\end{tcbclipinterior}}} +\newtcbox{\uselib}{enhanced,nobeforeafter,tcbox raise base,boxrule=0.4pt,top=0mm,bottom=0mm,% + right=0mm,left=15mm,arc=1pt,boxsep=2pt,% + colframe=cyan!50!black,coltext=cyan!25!black,colback=cyan!10!white,fontupper=\small,% + overlay={\begin{tcbclipinterior}\fill[cyan!50!white] (frame.south west)% + rectangle node[text=white,font=\small\bfseries,anchor=mid] {USAGE: } ([xshift=15mm]frame.north west);\end{tcbclipinterior}}}% \newcommand\mymfbox[2][gray]{\begin{tcolorbox} [breakable,enhanced,arc=2.5pt,outer arc=2.5pt,colback=#1!10!white,colframe=#1!50!black,boxsep=3pt,left=3pt,right=3pt,top=3pt,bottom=3pt,boxrule=1pt] #2\end{tcolorbox}} @@ -362,6 +373,42 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, \node[text width=\wdbiv+.55\boxinnersep] at ([xshift=-1pt]unit.north east) {\usebox3}; \end{tikzpicture}% }% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% LIBRARIES +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\pgfPTlib#1#2{\begingroup\renewcommand{\hrulefill}{\leavevmode\leaders\hrule height 1pt\hfill\kern0pt}% +\renewcommand{\dotfill}{\leavevmode\cleaders\hbox to 1.0em{\hss --\hss }\hfill\kern0pt}% +\setbox0=\hbox{\ pgf-PeriodicTable Library \red{\hypertarget{lib:#1}{#1}}\ }% +\raisebox{.25\ht0}{\makebox[.1125\linewidth][s]{\color{cyan!50!black}\hrulefill}}% +\hspace{-.1125\linewidth}\raisebox{.25\ht0+1.75pt}{\makebox[.1125\linewidth][s]{\color{cyan!70!black}\hrulefill}}% +\usebox0% +\raisebox{.25\ht0}{\makebox[.8875\linewidth-\wd0][s]{\color{cyan!50!black}\hrulefill}}% +\hspace{-.8875\linewidth}\hspace{\wd0}\raisebox{.25\ht0+1.75pt}{\makebox[.8875\linewidth-\wd0][s]{\color{cyan!70!black}\hrulefill}}% +\\ [12pt]\makebox[8pt][s]{}\uselib{\bs{usepgfPTlibrary}\lb\red{#1}\rb}% +\\ [12pt]\makebox[\linewidth][s]{\color{cyan!50!black}\dotfill}% +\\ [6pt]\makebox[8pt][s]{}\begin{minipage}{\linewidth-16pt}#2\end{minipage}% +\\ [6pt]\makebox[\linewidth][s]{\color{cyan!70!black}\hrulefill}\hspace{-\linewidth}% +\raisebox{1.75pt}{\makebox[\linewidth][s]{\color{cyan!50!black}\hrulefill}}\endgroup% +}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\pgfPTMlibsubsubsection#1{% +\tikz{\node[cyan!50!black,font=\large] (ding) at (0,0) {\ding{224} };% +\node[fill=cyan!5!white,text width={\linewidth-14.68799pt-1em},below right] (txt) at ([yshift=1pt]ding.north east) {#1};% +\draw[cyan!50!black] (txt.north west) -- (txt.north east);% +\draw[cyan!50!black] (txt.south west) -- (txt.south east);% +}}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \pgfPTMlibexample{codetxt}{code} +\def\pgfPTMlibexample#1#2{\ignorespaces% +\begin{tikzpicture}% +\node[below right,text width=\textwidth-.6666em,rounded corners=2pt,left color=black!10,right color=black!14] (a) at (0,0) {#1};% +\node[below right,text width=\textwidth-.6666em,text centered] (c) at (a.south west) {#2};% +\begin{pgfonlayer}{back}% +%\path[left color=black!5!cyan!12,right color=teal!12!white,draw=cyan!50!black,rounded corners=2pt] (a.north west) rectangle (c.south east);% +\path[left color=white,right color=cyan!4,draw=cyan!50!black,rounded corners=2pt] (a.north west) rectangle (c.south east);% +\end{pgfonlayer}% +\end{tikzpicture}% +}% \makeatother% % \endinput% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.pdf b/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.pdf Binary files differindex 645019ae7c1..d26083dba51 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.pdf +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.pdf diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.tex index d7812971b0e..30abe7b8bb8 100644 --- a/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.tex +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/pgf-PeriodicTableManual.tex @@ -1,6 +1,7 @@ \documentclass[a4paper,10pt,oneside,openany,fleqno]{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{pgf-PeriodicTable} +\usepgfPTlibrary{colorschemes}% \input{manualfiles/pgfPTmanual.macros.tex} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{Manual for pgf-PeriodicTable \pgfPTversion} @@ -115,6 +116,7 @@ The following options and styles are used to \textit{control} the Periodic Table \newpage% \label{file:variations}% \input{manualfiles/pgf-PeriodicTableManual_variations.tex}% +\newpage% \label{file:DarkMode}% \input{manualfiles/pgf-PeriodicTableManual_DarkMode.tex}% \label{file:exerciselayout}% @@ -149,6 +151,11 @@ The following options and styles are used for customizing the contents available \section{\texorpdfstring{Designing color schemes}{Designing color schemes}} \label{file:DesignCS}% \input{manualfiles/pgf-PeriodicTableManual_DesignCS.tex}% +\newpage\ \vspace{1.5cm}% +\section{Libraries} +In this part the \hypertarget{sec:lib}{library} packages are documented. They provide additional commands to extend the capabilities provided by this package out of the box. The libraries are not loaded by default since many users will not need them. +\\ [1.5cm]% +\input{manualfiles/pgf-PeriodicTableManual_libCS.tex}% \newpage% \section{A few more examples} \input{manualfiles/pgf-PeriodicTableManual_Examples.tex}% diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPT.input.library.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPT.input.library.tex new file mode 100644 index 00000000000..682bfe55383 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPT.input.library.tex @@ -0,0 +1,52 @@ +% -------------------------------------------------------------------------------------------------- +% subfile of pgf-PeriodicTable package ---------------------------------------------------------- +% -------------------------------------------------------------------------------------------------- +% Macro for loading pgf-PeriodicTable libraries -------------------------------------------------- +% -------------------------------------------------------------------------------------------------- +% -------------------------------------------------------------------------------------------------- +% -------------------------------------------------------------------------------------------------- +% +% +% Taken and adapted from pgf ----------------> +% Library files inclusion +% Include a library file. +% +% #1 = List of names of library file. +% +% Description: +% +% This command includes a list of library files. For each file X in the +% list, the file pgfPTlibrary.X.tex is included, provided this has +% not been done earlier. +% +% \usepgfPTlibrary{elements} +% \usepgflPTibrary[elements,plot] +% +\def\usepgfPTlibrary#1{\ignorespaces% + \edef\pgfPT@list{#1}% + \@for\pgfPT@temp:=\pgfPT@list\do{% + \ifx\pgfPT@temp\@empty\relax% + \else% + \expandafter\ifx\csname pgfPT@library@\pgfPT@temp @loaded\endcsname\relax% + \expandafter\let\csname pgfPT@library@\pgfPT@temp @loaded\endcsname=\@empty% + \expandafter\edef\csname pgfPT@library@#1@atcode\endcsname{\the\catcode`\@}% + \expandafter\edef\csname pgfPT@library@#1@barcode\endcsname{\the\catcode`\|}% + \expandafter\edef\csname pgfPT@library@#1@dollarcode\endcsname{\the\catcode`\$}% + \catcode`\@=11% + \catcode`\|=12% + \catcode`\$=3% + \pgfutil@InputIfFileExists{pgfPTlibrary.\pgfPT@temp.tex}{}{% + \PackageError{pgfPT}{I did not find the pgfPT library + '\pgfPT@temp'. I looked for the file named + pgfPTlibrary.\pgfPT@temp.tex, but could not find it in in + the current texmf trees.} + }% + \catcode`\@=\csname pgfPT@library@#1@atcode\endcsname% + \catcode`\|=\csname pgfPT@library@#1@barcode\endcsname% + \catcode`\$=\csname pgfPT@library@#1@dollarcode\endcsname% + \fi% + \fi% + }% +}% +% <---------------- Taken and adapted from pgf (pgfutil-common.tex) +\endinput diff --git a/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPTlibrary.colorschemes.tex b/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPTlibrary.colorschemes.tex new file mode 100644 index 00000000000..1f7a4aaf0aa --- /dev/null +++ b/Master/texmf-dist/doc/latex/pgf-periodictable/pgfPTlibrary.colorschemes.tex @@ -0,0 +1,1257 @@ +% --------------------------------------------------------------------------------------- +% subfile of pgf-PeriodicTable package ----------------------------------------------- +% --------------------------------------------------------------------------------------- +\def\pgfPT@library@colorschemes@loaded{}% +\message{pgfPT color schemes library loaded!}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% provide the macros +% \pgfPTGroupColors[name of color scheme]{list} +% \pgfPTPeriodColors[name of color scheme]{list} +% \pgfPTCScombine[prop,mode]{CS one,CS two,CS new} +% \pgfPTCSwrite[name]{CSName's list} +% +% support for colors -> named color OR named color a!##!named color b OR *[model:values], e.g. *[rgb:.5;.2,;3] -> +% --> (see Table 3: Supported color models on page 10 of the documentation of xcolor v2.14 (2022/06/12) +% +% BUBBLE SORT +% adapted from https://tex.stackexchange.com/questions/481678/apply-a-numeric-bubble-sort-to-output-strings-which-are-specified-by-names-code +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\makeatletter% +%\pgfPTGroupColors{name of color scheme}{list} +% --------------------------------------------------------------------------------------- +% list: +% left color=<color>,right color=<color>,middle color=<color> +% or +% G1=<color>,G2=<color>, ... , G18=<color> +% or +% gradient={G<n>=<color>,G<n>=<color>,...,G<n>=<color>} +% +% with options: +% -> period blending={color=<color>,percentage=<positive or negative integer>,mode=<add,sub,linear>} +% NOTES: the percentage refers to how much of the color, in total, was mixed at the end of the 7 periods; +% for example 60% adds 10% to each period (P1:0% -> P2:10% -> P3:20% -> ... -> P7:60%) +% if the percentage is positive, the order of the mixture is from P1 to P7 +% if the percentage is negative, the mixing order is from P7 to P1 +% -> H=<color>,La=<color>,Lanta=<color>,Ac=<color>,Actin=<color> +% --------------------------------------------------------------------------------------- +\newif\ifpgfPTgradient@TI\newif\ifpgfPTgradient@TII% +\newif\ifpgfPTusecolor@H% +\newif\ifpgfPTusecolor@La\newif\ifpgfPTusecolor@Lanta% +\newif\ifpgfPTusecolor@Ac\newif\ifpgfPTusecolor@Actin% +\newif\ifpgfPT@blending% +% +\def\pgfPTGroupColors{\@ifnextchar[\pgfPT@GroupColors{\pgfPT@GroupColors[white]}}% +\def\pgfPT@GroupColors[#1]#2#3{\ignorespaces% +\pgfPTgradient@TIfalse\pgfPTgradient@TIIfalse% +\pgfPTusecolor@Hfalse% +\pgfPTusecolor@Lafalse\pgfPTusecolor@Lantafalse% +\pgfPTusecolor@Acfalse\pgfPTusecolor@Actinfalse% +\pgfPT@blendingfalse% +\edef\pgfPTCScolorLEFT{#1}% +\edef\pgfPTCScolorMIDDLE{}% +\edef\pgfPTCScolorRIGHT{#1}% +\edef\pgfPTCScolorH{#1}% +\edef\pgfPTCScolorGI{#1}% +\edef\pgfPTCScolorGII{#1}% +\edef\pgfPTCScolorGIII{#1}% +\edef\pgfPTCScolorGIV{#1}% +\edef\pgfPTCScolorGV{#1}% +\edef\pgfPTCScolorGVI{#1}% +\edef\pgfPTCScolorGVII{#1}% +\edef\pgfPTCScolorGVIII{#1}% +\edef\pgfPTCScolorGIX{#1}% +\edef\pgfPTCScolorGX{#1}% +\edef\pgfPTCScolorGXI{#1}% +\edef\pgfPTCScolorGXII{#1}% +\edef\pgfPTCScolorGXIII{#1}% +\edef\pgfPTCScolorGXIV{#1}% +\edef\pgfPTCScolorGXV{#1}% +\edef\pgfPTCScolorGXVI{#1}% +\edef\pgfPTCScolorGXVII{#1}% +\edef\pgfPTCScolorGXVIII{#1}% +\edef\pgfPTCScolorLa{#1}% +\edef\pgfPTCScolorLanta{#1}% +\edef\pgfPTCScolorAc{#1}% +\edef\pgfPTCScolorActin{#1}% +\@for\@pgfPT@tmp:=#3\do{% +\ifx\@pgfPT@tmp\pgfPT@relax\relax\else\ifx\@pgfPT@tmp\pgfPT@space\relax\else% + \edef\pgfPT@handlert@test{period blending}\ifx\@pgfPT@tmp\pgfPT@handlert@test\edef\@pgfPT@tmp{period blending={}}\fi% + \pgfPT@temptrue% se acabar os ifx sem encontrar o handler gera a msg de erro... + \expandafter\pgfPT@keys@setNameValue\@pgfPT@tmp\relax% + \edef\pgfPT@handlert@test{gradient}% gradient... type 1 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TItrue\pgfPTgradient@TIIfalse\edef\pgfPTCScolorGRADIENT{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{leftcolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorLEFT{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{middlecolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorMIDDLE{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{rightcolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorRIGHT{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G1}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G2}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G3}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGIII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G4}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGIV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G5}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G6}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGVI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G7}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGVII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G8}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGVIII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G9}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGIX{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G10}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGX{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G11}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G12}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G13}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXIII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G14}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXIV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G15}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G16}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXVI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G17}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXVII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{G18}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorGXVIII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{H}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Htrue\edef\pgfPTCScolorH{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{La}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Latrue\edef\pgfPTCScolorLa{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Lanta}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Lantatrue\edef\pgfPTCScolorLanta{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Ac}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Actrue\edef\pgfPTCScolorAc{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Actin}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Actintrue\edef\pgfPTCScolorActin{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{periodblending}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPT@blendingtrue\edef\pgfPTblending{\pgfPT@handlervalue}% + \else%handler not found + \ifpgfPT@temp\PackageError{pgfPT}{\textbackslash pgfPTGroupColors: '\pgfPT@handler'\space in '\detokenize{#3}'\space not known! It will be ignored...}{}\fi\relax% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% +\fi\fi}% end do +\ifpgfPTgradient@TI\relax% +\expandafter\pgfPT@dogradient@TI[1]\pgfPTCScolorGRADIENT\relax% +\else\ifpgfPTgradient@TII\relax% +\pgfPT@dogradient@TII[1](\pgfPTCScolorLEFT,\pgfPTCScolorMIDDLE,\pgfPTCScolorRIGHT)% +\fi\fi% +\pgfPT@assign@color{\pgfPTCScolorGI}\colorlet{pgfPTinnerGcolorI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGII}\colorlet{pgfPTinnerGcolorII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGIII}\colorlet{pgfPTinnerGcolorIII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGIV}\colorlet{pgfPTinnerGcolorIV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGV}\colorlet{pgfPTinnerGcolorV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGVI}\colorlet{pgfPTinnerGcolorVI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGVII}\colorlet{pgfPTinnerGcolorVII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGVIII}\colorlet{pgfPTinnerGcolorVIII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGIX}\colorlet{pgfPTinnerGcolorIX}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGX}\colorlet{pgfPTinnerGcolorX}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXI}\colorlet{pgfPTinnerGcolorXI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXII}\colorlet{pgfPTinnerGcolorXII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXIII}\colorlet{pgfPTinnerGcolorXIII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXIV}\colorlet{pgfPTinnerGcolorXIV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXV}\colorlet{pgfPTinnerGcolorXV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXVI}\colorlet{pgfPTinnerGcolorXVI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXVII}\colorlet{pgfPTinnerGcolorXVII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorGXVIII}\colorlet{pgfPTinnerGcolorXVIII}{pgfPTassignedcolor}% +\ifpgfPTusecolor@H\pgfPT@assign@color{\pgfPTCScolorH}\else\pgfPT@assign@color{\pgfPTCScolorGI}\fi% +\colorlet{pgfPTinnerGcolorH}{pgfPTassignedcolor}% +\ifpgfPTusecolor@La\pgfPT@assign@color{\pgfPTCScolorLa}\else\pgfPT@assign@color{\pgfPTCScolorGIII}\fi% +\colorlet{pgfPTinnerGcolorLa}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Lanta\pgfPT@assign@color{\pgfPTCScolorLanta}\else\pgfPT@assign@color{\pgfPTCScolorGIII}\fi% +\colorlet{pgfPTinnerGcolorLanta}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Ac\pgfPT@assign@color{\pgfPTCScolorAc}\else\pgfPT@assign@color{\pgfPTCScolorGIII}\fi% +\colorlet{pgfPTinnerGcolorAc}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Actin\pgfPT@assign@color{\pgfPTCScolorActin}\else\pgfPT@assign@color{\pgfPTCScolorGIII}\fi% +\colorlet{pgfPTinnerGcolorActin}{pgfPTassignedcolor}% +\ifpgfPT@blending% + % blending={color=<color>,percentage=<positive or negative integer>,mode=<add|sub|linear>} + \edef\pgfPTblending@color@r{1}% + \edef\pgfPTblending@color@g{1}% + \edef\pgfPTblending@color@b{1}% + \edef\pgfPTblending@percentage@step{10}% + \edef\pgfPTblending@percentage@sign{1}% + \edef\pgfPTblending@mode{2}% + \ifx\pgfPTblending\pgfPT@relax\relax\else% + \@for\@pgfPT@tmp:=\pgfPTblending\do{% + \pgfPT@temptrue% se acabar os ifx sem encontrar o handler gera a msg de erro... + \expandafter\pgfPT@keys@setNameValue\@pgfPT@tmp\relax% + \edef\pgfPT@handlert@test{color}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \colorlet{pgfPTtmpc@lor}[rgb]{\pgfPT@handlervalue} + \pgfPT@extract@rgb@fill{pgfPTtmpc@lor}% + \edef\pgfPTblending@color@r{\pgfPT@rf}% + \edef\pgfPTblending@color@g{\pgfPT@gf}% + \edef\pgfPTblending@color@b{\pgfPT@bf}% + \else% + \edef\pgfPT@handlert@test{percentage}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfmathparse{int(abs(\pgfPT@handlervalue))}\edef\pgfPTblending@percentage{\pgfmathresult}% + \ifnum\pgfPTblending@percentage>100\relax% + \PackageError{pgfPT}{\textbackslash pgfPTGroupColors::period blending percentage: '\pgfPT@handlervalue'\space in '\detokenize{\pgfPTblending}'\space to high! Default blending percentage (60) will be used...}{}\relax% + \edef\pgfPT@handlervalue{60}% + \fi% + \pgfmathparse{int(abs(\pgfPT@handlervalue/6))}\edef\pgfPTblending@percentage@step{\pgfmathresult}% + \pgfmathparse{sign(\pgfPT@handlervalue)}\edef\pgfPTblending@percentage@sign{\pgfmathresult}% + \else% + \edef\pgfPT@handlert@test{mode}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTblending@mode@tmp{add}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{0}% + \else% + \edef\pgfPTblending@mode@tmp{sub}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{1}% + \else% + \edef\pgfPTblending@mode@tmp{linear}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{2}% + \else% + \PackageError{pgfPT}{\textbackslash pgfPTGroupColors::period blending mode: '\pgfPT@handlervalue'\space in '\detokenize{\pgfPTblending}'\space not known! Default blending mode (add) will be used...}{}\relax% + \fi\fi\fi% + \else%handler not found + \ifpgfPT@temp\PackageError{pgfPT}{\textbackslash pgfPTGroupColors::period blending: '\pgfPT@handler'\space in '\detokenize{\pgfPTblending}'\space not known! Default value will be used...}{}\fi\relax% + \fi\fi\fi% + }% end do + \fi% \ifx\pgfPTblending\pgfPT@relax +\fi% +\@for\@pgfPT@tmp:={I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,H,La,Lanta,Ac,Actin}% +\do{% + \pgfPT@extract@rgb@fill{pgfPTinnerGcolor\@pgfPT@tmp}% + \edef\pgfPTinnercolor@r{\pgfPT@rf}% + \edef\pgfPTinnercolor@g{\pgfPT@gf}% + \edef\pgfPTinnercolor@b{\pgfPT@bf}% + \expandafter\edef\csname pgfPTinnerGcolor\@pgfPT@tmp\endcsname{\pgfPTinnercolor@r/\pgfPTinnercolor@g/\pgfPTinnercolor@b}% + }% +\edef\pgfPT@backCS@GroupColorsList{BEGIN}% +\pgfPT@countf=1% +\def\pgfPT@get@rgb##1/##2/##3\relax{\edef\pgfPT@tmpc@lor@r{##1}\edef\pgfPT@tmpc@lor@g{##2}\edef\pgfPT@tmpc@lor@b{##3}}% +\@for\@pgfPT@tmp:={H,XVIII,I,II,XIII,XIV,XV,XVI,XVII,XVIII,I,II,XIII,XIV,XV,XVI,XVII,XVIII,I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,I,II,La,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,I,II,Ac,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII}% +\do{% + \ifpgfPT@blending\relax% blending + \ifnum\pgfPTblending@percentage@sign=1\relax% + \ifnum\pgfPT@countf<3\relax% P1 + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else\ifnum\pgfPT@countf<11\relax% P2 + \pgfmathparse{int(100-\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \edef\pgfPT@blending@prop@ii{\pgfPTblending@percentage@step}% + \else\ifnum\pgfPT@countf<19\relax% P3 + \pgfmathparse{int(100-2*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(2*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<37\relax% P4 + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<55\relax% P5 + \pgfmathparse{int(100-4*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(4*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<87\relax% P6 + \ifnum\pgfPT@countf<57\relax% + \pgfmathparse{int(100-5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=57\relax% La + \ifpgfPTusecolor@La% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<72\relax% Lanta + \ifpgfPTusecolor@Lanta% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% + \pgfmathparse{int(100-5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi\fi\fi% + \else% P7 + \ifnum\pgfPT@countf<89\relax% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=89\relax% Ac + \ifpgfPTusecolor@Ac% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<104\relax% Actin + \ifpgfPTusecolor@Actin% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi\fi\fi% + \fi\fi\fi\fi\fi\fi% + \else% \pgfPTblending@percentage@sign=-1 + \ifnum\pgfPT@countf<3\relax% P1 + \ifnum\pgfPT@countf<2\relax% H + \ifpgfPTusecolor@H% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% + \pgfmathparse{int(100-6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(6*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<11\relax% P2 + \pgfmathparse{int(100-5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(5*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<19\relax% P3 + \pgfmathparse{int(100-4*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(4*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<37\relax% P4 + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<55\relax% P5 + \pgfmathparse{int(100-2*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(2*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<87\relax% P6 + \ifnum\pgfPT@countf<57\relax% + \pgfmathparse{int(100-\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=57\relax% La + \ifpgfPTusecolor@La% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<72\relax% Lanta + \ifpgfPTusecolor@Lanta% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% + \pgfmathparse{int(100-\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi\fi\fi% + \else% P7 + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \fi\fi\fi\fi\fi\fi% + \fi% END \pgfPTblending@percentage@sign + \edef\pgfPT@tmpc@lor{\csname pgfPTinnerGcolor\@pgfPT@tmp\endcsname}% + \expandafter\pgfPT@get@rgb\pgfPT@tmpc@lor\relax% + \ifcase\pgfPTblending@mode\relax% + % 0 -> add + \@pgfPT@mix@additive[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \or% 1 -> sub + \@pgfPT@mix@subtractive[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \or% 2 -> linear + \@pgfPT@mix@linear[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \fi% end ifcase + \pgfPT@extract@rgb@fill{pgfPTmixedcolor}% + \edef\pgfPT@backCS@GroupColorsList{\pgfPT@backCS@GroupColorsList,\pgfPT@rf/\pgfPT@gf/\pgfPT@bf}% + \else% no blending + \edef\pgfPT@backCS@GroupColorsList{\pgfPT@backCS@GroupColorsList,\csname pgfPTinnerGcolor\@pgfPT@tmp\endcsname}% + \fi% + \advance\pgfPT@countf by1\relax% + }% end do +\expandafter\@pgfPT@list@purge \pgfPT@backCS@GroupColorsList[pgfPT@backCS@GroupColorsList]\relax% +\pgfPTnewColorScheme{#2}{\pgfPT@backCS@GroupColorsList}% +}% END \pgfPTGroupColors +% +%\pgfPTPeriodColors{name of color scheme}{list} +% --------------------------------------------------------------------------------------- +% list: +% top color=<color>,bottom color=<color>,middle color=<color> +% or +% P1=<color>,P2=<color>, ... , P7=<color> +% or +% gradient={P<n>=<color>,P<n>=<color>,...,P<n>=<color>} +% +% with options: +% -> group blending={color=<color>,percentage=<positive or negative integer>,mode=<add|sub|linear>} +% NOTES: the percentage refers to how much of the color, in total, was mixed at the end of the 7 periods; +% for example 68% adds 4% to each period (G1:0% -> G2:4% -> G3:8% -> ... -> G18:68%) +% if the percentage is positive, the order of the mixture is from G1 to G18 +% if the percentage is negative, the mixing order is from G18 to G1 +% -> H=<color>,La=<color>,Lanta=<color>,Ac=<color>,Actin=<color> +% --------------------------------------------------------------------------------------- +\def\pgfPTPeriodColors{\@ifnextchar[\pgfPT@PeriodColors{\pgfPT@PeriodColors[white]}}% +\def\pgfPT@PeriodColors[#1]#2#3{\ignorespaces% +\pgfPTgradient@TIfalse\pgfPTgradient@TIIfalse% +\pgfPTusecolor@Hfalse% +\pgfPTusecolor@Lafalse\pgfPTusecolor@Lantafalse% +\pgfPTusecolor@Acfalse\pgfPTusecolor@Actinfalse% +\edef\pgfPTCScolorTOP{#1}% +\edef\pgfPTCScolorMIDDLE{}% +\edef\pgfPTCScolorBOTTOM{#1}% +\edef\pgfPTCScolorH{#1}% +\edef\pgfPTCScolorPI{#1}% +\edef\pgfPTCScolorPII{#1}% +\edef\pgfPTCScolorPIII{#1}% +\edef\pgfPTCScolorPIV{#1}% +\edef\pgfPTCScolorPV{#1}% +\edef\pgfPTCScolorPVI{#1}% +\edef\pgfPTCScolorPVII{#1}% +\edef\pgfPTCScolorLa{#1}% +\edef\pgfPTCScolorLanta{#1}% +\edef\pgfPTCScolorAc{#1}% +\edef\pgfPTCScolorActin{#1}% +\@for\@pgfPT@tmp:=#3\do{% +\ifx\@pgfPT@tmp\pgfPT@relax\relax\else\ifx\@pgfPT@tmp\pgfPT@space\relax\else% + \edef\pgfPT@handlert@test{group blending}\ifx\@pgfPT@tmp\pgfPT@handlert@test\edef\@pgfPT@tmp{group blending={}}\fi% + \pgfPT@temptrue% se acabar os ifx sem encontrar o handler gera a msg de erro... + \expandafter\pgfPT@keys@setNameValue\@pgfPT@tmp\relax% + \edef\pgfPT@handlert@test{gradient}% gradient... type 1 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TItrue\pgfPTgradient@TIIfalse\edef\pgfPTCScolorGRADIENT{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{topcolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorTOP{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{middlecolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorMIDDLE{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{bottomcolor}% gradient... type 2 + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTgradient@TIItrue\pgfPTgradient@TIfalse\edef\pgfPTCScolorBOTTOM{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P1}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P2}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P3}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPIII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P4}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPIV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P5}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPV{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P6}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPVI{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{P7}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTCScolorPVII{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{H}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Htrue\edef\pgfPTCScolorH{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{La}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Latrue\edef\pgfPTCScolorLa{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Lanta}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Lantatrue\edef\pgfPTCScolorLanta{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Ac}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Actrue\edef\pgfPTCScolorAc{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{Actin}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPTusecolor@Actintrue\edef\pgfPTCScolorActin{\pgfPT@handlervalue}% + \else% + \edef\pgfPT@handlert@test{groupblending}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfPT@blendingtrue\edef\pgfPTblending{\pgfPT@handlervalue}% + \else%handler not found + \ifpgfPT@temp\PackageError{pgfPT}{\textbackslash pgfPTGroupColors: '\pgfPT@handler'\space in '\detokenize{#2}'\space not known! It will be ignored...}{}\fi\relax% + \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% +\fi\fi}% end do +\ifpgfPTgradient@TI\relax% +\expandafter\pgfPT@dogradient@TI[0]\pgfPTCScolorGRADIENT\relax% +\else\ifpgfPTgradient@TII\relax% +\pgfPT@dogradient@TII[0](\pgfPTCScolorTOP,\pgfPTCScolorMIDDLE,\pgfPTCScolorBOTTOM)% +\fi\fi% +\pgfPT@assign@color{\pgfPTCScolorPI}\colorlet{pgfPTinnerPcolorI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPII}\colorlet{pgfPTinnerPcolorII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPIII}\colorlet{pgfPTinnerPcolorIII}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPIV}\colorlet{pgfPTinnerPcolorIV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPV}\colorlet{pgfPTinnerPcolorV}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPVI}\colorlet{pgfPTinnerPcolorVI}{pgfPTassignedcolor}% +\pgfPT@assign@color{\pgfPTCScolorPVII}\colorlet{pgfPTinnerPcolorVII}{pgfPTassignedcolor}% +\ifpgfPTusecolor@H\pgfPT@assign@color{\pgfPTCScolorH}\else\pgfPT@assign@color{\pgfPTCScolorPI}\fi% +\colorlet{pgfPTinnerPcolorH}{pgfPTassignedcolor}% +\ifpgfPTusecolor@La\pgfPT@assign@color{\pgfPTCScolorLa}\else\pgfPT@assign@color{\pgfPTCScolorPVI}\fi% +\colorlet{pgfPTinnerPcolorLa}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Lanta\pgfPT@assign@color{\pgfPTCScolorLanta}\else\pgfPT@assign@color{\pgfPTCScolorPVI}\fi% +\colorlet{pgfPTinnerPcolorLanta}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Ac\pgfPT@assign@color{\pgfPTCScolorAc}\else\pgfPT@assign@color{\pgfPTCScolorPVII}\fi% +\colorlet{pgfPTinnerPcolorAc}{pgfPTassignedcolor}% +\ifpgfPTusecolor@Actin\pgfPT@assign@color{\pgfPTCScolorActin}\else\pgfPT@assign@color{\pgfPTCScolorPVII}\fi% +\colorlet{pgfPTinnerPcolorActin}{pgfPTassignedcolor}% +\ifpgfPT@blending% + % blending={color=<color>,percentage=<positive or negative integer>,mode=<add|sub|linear>} + \edef\pgfPTblending@color@r{1}% + \edef\pgfPTblending@color@g{1}% + \edef\pgfPTblending@color@b{1}% + \edef\pgfPTblending@percentage@step{4}% + \edef\pgfPTblending@percentage@sign{1}% + \edef\pgfPTblending@mode{2}% + \ifx\pgfPTblending\pgfPT@relax\relax\else% + \@for\@pgfPT@tmp:=\pgfPTblending\do{% + \pgfPT@temptrue% se acabar os ifx sem encontrar o handler gera a msg de erro... + \expandafter\pgfPT@keys@setNameValue\@pgfPT@tmp\relax% + \edef\pgfPT@handlert@test{color}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \colorlet{pgfPTtmpc@lor}[rgb]{\pgfPT@handlervalue} + \pgfPT@extract@rgb@fill{pgfPTtmpc@lor}% + \edef\pgfPTblending@color@r{\pgfPT@rf}% + \edef\pgfPTblending@color@g{\pgfPT@gf}% + \edef\pgfPTblending@color@b{\pgfPT@bf}% + \else% + \edef\pgfPT@handlert@test{percentage}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \pgfmathparse{int(abs(\pgfPT@handlervalue))}\edef\pgfPTblending@percentage{\pgfmathresult}% + \ifnum\pgfPTblending@percentage>100\relax% + \PackageError{pgfPT}{\textbackslash pgfPTPeriodColors::group blending percentage: '\pgfPT@handlervalue'\space in '\detokenize{\pgfPTblending}'\space to high! Default blending percentage (68) will be used...}{}\relax% + \edef\pgfPT@handlervalue{68}% + \fi% + \pgfmathparse{int(abs(\pgfPT@handlervalue/17))}\edef\pgfPTblending@percentage@step{\pgfmathresult}% + \pgfmathparse{sign(\pgfPT@handlervalue)}\edef\pgfPTblending@percentage@sign{\pgfmathresult}% + \else% + \edef\pgfPT@handlert@test{mode}% + \ifx\pgfPT@handler\pgfPT@handlert@test\pgfPT@tempfalse% + \edef\pgfPTblending@mode@tmp{add}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{0}% + \else% + \edef\pgfPTblending@mode@tmp{sub}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{1}% + \else% + \edef\pgfPTblending@mode@tmp{linear}% + \ifx\pgfPTblending@mode@tmp\pgfPT@handlervalue% + \edef\pgfPTblending@mode{2}% + \else% + \PackageError{pgfPT}{\textbackslash pgfPTPeriodColors::group blending mode: '\pgfPT@handlervalue'\space in '\detokenize{\pgfPTblending}'\space not known! Default blending mode (add) will be used...}{}\relax% + \fi\fi\fi% + \else%handler not found + \ifpgfPT@temp\PackageError{pgfPT}{\textbackslash pgfPTPeriodColors::group blending: '\pgfPT@handler'\space in '\detokenize{\pgfPTblending}'\space not known! Default value will be used...}{}\fi\relax% + \fi\fi\fi% + }% end do + \fi% \ifx\pgfPTblending\pgfPT@relax +\fi% +\@for\@pgfPT@tmp:={I,II,III,IV,V,VI,VII,H,La,Lanta,Ac,Actin}% +\do{% + \pgfPT@extract@rgb@fill{pgfPTinnerPcolor\@pgfPT@tmp}% + \edef\pgfPTinnercolor@r{\pgfPT@rf}% + \edef\pgfPTinnercolor@g{\pgfPT@gf}% + \edef\pgfPTinnercolor@b{\pgfPT@bf}% + \expandafter\edef\csname pgfPTinnerPcolor\@pgfPT@tmp\endcsname{\pgfPTinnercolor@r/\pgfPTinnercolor@g/\pgfPTinnercolor@b}% + }% +\edef\pgfPT@backCS@PeriodColorsList{BEGIN}% +\pgfPT@countf=1% +\def\pgfPT@get@rgb##1/##2/##3\relax{\edef\pgfPT@tmpc@lor@r{##1}\edef\pgfPT@tmpc@lor@g{##2}\edef\pgfPT@tmpc@lor@b{##3}}% +\@for\@pgfPT@tmp:={H,I,II,II,II,II,II,II,II,II,III,III,III,III,III,III,III,III,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,IV,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,V,VI,VI,La,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,Lanta,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VI,VII,VII,Ac,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,Actin,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII,VII}% +\do{% + \ifpgfPT@blending\relax% blending + \ifnum\pgfPTblending@percentage@sign=1\relax% + \ifnum\pgfPT@countf<3\relax% P1 + \ifnum\pgfPT@countf=1\relax% H + \ifpgfPTusecolor@H% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-17*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(17*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% He + \pgfmathparse{int(100-17*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(17*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<11\relax% P2 + \ifnum\pgfPT@countf<5\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-3)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-3)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else% + \pgfmathparse{int(100-(7+\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((7+\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<19\relax% P3 + \ifnum\pgfPT@countf<13\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-11)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-11)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else% + \pgfmathparse{int(100-(\the\pgfPT@countf-1)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-1)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<37\relax% P4 + \pgfmathparse{int(100-(\the\pgfPT@countf-19)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-19)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<55\relax% P5 + \pgfmathparse{int(100-(\the\pgfPT@countf-37)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-37)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<87\relax% P6 + \ifnum\pgfPT@countf<57\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-55)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-55)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf>71\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-68)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-68)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=57\relax% La + \ifpgfPTusecolor@La% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% lanthanoids + \ifpgfPTusecolor@Lanta% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \fi\fi\fi% + \else% P7 + \ifnum\pgfPT@countf<89\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-87)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-87)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf>103\relax% + \pgfmathparse{int(100-(\the\pgfPT@countf-100)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((\the\pgfPT@countf-100)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=89\relax% Ac + \ifpgfPTusecolor@Ac% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% actinoids + \ifpgfPTusecolor@Actin% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(3*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \fi\fi\fi% + \fi\fi\fi\fi\fi\fi% + \else% \pgfPTblending@percentage@sign=-1 + \ifnum\pgfPT@countf<3\relax% P1 + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else\ifnum\pgfPT@countf<11\relax% P2 + \ifnum\pgfPT@countf<5\relax% + \pgfmathparse{int(100-(20-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((20-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else% + \pgfmathparse{int(100-(10-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((10-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<19\relax% P3 + \ifnum\pgfPT@countf<13\relax% + \pgfmathparse{int(100-(28-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((28-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else% + \pgfmathparse{int(100-(18-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((18-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else\ifnum\pgfPT@countf<37\relax% P4 + \pgfmathparse{int(100-(36-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((36-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<55\relax% P5 + \pgfmathparse{int(100-(54-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((54-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf<87\relax% P6 + \ifnum\pgfPT@countf<57\relax% + \pgfmathparse{int(100-(72-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((72-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf>71\relax% + \pgfmathparse{int(100-(85-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((85-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=57\relax% La + \ifpgfPTusecolor@La% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% lanthanoids + \ifpgfPTusecolor@Lanta% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \fi\fi\fi% + \else% P7 + \ifnum\pgfPT@countf<89\relax% + \pgfmathparse{int(100-(104-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((104-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf>103\relax% + \pgfmathparse{int(100-(118-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int((118-\the\pgfPT@countf)*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \else\ifnum\pgfPT@countf=89\relax% Ac + \ifpgfPTusecolor@Ac% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \else% actinoids + \ifpgfPTusecolor@Actin% + \edef\pgfPT@blending@prop@i{100}% + \edef\pgfPT@blending@prop@ii{0}% + \else% + \pgfmathparse{int(100-14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@i{\pgfmathresult}% + \pgfmathparse{int(14*\pgfPTblending@percentage@step)}\edef\pgfPT@blending@prop@ii{\pgfmathresult}% + \fi% + \fi\fi\fi% + \fi\fi\fi\fi\fi\fi% + \fi% END \pgfPTblending@percentage@sign + \edef\pgfPT@tmpc@lor{\csname pgfPTinnerPcolor\@pgfPT@tmp\endcsname}% + \expandafter\pgfPT@get@rgb\pgfPT@tmpc@lor\relax% + \ifcase\pgfPTblending@mode\relax% + % 0 -> add + \@pgfPT@mix@additive[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \or% 1 -> sub + \@pgfPT@mix@subtractive[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \or% 2 -> linear + \@pgfPT@mix@linear[\pgfPT@blending@prop@i:\pgfPT@blending@prop@ii](\pgfPT@tmpc@lor@r/\pgfPT@tmpc@lor@g/\pgfPT@tmpc@lor@b,\pgfPTblending@color@r/\pgfPTblending@color@g/\pgfPTblending@color@b)% + \fi% end ifcase + \pgfPT@extract@rgb@fill{pgfPTmixedcolor}% + \edef\pgfPT@backCS@PeriodColorsList{\pgfPT@backCS@PeriodColorsList,\pgfPT@rf/\pgfPT@gf/\pgfPT@bf}% + \else% no blending + \edef\pgfPT@backCS@PeriodColorsList{\pgfPT@backCS@PeriodColorsList,\csname pgfPTinnerPcolor\@pgfPT@tmp\endcsname}% + \fi% + \advance\pgfPT@countf by1\relax% + }% end do +\expandafter\@pgfPT@list@purge \pgfPT@backCS@PeriodColorsList[pgfPT@backCS@PeriodColorsList]\relax% +\pgfPTnewColorScheme{#2}{\pgfPT@backCS@PeriodColorsList}% +}% END \pgfPTPeriodColors +% +% +% THE GRADIENT MACROS +% \pgfPT@dogradient@TI[0 or 1]{list}\relax % 0->P or 1->G +\def\pgfPT@dogradient@TI[#1]#2\relax{% +\ignorespaces% +\pgfPT@counta=0\pgfPT@countb=0\pgfPT@countc=0% +\def\@pgfPT@gradientTI@list{BEGIN}% +\ifnum#1=0\relax% Period + \edef\@pgfPT@gradientTI@PorG{7}% + \@for\@pgfPT@tmp:=#2\do{% + \expandafter\@pgfPT@grad@get@n@Pcolor \@pgfPT@tmp\relax% + \advance\pgfPT@counta by1\relax% + \edef\@pgfPT@gradientTI@list{\@pgfPT@gradientTI@list,\@pgfPT@grad@ntmp}% + \expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\@pgfPT@grad@ntmp\endcsname{\@pgfPT@grad@colortmp}% + \expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\@pgfPT@grad@ntmp\endcsname{\@pgfPT@grad@ntmp}% + }% +\else% Group + \edef\@pgfPT@gradientTI@PorG{18}% + \@for\@pgfPT@tmp:=#2\do{% + \expandafter\@pgfPT@grad@get@n@Gcolor \@pgfPT@tmp\relax% + \advance\pgfPT@counta by1\relax% + \edef\@pgfPT@gradientTI@list{\@pgfPT@gradientTI@list,\@pgfPT@grad@ntmp}% + \expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\@pgfPT@grad@ntmp\endcsname{\@pgfPT@grad@colortmp}% + \expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\@pgfPT@grad@ntmp\endcsname{\@pgfPT@grad@ntmp}% + }% +\fi% +\expandafter\@pgfPT@list@purge \@pgfPT@gradientTI@list[@pgfPT@gradientTI@list]\relax% +\edef\@pgfPT@gradientTI@unsortedlist{\@pgfPT@gradientTI@list}% +\expandafter\pgfPT@bubblesort\@pgfPT@gradientTI@list\relax% +\pgfPT@countc=0\pgfPT@counte=0% +\@for\@pgfPT@tmp:=\pgfPT@sortedlist\do{% +\pgfmathparse{array({\pgfPT@sortedlist},\the\pgfPT@countc)}% +\ifnum\pgfPT@countc=0\relax\edef\pgfPT@sortedlist@first{\pgfmathresult}\fi% +\advance\pgfPT@countc by1\relax% +\ifnum\pgfPT@countc=\pgfPT@counta\relax\edef\pgfPT@sortedlist@last{\pgfmathresult}\fi% +\expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@n\@Roman\pgfmathresult\endcsname}% +\expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@color\@Roman\pgfmathresult\endcsname}% +}% +\ifnum\pgfPT@sortedlist@first>1\relax% +\pgfPT@countc=1% +\@for\@pgfPT@tmp:=\pgfPT@sortedlist\do{% +\expandafter\edef\csname @pgfPT@gradientTI@ncopy\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countc\endcsname}% +\expandafter\edef\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countc\endcsname}% +\advance\pgfPT@countc by1\relax% +}% +\pgfPT@countc=1\pgfPT@countd=1% +\@for\@pgfPT@tmp:=\pgfPT@sortedlist\do{% +\ifnum\pgfPT@countd=1\relax% +\expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countc\endcsname{1}% +\expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countd\endcsname}% +\advance\pgfPT@countd by1\relax% +\expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countd\endcsname{\csname @pgfPT@gradientTI@ncopy\@Roman\pgfPT@countc\endcsname}% +\expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countd\endcsname{\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countc\endcsname}% +\else% +\expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countd\endcsname{\csname @pgfPT@gradientTI@ncopy\@Roman\pgfPT@countc\endcsname}% +\expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countd\endcsname{\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countc\endcsname}% +\fi% +\advance\pgfPT@countd by1\relax% +\advance\pgfPT@countc by1\relax% +}% +\advance\pgfPT@counta by1\relax% +\pgfPT@counte=1\relax% +\edef\pgfPT@sortedlist{1,\pgfPT@sortedlist}% +\fi% \ifnum\pgfPT@sortedlist@first>1 +\ifnum\pgfPT@sortedlist@last<\@pgfPT@gradientTI@PorG\relax% +\ifnum\pgfPT@sortedlist@first=1\relax% +\pgfPT@countc=1% +\@for\@pgfPT@tmp:=\pgfPT@sortedlist\do{% +\expandafter\edef\csname @pgfPT@gradientTI@ncopy\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countc\endcsname}% +\expandafter\edef\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countc\endcsname{\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countc\endcsname}% +\advance\pgfPT@countc by1\relax% +}% +\fi% +\pgfPT@countc=\pgfPT@counta\ifnum\pgfPT@counte=1\relax\advance\pgfPT@countc by-1\relax\fi% +\pgfPT@countd=\pgfPT@counta\advance\pgfPT@countd by1\relax% +\expandafter\edef\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countd\endcsname{\@pgfPT@gradientTI@PorG}% +\expandafter\edef\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countd\endcsname{\csname @pgfPT@gradientTI@colorcopy\@Roman\pgfPT@countc\endcsname}% +\edef\pgfPT@sortedlist{\pgfPT@sortedlist,\@pgfPT@gradientTI@PorG}% +\advance\pgfPT@counta by1\relax% +\fi% \ifnum\pgfPT@sortedlist@last<\@pgfPT@gradientTI@PorG +\edef\@pgfPT@gradientTI@list{\pgfPT@sortedlist}% +\edef\@pgfPT@gradientTI@foreachlist{}% +\@for\@pgfPT@tmp:=\@pgfPT@gradientTI@list\do{% + \advance\pgfPT@countb by1\relax% + \ifnum\pgfPT@countb<\pgfPT@counta\relax% + \edef\@pgfPT@gradientTI@foreachlist@n{\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countb\endcsname}% + \pgfmathsetcount{\pgfPT@countc}{\pgfPT@countb+1}% + \edef\@pgfPT@gradientTI@foreachlist@nf{\csname @pgfPT@gradientTI@n\@Roman\pgfPT@countc\endcsname}% + \pgfmathparse{int(\@pgfPT@gradientTI@foreachlist@nf-\@pgfPT@gradientTI@foreachlist@n+1)}% + \edef\@pgfPT@gradientTI@foreachlist@steps{\pgfmathresult}% + \edef\@pgfPT@gradientTI@foreachlist@coli{\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countb\endcsname}% + \edef\@pgfPT@gradientTI@foreachlist@colf{\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countc\endcsname}% + \edef\@pgfPT@gradientTI@foreachlist{\@pgfPT@gradientTI@foreachlist\@pgfPT@gradientTI@foreachlist@n/\@pgfPT@gradientTI@foreachlist@steps/\@pgfPT@gradientTI@foreachlist@coli/\@pgfPT@gradientTI@foreachlist@colf,}% + \else% + \edef\@pgfPT@gradientTI@foreachlist@n{\@pgfPT@gradientTI@PorG}% + \edef\@pgfPT@gradientTI@foreachlist@steps{2}% + \edef\@pgfPT@gradientTI@foreachlist@coli{\csname @pgfPT@gradientTI@color\@Roman\pgfPT@countb\endcsname}% + \edef\@pgfPT@gradientTI@foreachlist@colf{\@pgfPT@gradientTI@foreachlist@coli}% + \edef\@pgfPT@gradientTI@foreachlist{\@pgfPT@gradientTI@foreachlist\@pgfPT@gradientTI@foreachlist@n/\@pgfPT@gradientTI@foreachlist@steps/\@pgfPT@gradientTI@foreachlist@coli/\@pgfPT@gradientTI@foreachlist@colf}% + \fi% + }% end do +\ifnum#1=0\relax\def\@pgfPT@PorG{P}\else\def\@pgfPT@PorG{G}\fi% +\foreach \pgfPTx/\pgfPTsteps/\pgfPTcoli/\pgfPTcolf in \@pgfPT@gradientTI@foreachlist {% + \@pgfPT@gradient[\@pgfPT@PorG,\pgfPTx,\pgfPTsteps](\pgfPTcoli;\pgfPTcolf)% + }% +}% end \pgfPT@dogradient@TI +% +% \pgfPT@dogradient@TII[0 or 1](top or left color,middle color,bottom or right color) +\def\pgfPT@dogradient@TII[#1](#2,#3,#4){% +\edef\pgfPT@test{#3}% +\ifx\pgfPT@test\pgfPT@relax\relax% +\ifnum#1=0\relax\@pgfPT@gradient[P,1,7](#2;#4)\else\@pgfPT@gradient[G,1,18](#2;#4)\fi% +\else% +\ifnum#1=0\relax\@pgfPT@gradient[P,1,4](#2;#3)\@pgfPT@gradient[P,4,4](#3;#4)% +\else\@pgfPT@gradient[G,1,9](#2;#3)\@pgfPT@gradient[G,9,10](#3;#4)\fi% +\fi% +}% +% +% \@pgfPT@gradient[P or G,n_initial,steps](start_color; end_color) +% color-> named color OR named color a!##!named color b OR *[model:values], e.g. *[rgb:.5;.2;.3] -> +% --> (see Table 3: Supported color models on page 10 of the documentation of xcolor v2.14 (2022/06/12) +\def\@pgfPT@gradient[#1,#2,#3](#4;#5){\ignorespaces% +\edef\pgfPTgrad@steps{#3}% +\pgfPT@assign@color{#4}% +\colorlet{pgfPTgradstartcolor}[rgb]{pgfPTassignedcolor}% +\pgfPT@assign@color{#5}% +\colorlet{pgfPTgradendcolor}[rgb]{pgfPTassignedcolor}% +\pgfPT@extract@rgb@fill{pgfPTgradstartcolor}% +\edef\pgfPTgradstartcolor@r{\pgfPT@rf}% +\edef\pgfPTgradstartcolor@g{\pgfPT@gf}% +\edef\pgfPTgradstartcolor@b{\pgfPT@bf}% +\pgfPT@extract@rgb@fill{pgfPTgradendcolor}% +\edef\pgfPTgradendcolor@r{\pgfPT@rf}% +\edef\pgfPTgradendcolor@g{\pgfPT@gf}% +\edef\pgfPTgradendcolor@b{\pgfPT@bf}% +\pgfmathparse{\pgfPTgradendcolor@r-\pgfPTgradstartcolor@r}\edef\pgfPTgrad@delta@r{\pgfmathresult}% +\pgfmathparse{\pgfPTgradendcolor@g-\pgfPTgradstartcolor@g}\edef\pgfPTgrad@delta@g{\pgfmathresult}% +\pgfmathparse{\pgfPTgradendcolor@b-\pgfPTgradstartcolor@b}\edef\pgfPTgrad@delta@b{\pgfmathresult}% +\pgfmathparse{sign(\pgfPTgrad@delta@r)}\edef\pgfPTgrad@delta@r@sign{\pgfmathresult}% +\pgfmathparse{sign(\pgfPTgrad@delta@g)}\edef\pgfPTgrad@delta@g@sign{\pgfmathresult}% +\pgfmathparse{sign(\pgfPTgrad@delta@b)}\edef\pgfPTgrad@delta@b@sign{\pgfmathresult}% +\foreach \n in {1,...,\pgfPTgrad@steps}{% + \pgfmathparse{\pgfPTgradstartcolor@r+\pgfPTgrad@delta@r*(\n-1)/(\pgfPTgrad@steps-1)}\edef\pgfPTgrad@red{\pgfmathresult}% + \pgfmathparse{\pgfPTgradstartcolor@g+\pgfPTgrad@delta@g*(\n-1)/(\pgfPTgrad@steps-1)}\edef\pgfPTgrad@green{\pgfmathresult}% + \pgfmathparse{\pgfPTgradstartcolor@b+\pgfPTgrad@delta@b*(\n-1)/(\pgfPTgrad@steps-1)}\edef\pgfPTgrad@blue{\pgfmathresult}% + \pgfmathparse{int(\n-1+#2)}\edef\pgfPT@niplusstep{\pgfmathresult}% + \expandafter\xdef\csname pgfPTCScolor#1\@Roman\pgfPT@niplusstep\endcsname{*[rgb:\pgfPTgrad@red,\pgfPTgrad@green,\pgfPTgrad@blue]}% + }% +}% +% +% +% AUX MACRO FOR «CLEANING» LISTS +\def\@pgfPT@list@purge BEGIN,#1[#2]\relax{\expandafter\edef\csname#2\endcsname{#1}}% +% +% +% BUBBLE SORT +% adapted from https://tex.stackexchange.com/questions/481678/apply-a-numeric-bubble-sort-to-output-strings-which-are-specified-by-names-code +\def\pgfPT@listterminator{-1}% +\def\pgfPT@bubblesort#1\relax{\def\pgfPT@sortedlist{}\pgfPT@sortlist#1,\pgfPT@listterminator,\relax}% +\def\pgfPT@sortlist#1,#2,#3\relax{% + \ifnum#2=\pgfPT@listterminator\relax% + \edef\pgfPT@sortedlist{\pgfPT@sortedlist#1}% + \else + \ifnum#1<#2\relax% + \edef\pgfPT@sortedlist{\pgfPT@sortedlist#1,}% + \pgfPT@sortlist#2,#3\relax% + \else% + \let\pgfPT@tmplist\pgfPT@sortedlist% + \def\pgfPT@sortedlist{}% + \expandafter\pgfPT@sortlist\pgfPT@tmplist#2,#1,#3\relax% + \fi% + \fi% +}% +% +% +% THE COLOR MACROS +\def\@pgfPT@grad@get@n@Gcolor G#1=#2\relax{\edef\@pgfPT@grad@ntmp{#1}\edef\@pgfPT@grad@colortmp{#2}}% +\def\@pgfPT@grad@get@n@Pcolor P#1=#2\relax{\edef\@pgfPT@grad@ntmp{#1}\edef\@pgfPT@grad@colortmp{#2}}% +% +\def\pgfPT@assign@color#1{\expandafter\pgfPT@teststar#1\relax}% +\def\pgfPT@teststar#1#2\relax{\edef\pgfPT@test{#1}\edef\pgfPT@charstar{*}% +\ifx\pgfPT@test\pgfPT@charstar\relax\pgfPT@assign@color@bymodel{#2}\else\pgfPT@assign@color@byname{#1#2}\fi% +}% +\def\pgfPT@assign@color@bymodel#1{\expandafter\@pgfPT@assign@color@bymodel#1\relax}% +\def\@pgfPT@assign@color@bymodel[#1:#2]\relax{% +\edef\@pgfPT@assign@color@bymodel@arg{BEGIN}\expandafter\@pgfPT@assign@color@bymodel@process@arg#2;\relax% +\expandafter\@pgfPT@list@purge \@pgfPT@assign@color@bymodel@arg[@pgfPT@assign@color@bymodel@arg]\relax% +\definecolor{pgfPTtmpassignedcolor}{#1}{\@pgfPT@assign@color@bymodel@arg}\colorlet{pgfPTassignedcolor}[rgb]{pgfPTtmpassignedcolor}% +}% +\def\@pgfPT@assign@color@bymodel@process@arg#1;#2\relax{% +\edef\teste{#2}% +\ifx\teste\pgfPT@relax\edef\@pgfPT@assign@color@bymodel@arg{\@pgfPT@assign@color@bymodel@arg,#1}\else% +\edef\@pgfPT@assign@color@bymodel@arg{\@pgfPT@assign@color@bymodel@arg,#1}\expandafter\@pgfPT@assign@color@bymodel@process@arg#2\relax\fi% +}% +\def\pgfPT@assign@color@byname#1{\colorlet{pgfPTassignedcolor}[rgb]{#1}}% +% +% +% COMBINE TWO CS +% mode: 0 -> add ; 1 -> sub ; 2 -> linear +\def\pgfPTCScombine{\@ifnextchar[\pgfPT@CS@combine{\@pgfPT@CS@combine@nooptions}}% +\def\@pgfPT@CS@combine@nooptions#1{% +\edef\pgfPT@CS@combine@options@mode{2}% +\edef\pgfPT@CS@combine@options@prop@i{1}% +\edef\pgfPT@CS@combine@options@prop@ii{1}% +\expandafter\@pgfPT@CS@combine[1:1,0]#1\relax% +}% +\def\pgfPT@CS@combine[#1]#2{\ignorespaces% +\edef\pgfPT@CS@combine@options@prop@i{1}% +\edef\pgfPT@CS@combine@options@prop@ii{1}% +\edef\pgfPT@CS@combine@options@mode{0}% add +\def\pgfPT@CS@combine@options@firstchar##1##2\relax{\edef\pgfPT@tmp{##1}}% +\@for\@pgfPT@tmp:=#1\do{% + \expandafter\pgfPT@CS@combine@options@firstchar\@pgfPT@tmp\relax% + \ifcat1\pgfPT@tmp\relax\pgfPT@temptrue% + \def\pgfPT@CS@combine@options@ispropOK##1##2##3##4##5 \relax{\edef\pgfPT@proptestOK{:}% + \edef\pgfPT@proptotest{##2}\ifx\pgfPT@proptestOK\pgfPT@proptotest\pgfPT@tempfalse% + \else\edef\pgfPT@proptotest{##3}\ifx\pgfPT@proptestOK\pgfPT@proptotest\pgfPT@tempfalse% + \else\edef\pgfPT@proptotest{##4}\ifx\pgfPT@proptestOK\pgfPT@proptotest\pgfPT@tempfalse% + \else\edef\pgfPT@proptotest{##5}\ifx\pgfPT@proptestOK\pgfPT@proptotest\pgfPT@tempfalse% + \else\ifpgfPT@temp\PackageError{pgfPT}{\string\pgfPTCScombine: something went wrong in '\detokenize{#1}'\space: did you use the proportion sign ':'? The maximum value of proportion is 999... Default value '1:1' will be used...}{}\fi\relax% + \fi\fi\fi\fi% + }% + \expandafter\pgfPT@CS@combine@options@ispropOK\@pgfPT@tmp END \relax% + \ifpgfPT@temp\else\def\pgfPT@CS@combine@options@getprop##1:##2\relax{\edef\pgfPT@CS@combine@options@prop@i{##1}\edef\pgfPT@CS@combine@options@prop@ii{##2}}% + \expandafter\pgfPT@CS@combine@options@getprop\@pgfPT@tmp\relax\fi% + \else% + \pgfPT@temptrue% se acabar os ifx sem encontrar o handler gera a msg de erro... + \edef\pgfPT@CS@combine@options@tmpmode{add}% + \ifx\@pgfPT@tmp\pgfPT@CS@combine@options@tmpmode\pgfPT@tempfalse% + \edef\pgfPT@CS@combine@options@mode{0}% + \else% + \edef\pgfPT@CS@combine@options@tmpmode{sub}% + \ifx\@pgfPT@tmp\pgfPT@CS@combine@options@tmpmode\pgfPT@tempfalse% + \edef\pgfPT@CS@combine@options@mode{1}% + \else% + \edef\pgfPT@CS@combine@options@tmpmode{linear}% + \ifx\@pgfPT@tmp\pgfPT@CS@combine@options@tmpmode\pgfPT@tempfalse% + \edef\pgfPT@CS@combine@options@mode{2}% + \else%handler not found + \ifpgfPT@temp\PackageError{pgfPT}{\string\pgfPTCScombine: '\@pgfPT@tmp'\space in '\detokenize{#1}'\space not known! Default value 'add' will be used...}{}\fi\relax% + \fi\fi\fi% + \fi% + }% +\expandafter\@pgfPT@CS@combine[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii,\pgfPT@CS@combine@options@mode]#2\relax% +}% +\def\@pgfPT@CS@combine[#1:#2,#3]#4\relax{\ignorespaces% +\def\@pgfPT@CS@getNames##1,##2,##3\relax{\edef\@pgfPT@CS@name@i{##1}\edef\@pgfPT@CS@name@ii{##2}\edef\@pgfPT@CS@name@iii{##3}}% +\expandafter\@pgfPT@CS@getNames#4\relax% +\edef\pgfPT@CStmp@one{\csname pgfPT@backColorsScheme@\@pgfPT@CS@name@i\endcsname} +\edef\pgfPT@CStmp@two{\csname pgfPT@backColorsScheme@\@pgfPT@CS@name@ii\endcsname} +\if\pgfPT@CStmp@one\pgfPT@relax% +\PackageError{pgfPT}{\string\pgfPTCScombine: the color scheme '\@pgfPT@CS@name@i'\space is not defined! A full white color scheme will be used...}{}% +\pgfPTnewColorScheme[1/1/1]{pgfPTCSnameerror}{1/1/1}% +\edef\pgfPT@CStmp@one{pgfPT@backColorsScheme@pgfPTCSnameerror}% +\fi% +\if\pgfPT@CStmp@two\pgfPT@relax% +\PackageError{pgfPT}{\string\pgfPTCScombine: the color scheme '\@pgfPT@CS@name@ii'\space is not defined! A full white color scheme will be used...}{}% +\pgfPTnewColorScheme[1/1/1]{pgfPTCSnameerror}{1/1/1}% +\edef\pgfPT@CStmp@two{pgfPT@backColorsScheme@pgfPTCSnameerror}%\fi% +\fi% +% sum... +\edef\@pgfPT@listtosum{(\pgfPT@CStmp@one+\pgfPT@CStmp@two)}% +\expandafter\pgfPT@somalistas\@pgfPT@listtosum\relax% +% DO THE NEW CS +\pgfPTnewColorScheme[1/1/1]{\@pgfPT@CS@name@iii}{\pgfPT@sum@list}% +}% END \pgfPTCScombine +% +% SUM TWO LISTS +\edef\@pgfPT@ENDLIST{ENDLIST}% +\def\pgfPT@somalistas(#1+#2){% +\edef\pgfPT@lista@i{0}\edef\pgfPT@lista@ii{0}\edef\pgfPT@lista@control{0}\edef\pgfPT@somafeita{0}% +\edef\pgfPT@sum@list{BEGIN}% +\edef\pgfPT@listas{#1,\@pgfPT@ENDLIST+#2,\@pgfPT@ENDLIST}\expandafter\@pgfPT@somalistas\pgfPT@listas\relax% +}% +\def\@pgfPT@somalistas#1,#2+#3,#4\relax{\ignorespaces% +\ifcase\pgfPT@lista@control\relax% +% case 0: both have values +\expandafter\pgfPT@lista@i@rgb#1\relax% +\expandafter\pgfPT@lista@ii@rgb#3\relax% +\ifcase\pgfPT@CS@combine@options@mode\relax% +% 0 -> add +\@pgfPT@mix@additive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\or% 1 -> sub +\@pgfPT@mix@subtractive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\or% 2 -> linear +\@pgfPT@mix@linear[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\fi% +\or% case 1: list one ended +\expandafter\pgfPT@lista@ii@rgb#1#3\relax% +\ifcase\pgfPT@CS@combine@options@mode\relax% +% 0 -> add +\@pgfPT@mix@additive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@lastval@r/\pgfPT@lista@i@lastval@g/\pgfPT@lista@i@lastval@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\or% 1 -> sub +\@pgfPT@mix@subtractive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@lastval@r/\pgfPT@lista@i@lastval@g/\pgfPT@lista@i@lastval@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\or% 2 -> linear +\@pgfPT@mix@linear[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@lastval@r/\pgfPT@lista@i@lastval@g/\pgfPT@lista@i@lastval@b,\pgfPT@lista@ii@r/\pgfPT@lista@ii@g/\pgfPT@lista@ii@b)% +\fi% +\or% case 2: list two ended +\expandafter\pgfPT@lista@i@rgb#1\relax% +\ifcase\pgfPT@CS@combine@options@mode\relax% +% 0 -> add +\@pgfPT@mix@additive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@lastval@r/\pgfPT@lista@ii@lastval@g/\pgfPT@lista@ii@lastval@b)% +\or% 1 -> sub +\@pgfPT@mix@subtractive[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@lastval@r/\pgfPT@lista@ii@lastval@g/\pgfPT@lista@ii@lastval@b)% +\or% 2 -> linear +\@pgfPT@mix@linear[\pgfPT@CS@combine@options@prop@i:\pgfPT@CS@combine@options@prop@ii](\pgfPT@lista@i@r/\pgfPT@lista@i@g/\pgfPT@lista@i@b,\pgfPT@lista@ii@lastval@r/\pgfPT@lista@ii@lastval@g/\pgfPT@lista@ii@lastval@b)% +\fi% +\or% case 3: both lists ended +\expandafter\@pgfPT@list@purge \pgfPT@sum@list[pgfPT@sum@list]\relax% +\edef\pgfPT@somafeita{1}% +\fi% +\edef\pgfPT@teste{#2}\ifx\pgfPT@teste\@pgfPT@ENDLIST\edef\pgfPT@lista@i{1}\fi% +\edef\pgfPT@teste{#4}\ifx\pgfPT@teste\@pgfPT@ENDLIST\edef\pgfPT@lista@ii{2}\fi% +\ifnum\pgfPT@lista@i=1\relax\ifnum\pgfPT@lista@control=0\relax\edef\pgfPT@lista@i@lastval@r{\pgfPT@lista@i@r}% +\edef\pgfPT@lista@i@lastval@g{\pgfPT@lista@i@g}\edef\pgfPT@lista@i@lastval@b{\pgfPT@lista@i@b}\fi% +\edef\pgfPT@lista@i@remainder{,\@pgfPT@ENDLIST}\else\edef\pgfPT@lista@i@remainder{#2}\fi% +\ifnum\pgfPT@lista@ii=2\relax\ifnum\pgfPT@lista@control=0\relax\edef\pgfPT@lista@ii@lastval@r{\pgfPT@lista@ii@r}% +\edef\pgfPT@lista@ii@lastval@g{\pgfPT@lista@ii@g}\edef\pgfPT@lista@ii@lastval@b{\pgfPT@lista@ii@b}\fi% +\edef\pgfPT@lista@ii@remainder{,\@pgfPT@ENDLIST}\else\edef\pgfPT@lista@ii@remainder{#4}\fi% +\pgfmathparse{int(\pgfPT@lista@i+\pgfPT@lista@ii)}\edef\pgfPT@lista@control{\pgfmathresult}% +\ifnum\pgfPT@somafeita=0\relax\edef\pgfPT@sum@list{\pgfPT@sum@list,\pgfPT@CS@mix@r/\pgfPT@CS@mix@g/\pgfPT@CS@mix@b}% +\edef\pgfPT@listas{\pgfPT@lista@i@remainder+\pgfPT@lista@ii@remainder}\expandafter\@pgfPT@somalistas\pgfPT@listas\relax\fi% +}% +\def\pgfPT@lista@i@rgb#1/#2/#3\relax{\edef\pgfPT@lista@i@r{#1}\edef\pgfPT@lista@i@g{#2}\edef\pgfPT@lista@i@b{#3}}% +\def\pgfPT@lista@ii@rgb#1/#2/#3\relax{\edef\pgfPT@lista@ii@r{#1}\edef\pgfPT@lista@ii@g{#2}\edef\pgfPT@lista@ii@b{#3}}% +% +% +% ---- Adding two colors (subtractive) with n parts of color one and k parts of color two ---- +% Actually, you get green from mixing (subtractively) yellow and cyan. +% Yellow is red + green (255, 255, 0), cyan is green + blue (0, 255, 255). +% Now make their opposite colors: blue (0, 0, 255) and red (255, 0, 0). +% Mix them additively and you get purple (255, 0, 255). +% Make its opposite and you get green (0, 255, 0). +% In other words, you can get a subtractive mix as the opposite of the additive mix of the opposites of your two colors. +% Finding a complementary color is very simple in the RGB model: +% For any given color, for example, red (#FF0000), you need to find the color, which, after being added to red, creates white (0xFFFFFF). +% Naturally, all you need to do, is subtract red from white and get cyan (0xFFFFFF - 0xFF0000 = 0x00FFFF). +\def\pgfPT@mix@subtractive{\@ifnextchar[\@pgfPT@mix@subtractive{\@pgfPT@mix@subtractive[1:1]}}% +\def\@pgfPT@mix@subtractive[#1:#2](#3/#4/#5,#6/#7/#8){% +% color one -> opposite(color one) = (1-red)/(1-green)/(1-blue) +\pgfmathparse{1-#3}\edef\pgfPT@CS@colorone@not@r{\pgfmathresult}% +\pgfmathparse{1-#4}\edef\pgfPT@CS@colorone@not@g{\pgfmathresult}% +\pgfmathparse{1-#5}\edef\pgfPT@CS@colorone@not@b{\pgfmathresult}% +% color two -> opposite(color two) = (1-red)/(1-green)/(1-blue) +\pgfmathparse{1-#6}\edef\pgfPT@CS@colortwo@not@r{\pgfmathresult}% +\pgfmathparse{1-#7}\edef\pgfPT@CS@colortwo@not@g{\pgfmathresult}% +\pgfmathparse{1-#8}\edef\pgfPT@CS@colortwo@not@b{\pgfmathresult}% +% sum opposite(color one) + opposite(color two) +\pgfmathparse{#1*\pgfPT@CS@colorone@not@r+#2*\pgfPT@CS@colortwo@not@r}\edef\pgfPT@CS@sum@r{\pgfmathresult}% +\pgfmathparse{#1*\pgfPT@CS@colorone@not@g+#2*\pgfPT@CS@colortwo@not@g}\edef\pgfPT@CS@sum@g{\pgfmathresult}% +\pgfmathparse{#1*\pgfPT@CS@colorone@not@b+#2*\pgfPT@CS@colortwo@not@b}\edef\pgfPT@CS@sum@b{\pgfmathresult}% +% +\pgfmathparse{max(\pgfPT@CS@sum@r,\pgfPT@CS@sum@g,\pgfPT@CS@sum@b)}\edef\pgfPT@CS@sum@max{\pgfmathresult}% +\pgfmathgreater{\pgfPT@CS@sum@max}{1}\edef\pgfPT@CS@sum@maxIsGreater{\pgfmathresult}% +\ifnum\pgfPT@CS@sum@maxIsGreater=1\relax% +\pgfmathparse{\pgfPT@CS@sum@r/\pgfPT@CS@sum@max}\edef\pgfPT@CS@sum@r{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@sum@g/\pgfPT@CS@sum@max}\edef\pgfPT@CS@sum@g{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@sum@b/\pgfPT@CS@sum@max}\edef\pgfPT@CS@sum@b{\pgfmathresult}% +\fi% +% opposite sum +\pgfmathparse{1-\pgfPT@CS@sum@r}\edef\pgfPT@CS@mix@r{\pgfmathresult}% +\pgfmathparse{1-\pgfPT@CS@sum@g}\edef\pgfPT@CS@mix@g{\pgfmathresult}% +\pgfmathparse{1-\pgfPT@CS@sum@b}\edef\pgfPT@CS@mix@b{\pgfmathresult}% +% +\definecolor{pgfPTmixedcolor}{rgb}{\pgfPT@CS@mix@r,\pgfPT@CS@mix@g,\pgfPT@CS@mix@b}% +}% +% +% ---- Adding two colors (additive) with n parts of color one and k parts of color two ---- +\def\pgfPT@mix@additive{\@ifnextchar[\@pgfPT@mix@additive{\@pgfPT@mix@additive[1:1]}}% +\def\@pgfPT@mix@additive[#1:#2](#3/#4/#5,#6/#7/#8){% +\pgfmathparse{#1*#3+#2*#6}\edef\pgfPT@CS@mix@r{\pgfmathresult}% +\pgfmathparse{#1*#4+#2*#7}\edef\pgfPT@CS@mix@g{\pgfmathresult}% +\pgfmathparse{#1*#5+#2*#8}\edef\pgfPT@CS@mix@b{\pgfmathresult}% +\pgfmathparse{max(\pgfPT@CS@mix@r,\pgfPT@CS@mix@g,\pgfPT@CS@mix@b)}\edef\pgfPT@CS@sum@max{\pgfmathresult}% +\pgfmathgreater{\pgfPT@CS@sum@max}{1}\edef\pgfPT@CS@sum@maxIsGreater{\pgfmathresult}% +\ifnum\pgfPT@CS@sum@maxIsGreater=1\relax% +\pgfmathparse{\pgfPT@CS@mix@r/\pgfPT@CS@sum@max}\edef\pgfPT@CS@mix@r{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@mix@g/\pgfPT@CS@sum@max}\edef\pgfPT@CS@mix@g{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@mix@b/\pgfPT@CS@sum@max}\edef\pgfPT@CS@mix@b{\pgfmathresult}% +\fi% +\definecolor{pgfPTmixedcolor}{rgb}{\pgfPT@CS@mix@r,\pgfPT@CS@mix@g,\pgfPT@CS@mix@b}% +}% +% +% Color mixing (as in xcolor) +% « In general, we use linear interpolation for color mixing: mix(C1, C2, p) = p * C1 + (1 - p) * C2 » +\def\pgfPT@mix@linear{\@ifnextchar[\@pgfPT@mix@linear{\@pgfPT@mix@linear[1:1]}}% +\def\@pgfPT@mix@linear[#1:#2](#3/#4/#5,#6/#7/#8){% +\pgfmathparse{#1/(#1+#2)}\edef\pgfPT@CS@mix@p{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@mix@p*#3+(1-\pgfPT@CS@mix@p)*#6}\edef\pgfPT@CS@mix@r{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@mix@p*#4+(1-\pgfPT@CS@mix@p)*#7}\edef\pgfPT@CS@mix@g{\pgfmathresult}% +\pgfmathparse{\pgfPT@CS@mix@p*#5+(1-\pgfPT@CS@mix@p)*#8}\edef\pgfPT@CS@mix@b{\pgfmathresult}% +\definecolor{pgfPTmixedcolor}{rgb}{\pgfPT@CS@mix@r,\pgfPT@CS@mix@g,\pgfPT@CS@mix@b}% +}% +% +% +% \pgfPTCSwrite[filename]{List of CSNames} +\begingroup% +\catcode`\|=0% +\catcode`\\=11% +|gdef|pgfPTCSwrite{|@ifnextchar[|pgfPT@CSwrite{|pgfPT@CSwrite[]}}% +|gdef|pgfPT@CSwrite[#1]#2{% +|pgfPT@tempfalse% +|edef|pgfPT@CSnamesprovided{#2}% +|ifx|pgfPT@CSnamesprovided|pgfPT@relax% +|PackageError{pgfPT}{\pgfPTCSwrite: no Color Scheme names provided. No file will be written...}{}|relax% +|else% +|pgfPT@temptrue|relax% +|xdef|pgfPT@filenameprovided{#1}% +|ifx|pgfPT@filenameprovided|pgfPT@relax|relax% +% setting the file name with the first name of the list +|def|pgfPT@setfilename##1,##2 |relax{|edef|pgfPT@filename{##1}}% +|expandafter|pgfPT@setfilename#2, |relax% +|else% +|edef|pgfPT@filename{#1}% +|fi|fi% +|ifpgfPT@temp% +|immediate|newwrite|pgfPT@CSfile% +|immediate|openout|pgfPT@CSfile=|pgfPT@filename.tex% +|@for|@pgfPT@tmp:=#2|do{% +|edef|pgfPT@CS@contents{|csname pgfPT@backColorsScheme@|@pgfPT@tmp|endcsname}% +|if|pgfPT@CS@contents|relax% +|PackageError{pgfPT}{\pgfPTCSwrite: the named Color Scheme you provided ('|@pgfPT@tmp') doesn't exist. It will not be written to file...}{}|relax% +|else% +|immediate|write|pgfPT@CSfile{% +\pgfPTnewColorScheme{|@pgfPT@tmp}{|pgfPT@CS@contents}% +}% +|fi% +}% end do +|immediate|closeout|pgfPT@CSfile% +|fi% pgfPT@temp +}% +|endgroup% +% +% +\makeatother% +\endinput diff --git a/Master/texmf-dist/tex/latex/pgf-periodictable/pgf-PeriodicTable.sty b/Master/texmf-dist/tex/latex/pgf-periodictable/pgf-PeriodicTable.sty index d814cc34b22..9507cdfcae4 100644 --- a/Master/texmf-dist/tex/latex/pgf-periodictable/pgf-PeriodicTable.sty +++ b/Master/texmf-dist/tex/latex/pgf-periodictable/pgf-PeriodicTable.sty @@ -1,9 +1,10 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Hugo Gomes @ 20/02/2023 (v2.0.0) % Hugo Gomes @ 08/11/2022 (v1.0.1) % Hugo Gomes @ 10/10/2022 (v1.0.0) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{pgf-PeriodicTable}[08/11/2022 pgf-PeriodicTable v1.0.1]%% +\ProvidesPackage{pgf-PeriodicTable}[20/02/2023 pgf-PeriodicTable v2.0.0]%% \RequirePackage{tikz}% \usetikzlibrary{fadings}% \tikzfading[name=aumentax, left color=transparent!80, right color=transparent!1]% @@ -41,6 +42,7 @@ \def\pgfPT@TRUE{TRUE}% \def\pgfPT@false{false}% \def\pgfPT@relax{}% +\def\pgfPT@space{ }% \def\pgfPT@unit@d@gcm{g/cm3}% v1.0.1 \def\pgfPT@unit@d@gdm{g/dm3}% v1.0.1 \def\pgfPT@unit@d@both{both}% v1.0.1 @@ -68,6 +70,7 @@ \input{pgfPT.names.tex}% Loading the names of the elements in the Periodic Table \input{pgfPT.labels.tex}% Loading language labels \input{pgfPT.process.language.tex}% Macros for process language labels +\input{pgfPT.input.library.tex}% Loading the input library mechanism (new v2.0.0) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -------------------------------------------------------------------------------------------------- % commands ################################################# @@ -2755,7 +2758,9 @@ rectangle % internal macro -> pgfPT@processlist ----------------------------------------------------------- % Analyze the key and store the list of Z numbers in \pgfPT@@cellslist ------------------------ \def\pgfPT@processlist{% - \ifcat1\pgfPTcells\relax% +\def\pgfPT@processlist@firstchar##1##2\relax{\edef\pgfPT@tmp{##1}}% +\expandafter\pgfPT@processlist@firstchar\pgfPTcells\relax% + \ifcat1\pgfPT@tmp\relax% %\pgfPTcells is a list of Z numbers \edef\pgfPT@@cellslist{\pgfPTcells}% \else% diff --git a/Master/texmf-dist/tex/latex/pgf-periodictable/pgfPT.backcolors.keys.tex b/Master/texmf-dist/tex/latex/pgf-periodictable/pgfPT.backcolors.keys.tex index 59b7670dab7..076f588ca02 100644 --- a/Master/texmf-dist/tex/latex/pgf-periodictable/pgfPT.backcolors.keys.tex +++ b/Master/texmf-dist/tex/latex/pgf-periodictable/pgfPT.backcolors.keys.tex @@ -28,7 +28,7 @@ \xglobal\colorlet{cpgfPTTMP}{cpgfPTTMP}% }% \def\pgfPT@newColorScheme@noptions#1#2{% -\expandafter\def\csname pgfPT@backColorsScheme@#1\endcsname{#2,1/1/1}% +\expandafter\edef\csname pgfPT@backColorsScheme@#1\endcsname{#2,1/1/1}% \definecolor{cpgfPTTMP}{rgb}{1,1,1}% \xglobal\colorlet{cpgfPTTMP}{cpgfPTTMP}% }% @@ -53,24 +53,24 @@ csBlocks/.style={back color scheme=Blocks},% csSolid/.style={back color scheme=solid,back color=#1}% }% STYLES -> csSoft,csJmol,csCPK,csRasmol,csRasmolNew,csWikipedia,csMNM,csPS,csRadio,csBlocks,csSolid % setting keys with default values --------------------------------------------------------------- -\pgfkeys{/pgfPerTable/.cd,back color scheme,back color} +\pgfkeys{/pgfPerTable/.cd,back color scheme,back color}% % end !! PGF keys: the cells of the periodic table to be drawn ---------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def\pgfPTcolorSchemeInfo{% \global\pgfPT@dima=0pt\relax% -\foreach \Z in {1,...,118}{\path (-\pgfPTcellwd,-10pt*\Z) rectangle node[midway,font=\tiny\bfseries] {Z=\Z} ++(\pgfPTcellwd,-10pt);} -\foreach \cs in {default,Soft,Jmol,CPK,Rasmol,RasmolNew,Wikipedia,MNM,PS,Radio,Blocks}{ - \node[below right,text width=\pgfPTcellwd,text centered,font=\tiny,inner xsep=0pt] at (\pgfPT@dima,0pt) {\cs}; - \path (\pgfPTcellwd+\pgfPT@dima,0pt) rectangle node[midway,font=\tiny\bfseries] {(r,g,b)} ++(2*\pgfPTcellwd,-10pt); +\foreach \Z in {1,...,118}{\path (-\pgfPTcellwd,-10pt*\Z) rectangle node[midway,font=\tiny\bfseries] {Z=\Z} ++(\pgfPTcellwd,-10pt);}% +\foreach \cs in {default,Soft,Jmol,CPK,Rasmol,RasmolNew,Wikipedia,MNM,PS,Radio,Blocks}{% + \node[below right,text width=\pgfPTcellwd,text centered,font=\tiny,inner xsep=0pt] at (\pgfPT@dima,0pt) {\cs};% + \path (\pgfPTcellwd+\pgfPT@dima,0pt) rectangle node[midway,font=\tiny\bfseries] {(r,g,b)} ++(2*\pgfPTcellwd,-10pt);% \edef\pgfPT@@colorlist{\csname pgfPT@backColorsScheme@\cs\endcsname}% - \foreach \Z in {1,...,118}{ + \foreach \Z in {1,...,118}{% \pgfPT@processbackcolor{\Z}% - \draw[fill=cpgfPTTMP] (\pgfPT@dima,-10pt*\Z) rectangle ++(\pgfPTcellwd,-10pt); - \pgfPT@extract@rgb@fill{cpgfPTTMP} - \draw (\pgfPTcellwd+\pgfPT@dima,-10pt*\Z) rectangle node[midway,font=\tiny\bfseries] {(\pgfPT@rf,\pgfPT@gf,\pgfPT@bf)} ++(2*\pgfPTcellwd,-10pt); - } - \draw[thick] (\pgfPT@dima,0pt) rectangle ++(3*\pgfPTcellwd,-1190pt); + \draw[fill=cpgfPTTMP] (\pgfPT@dima,-10pt*\Z) rectangle ++(\pgfPTcellwd,-10pt);% + \pgfPT@extract@rgb@fill{cpgfPTTMP}% + \draw (\pgfPTcellwd+\pgfPT@dima,-10pt*\Z) rectangle node[midway,font=\tiny\bfseries] {(\pgfPT@rf,\pgfPT@gf,\pgfPT@bf)} ++(2*\pgfPTcellwd,-10pt);% + }% + \draw[thick] (\pgfPT@dima,0pt) rectangle ++(3*\pgfPTcellwd,-1190pt);% \global\advance\pgfPT@dima by\pgfPTcellwd\global\advance\pgfPT@dima by\pgfPTcellwd\relax\global\advance\pgfPT@dima by\pgfPTcellwd\relax% - } -} + }% +}% \endinput |