diff options
Diffstat (limited to 'graphics/pgf')
74 files changed, 9723 insertions, 2554 deletions
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex index 0806a20b78..19a5cd01f3 100644 --- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex +++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex @@ -5,6 +5,38 @@ full list of changes. \begin{itemize} \item + Version 1.7.0 (2024-08-03) + + There are no big changes here, but the change to the resistor code + (maybe one of the most used by the package) well deserves a minor + version bump. A couple of new components, and several minor fixes. + + \begin{itemize} + \tightlist + \item + New component: new kind of current tap (suggested by + \href{https://github.com/circuitikz/circuitikz/issues/807}{EEpchi + and Dr4UX on GitHub}) + \item + New arrow tip \texttt{Jack\ Tap} to help drawing jack connectors + (suggested by + \href{https://github.com/circuitikz/circuitikz/issues/806}{Anisio + Rogerio Braga}) + \item + Change the drawing of the thermocouple (suggested by + \href{https://github.com/circuitikz/circuitikz/issues/811}{Dr4UX on + GitHub}) + \item + Change and enhancement to the drawing of the American resistors + (triggered by + \href{https://github.com/circuitikz/circuitikz/issues/814}{Dr4UX on + GitHub}), fixing a long-standing small asymmetry that nobody noticed + \item + Minor adjustment for joins in \texttt{viscoe} component + \item + Minor additions (\texttt{rectjoinfill}) and fixes in documentation + \end{itemize} +\item Version 1.6.9 (2024-05-25) Several new components and a bug fix for a nasty long-standing bug @@ -495,7 +527,7 @@ full list of changes. Robustify some shapes: do not let arrows option pass to the inner drawing (see \href{https://tex.stackexchange.com/a/632084/38080}{here} and - \href{https://matrix.to/\#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org&via=2krueger.de&via=im.f3l.de}{here}) + \href{https://matrix.to/\#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org\&via=2krueger.de\&via=im.f3l.de}{here}) \item Add warning about global draw options in the manual \item diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf Binary files differindex cc6865c72f..032692e01f 100644 --- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf +++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf Binary files differindex 9f3d2b57e0..023c265d6e 100644 --- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf +++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex index ac116af09e..e0fa8032b1 100644 --- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex +++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex @@ -2200,6 +2200,83 @@ For the \texttt{photoresistor} and the two ``flavors'' of the light-dependent re \end{tikzpicture} \end{LTXexample} +\begingroup % protect changes to resistors +\newcommand\showjoin[1]{% +\begin{tikzpicture}[scale=4, transform shape] + \clip (0.2,-0.05) rectangle (0.6,0.3); + \draw[ultra thick] (0,0) to[R, resistors/thickness=#1] ++(2,0); +\end{tikzpicture}% +} +\newcommand{\splat}{\begin{center}\ttfamily\scriptsize\begin{tabular}{cccc} + \showjoin{1}&\showjoin{2}&\showjoin{3}&\showjoin{4}\\ + thickness=1 & thickness=2 & thickness=3 & thickness=4 \\ + \end{tabular}\end{center}% +} +\newcommand{\rdivider}[1]{\begin{tikzpicture} + \ctikzset{resistors/thickness=#1} + \draw (0,0) node[ground]{} to[V] ++(0,2) to[R] ++(2,0) + to[R] ++(0,-2) to[short,-*] (0,0); +\end{tikzpicture}\qquad} +\newcommand{\divsplat}[1]{#1\par + \begin{center} + \rdivider{1}\rdivider{2}\rdivider{3}\rdivider{4} +\end{center}} + +\paragraph{Details of American (``zig-zag'') resistors.\label{sec:zigzag-details}} American (zig-zag) resistors have a little joining problem\footnote{Noticed by \href{https://github.com/circuitikz/circuitikz/issues/811}{user Dr4UX on GitHub} and later \href{https://github.com/circuitikz/circuitikz/discussions/814}{discussed here}.} with the leading wires if the thickness is greater than two. In the following drawing you can see the problem when the thickness grows from 1 to 4. + +\splat + +Since \texttt{v1.7.0}, one possibility to correct the problem is to change the type of joining of the zig-zag line, using the key \texttt{resistors/zigzag join}, which is a command that by default is void. For example, the following effect is obtained by using + +\begin{lstlisting}[numbers=none] +\ctikzset{resistors/zigzag hook/.code={\pgfsetroundcap}} +\end{lstlisting} +{\ctikzset{resistors/zigzag hook/.code={\pgfsetroundcap}} +\splat} + +or you can even go full rounded + +\begin{lstlisting}[numbers=none] +\ctikzset{resistors/zigzag hook/.code={\pgfsetroundcap\pgfsetroundjoin}} +\end{lstlisting} +{\ctikzset{resistors/zigzag hook/.code={\pgfsetroundcap\pgfsetroundjoin}} +\splat} + +Another possibility is to add a little horizontal ``stub'' to the shape, with the key \texttt{resistors/zigzag stub} (default \texttt{0}), which will add a first part which is a continuation of the wire: +\begin{lstlisting}[numbers=none] +\ctikzset{resistors/zigzag stub=0.05}% this is relative to the resistor's length +\end{lstlisting} +{\ctikzset{resistors/zigzag stub=0.05} +\splat} + +\dots or you can just combine all of them as you prefer. With the standard join/cap options, the look of the resistors for thickness from 1 to 4 is shown here: + +\ctikzset{american} +\divsplat{Standard drawing of American resistors} +\divsplat{With a 5\% stub: \ctikzset{resistors/zigzag stub=0.05}} +\divsplat{With a 20\% stub: \ctikzset{resistors/zigzag stub=0.2}} + + +\bigskip +Finally, here is the detailed shape with thickness 2 (red=0, blue=0.05, green=0.2), magnified six times: + +\vspace*{2cm}% this vspace fences are needed because the transform canvas wreak havoc with the bbox +\begin{tikzpicture}[transform canvas={scale=6}] + \ctikzset{resistors/zigzag stub=0} + \draw[red] (0,0.2) to [resistor, resistors/thickness=4] ++(2,0); + \ctikzset{resistors/zigzag stub=0.05} + \draw[blue] (0,0.1) to [resistor, resistors/thickness=4] ++(2,0); + \ctikzset{resistors/zigzag stub=0.2} + \draw[green] (0,0) to [resistor, resistors/thickness=4] ++(2,0); + % \draw [very thin](1,0.5) -- (1,-0.5); + % \draw [very thin](0,0) -- ++(2,0); + % \draw [very thin](0,0.1) -- ++(2,0); + % \draw [very thin](0,0.2) -- ++(2,0); +\end{tikzpicture} +\vspace*{2cm} + +\endgroup % changes to resistors stops here + \subsection{Capacitors and inductors: dynamical bipoles} @@ -2852,9 +2929,9 @@ Notice that the size of the double-circle sources (and of the triple-circle one) \end{LTXexample} \paragraph{Waveform symbols.} -Internal symbols of sinusoidal, triangular and square sources are drawn with the same line thickness as the component by default. You can modify this by setting the key \texttt{sources/symbols/thickness} for independent sources and the corresponding \texttt{csource/...} for dependent ones. The value used here is relative to the component (i.e. the circle) value. +Internal symbols of sinusoidal, triangular and square sources are drawn with the same line thickness as the component by default. You can modify this by setting the key \texttt{sources/symbol/thickness} for independent sources and the corresponding \texttt{csource/...} for dependent ones. The value used here is relative to the component (i.e. the circle) value. -Normally the symbol is oriented in the same direction as the line, and rotate rigidly with the component; you can change this orientation using the key \texttt{sources/symbols/rotate} or \texttt{csource/...}. The default value is \texttt{90} which correspond to the ``line'' direction (remember, path components are defined as horizontal ones). +Normally the symbol is oriented in the same direction as the line, and rotate rigidly with the component; you can change this orientation using the key \texttt{sources/symbol/rotate} or \texttt{csource/...}. The default value is \texttt{90} which correspond to the ``line'' direction (remember, path components are defined as horizontal ones). If instead of an angle value you use \texttt{auto}, the symbol will be rotated so that the waveform is always vertical, similar to what happens in instruments: \begin{LTXexample}[varwidth=true] @@ -3019,12 +3096,44 @@ Sometimes it is better to use a shape for instruments which is very different fr \footnotetext{Suggested by \texttt{@nobrl} on GitHub} \circuitdescbip{iloop}{Current loop (symbolic)}{}(left/135/0.2, right/45/0.2, center/-90/0.3, i/30/0.4) \circuitdescbip{iloop2}{Current loop (real)}{}(left/135/0.2, right/-45/0.2, center/-90/0.3, i+/135/0.4, i-/45/0.4) + \circuitdescbip{currtap}{Current tap (probe)\footnotemark}{}(tap/-90/0.2) + \footnotetext{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/807}{user EEpchi on GitHub}.} \end{groupdesc} \subsubsection{Instruments customizations}\label{sec:tweak-instruments} You can change the scale of all the instruments (including the current loops) by setting the key \texttt{instruments/scale} to something different from the default \texttt{1.0}. +\paragraph{Current probes.} +You can change the inner dot in several way, by changing the following keys under the \verb!\ctikzset! key \texttt{bipoles/currtap}: +\begin{center} + \begin{tabular}{>{\ttfamily}l>{\ttfamily}lp{0.7\linewidth}} + \toprule + parameter & default & description \\ + \midrule + thickness & default & Set the thickness of the line (\texttt{default}: do not change the class thickness) \\ + color & default & stroke color: \texttt{default} is the same as the component \\ + dash & default & dash pattern: none means solid line, default means keep the global pattern\footnotemark \\ + fill & default & fill the inner dot; \texttt{default} means use the wire color, \texttt{none} do not fill, other keys must be a valid color \\ + dot size& 0.5 & relative size of the inner dot \\ + \bottomrule + \end{tabular} + \footnotetext{Follows the syntax of the pattern sequence \texttt{\textbackslash pgfsetdash} --- see \TikZ{} manual for details; phase is always zero. Basically you pass pairs of dash-length -- blank-length dimensions, see the examples.} +\end{center} + +\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily] +\begin{circuitikz} + \draw (0,2) to[currtap, bipoles/currtap/fill=none, *-] + ++(2,0) to[currtap, bipoles/currtap/.cd, + fill=yellow, color=red, thickness=3, + dash={{1.14pt}{2pt}}] ++(2,0); + \draw (0,0) to[currtap=I, *-, name=ct] ++(2,0) + to[currtap, -*, name=ct2, + bipoles/currtap/dot size=0.3] ++(2,0); + \draw (ct.tap) -- ++(0,-1) (ct2.tap) -- ++(0,-1); +\end{circuitikz} +\end{LTXexample} + \paragraph{Oscilloscope waveform.} You can change the waveform shown in the oscilloscope ``screen''\footnote{Suggested by \href{https://tex.stackexchange.com/q/595062/38080}{Mario Tafur on TeX.SX}}. To change it, you just set the key \texttt{bipoles/oscope/waveform} to one of the available shape. You have available the shapes in the following list (the default is \texttt{ramps}): \begin{LTXexample}[pos=t, basicstyle=\small\ttfamily] @@ -3478,9 +3587,9 @@ While the horizontal line will be drawn with the current path values, you can ch \end{circuitikz} \end{LTXexample} -\subsection{Arrows}\label{sec:arrows} +\subsection{Arrows (fake and real)}\label{sec:arrows} -These are pseudo-arrows used in lot of places in the packages (for transistors, flows, currents, and so on). The first three arrows are magnified by a factor~3 in the boxes below; for the \texttt{trarrow}, the anchor \texttt{tip} is exactly on the tip and \texttt{btip} is slightly receded. +The main arrow shapes in \Circuitikz{} are really shapes, used as pseudo-arrows in lot of places in the packages (for transistors, flows, currents, and so on). The first three arrows are magnified by a factor~3 in the boxes below; for the \texttt{trarrow}, the anchor \texttt{tip} is exactly on the tip and \texttt{btip} is slightly receded. \begin{groupdesc} \circuitdesc[3]{currarrow}{Arrow for current and voltage}{}(center/0/0.2) @@ -3540,6 +3649,30 @@ The arrows are the ones set with the keys \texttt{tunable start arrow} and \text Notice also the need to force a transparency group if you want a semitransparent arrow. +\subsubsection{Arrow tips}\label{sec:arrow-tips} + +In addition to the pseudo-arrows, \Circuitikz{} also adds a couple of ``real'' arrow tips. +The package automatically loads the \texttt{arrows.meta} \TikZ{} library but \emph{not} the deprecated \texttt{arrows} library; in the first versions of the package it used quite a lot the \texttt{latex'} tip, which is not available anymore. To maintain the backward compatibility, the `latexslim` tip has been added, and used by default in several components. This is an old-style arrow tip, with no customization possible. + +The other tip is \texttt{Jack Tap}\footnote{Added after a suggestion from \href{https://github.com/circuitikz/circuitikz/issues/806}{Anisio Rogerio Braga} on GitHub}, which is mainly used to build jack connectors (see section~\ref{sec:jacks}). This is a new-style arrow tip, and accepts the parameter \texttt{length} (default \texttt{0.3 cm}), \texttt{width} (default \texttt{0.15 cm}), and the boolean \texttt{swap}. + + +\begin{LTXexample}[varwidth=true] +\begin{circuitikz} + \draw (0,.25) (0,0) edge[-latexslim] ++(1,0) + ++(0, -0.5) edge[-{Jack Tap[swap]}] ++(1,0) + ++(0, -0.5) edge[-Jack Tap] ++(1,0) + ++(0, -0.5) edge[-{Jack Tap[fill=cyan]}] ++(1,0) + ++(0, -0.5) edge[-{Jack Tap[width=.3cm,fill]}]++(1,0) + ++(0, -0.5) edge[-{Jack Tap[width=.3cm,line join=round, + line cap=round]}, thick] ++(1,0) + ++(0, -0.5) edge[^-^f] ++(1,0) + ++(0, -0.5) edge[vf-v] ++(1,0); +\end{circuitikz} +\end{LTXexample} +You can also have a filled version, by adding the key \texttt{fill} (without arguments\footnote{This usage of the \texttt{fill} key in arrow tips will be added to \TikZ{} in version \texttt{3.1.11}, see \href{https://github.com/pgf-tikz/pgf/pull/1352}{this PR by Henri Menke}; \Circuitikz{} will add it to older versions.}) or \texttt{fill=color} if you want a color different from the stroke ones, and they accept the \texttt{line join} and \texttt{line cap} as most of the standard \TikZ{} arrows. +As you can see, the normal and swapped \texttt{Jack Tap} tips have the shorthands \texttt{v} and \verb|^| (and \texttt{vf} and \verb|^f| for their filled counterparts). Notice that the tips are automatically reversed when they are at the \emph{start} of the path. + \subsection{Terminal shapes}\label{sec:terminals} These are the so-called ``bipole nodes'' shapes, or poles (see section~\ref{sec:bipole-nodes}). These nodes are always filled; the ``open'' versions (starting with an \texttt{o}) are by default filled with the color specified by the key \texttt{open nodes fill} (by default \texttt{white}), but you can override locally it with the \texttt{fill} parameter. @@ -3553,6 +3686,12 @@ These are the so-called ``bipole nodes'' shapes, or poles (see section~\ref{sec: \circuitdesc{osquarepole}{Open square-shape terminal}{} \end{groupdesc} +This is not a pole, but it's used to "fill" nasty corners (look closer, and see ~\ref{sec:line-joins}). + +\begin{groupdesc} + \circuitdesc{rectjoinfill}{Filling square with line width size}{} +\end{groupdesc} + Since version 0.9.0, ``bipole nodes'' shapes have all the standard geographical anchors, so you can do things like these: \begin{LTXexample}[varwidth=true] @@ -3672,6 +3811,33 @@ You can use the \texttt{plug center} anchor to add the IEC ``multiplier'': \end{circuitikz} \end{LTXexample} +\subsubsection{Jack connectors}\label{sec:jacks} + +There are \emph{lots} of different jack connectors symbols --- see the \href{https://github.com/circuitikz/circuitikz/issues/806}{discussion here} for examples. So instead of creating a monster component, it has been decided to add elements to simplify the drawing of such connectors. The first (and for now only) such element is the \texttt{Jack Tap} arrow tip (see section~\ref{sec:arrow-tips}) with its shorthands \texttt{v} and \verb|^|. + +For example, and audio jack can be drawn like this: + +\begin{LTXexample}[pos=t, varwidth=true] +% drawing based on one by Anisio Rogerio Braga +% https://github.com/circuitikz/circuitikz/issues/806 +\newcommand\dx{1.5}\newcommand\dy{1} +\begin{circuitikz} + \draw[-v] (0,\dy/3*4) to[short, o-] ++(\dx,0); + \draw[-Triangle] (0,\dy) node[ocirc]{} -| ++(\dx/3,\dy/3); + \draw[-Triangle] (0,\dy/3*2) node[ocirc]{} -| ++(\dx/3,-\dy/3); + \draw[-^] (0,\dy/3) to[short, o-] ++(2*\dx/3,0); + \draw (0,0.0) to[short, o-] ++(1.75*\dx,0) rectangle ++(0.2,4*\dy/3); +\end{circuitikz}\qquad\qquad +%---% audio jack with an inserted plug +\begin{circuitikz} + \draw[-v] (0,\dy/3*4) to[short, o-] ++(\dx,0.2); + \draw[-Triangle] (0,\dy) node[ocirc]{} -| ++(\dx/3,\dy/3); + \draw[-Triangle] (0,\dy/3*2) node[ocirc]{} -| ++(\dx/3,-\dy/3); + \draw[-^] (0,\dy/3) to[short, o-] ++(2*\dx/3,-0.2); + \draw (0,0.0) to[short, o-] ++(1.75*\dx,0) rectangle ++(0.2,4*\dy/3); +\end{circuitikz} +\end{LTXexample} + \subsection{Block diagram components} \noindent Contributed by Stefan Erhardt. @@ -6596,7 +6762,7 @@ with the parameter \texttt{number inputs} : \end{circuitikz} \end{LTXexample} -You can suppress the drawing of the logic ports input leads by using the boolean key \texttt{logic ports draw input leads} (default \texttt{true}) or, locally, with the style \texttt{no inputs leads} (that can be reverted with \texttt{input leads}), like in the following example. The anchors do not change and you have to take responsibility to make the connection to the ``border''-anchors. +You can suppress the drawing of the logic ports input leads by using the boolean key \texttt{logic ports draw input leads} (default \texttt{true}) or, locally, with the style \texttt{no input leads} (that can be reverted with \texttt{input leads}), like in the following example. The anchors do not change and you have to take responsibility to make the connection to the ``border''-anchors. \begin{LTXexample}[varwidth=true] \begin{circuitikz} @@ -7436,9 +7602,9 @@ External pins' length is controlled by the key \texttt{multipoles/external pins like in chips. In addition, like in logic ports, you can suppress the drawing of the leads by using the boolean key \texttt{logic ports draw input leads} (default \texttt{true}) or, locally, -with the style \texttt{no inputs leads} (that can be reverted with +with the style \texttt{no input leads} (that can be reverted with \texttt{input leads}). -The main difference between setting \texttt{external pins width} to \texttt{0} or using \texttt{no inputs lead} is that in the first case the normal pin anchors and the border anchors will coincide, and in the second case they will not move and stay where they should have been if the leads were drawn. +The main difference between setting \texttt{external pins width} to \texttt{0} or using \texttt{no input lead} is that in the first case the normal pin anchors and the border anchors will coincide, and in the second case they will not move and stay where they should have been if the leads were drawn. You can draw only selected pins and leave out the rest by setting the keys \texttt{multipoles/draw only \emph{side} pins} and the corresponding style @@ -7840,7 +8006,7 @@ You can, if you want, avoid printing the numbers of the pin with \texttt{hide nu \end{LTXexample} -Also, you can suppress the drawing of the pins, by using the style \texttt{no inputs leads} (that can be reverted with \texttt{input leads}). The main difference between setting \texttt{external pins width} to \texttt{0} or using \texttt{no inputs lead} is that in the first case the normal pin anchors and the border anchors will coincide, and in the second case they will not move and stay where they should have been if the leads were drawn. +Also, you can suppress the drawing of the pins, by using the style \texttt{no input leads} (that can be reverted with \texttt{input leads}). The main difference between setting \texttt{external pins width} to \texttt{0} or using \texttt{no input lead} is that in the first case the normal pin anchors and the border anchors will coincide, and in the second case they will not move and stay where they should have been if the leads were drawn. For special use you can suppress the orientation mark with the key \texttt{no topmark} (default \texttt{topmark}). diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty index afa91d4b2b..4f5ce00a0f 100644 --- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty +++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty @@ -16,8 +16,8 @@ \providecommand\DeclareRelease[3]{} \providecommand\DeclareCurrentRelease[2]{} -\def\pgfcircversion{1.6.9} -\def\pgfcircversiondate{2024/05/25} +\def\pgfcircversion{1.7.0} +\def\pgfcircversiondate{2024/08/03} \DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex} \DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex} diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex index 943745bf7a..cca735bf1e 100644 --- a/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex +++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirc.defines.tex @@ -266,6 +266,58 @@ % %>>> +%% check loaded TikZ/pgf version %<<<` +% +% parse the release date, thanks to Skillmon +% https://github.com/pgf-tikz/pgf/issues/1348#issuecomment-2231681032 +% date can be yyyy-mm-dd or (older TikZ) yyyy/mm/dd +\begingroup + \pgfutil@protected\def\parsedate#1% + {% + \afterassignment\parsedate@month + \pgf@circ@count@a=#1\relax + } + \pgfutil@protected\def\parsedate@month#1% + {% + \afterassignment\parsedate@day + \pgf@circ@count@b=% + } + \pgfutil@protected\def\parsedate@day#1% + {% + \afterassignment\parsedate@cleanup + \pgf@circ@count@c=% + } + \def\parsedate@cleanup#1\relax{}% + \parsedate{\pgfrevisiondate}% + \xdef\ctikz@@pgfyear{\the\pgf@circ@count@a}% + \xdef\ctikz@@pgfmonth{\the\pgf@circ@count@b}% + \xdef\ctikz@@pgfday{\the\pgf@circ@count@c}% +\endgroup +% The following code thanks to Skillmon: +% https://tex.stackexchange.com/a/722570/38080 +% modified by romano to check the date +\def\ctikz@@ifpgfafter@auxi#1#2% + {% + \ifnum#1 + \ctikz@@ifpgfafter@auxii{#2}% + \fi + } +\def\ctikz@@ifpgfafter@auxii#1\fi#2\ctikz@@ifpgfafter#3{\fi#1} +\def\ctikz@@ifpgfafter#1-#2-#3#% + {% + \ctikz@@ifpgfafter@auxi{\ctikz@@pgfyear>#1}\pgfutil@firstoftwo + \ctikz@@ifpgfafter@auxi{\ctikz@@pgfyear<#1}\pgfutil@secondoftwo + \ctikz@@ifpgfafter@auxi{\ctikz@@pgfmonth>#2}\pgfutil@firstoftwo + \ctikz@@ifpgfafter@auxi{\ctikz@@pgfmonth<#2}\pgfutil@secondoftwo + \ctikz@@ifpgfafter@auxi{\ctikz@@pgfday<#3}\pgfutil@secondoftwo + \pgfutil@gobble\ctikz@@ifpgfafter\pgfutil@firstoftwo + } +% +% usage \ctikz@@ifpgfafter 2023-01-16{true}{false} +% ^^^ no spaces here, braces needed. +% +%>>> + %% arrow tips macros and utilities %<<<1 % the default arrow is latexslim, which has been ported over old arrows library (deprecated) @@ -298,9 +350,70 @@ \pgfpathclose \pgfusepathqfill } - \pgfarrowsdeclarereversed{latexslim reversed}{latexslim reversed}{latexslim}{latexslim} - +%% Jack Tap, see +%% https://github.com/circuitikz/circuitikz/issues/806 +\pgfdeclarearrow{name=Jack Tap, + parameters = {% + \the\pgfarrowlength,% + \the\pgfarrowwidth,% + \ifpgfarrowswap s\fi% + \ifpgfarrowopen o\fi% + \ifpgfarrowroundjoin j\fi + \ifpgfarrowroundcap c\fi% + }, + setup code = { + \pgfarrowssettipend{.5\pgfarrowlength} + \pgfarrowssetlineend{-.6\pgfarrowlength} + \pgfarrowssetvisualbackend{-.6\pgfarrowlength} + \pgfarrowssetbackend{-.6\pgfarrowlength} + % hull + \pgfarrowshullpoint{.5\pgfarrowlength}{0pt} + \pgfarrowshullpoint{0pt}{\pgfarrowwidth} + \pgfarrowshullpoint{-.6\pgfarrowlength}{0pt} + % Saves: Only the length: + \pgfarrowssavethe\pgfarrowlength + \pgfarrowssavethe\pgfarrowwidth + }, + drawing code = { + \pgfsetdash{}{+0pt} + \pgfarrowlinewidth=\pgflinewidth + \ifpgfarrowroundjoin\pgfsetroundjoin\else\pgfsetmiterjoin\fi + \ifpgfarrowroundcap\pgfsetroundcap\else\pgfsetbuttcap\fi + \pgfpathmoveto{\pgfqpoint{-.6\pgfarrowlength}{0pt}} + \pgfpathlineto{\pgfqpoint{-.5\pgfarrowlength}{0pt}} + \pgfpathlineto{\pgfqpoint{0pt}{\pgfarrowwidth}} + \pgfpathlineto{\pgfqpoint{.5\pgfarrowlength}{0pt}} + \ifpgfarrowopen + \pgfusepathqstroke + \else + \pgfpathclose + \ifdim\pgfarrowlinewidth>0pt\pgfusepathqfillstroke\else\pgfusepathqfill\fi + \fi + }, + defaults = {length = 0.3cm, width=0.15cm, open}, + % cache=false, % breaks everything +} +% the new "fill without arg" will be in TikZ 3.1.11. Apply it here if we have an +% older version +\ctikz@@ifpgfafter 2023-01-16{\relax}{% + % thanks @muzimuzhi https://github.com/pgf-tikz/pgf/issues/1348#issuecomment-2229075269 + % undo the fill/.value required key + \expandafter\let\csname pgfk@/pgf/arrow keys/fill/.@def\endcsname\@undefined + \pgfkeys{/pgf/arrow keys/fill/.code={% + \def\pgf@temp{#1}% + \ifx\pgf@temp\pgf@nonetext% + \pgfarrowsaddtooptions{\pgfarrowopentrue}% + \else\ifx\pgf@temp\pgfkeysnovalue@text% + \pgfarrowsaddtooptions{\pgfarrowopenfalse}% + \else + \pgfarrowsaddtooptions{\pgfarrowopenfalse\def\pgf@arrows@fill@color{#1}}% + \fi\fi + }}% +} +\tikzset{v/.tip={Jack Tap[swap]}, ^/.tip={Jack Tap}, + vf/.tip={Jack Tap[swap,fill]}, ^f/.tip={Jack Tap[fill]}} +% % select the arrows using available defaults. \def\pgfcirc@arrow@default{default} % choose the arrows to use. Use #2 and #3 if the key is equal to "default" @@ -466,7 +579,30 @@ \fi \fi } - +% similar o the above, use the fill parameter to set fill or draw +% for a subset of the shape +\def\pgf@circ@subset@fill@or@draw#1{% + % You *must* be sure that this is called inside a \pgfscope! + \edef\@@none{none}\edef\@@default{default} + \edef\@@tmp{\ctikzvalof{#1/fill}} + \ifx\@@tmp\@@none + \pgfusepath{draw} + \else + \ifx\@@tmp\@@default\else + \pgfsetfillcolor{\@@tmp} + \fi + \pgfusepath{draw, fill} + \fi +} +% ...and for the thickness +\def\pgf@circ@subset@thickness#1{% + % You *must* be sure that this is called inside a \pgfscope! + \edef\@@default{default} + \edef\@@tmp{\ctikzvalof{#1/thickness}} + \ifx\@@tmp\@@default\else + \pgfsetlinewidth{\@@tmp\pgflinewidth}% + \fi +} % set the text color (via \color) if the color is not default or none % needed in some strange case (like bodydiode' dots) \def\pgf@circ@maybe@color#1{% @@ -557,6 +693,7 @@ % #7 - macros drawing the bipole % \long\def\pgfcircdeclarebipolescaled#1#2#3#4#5#6#7{ + % \typeout{Declaring bipole:\space #4,} \pgfdeclareshape{#4shape}{ \savedmacro{\ctikzclass}{\edef\ctikzclass{#1}} \saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}} @@ -602,97 +739,33 @@ \pgf@y=.5\pgf@y } \anchor{center}{\pgfpointorigin} - \anchor{n}{ - \northeast - \pgf@x=0cm - } - \anchor{north east}{ - \northeast - } - \anchor{north west}{ - \northeast - \pgf@x=-\pgf@x - } - \anchor{ne}{ - \northeast - } - \anchor{nw}{ - \northeast - \pgf@x=-\pgf@x - } - \anchor{e}{ - \northeast - \pgf@y=0cm - } - \anchor{s}{ - \southwest - \pgf@x=0cm - } - \anchor{south east}{ - \southwest - \pgf@x=-\pgf@x - } - \anchor{south west}{ - \southwest - } - \anchor{se}{ - \southwest - \pgf@x=-\pgf@x - } - \anchor{sw}{ - \southwest - } - \anchor{w}{ - \southwest - \pgf@y=0cm - } - \anchor{north}{ - \northeast - \pgf@x=0cm - } - \anchor{east}{ - \northeast - \pgf@y=0cm - } - \anchor{south}{ - \southwest - \pgf@x=0cm - } - \anchor{west}{ - \southwest - \pgf@y=0cm - } - \anchor{right}{ - \northeast - \pgf@y=0cm - } - \anchor{above}{ - \northeast - \pgf@x=0cm - } - \anchor{left}{ - \southwest - \pgf@y=0cm - } - \anchor{below}{ - \southwest - \pgf@x=0cm - } - \anchor{a}{ - \northeast - \pgf@y=0cm - } - \anchor{b}{ - \southwest - \pgf@y=0cm - } + \anchor{n}{\northeast\pgf@x=0cm } + \anchor{north east}{\northeast} + \anchor{north west}{\northeast\pgf@x=-\pgf@x} + \anchor{ne}{\northeast} + \anchor{nw}{\northeast\pgf@x=-\pgf@x} + \anchor{e}{\northeast\pgf@y=0cm } + \anchor{s}{\southwest\pgf@x=0cm } + \anchor{south east}{\southwest\pgf@x=-\pgf@x} + \anchor{south west}{\southwest} + \anchor{se}{\southwest\pgf@x=-\pgf@x} + \anchor{sw}{\southwest} + \anchor{w}{\southwest\pgf@y=0cm } + \anchor{north}{\northeast\pgf@x=0cm } + \anchor{east}{\northeast\pgf@y=0cm } + \anchor{south}{\southwest\pgf@x=0cm } + \anchor{west}{\southwest\pgf@y=0cm } + \anchor{right}{\northeast\pgf@y=0cm } + \anchor{above}{\northeast\pgf@x=0cm } + \anchor{left}{\southwest\pgf@y=0cm } + \anchor{below}{\southwest\pgf@x=0cm } + \anchor{a}{\northeast\pgf@y=0cm } + \anchor{b}{\southwest\pgf@y=0cm } \savedanchor{\textanchor}{% \pgf@y=\ht\pgfnodeparttextbox \pgf@x=-.5\wd\pgfnodeparttextbox } - \anchor{text}{ - \textanchor - } + \anchor{text}{ \textanchor } \anchorborder{% \ifpgf@circuit@bipole@inverted \pgf@circ@res@left=-\pgf@x @@ -711,7 +784,6 @@ #2% \pgf@circ@draw@component{ \pgf@circ@setcolor - \northeast \pgf@circ@res@up = \pgf@y \pgf@circ@res@zero = 0cm diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex index 626ed28812..b30e741458 100644 --- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex +++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex @@ -632,13 +632,21 @@ \pgfusepath{draw} \endpgfscope }% - %% Zig-zag resistors +% see https://github.com/circuitikz/circuitikz/discussions/814 +\ctikzset{resistors/zigzag stub/.initial=0} +\ctikzset{resistors/zigzag hook/.code={}} \def\pgf@circ@zigzag#1{% + \pgf@circ@res@temp=\ctikzvalof{resistors/zigzag stub}\pgf@circ@res@step + \advance \pgf@circ@res@step by -2\pgf@circ@res@temp \divide \pgf@circ@res@step by \numexpr4*\zigs\relax \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} + \ifdim\pgf@circ@res@temp>0pt + \pgfpathlineto{\pgfpoint{\pgf@circ@res@left+\pgf@circ@res@temp -\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} + \fi \pgf@circ@res@other = \pgf@circ@res@left + \advance\pgf@circ@res@other by \pgf@circ@res@temp \pgf@circ@count@a=\zigs\relax % first half zig \advance\pgf@circ@res@other by \pgf@circ@res@step @@ -655,11 +663,14 @@ \advance\pgf@circ@res@other by 2\pgf@circ@res@step \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{#1\pgf@circ@res@down}} \advance\pgf@circ@res@other by \pgf@circ@res@step - \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@zero}} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@other+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} + \ifdim\pgf@circ@res@temp>0pt + \pgfpathlineto{\pgfpoint{\pgf@circ@res@other+\pgf@circ@res@temp+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} + \fi \pgfsetbeveljoin + \pgfkeys{/tikz/circuitikz/resistors/zigzag hook} \pgfusepath{draw} } - %% Resistor \pgfcircdeclarebipolescaled{resistors} { @@ -672,7 +683,7 @@ { \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgftransformationadjustments - \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} + \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistor/width}*\scaledRlen} \pgf@circ@zigzag{1} } @@ -692,7 +703,7 @@ { \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgftransformationadjustments - \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/vresistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} + \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/vresistor/width}*\scaledRlen} \pgf@circ@zigzag{.5} \pgfscope @@ -731,7 +742,7 @@ { \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgftransformationadjustments - \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/potentiometer/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} + \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/potentiometer/width}*\scaledRlen} \pgf@circ@zigzag{1} \pgfscope @@ -761,7 +772,7 @@ {% \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgftransformationadjustments - \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistivesens/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} + \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/resistivesens/width}*\scaledRlen} \pgf@circ@zigzag{.5} \pgfscope @@ -810,7 +821,7 @@ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right/\@@intscale+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{+0pt}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{+0pt}} \pgftransformationadjustments - \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/ldresistor/width}*\scaledRlen+\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth} + \pgfmathsetlength{\pgf@circ@res@step}{\ctikzvalof{bipoles/ldresistor/width}*\scaledRlen} \pgf@circ@zigzag{\@@hscale} }% @@ -6031,6 +6042,13 @@ \ctikzset{bipoles/qpprobe/voltage/additional shift/.initial=.5} \ctikzset{bipoles/iloop/width/.initial=.40} \ctikzset{bipoles/iloop/height/.initial=.60} +% currtap see https://github.com/circuitikz/circuitikz/issues/807 +\ctikzset{bipoles/currtap/height/.initial=0.4} +\ctikzset{bipoles/currtap/dot size/.initial=0.5} +\ctikzset{bipoles/currtap/fill/.initial=default} +\ctikzset{bipoles/currtap/dash/.initial=none} +\ctikzset{bipoles/currtap/color/.initial=default} +\ctikzset{bipoles/currtap/thickness/.initial=default} \ctikzset{bipoles/oscope/height/.initial=.60} \ctikzset{bipoles/oscope/width/.initial=.60} @@ -6607,6 +6625,28 @@ \pgfusepath{draw} \endpgfscope } +%% currtap +\pgfcircdeclarebipolescaled{instruments} +{ + \savedmacro{\@@dotsize}{\def\@@dotsize{\ctikzvalof{bipoles/currtap/dot size}}} + \anchor{tap}{\northeast\pgf@x=0pt\pgf@y=\@@dotsize\pgf@y\pgf@y=-\pgf@y} +} +{\ctikzvalof{bipoles/currtap/height}} +{currtap} +{\ctikzvalof{bipoles/currtap/height}} +{\ctikzvalof{bipoles/currtap/height}} +{ + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}} + \pgfpathlineto{\pgfpoint{0.95\pgf@circ@res@left}{0pt}} + \pgfpatharc{180}{0}{0.95\pgf@circ@res@right} + \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0pt}} + \pgfusepath{draw} + \pgf@circ@subset@color@dash{bipoles/currtap} + \pgf@circ@subset@thickness{bipoles/currtap} + \pgfusepath{draw} + \pgfpathcircle{\pgfpoint{0pt}{0pt}}{\@@dotsize*\pgf@circ@res@up} + \pgf@circ@subset@fill@or@draw{bipoles/currtap} +} % %>>> % Path definitions for Instruments%<<< @@ -6619,8 +6659,8 @@ \pgfcirc@activate@bipole@simple{l}{rmeterwa} \pgfcirc@activate@bipole@simple{l}{smeter} \pgfcirc@activate@bipole@simple{l}{iloop} -% \pgfcirc@activate@bipole@simple{l}{iloop2} that was wrong \pgfcirc@activate@bipole{l}{ilooptwo}{iloop2}{iloop2} +\pgfcirc@activate@bipole@simple{l}{currtap} \pgfcirc@activate@bipole@simple{l}{qvprobe} \pgfcirc@activate@bipole@simple{l}{qiprobe} \pgfcirc@activate@bipole@simple{l}{qpprobe} @@ -6774,16 +6814,22 @@ % spring into the damper \pgfscope - \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@zero}} + \pgfscope + \pgftransformationadjustments \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left-\pgfhorizontaltransformationadjustment*0.5*\pgflinewidth}{\pgf@circ@res@zero}} + \pgfpathlineto{\pgfpoint{.95\pgf@circ@res@left}{\pgf@circ@res@zero}} \pgfsetcornersarced{\pgfpoint{.25\pgf@circ@res@up}{.25\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.75\pgf@circ@res@left}{.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.5\pgf@circ@res@left}{-.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{.25\pgf@circ@res@left}{.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{0pt}{-.75\pgf@circ@res@up}} \pgfpathlineto{\pgfpoint{\ctikzvalof{bipoles/damper/length}\pgf@circ@res@right}{.75\pgf@circ@res@up}} + \pgfsetbuttcap + \pgfsetbeveljoin \pgfusepath{stroke} \endpgfscope + \endpgfscope % damper box \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}} @@ -7171,18 +7217,18 @@ {\ctikzvalof{bipoles/thermocouple/height}} {\ctikzvalof{bipoles/thermocouple/width}} { + \pgfsetrectcap \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} - \pgfusepath{draw} - \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} - \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@down}} - \pgfusepath{draw} - \pgfsetlinewidth{\pgfstartlinewidth} - \pgfpathmoveto{\pgfpoint{0}{\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{.5\pgf@circ@res@down}} \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{0}} \pgfusepath{draw} + \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth} + \pgfsetroundcap + \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{.5\pgf@circ@res@down}} + \pgfpathlineto{\pgfpoint{0}{\pgf@circ@res@down}} + \pgfusepath{draw} } %% fuse \pgfcircdeclarebipolescaled{misc} diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex index e3665b8862..cb95f54ef3 100644 --- a/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex +++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircpath.tex @@ -231,13 +231,15 @@ \compattikzset{#2/.style={\comnpatname #1, #3={##1}}}% } % create a bipole -\def\pgfcirc@activate@bipole#1#2#3#4{% path name, base node name, style name +\def\pgfcirc@activate@bipole#1#2#3#4{% type of label, path name, base node name, style name + % \typeout{Activate bipole:\space #4,} \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}% \pgfcirc@path@to@style{#1}{#2}{#4}{}% no options here, let's see } \def\pgfcirc@activate@bipole@simple#1#2{\pgfcirc@activate@bipole{#1}{#2}{#2}{#2}} % create a bipole with options -\def\pgfcirc@activate@bipole@opt#1#2#3#4#5{% path name, base node name, style name +\def\pgfcirc@activate@bipole@opt#1#2#3#4#5{% type of label, path name, base node name, style name, options + % \typeout{Activate bipole:\space #4,} \expandafter\def\csname pgf@circ@#2@path\endcsname##1{\pgf@circ@bipole@path{#3}{##1}}% \pgfcirc@path@to@style{#1}{#2}{#4}{#5}% no options here, let's see } diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex index 4e4861071f..f85b8ab58b 100644 --- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex +++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex @@ -16,8 +16,8 @@ \startmodule[circuitikz] \usemodule[tikz] -\def\pgfcircversion{1.6.9} -\def\pgfcircversiondate{2024/05/25} +\def\pgfcircversion{1.7.0} +\def\pgfcircversiondate{2024/08/03} \writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion} diff --git a/graphics/pgf/contrib/dynkin-diagrams/README b/graphics/pgf/contrib/dynkin-diagrams/README index e43f31e0b8..5abe74143c 100644 --- a/graphics/pgf/contrib/dynkin-diagrams/README +++ b/graphics/pgf/contrib/dynkin-diagrams/README @@ -1,6 +1,6 @@ Dynkin diagrams -v3.1415926535897932384 -2 June 2023 +v3.14159265358979323846 +6 July 2024 Authors: Ben McKay diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.bib b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.bib index 9660120699..952e4a90bf 100644 --- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.bib +++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.bib @@ -1,6 +1,5 @@ % Encoding: ISO-8859-1 - @Book{Adams:1996, Title = {Lectures on exceptional {L}ie groups}, Author = {Adams, J. F.}, @@ -477,4 +476,67 @@ MRREVIEWER = {Stephen Gelbart}, url = {https://doi.org/10.1007/978-1-4612-0979-9}, } +@Book{Knapp:2002, + author = {Knapp, Anthony W.}, + publisher = {Birkh\"{a}user Boston, Inc., Boston, MA}, + title = {Lie groups beyond an introduction}, + year = {2002}, + edition = {Second}, + isbn = {0-8176-4259-5}, + series = {Progress in Mathematics}, + volume = {140}, + mrclass = {22-01}, + mrnumber = {1920389}, + pages = {xviii+812}, +} + +@Article{Witt:1941, + author = {Witt, Ernst}, + journal = {Abh. Math. Sem. Hansischen Univ.}, + title = {Spiegelungsgruppen und {A}ufz\"ahlung halbeinfacher {L}iescher {R}inge}, + year = {1941}, + issn = {0025-5858}, + pages = {289--322}, + volume = {14}, + doi = {10.1007/BF02940749}, + fjournal = {Abhandlungen aus dem Mathematischen Seminar der Hansischen Universit\"at}, + mrclass = {09.1X}, + mrnumber = {5099}, + mrreviewer = {O.\ F. G. Schilling}, + url = {https://doi.org/10.1007/BF02940749}, +} + +@Article{Johnson.et.al.1999, + author = {Johnson, N. W. and Ratcliffe, J. G. and Kellerhals, R. and Tschantz, S. T.}, + journal = {Transform. Groups}, + title = {The size of a hyperbolic {C}oxeter simplex}, + year = {1999}, + issn = {1083-4362,1531-586X}, + number = {4}, + pages = {329--353}, + volume = {4}, + doi = {10.1007/BF01238563}, + fjournal = {Transformation Groups}, + mrclass = {20F55 (57M60)}, + mrnumber = {1726696}, + mrreviewer = {Andrei\ Yu.\ Vesnin}, + url = {https://doi.org/10.1007/BF01238563}, +} + +@Book{McMullen.Schulte:2002, + author = {McMullen, Peter and Schulte, Egon}, + publisher = {Cambridge University Press, Cambridge}, + title = {Abstract regular polytopes}, + year = {2002}, + isbn = {0-521-81496-0}, + series = {Encyclopedia of Mathematics and its Applications}, + volume = {92}, + doi = {10.1017/CBO9780511546686}, + mrclass = {52B15 (20F55 51F15 51M20)}, + mrnumber = {1965665}, + mrreviewer = {Rade\ \v Zivaljevi\'c}, + pages = {xiv+551}, + url = {https://doi.org/10.1017/CBO9780511546686}, +} + @Comment{jabref-meta: databaseType:bibtex;} diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf Binary files differindex 2109c1ba1c..dceef35936 100644 --- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf +++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.pdf diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty index e45f21ee18..7a92e22048 100644 --- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty +++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.sty @@ -1,6 +1,6 @@ % The Dynkin Diagrams package. % -% Version 3.141 592 653 589 793 238 4 +% Version 3.141 592 653 589 793 238 46 % % This package draws Dynkin diagrams in LaTeX % documents, using the TikZ package. @@ -13,7 +13,7 @@ % Released under the LaTeX Project Public License v1.3c or later, see % http://www.latex-project.org/lppl.txt \NeedsTeXFormat{LaTeX2e}[1994/06/01] -\ProvidesPackage{dynkin-diagrams}[2023/06/02 Dynkin diagrams] +\ProvidesPackage{dynkin-diagrams}[2024/07/05 Dynkin diagrams] \RequirePackage{tikz} \RequirePackage{xstring} \RequirePackage{etoolbox} @@ -1873,6 +1873,7 @@ }% + %% \dynkinQuadrupleEdge{<p>}{<q>} %% \dynkinQuadrupleEdge*{<p>}{<q>} %% Draws an oriented edge of valence 4 from root <p> to root <q> on the current Dynkin diagram. @@ -2041,6 +2042,8 @@ % Is the right side of the Dynkin diagram folded? \newif\ifdynkin@Coxeter % Should we draw Coxeter diagrams? +\newif\ifdynkin@Coxeter@above +% Should we draw Coxeter diagram extra labels above or below? \newif\ifdynkin@Kac@arrows % Should we draw arrows following Kac? \newif\ifdynkin@odd @@ -2097,6 +2100,8 @@ }, Coxeter/.is if = dynkin@Coxeter, Coxeter=false, + Coxeter above/.is if = dynkin@Coxeter@above, + Coxeter above=true, double edges/.style = { fold style/.style = { draw=black, @@ -2598,6 +2603,10 @@ {% \global\dynkin@rank=\dynkin@string\relax% \global\dynkin@nodes=\dynkin@string\relax% + \ifWitt@symbol% + \global\advance\dynkin@rank by -1\relax% + \global\advance\dynkin@nodes by -1\relax% + \fi \ifdynkin@is@twisted% \IfStrEqCase{\dynkin@series}% {% @@ -2800,7 +2809,6 @@ % Turn Satake codes into Dynkin diagram expressions in \dynkin@string. \dynkin@grok@Satake@codes% }% - % Expand out any digits in \dynkin@string into multiples of the various root marks. \expand@Dynkin@Roots@Digits% % Assign to \dynkin@roots the input string \dynkin@string with all . symbols removed, @@ -2881,20 +2889,41 @@ \global\dynkin@rank@minus@three\the\dynkin@rank@minus@two\relax% \global\advance\dynkin@rank@minus@three by -1\relax% }% + +\newif\ifWitt@symbol \newcount\dynkin@lenny% %% \dynkin@grok@series %% Interprets the dynkin@series, to see if it is extended, twisted, and what twisted series it is. \NewDocumentCommand\dynkin@grok@series{}% {% - \StrLen{\dynkin@series}[\dynkin@lenny] + \StrLen{\dynkin@series}[\dynkin@lenny]\relax% \ifnum\dynkin@lenny>1\relax% \dynkin@error@series% \fi% +% We need to check if the series is a Witt symbol. + \IfSubStr{PSRQTUVW}{\dynkin@series}% + {% + \global\Witt@symboltrue% + \IfStrEqCase{\dynkin@series}% + {% + {P}{\global\xdef\dynkin@series{A}}% + {S}{\global\xdef\dynkin@series{B}}% + {R}{\global\xdef\dynkin@series{C}}% + {Q}{\global\xdef\dynkin@series{D}}% + {T}{\global\xdef\dynkin@series{E}}% + {U}{\global\xdef\dynkin@series{F}}% + {V}{\global\xdef\dynkin@series{G}}% + {W}{\global\xdef\dynkin@series{I}}% + }% + }% + {% + \global\Witt@symbolfalse% + }% \edef\series{\dynkin@series}% \IfStrEqCase{\dynkin@twisted@series}% {% {0}{}% - {1}{ \global\dynkin@is@extendedtrue}% + {1}{\global\dynkin@is@extendedtrue}% {2}{% \IfSubStr{ADE}{\dynkin@series}% {% @@ -3459,19 +3488,6 @@ }% [\global#5=#4\relax]% }% - {G}% - {% - \IfStrEqCase{#3}% - {% - {Carter}{\global#5=% - \stringCharacterInPosition{21}{#4}% - \relax}% - {Dynkin}{\global#5=% - \stringCharacterInPosition{21}{#4}% - \relax}% - }% - [\global#5=#4\relax]% - }% }% [\global#5=#4\relax]% }% @@ -3640,25 +3656,6 @@ }% [\global#5=#3\relax]% }% - {G}% - {% - \IfStrEqCase{#4}% - {% - {Carter}% - {% - \global#5=% - \stringCharacterInPosition{21}{#3}% - \relax% - }% - {Dynkin}% - {% - \global#5=% - \stringCharacterInPosition{21}{#3}% - \relax% - }% - }% - [\global#5=#3\relax]% - }% }% [\global#5=#3\relax]% }% @@ -3777,12 +3774,14 @@ }% {G}% {% - \IfStrEqCase{\dynkin@ordering}% - {% - {Carter}{\global\dynkin@Root@Number=\stringCharacterInPosition{21}{#1}\relax}% - {Dynkin}{\global\dynkin@Root@Number=\stringCharacterInPosition{21}{#1}\relax}% - }% - [\global\dynkin@Root@Number=#1\relax]% + \global\dynkin@Root@Number=#1\relax% +% \IfStrEqCase{\dynkin@ordering}% +% {% +% {Carter}{\global\dynkin@Root@Number=\stringCharacterInPosition{21}{#1}\relax}% +% {Dynkin}{\global\dynkin@Root@Number=\stringCharacterInPosition{21}{#1}\relax}% +% {Kac}{\global\dynkin@Root@Number=\stringCharacterInPosition{21}{#1}\relax}% +% }% +% [\global\dynkin@Root@Number=#1\relax]% }% }% [\global\dynkin@Root@Number=#1\relax]% @@ -4338,9 +4337,15 @@ \else% \ifdynkin@Coxeter% \Adynkin% - \dynkinEdgeLabel% - {\the\dynkin@rank@minus@one}% - {\the\dynkin@rank}{4}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel% + {\the\dynkin@rank@minus@one}% + {\the\dynkin@rank}{4}% + \else% + \dynkinEdgeLabel*% + {\the\dynkin@rank@minus@one}% + {\the\dynkin@rank}{4}% + \fi% \else % Create the roots. \ifnum\dynkin@ply>1\relax% @@ -4994,7 +4999,11 @@ \dynkinEdge*{SingleEdge}{1}{2}% \dynkinEdge*{SingleEdge}{2}{3}% \dynkinEdge*{SingleEdge}{3}{4}% - \dynkinEdgeLabel{2}{3}{4}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel{2}{3}{4}% + \else% + \dynkinEdgeLabel*{2}{3}{4}% + \fi% \else% \dynkinEdge*{SingleEdge}{1}{2}% \dynkinEdge*{SingleEdge}{3}{4}% @@ -5002,6 +5011,9 @@ \fi% \fi% }% + +\newif\ifGtwo@old@dynkin@reverse@arrows + %% \Gdynkin %% Draws a G series Dynkin diagram. \NewDocumentCommand\Gdynkin{}% @@ -5013,14 +5025,72 @@ \dynkin@jump{1}% \dynkinPlaceRootHere*{1}{left}{above}% \dynkinPlaceRootRelativeTo*{2}{1}{southfold}{left}{below}% + \ifdynkin@reverse@arrows% + \global\Gtwo@old@dynkin@reverse@arrowstrue\relax% + \else% + \global\Gtwo@old@dynkin@reverse@arrowsfalse\relax% + \fi% + \IfStrEqCase{\dynkin@ordering}% + {% + {Adams}{% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi\relax}% + {Bourbaki}{% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi\relax}% + {Carter}{\relax}% + {Dynkin}{\relax}% + {Kac}{\relax}% + }% + [\relax]% \dynkinEdge*{TripleDownRightSemiCircle}{1}{2}% + \ifGtwo@old@dynkin@reverse@arrows% + \global\dynkin@reverse@arrowstrue\relax% + \else% + \global\dynkin@reverse@arrowsfalse\relax% + \fi% \ifdynkin@arrows% \dynkinLeftFold*{1}{2}% \fi% \else% \dynkinPlaceRootHere*{1}{below}{above}% \dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}% - \dynkinTripleEdge*{1}{2}% + \ifdynkin@reverse@arrows% + \global\Gtwo@old@dynkin@reverse@arrowstrue\relax% + \else% + \global\Gtwo@old@dynkin@reverse@arrowsfalse\relax% + \fi% + \IfStrEqCase{\dynkin@ordering}% + {% + {Adams}{% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi\relax}% + {Bourbaki}{% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi\relax}% + {Carter}{\relax}% + {Dynkin}{\relax}% + {Kac}{\relax}% + }% + [\relax]% + \dynkinTripleEdge*{1}{2}\relax% + \ifGtwo@old@dynkin@reverse@arrows% + \global\dynkin@reverse@arrowstrue\relax% + \else% + \global\dynkin@reverse@arrowsfalse\relax% + \fi% \fi% \fi% }% @@ -5030,7 +5100,11 @@ \newcommand*{\Hdynkin}% {% \Adynkin% - \dynkinEdgeLabel{1}{2}{5}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel{1}{2}{5}% + \else% + \dynkinEdgeLabel*{1}{2}{5}% + \fi% }% %% \Idynkin %% Draws an I series Coxeter diagram. @@ -5038,7 +5112,11 @@ {% \dynkin@rank=2\relax% \Adynkin% - \dynkinEdgeLabel{1}{2}{\dynkin@gonality}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel{1}{2}{\dynkin@gonality}% + \else% + \dynkinEdgeLabel*{1}{2}{\dynkin@gonality}% + \fi% }% %% \extendedAdynkin @@ -5183,9 +5261,15 @@ \dynkinEdge*{SingleEdge}% {\the\dynkin@rank@minus@one}% {\the\dynkin@rank}% - \dynkinEdgeLabel% - {\the\dynkin@rank@minus@one}% - {\the\dynkin@rank}{4}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel% + {\the\dynkin@rank@minus@one}% + {\the\dynkin@rank}{4}% + \else% + \dynkinEdgeLabel*% + {\the\dynkin@rank@minus@one}% + {\the\dynkin@rank}{4}% + \fi% \else% \ifnum\dynkin@ply<3\relax% \dynkinEdge*{DoubleEdge}% @@ -5211,7 +5295,11 @@ \Cdynkin{}% \ifdynkin@Coxeter% \dynkinEdge*{SingleEdge}{0}{1}% - \dynkinEdgeLabel{0}{1}{4}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel{0}{1}{4}% + \else% + \dynkinEdgeLabel*{0}{1}{4}% + \fi% \else% \dynkinEdge*{DoubleEdge}{0}{1}% \fi% @@ -5391,8 +5479,11 @@ \xdef\dynkin@gonality{6}% \dynkinPlaceRootHere*{0}{below}{above}% \dynkinEast% + \let\extended@G@old@order\dynkin@ordering% + \xdef\dynkin@ordering{Carter}% \Gdynkin% \dynkinEdge*{SingleEdge}{0}{1}% + \xdef\dynkin@ordering{\extended@G@old@order}% }% %% \extendedHdynkin @@ -5423,7 +5514,11 @@ \dynkin@rank=1\relax% \Adynkin% \dynkinEdge*{SingleEdge}{0}{1}% - \dynkinEdgeLabel{0}{1}{\infty}% + \ifdynkin@Coxeter@above% + \dynkinEdgeLabel{0}{1}{\infty}% + \else% + \dynkinEdgeLabel*{0}{1}{\infty}% + \fi% }% \newcount\dynkin@height@minus@one% %% \twistedAdynkin @@ -5531,6 +5626,8 @@ \fi% \fi% }% + +\newif\iftwisted@D@old@dynkin@reverse@arrows %% \twistedDdynkin %% Draws a twisted D series affine Dynkin diagram. \NewDocumentCommand\twistedDdynkin{}% @@ -5546,7 +5643,17 @@ \dynkinPlaceRootRelativeTo*{1}{0}{east}{below}{above}% \dynkinPlaceRootRelativeTo*{2}{1}{east}{below}{above}% \dynkinEdge*{SingleEdge}{0}{1}% - \dynkinTripleEdge*{2}{1}% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi% + \dynkinTripleEdge*{1}{2}% + \ifdynkin@reverse@arrows% + \global\dynkin@reverse@arrowsfalse\relax% + \else% + \global\dynkin@reverse@arrowstrue\relax% + \fi% \else% \ClassError% {Dynkin diagrams}% diff --git a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex index 5f4bb33e41..b3f0be4341 100644 --- a/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex +++ b/graphics/pgf/contrib/dynkin-diagrams/dynkin-diagrams.tex @@ -1,7 +1,7 @@ \documentclass{amsart} \title[The Dynkin diagrams package]% {The Dynkin diagrams package \\ -Version 3.141\,592\,653\,589\,793\,238\,4} +Version 3.141\,592\,653\,589\,793\,238\,46} %% My name: \makeatletter \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}} @@ -20,7 +20,8 @@ Version 3.141\,592\,653\,589\,793\,238\,4} \author{Ben \scotsMc{}Kay} \address{School of Mathematical Sciences, University College Cork, Cork, Ireland} \email{b.mckay@ucc.ie} -\date{2 June 2023} +\date{6 July 2024} +\thanks{Thanks to Jeffrey Adams, Paul Aspinwall, Mikhail Borovoi, Fran Burstall, Michiel Van Couwenberghe, Xu Gao, Skip Garibaldi, Enrico Gregorio, Mamuka Jibladze, Tasho Kaletha, Jordan Lambert, Sriotchilism O'Zaic, Gopal Prasad, Anthony Pulido, Andres Sambarino, Paul Schwahn, Felix Weinstein, Niels Wen and Gordon Williams.} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenx} \usepackage{etoolbox} @@ -168,6 +169,11 @@ before upper={\widowpenalties=3 10000 10000 150}} \begin{document} \maketitle +\renewcommand\do[1]{\dyn#1} +\renewcommand{\wdtA}{3cm} +\begin{dynkinTable}{The Dynkin diagrams of the reduced simple root systems \cite{Bourbaki:2002} pp. 265--290, plates I--IX}{2.25cm}{2.5cm} +\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2} +\end{dynkinTable} \begin{center} \begin{varwidth}{\textwidth} \tableofcontents @@ -176,6 +182,8 @@ before upper={\widowpenalties=3 10000 10000 150}} \setlength{\arrayrulewidth}{1.5pt} +\newpage + \section{Quick introduction} \begin{tcolorbox}[title={Load the Dynkin diagram package (see options below)}] \begin{Verbatim} @@ -202,7 +210,6 @@ The Dynkin diagram of \(B_3\) is \draw[very thick,red] (root 1) to [out=-45, in=-135] (root 3); \end{dynkinDiagram} \end{tcblisting} -\newpage \section{Interaction with \TikZ} Inside a \TikZ environment, default behaviour is to draw from the origin, so you can draw around the diagram: \begin{tcblisting}{title={Inside a \TikZ environment}} @@ -228,15 +235,6 @@ The Dynkin diagram of \(B_3\) is \end{tikzpicture} \end{tcblisting} -\newpage - -\renewcommand\do[1]{\dyn#1} -\renewcommand{\wdtA}{3cm} -\begin{dynkinTable}{The Dynkin diagrams of the reduced simple root systems \cite{Bourbaki:2002} pp. 265--290, plates I--IX}{2.25cm}{2.5cm} -\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2} -\end{dynkinTable} - - \section{Set options globally} \begin{tcolorbox}[title={Most options set globally \dots}] @@ -251,6 +249,7 @@ The Dynkin diagram of \(B_3\) is densely dashed}} \end{Verbatim} \end{tcolorbox} + You can also pass options to the package in \verb!\usepackage!. \emph{Danger:} spaces in option names are replaced with hyphens: \texttt{edge length=1cm} is \texttt{edge-length=1cm} as a global option; moreover you should drop the extension \verb!/.style! on any option with spaces in its name (but not otherwise). For example, \begin{tcolorbox}[title={\dots or pass global options to the package}] @@ -275,6 +274,9 @@ The Dynkin diagram of \(B_3 \times A_2\) is \dynkins{B3|A2}. The Dynkin diagram of \(B_3 \times A_2\) is \begin{DynkinDiagrams}{B3|A2}\end{DynkinDiagrams} \end{tcblisting} + +\newpage + Each factor can have its own options. \begin{tcblisting}{title={Environment}} The Dynkin diagram of \(B_3 \times A_2\) is @@ -297,11 +299,11 @@ They are spaced out by the length of one edge between successive diagrams; chang \endfoot \endlastfoot A_1\times A_1&\dynkins{A1|A1}&\texttt{\detokenize{\dynkins}\{A1|A1\}}\\ -A_2&\dynkins{A2}&\texttt{\detokenize{\dynkins}\{A2\}}\\ -B_2&\dynkins{B2}&\texttt{\detokenize{\dynkins}\{B2\}}\\ -C_2&\dynkins{C2}&\texttt{\detokenize{\dynkins}\{C2\}}\\ -D_2&\dynkins{D2}&\texttt{\detokenize{\dynkins}\{D2\}}\\ -G_2&\dynkins{G2}&\texttt{\detokenize{\dynkins}\{G2\}}\\ +A_2&\dynkin A2&\texttt{\detokenize{\dynkin} A2}\\ +B_2&\dynkin B2&\texttt{\detokenize{\dynkin} B2}\\ +C_2&\dynkin C2&\texttt{\detokenize{\dynkin} C2}\\ +D_2&\dynkin D2&\texttt{\detokenize{\dynkin} D2}\\ +G_2&\dynkin G2&\texttt{\detokenize{\dynkin} G2}\\ \end{longtable} \section{Coxeter diagrams} @@ -333,6 +335,35 @@ G_2&\dynkins{G2}&\texttt{\detokenize{\dynkins}\{G2\}}\\ [Coxeter,gonality=n]I{}} \end{dynkinTable} +\newpage + +Some people prefer Coxeter diagrams to have these labels appear on the bottom of the diagram, so say \verb!Coxeter above=false!, most likely as a global option. + +\pgfkeys{/Dynkin diagram, +Coxeter above=false} + +\renewcommand\do[1]{\dyn#1} +\begin{dynkinTable}{The Coxeter diagrams of the simple reflection groups}{2.25cm}{6cm} +\forDynkinSemicolonsvlist{\do}{ +[Coxeter]A{}; +[Coxeter]B{}; +[Coxeter]C{}; +[Coxeter]D{}; +[Coxeter]E6; +[Coxeter]E7; +[Coxeter]E8; +[Coxeter]F4; +[Coxeter,gonality=n]G2; +[Coxeter]H2; +[Coxeter]H3; +[Coxeter]H4; +[Coxeter,gonality=n]I{}} +\end{dynkinTable} + +\pgfkeys{/Dynkin diagram, +Coxeter above=true} + + \section{Satake diagrams}\label{section:Satake} \begin{tcblisting}{title={Satake diagrams use the standard name instead of a rank}} \(A_{IIIb}=\dynkin A{IIIb}\) @@ -340,6 +371,8 @@ G_2&\dynkins{G2}&\texttt{\detokenize{\dynkins}\{G2\}}\\ We use a solid gray bar to denote the folding of a Dynkin diagram, rather than the usual double arrow, since the diagrams turn out simpler and easier to read. +\newpage + \renewcommand\do[1]{\dyn#1} \begin{dynkinTable}{The Satake diagrams of the real simple Lie algebras \cite{Helgason:2001} p. 532--534}{2.75cm}{3cm} \docsvlist{A{I},A{II},A{IIIa},A{IIIb},A{IV},B{I},B{II},C{I},C{IIa},C{IIb}, @@ -968,7 +1001,7 @@ D_4 & \dynkin[label,ordering=Kac]E6 \end{tcblisting} Default is Bourbaki. -Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. pp. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952}, Kac \cite{Kac:1990} p. 43. +Sources are Adams \cite{Adams:1996} p. 56--57, Bourbaki \cite{Bourbaki:2002} p. 265--290 plates I-IX, Carter \cite{Carter:2005} p. 540--609, Dynkin \cite{Dynkin:1952} (reprinted, translated into English, in Dynkin \cite{Dynkin:2000} p. 180), Kac \cite{Kac:1990} p. 43. \NewDocumentCommand\tablerow{mm}% {% @@ -1108,9 +1141,31 @@ D[3]4,E[2]6} \renewcommand{\do}[1]{\dyn[extended,Coxeter]#1} \begin{dynkinTable}{The extended (affine) Coxeter diagrams}{3cm}{6cm} -\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2,H3,H4,I1} +\docsvlist{A{},B{},C{},D{},E6,E7,E8,F4,G2,H2,H3,H4,I1} \end{dynkinTable} + +\section{Witt symbols} + +The \emph{Witt symbol} \cite{Johnson.et.al.1999,McMullen.Schulte:2002,Witt:1941} is a different notation for the various series: +\[ +\begin{array}{rll} +\text{Witt symbol}&\text{Cartan symbol}\\ +P_{n+1}&A_n\\ +S_{n+1}&B_n\\ +R_{n+1}&C_n\\ +Q_{n+1}&D_n\\ +T_{n+1}&E_n&n=6,7,8\\ +U_5&F_4\\ +V_3&G_2\\ +W_2&I_1 +\end{array} +\] +\begin{tcblisting}{title={Witt symbols}} +\dynkin[extended]P7, \dynkin[extended]Q7, \dynkin[extended]T7 +\end{tcblisting} + + \newpage \section{Kac style} diff --git a/graphics/pgf/contrib/lie-hasse/README b/graphics/pgf/contrib/lie-hasse/README index e63a82cc60..1bd63c4cba 100644 --- a/graphics/pgf/contrib/lie-hasse/README +++ b/graphics/pgf/contrib/lie-hasse/README @@ -2,9 +2,9 @@ ___________________________________ Lie Hasse - v1.0 + v1.01 - 3 February 2020 + 9 July 2024 ___________________________________ Authors : Ben McKay diff --git a/graphics/pgf/contrib/lie-hasse/lie-hasse.pdf b/graphics/pgf/contrib/lie-hasse/lie-hasse.pdf Binary files differindex 5be5791e7f..ed444cc7d1 100644 --- a/graphics/pgf/contrib/lie-hasse/lie-hasse.pdf +++ b/graphics/pgf/contrib/lie-hasse/lie-hasse.pdf diff --git a/graphics/pgf/contrib/lie-hasse/lie-hasse.sty b/graphics/pgf/contrib/lie-hasse/lie-hasse.sty index d1050d8839..6d727c841c 100644 --- a/graphics/pgf/contrib/lie-hasse/lie-hasse.sty +++ b/graphics/pgf/contrib/lie-hasse/lie-hasse.sty @@ -1,24 +1,20 @@ -% The Lie Hasse package. +% The Lie Hasse package. +% Version 1.01 % -% Version 1.0 % +% This package draws Hasse diagrams of root system posets of simple +% Lie algebraS, in LaTeX documents, using the TikZ package. % -% This package draws Hasse diagrams of root system posets of simple -% Lie algebraS, in LaTeX documents, using the TikZ package. +% Benjamin McKay +% b.mckay@ucc.ie % -% Benjamin McKay -% b.mckay@ucc.ie -% -% Released under the LaTeX Project Public License v1.3c or later, see +% Released under the LaTeX Project Public License v1.3c or later, see % http://www.latex-project.org/lppl.txt -% -% -% -% \NeedsTeXFormat{LaTeX2e}[1994/06/01] -\ProvidesPackage{lie-hasse}[2020/02/02 Lie Hasse] +\ProvidesPackage{lie-hasse}[2024/07/09 Lie Hasse] \RequirePackage[rgb]{xcolor} \RequirePackage{dynkin-diagrams} +\RequirePackage[outline]{contour} \usetikzlibrary{ positioning, fadings, @@ -26,7 +22,7 @@ %%% %%% Application programming interface: %%% - +\NewDocumentCommand\edgeQuote{m}{\contour{white}{\(#1\)}} \newif\iflie@hasse@threeD \lie@hasse@threeDtrue \xdef\lie@hasse@three@D@shift{.3}% @@ -40,14 +36,27 @@ \lie@hasse@show@heightfalse \newif\iflie@hasse@attach@dynkin@diagram \lie@hasse@attach@dynkin@diagramfalse - +\newif\iflie@hasse@show@levi +\lie@hasse@show@levitrue +\newif\iflie@hasse@show@unipotent@radical +\lie@hasse@show@unipotent@radicaltrue \pgfkeys{ /Lie Hasse diagram/.is family, /Lie Hasse diagram, - attach Dynkin diagram/.is if = lie@hasse@attach@dynkin@diagram, + attach Dynkin diagram/.is if + = lie@hasse@attach@dynkin@diagram, attach Dynkin diagram/.default = false, - edge/.style={ultra thick}, - edge quotes/.style={/Dynkin diagram/text style,auto,inner sep=2pt}, + edge/.style = { + ultra thick + }, + edge length/.estore in + = \lie@hasse@edge@length, + edge length = 1cm, + edge quotes/.style={ + /Dynkin diagram/text style, + auto, + inner sep=2pt + }, compact edge/.style={}, noncompact edge/.style={opacity=0}, compact root/.code={\dynkinDrawSolidRootMark{#1}}, @@ -67,7 +76,13 @@ show widths/.default = false, show height/.is if = lie@hasse@show@height, show height/.default = false, - z shift/.estore in = \lie@hasse@three@D@shift, + show Levi/.is if = lie@hasse@show@levi, + show Levi/.default = true, + show unipotent radical/.is if + = lie@hasse@show@unipotent@radical, + show unipotent radical/.default = true, + z shift/.estore in + = \lie@hasse@three@D@shift, z shift/.default = .3, top/.style={black!20,opacity=.4}, left/.style={black!20,opacity=.9}, @@ -90,13 +105,17 @@ \dynkin@integer@rank% }% {% - % Turn Satake codes into Dynkin diagram expressions in \dynkin@string. + % Turn Satake codes into Dynkin diagram + % expressions in \dynkin@string. \dynkin@grok@Satake@codes% }% - % Expand out any digits in \dynkin@string into multiples of the various root marks. + % Expand out any digits in \dynkin@string + % into multiples of the various root marks. \expand@Dynkin@Roots@Digits% - % Assign to \dynkin@roots the input string \dynkin@string with all . symbols removed, - % so we only get the symbols representing the marks for the various roots. + % Assign to \dynkin@roots the input string + % \dynkin@string with all . symbols removed, + % so we only get the symbols representing + % the marks for the various roots. \StrDel{\dynkin@string}{.}[\temp]% \xdef\dynkin@roots{\temp}% \StrLen{\dynkin@roots}[\temp]% @@ -115,58 +134,33 @@ {% \pgfkeys{/Lie Hasse diagram/for all roots={#1}{#2}}% }% +\newif\iflie@hasse@B +\newcount\dynkin@rank@plus@one% \NewDocumentCommand\hasse{O{}mm}% {% \ifdefined\filldraw% - \IfStrEq{#1}{}% - {% + \ifx#1\empty\relax% \studyHasseDiagramOfRootSystem{#2}{#3}% - }% - {% + \else% \studyHasseDiagramOfRootSystem[#1]{#2}{#3}% - }% + \fi% \label@item@count 0\relax% \expandafter\forcsvlist% - \expandafter\add@label% + \expandafter\lie@hasse@add@label% \expandafter{\dynkin@label@list}% \ifnum\dynkin@rank=1% \dynkin{A}{1}% \else% + \global\dynkin@rank@plus@one\the\dynkin@rank\relax% + \global\advance\dynkin@rank@plus@one by 1\relax% \add@compact@simple@roots@to@compact@roots{}% \IfStrEqCase{#2}% {%% {A}{\hasse@A}% - {B}{\hasse@BC}% - {C}{\hasse@BC*}% + {B}{\global\lie@hasse@Btrue\hasse@BC}% + {C}{\global\lie@hasse@Bfalse\hasse@BC}% {D}{\hasse@D}% - {E}% - {% - \ifnum\dynkin@rank=6% - \hasse@E@six% - \else% - \ifnum\dynkin@rank=7% - \hasse@E@seven% - \else% - \ifnum\dynkin@rank=8% - \hasse@E@eight% - \else - \ifnum\dynkin@rank>8% - \ClassError% - {Lie Hasse}% - {Rank of E series Hasse diagram: #3{}% - exceeds 8; not defined yet}% - {}% - \fi% - \ifnum\dynkin@rank<6% - \ClassError% - {Lie Hasse}% - {Rank of E series Hasse diagram: #3{} less than 6}% - {}% - \fi% - \fi% - \fi% - \fi% - }% + {E}{\hasse@E@series}% {F}% {% \ifnum\dynkin@rank=4% @@ -194,10 +188,11 @@ {Lie Hasse}% {Lie algebra series #2{} not A,B,C,D,E,F or G}% {}]% + \forAllPositiveRoots{\draw@lie@hasse@root}% \draw@simple@root@labels% \fi% \lie@hasse@write@widths{}% - \forAllPositiveRootsInHasseDiagram{\doRootThing}% + \forAllPositiveRoots{\doRootThing}% \iflie@hasse@attach@dynkin@diagram% \attachDynkin% \fi% @@ -205,13 +200,42 @@ \begin{tikzpicture}\hasse[#1]{#2}{#3}\end{tikzpicture}% \fi% }% +\NewDocumentCommand\hasse@E@series{}% +{% + \ifnum\dynkin@rank=6% + \hasse@E@six% + \else% + \ifnum\dynkin@rank=7% + \hasse@E@seven% + \else% + \ifnum\dynkin@rank=8% + \hasse@E@eight% + \else% + \ifnum\dynkin@rank>8% + \ClassError% + {Lie Hasse}% + {Rank of E series Hasse diagram: \the\dynkin@rank{}% + exceeds 8; not defined yet}% + {}% + \fi% + \ifnum\dynkin@rank<6% + \ClassError% + {Lie Hasse}% + {Rank of E series Hasse diagram: \the\dynkin@rank{}% + less than 6; not define yet}% + {}% + \fi% + \fi% + \fi% + \fi% +}% \NewDocumentCommand\drawRootAsDynkinSum{mm}% {% \rootSum{#1}{#2}{\rs}% \node at (#1;#2) {% \dynkin[% - labels=\rs,% + expand labels=\rs,% /Lie Hasse diagram/embedded Dynkin diagram]% {\dynkin@series}{\the\dynkin@rank}% };% @@ -239,25 +263,38 @@ }% \fi% }% - -\NewDocumentCommand\backwardsGtwo{}% +\NewDocumentCommand\hasseAttachGtwo{}% {% - \dynkin[label,backwards,x shift in edge lengths=-1]{G}{\dynkin@roots}% + \dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length,% +% label,% +% backwards,% +% x shift in edge lengths=-1 +]{G}{\dynkin@roots}% }% - \newcount\lie@hasse@E@shift% \NewDocumentCommand\attachDynkin{}% {% \IfStrEqCase{\dynkin@series}{% - {A}{\dynkin{A}{\dynkin@roots}}% - {B}{\dynkin{B}{\dynkin@roots}}% - {C}{\dynkin{C}{\dynkin@roots}}% - {D}{\dynkin[y shift in edge lengths=-1.5,label]% - {D}{\dynkin@roots}}% + {A}{\dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length]% + {A}{\dynkin@roots}}% + {B}{\dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length]% + {B}{\dynkin@roots}}% + {C}{\dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length]% + {C}{\dynkin@roots}}% + {D}{\dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length,% + y shift in edge lengths=-1.5,label]% + {D}{\dynkin@roots}}% {E}% {%% \ifnum\dynkin@rank=6% \dynkin[% + vertical shift=0,% + edge length=\lie@hasse@edge@length,% upsidedown,% labels*={1,...,6},% y shift in edge lengths=.5]% @@ -266,6 +303,8 @@ \lie@hasse@E@shift\the\dynkin@rank\relax% \advance\lie@hasse@E@shift by -2\relax% \dynkin[% + vertical shift=0,% + edge length=\lie@hasse@edge@length,% backwards,% upsidedown,% label,% @@ -274,16 +313,17 @@ {E}{\dynkin@roots}% \fi% }%% - {F}{\dynkin{F}{\dynkin@roots}}% - {G}{\backwardsGtwo{}}% + {F}{\dynkin[vertical shift=0,% + edge length=\lie@hasse@edge@length]% + {F}{\dynkin@roots}}% + {G}{\hasseAttachGtwo}% }% [\ClassError% {Lie Hasse}% - {Lie algebra series \dynkin@series{} not A,B,C,D,E,F or G when attaching Dynkin diagram}% + {Lie algebra series \dynkin@series{} % + not A,B,C,D,E,F or G when attaching Dynkin diagram}% {}]% }% - - \newif\iflie@hasse@multiple@diagrams \newcommand\doHasseDiagram[1]%% {% @@ -291,8 +331,7 @@ \ % \fi% \begin{tikzpicture}% - [show background rectangle,% - baseline=(current bounding box.east)]]% + [show background rectangle,baseline=(current bounding box.east)]% \hasse#1% \iflie@hasse@show@height% \rootSystemHeight{\lie@hasse@height}% @@ -327,33 +366,25 @@ }% \begin{center}% \expandafter\forscsvlist% - \expandafter\doHasseDiagram% - \expandafter{#1}% + \expandafter\doHasseDiagram\expandafter{#1}% \end{center}% }% - - %%% %%% Package internals: %%% - - \pgfdeclarelayer{Dynkin middle} \pgfdeclarelayer{Dynkin above} \pgfsetlayers{background,Dynkin behind,Dynkin middle,Dynkin above,main} - - \newcommand*\label@list@at[1]{\csname FOOBAR-#1\endcsname} \newcommand*\defn@label@list@entry[1]{\expandafter\def\csname FOOBAR-#1\endcsname} \def\add@to@label@list#1#2{\global\defn@label@list@entry{#1}{#2}}% \newcount\label@item@count% \label@item@count 0\relax% -\newcommand\add@label[1]% +\newcommand\lie@hasse@add@label[1]% {% - \advance\label@item@count by 1\relax% + \global\advance\label@item@count by 1\relax% \global\add@to@label@list{\the\label@item@count}{#1}% }% - \xdef\lie@hasse@compact@roots{}% \NewDocumentCommand\if@compact@root{mmm}% {% @@ -369,9 +400,8 @@ \dynkinOrder{\dynkin@series}{\the\dynkin@rank}.Carter::#1->\dynkin@ordering.% {\current@simple@root}% \StrChar{\dynkin@roots}{\current@simple@root}[\lie@hasse@root@marker]% -\IfStrEq{*}{\lie@hasse@root@marker}{#2}{#3}% +\IfStrEq{x}{\lie@hasse@root@marker}{#3}{#2}% }% - \NewDocumentCommand\add@compact@root{m}% {% \if@compact@root{#1}% @@ -382,53 +412,65 @@ \xdef\lie@hasse@compact@roots{\temp@lie@hasse@compact@roots{ }(#1)}% }% }% - \newcount\lie@hasse@sr% -\newcount\drpo% \NewDocumentCommand\add@compact@simple@roots@to@compact@roots{}% {% -\lie@hasse@sr 1\relax% -\drpo\the\dynkin@rank\relax% -\advance\drpo by 1\relax% -\loop% - \if@compact@simple@root{\the\lie@hasse@sr}% - {%% - \add@compact@root{1;\the\lie@hasse@sr}% - }%% - {%% - }%% - \advance\lie@hasse@sr by 1\relax% -\ifnum\lie@hasse@sr<\the\drpo% -\repeat% + \lie@hasse@sr 1\relax% + \loop% + \if@compact@simple@root{\the\lie@hasse@sr}% + {%% + \add@compact@root{1;\the\lie@hasse@sr}% + }%% + {%% + }%% + \advance\lie@hasse@sr by 1\relax% + \ifnum\lie@hasse@sr<\the\dynkin@rank@plus@one% + \repeat% }% - -\newcount\drmo% \newcount\lie@hasse@root@count% \newcount\lie@hasse@root@count@b% \newcount\max@lie@hasse@root@count% \newcount\lie@hasse@reorder - \NewDocumentCommand\lie@hasse@fix@order{mm}% {% \dynkinOrder{\dynkin@series}{\dynkin@rank}.Carter::{#1}->\dynkin@ordering.{#2}% }% - \NewDocumentCommand\draw@one@simple@root@label{mm}% %% \draw@one@simple@root@label{r}{s}, draw at Carter number r %% the root with text s. {% - \node[below,% - label=% - {% - [below,% - lie@hasse@color,% - /Lie Hasse diagram/edge quotes]% - \(\pgfkeys{/Dynkin diagram/label macro=#2}\)% - }% - ]% - at% - (1;#1)% - {};% + \if@compact@simple@root{#1}% + {% + \iflie@hasse@show@levi% + \global\lie@hasse@ok@roottrue% + \else% + \global\lie@hasse@ok@rootfalse% + \fi% + }% + {% + \iflie@hasse@show@unipotent@radical% + \global\lie@hasse@ok@roottrue% + \else% + \global\lie@hasse@ok@rootfalse% + \fi% + }% + \iflie@hasse@ok@root% + \node[% + below,% + label=% + {% + [% + below,% + lie@hasse@color,% + /Lie Hasse diagram/edge quotes% + ]% + \(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{#2}}}\)% + }% + ]% + at% + (1;#1)% + {};% + \fi% }% \NewDocumentCommand\draw@simple@root@labels{}% {% @@ -471,27 +513,56 @@ \pgfmathsetmacro{\lie@hasse@huenum}{#1/\the\dynkin@rank}% \global\definecolor{lie@hasse@color}{hsb}{\lie@hasse@huenum,1,.6}% }% -\NewDocumentCommand\draw@lie@hasse@root{m}% +\NewDocumentCommand\draw@lie@hasse@root{mm}% {% -\if@compact@root{#1}% -{%% -\pgfkeys{/Lie Hasse diagram/compact root=#1}% -}%% -{%% -\pgfkeys{/Lie Hasse diagram/noncompact root=#1}% -}%% + \if@compact@root{#1;#2}% + {%% + \iflie@hasse@show@levi% + \pgfkeys{/Lie Hasse diagram/compact root={#1;#2}}% + \fi% + }%% + {%% + \iflie@hasse@show@unipotent@radical% + \pgfkeys{/Lie Hasse diagram/noncompact root={#1;#2}}% + \fi% + }%% }% -\xdef\lie@hasse@grade@a{} -\xdef\lie@hasse@grade@b{} -\xdef\lie@hasse@index@a{} -\xdef\lie@hasse@index@b{} \newcount\root@gpo% \xdef\label@text{}% +\newif\iflie@hasse@is@levi +\newif\iflie@hasse@ok@root \NewDocumentCommand\draw@lie@hasse@edge{O{}mmmm}% %[edge label options]{from grade}{from index}{to index}{simple root} {% \root@gpo #2\relax% \advance\root@gpo by 1\relax% + \if@compact@root{#2;#3}% + {% + \if@compact@simple@root{#5}% + {% + \global\lie@hasse@is@levitrue% + \add@compact@root{\the\root@gpo;#4}% + }% + {% + \global\lie@hasse@is@levifalse% + }% + }% + {% + \global\lie@hasse@is@levifalse% + }% + \iflie@hasse@is@levi% + \iflie@hasse@show@levi% + \global\lie@hasse@ok@roottrue% + \else% + \global\lie@hasse@ok@rootfalse% + \fi% + \else% + \iflie@hasse@show@unipotent@radical% + \global\lie@hasse@ok@roottrue% + \else% + \global\lie@hasse@ok@rootfalse% + \fi% + \fi% \set@lie@hasse@color{#5}% \lie@hasse@fix@order{#5}{\lie@hasse@root@count@b}% \IfStrEq{\dynkin@label@list}{}% @@ -505,31 +576,33 @@ }% }% \if@compact@simple@root{#5}% - {%%% Compact - \draw[% - lie@hasse@color,% - /Lie Hasse diagram/edge,% - /Lie Hasse diagram/compact edge]% - (#2;#3) --% - node[lie@hasse@color,/Lie Hasse diagram/edge quotes,#1]% - {\(\pgfkeys{/Dynkin diagram/label macro=\label@text}\)}% - (\the\root@gpo;#4);% - \IfSubStr{\lie@hasse@compact@roots}{#2;#3}% - {%% adding to a compact - \add@compact@root{\the\root@gpo;#4}% - }%% - {%% - }%% + {%%% Compact simple root, i.e. edge + \iflie@hasse@ok@root% + \draw[% + lie@hasse@color,% + /Lie Hasse diagram/edge,% + /Lie Hasse diagram/compact edge]% + (#2;#3)--% + node[lie@hasse@color,/Lie Hasse diagram/edge quotes,#1]% + {\(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{\label@text}}}\)}% + (\the\root@gpo;#4);% + \fi% + \iflie@hasse@is@levi% + \fi% }%%% {%%% Noncompact - \draw[% - lie@hasse@color,% - /Lie Hasse diagram/edge,% - /Lie Hasse diagram/noncompact edge]% - (#2;#3) --% + \iflie@hasse@ok@root% + \draw + [% + lie@hasse@color,% + /Lie Hasse diagram/edge,% + /Lie Hasse diagram/noncompact edge% + ]% + (#2;#3)--% node[lie@hasse@color,/Lie Hasse diagram/edge quotes,#1]% - {\(\pgfkeys{/Dynkin diagram/label macro=\label@text}\)}% + {\(\pgfkeys{/Dynkin diagram/label macro={\edgeQuote{\label@text}}}\)}% (\the\root@gpo;#4);% + \fi% }%%% }% \newcount\A@series@grade% @@ -555,8 +628,8 @@ \coordinate (\the\A@series@grade;\the\A@series@j) at - ({.5*\the\A@series@x*\dynkin@edge@length}, - {.25*\the\A@series@y*\dynkin@edge@length}) + ({.5*\the\A@series@x*\lie@hasse@edge@length}, + {.25*\the\A@series@y*\lie@hasse@edge@length}) {};% \advance\A@series@j by 1\relax% \advance\A@series@x by 2\relax% @@ -569,59 +642,35 @@ \ifnum\A@series@grade<\the\max@A@series@grade% \repeat% }% -\newcount\A@series@grade% -\newcount\max@A@series@grade% -\NewDocumentCommand\draw@A@roots{}% -{% - \A@series@grade 1\relax% - \max@A@series@grade \the\dynkin@rank\relax% - \advance\max@A@series@grade by 1\relax% - \loop% - \max@A@series@j\the\dynkin@rank\relax% - \advance\max@A@series@j by -\the\A@series@grade\relax% - \advance\max@A@series@j by 2\relax% - \A@series@j 1\relax% - {% - \loop% - \draw@lie@hasse@root% - {\the\A@series@grade;\the\A@series@j}% - \advance\A@series@j by 1\relax% - \ifnum\A@series@j<\the\max@A@series@j% - \repeat% - }% - \advance\A@series@grade by 1\relax% - \ifnum\A@series@grade<\the\max@A@series@grade% - \repeat% -}% \newcount\maxA@i% \newcount\maxA@j% \newcount\A@lbl% -\newcount\A@i% -\newcount\A@j% -\newcount\A@ipo% +\newcount\lie@hasse@i% +\newcount\lie@hasse@j% +\newcount\lie@hasse@ipo% \newcount\A@rj% \newcount\A@rjmo% \NewDocumentCommand\draw@A@edges{}% {% \maxA@i\the\dynkin@rank\relax% - \A@i 1\relax% + \lie@hasse@i 1\relax% \loop% \maxA@j \the\dynkin@rank\relax% - \advance\maxA@j by -\the\A@i\relax% + \advance\maxA@j by -\the\lie@hasse@i\relax% \advance\maxA@j by 1\relax% \ifnum\maxA@j>-1% - \A@j 1\relax% + \lie@hasse@j 1\relax% {% \loop% - \A@lbl\the\A@i\relax% - \advance\A@lbl by \the\A@j\relax% - \A@ipo \A@i\relax% - \advance\A@ipo by 1\relax% + \A@lbl\the\lie@hasse@i\relax% + \advance\A@lbl by \the\lie@hasse@j\relax% + \lie@hasse@ipo \lie@hasse@i\relax% + \advance\lie@hasse@ipo by 1\relax% \draw@lie@hasse@edge[left]% - {\the\A@i}{\the\A@j}% - {\the\A@j}{\the\A@lbl}% + {\the\lie@hasse@i}{\the\lie@hasse@j}% + {\the\lie@hasse@j}{\the\A@lbl}% \A@rj\the\maxA@j\relax% - \advance\A@rj by -\the\A@j\relax% + \advance\A@rj by -\the\lie@hasse@j\relax% \advance\A@rj by 1\relax% \A@rjmo\the\A@rj\relax% \advance\A@rjmo by -1\relax% @@ -629,15 +678,15 @@ \advance\A@lbl by \the\dynkin@rank% \advance\A@lbl by 1% \draw@lie@hasse@edge[right]% - {\the\A@i}{\the\A@rj}% + {\the\lie@hasse@i}{\the\A@rj}% {\the\A@rjmo}{\the\A@lbl}% - \advance\A@j by 1\relax% - \ifnum\A@j<\the\maxA@j% + \advance\lie@hasse@j by 1\relax% + \ifnum\lie@hasse@j<\the\maxA@j% \repeat% }% \fi% - \advance\A@i by 1\relax% - \ifnum\A@i<\the\maxA@i% + \advance\lie@hasse@i by 1\relax% + \ifnum\lie@hasse@i<\the\maxA@i% \repeat% }% %% \hasse@A@width@at@grade{g}{\w} sets the counter \w to @@ -653,7 +702,6 @@ {% \place@A@roots% \draw@A@edges% - \draw@A@roots% }% %% \hasse@BC@width@at@grade{g}{\w} sets the counter \w to %% the value of the width (number of roots) at grade g of @@ -666,138 +714,116 @@ \global\advance#2 by 1\relax% \global\divide#2 by 2\relax% }% -\newcount\tdrmt% -\newcount\tdrmo% +\newcount\twice@dynkin@rank@minus@one% \newcount\max@BC@r% \newcount\BC@r% \newcount\BC@series@x% \newcount\BC@series@y% \NewDocumentCommand\place@BC@roots{}% {% -\drmo \the\dynkin@rank\relax% -\advance\drmo by -1\relax% -\tdrmt \the\drmo\relax% -\advance\tdrmt by \the\drmo\relax% -\tdrmo \the\tdrmt\relax% -\advance\tdrmo 1\relax% -\max@BC@r \the\dynkin@rank\relax% -\advance\max@BC@r by 1\relax% -\BC@r 1\relax% -\loop% - \BC@series@x \the\BC@r\relax% - \advance\BC@series@x by -1\relax% - \advance\BC@series@x by \the\BC@series@x\relax% - \BC@series@y 1\relax% - {%% + \twice@dynkin@rank@minus@one \the\dynkin@rank\relax% + \advance\twice@dynkin@rank@minus@one by \the\dynkin@rank\relax% + \advance\twice@dynkin@rank@minus@one by -1\relax% + \max@BC@r \the\dynkin@rank\relax% + \advance\max@BC@r by 1\relax% + \BC@r 1\relax% \loop% - \coordinate - (\the\BC@series@y;\the\BC@r) - at - ({.5*\the\BC@series@x*\dynkin@edge@length}, - {.5*(\the\BC@series@y-1)*\dynkin@edge@length}) - {};% - \advance\BC@series@y by 1\relax% - \advance\BC@series@x by 1\relax% - \ifnum\BC@series@x<\the\tdrmo\repeat% - }%% - \advance\BC@r by 1\relax% - \ifnum\BC@r<\the\max@BC@r% -\repeat% + \BC@series@x \the\BC@r\relax% + \advance\BC@series@x by -1\relax% + \advance\BC@series@x by \the\BC@series@x\relax% + \BC@series@y 1\relax% + {%% + \loop% + \coordinate + (\the\BC@series@y;\the\BC@r) + at + ({.5*\the\BC@series@x*\lie@hasse@edge@length}, + {.5*(\the\BC@series@y-1)*\lie@hasse@edge@length}) + {};% + \advance\BC@series@y by 1\relax% + \advance\BC@series@x by 1\relax% + \ifnum\BC@series@x<\the\twice@dynkin@rank@minus@one\repeat% + }%% + \advance\BC@r by 1\relax% + \ifnum\BC@r<\the\max@BC@r% + \repeat% +}% +\newcount\BC@height% +\newcount\BC@g% +\NewDocumentCommand\draw@BC@edges{}% +{% + \rootSystemHeight{\BC@height}% + \ifnum\BC@height>1% + \BC@g 1\relax% + \loop% + \draw@BC@edges@at@grade{\the\BC@g}% + \global\advance\BC@g by 1\relax% + \ifnum\BC@g<\BC@height% + \repeat% + \fi% }% -\newcount\max@BC@i% \newcount\BC@i% -\newcount\BC@series@x% -\newcount\BC@series@y% +\newcount\BC@width% +\newcount\BC@width@plus@one% +\NewDocumentCommand\draw@BC@edges@at@grade{m}% +{% + \rootSystemWidthAtGrade{#1}{\BC@width}% + \BC@width@plus@one \BC@width\relax% + \advance \BC@width@plus@one by 1\relax% + \BC@i 1\relax% + {% + \loop% + \draw@BC@edges@at@root{#1}{\the\BC@i}% + \global\advance\BC@i by 1\relax% + \ifnum\BC@i<\BC@width@plus@one\repeat% + }% +}% +\newcount\BC@height% \newcount\BC@ii% -\newcount\BC@series@yy% -\newcount\BC@series@yy% -\newcount\lbl% +\newif\ifBC@draw% +\newcount\lie@hasse@lbl% \newcount\temp@lbl% -\NewDocumentCommand\draw@BC@edges{s}% -{% -\tdrmo \the\dynkin@rank\relax% -\advance\tdrmo by \the\dynkin@rank\relax% -\advance\tdrmo by -1\relax% -\max@BC@i \the\dynkin@rank\relax% -\advance\max@BC@i by 1\relax% -\BC@i 1\relax% -\loop% - \BC@series@x \the\BC@i\relax% - \advance\BC@series@x by \the\BC@i\relax% - \advance\BC@series@x by -2\relax% - \BC@series@y 1\relax% - {%% - \loop% - \ifnum\BC@i>1% - % draw an edge upward to the left - \BC@ii \the\BC@i\relax% - \advance\BC@ii by -1\relax% - \BC@series@yy \the\BC@series@y\relax% - \advance\BC@series@yy by 1\relax% - \draw@lie@hasse@edge[right]% - {\the\BC@series@y}{\the\BC@i}% - {\the\BC@ii}% - {\the\BC@ii}% +\NewDocumentCommand\draw@BC@edges@at@root{mm}% +{% + \ifnum#2>1% + % draw an edge upward to the left + \BC@ii #2\relax% + \advance\BC@ii by -1\relax% + \draw@lie@hasse@edge[right]% + {#1}{#2}% + {\the\BC@ii} + {\the\BC@ii}% + \fi% + \BC@drawtrue% + \ifodd#1 + \ifnum#2=\the\BC@width% + \global\BC@drawfalse% \fi% - \ifnum\BC@series@y>1% - % draw an edge downward to the left - \BC@series@yy \the\BC@series@y\relax% - \advance\BC@series@yy by -1\relax% - \lbl \the\BC@i\relax% - \advance\lbl by \the\BC@series@y\relax% - \advance\lbl by -1\relax% - \ifnum\dynkin@rank<\the\lbl% - \temp@lbl \the\lbl\relax% - \lbl \the\dynkin@rank\relax% - \advance\lbl by \the\dynkin@rank% - \advance\lbl by -\the\temp@lbl% + \fi% + \ifBC@draw% + % draw an edge upward to the right + \lie@hasse@lbl #2\relax% + \advance\lie@hasse@lbl by #1\relax% + \ifnum\dynkin@rank<\the\lie@hasse@lbl% + \temp@lbl \the\lie@hasse@lbl\relax% + \lie@hasse@lbl \the\dynkin@rank\relax% + \advance\lie@hasse@lbl by \the\dynkin@rank% + \advance\lie@hasse@lbl by -\the\temp@lbl% %% For the B series: - \IfBooleanF{#1}{\global\advance\lbl by 1\relax}% - \draw@lie@hasse@edge[left]% - {\the\BC@series@yy}{\the\BC@i}% - {\the\BC@i}% - {\the\lbl}% - \else% - \draw@lie@hasse@edge[left]% - {\the\BC@series@yy}{\the\BC@i}% - {\the\BC@i}% - {\the\lbl}% + \iflie@hasse@B% + \global\advance\lie@hasse@lbl by 1\relax% \fi% + \draw@lie@hasse@edge[left]% + {#1}{#2}% + {#2}% + {\the\lie@hasse@lbl}% + \else% + \draw@lie@hasse@edge[left]% + {#1}{#2}% + {#2}% + {\the\lie@hasse@lbl}% \fi% - \advance\BC@series@y by 1\relax% - \advance\BC@series@x by 1\relax% - \ifnum\BC@series@x<\the\tdrmo\repeat% - }%% - \advance\BC@i by 1\relax% - \ifnum\BC@i<\the\max@BC@i% -\repeat% -}% -\newcount\tdrpt% -\newcount\BC@r% -\newcount\BC@series@y% -\newcount\maxy% -\NewDocumentCommand\draw@BC@roots{}% -{% -\tdrpt \the\dynkin@rank\relax% -\advance\tdrpt by \the\dynkin@rank\relax% -\advance\tdrpt by 2\relax% -\max@BC@r \the\dynkin@rank\relax% -\advance\max@BC@r by 1\relax% -\BC@r 1\relax% -\loop% - \BC@series@y 1\relax% - \maxy \tdrpt\relax% - \advance\maxy -\the\BC@r\relax% - \advance\maxy -\the\BC@r\relax% - {%% - \loop% - \draw@lie@hasse@root{\the\BC@series@y;\the\BC@r}% - \advance\BC@series@y by 1\relax% - \ifnum\BC@series@y<\the\maxy\repeat% - }%% - \advance\BC@r by 1\relax% - \ifnum\BC@r<\the\max@BC@r% -\repeat% + \fi% }% \NewDocumentCommand\hasse@BC{s}% star for C: {% @@ -809,7 +835,6 @@ {% \draw@BC@edges% }% - \draw@BC@roots% }% \NewDocumentCommand\hasse@D{}% {% @@ -818,51 +843,45 @@ \iflie@hasse@threeD% \draw@D@hasse@three@D% \fi% - \draw@D@roots% }% -\newcount\drmt% \NewDocumentCommand\draw@D@hasse@three@D{}% {% - \drmo \the\dynkin@rank\relax% - \advance\drmo by -1\relax% - \drmt \the\dynkin@rank\relax% - \advance\drmt by -2\relax% \begin{pgfonlayer}{Dynkin middle}% \fill[/Lie Hasse diagram/left] - (\the\drmt;1) -- - (\the\drmo;1) -- + (\the\dynkin@rank@minus@two;1) -- + (\the\dynkin@rank@minus@one;1) -- (\the\dynkin@rank;1) -- - (\the\drmo;2) -- + (\the\dynkin@rank@minus@one;2) -- cycle;% \fill[/Lie Hasse diagram/top] - (\the\drmt;1) -- - (1;\the\drmt) -- - (2;\the\drmo) -- - (\the\drmo;2) -- + (\the\dynkin@rank@minus@two;1) -- + (1;\the\dynkin@rank@minus@two) -- + (2;\the\dynkin@rank@minus@one) -- + (\the\dynkin@rank@minus@one;2) -- cycle;% \fill[/Lie Hasse diagram/top] - (\the\drmo;2) -- + (\the\dynkin@rank@minus@one;2) -- (\the\dynkin@rank;1) -- - (3;\the\drmo) -- - (2;\the\drmo) -- + (3;\the\dynkin@rank@minus@one) -- + (2;\the\dynkin@rank@minus@one) -- cycle;% \fill[/Lie Hasse diagram/top] - (\the\drmo;1) -- + (\the\dynkin@rank@minus@one;1) -- (\the\dynkin@rank;1) -- - (3;\the\drmo) -- - (2;\the\drmt) -- + (3;\the\dynkin@rank@minus@one) -- + (2;\the\dynkin@rank@minus@two) -- cycle;% \fill[/Lie Hasse diagram/top] - (\the\drmt;1) -- - (\the\drmo;1) -- - (2;\the\drmt) -- - (1;\the\drmt) -- + (\the\dynkin@rank@minus@two;1) -- + (\the\dynkin@rank@minus@one;1) -- + (2;\the\dynkin@rank@minus@two) -- + (1;\the\dynkin@rank@minus@two) -- cycle;% \fill[/Lie Hasse diagram/left] - (1;\the\drmt) -- - (2;\the\drmt) -- - (3;\the\drmo) -- - (2;\the\drmo) -- + (1;\the\dynkin@rank@minus@two) -- + (2;\the\dynkin@rank@minus@two) -- + (3;\the\dynkin@rank@minus@one) -- + (2;\the\dynkin@rank@minus@one) -- cycle;% \end{pgfonlayer}% }% @@ -883,9 +902,7 @@ \newcount\D@g% \newcount\maxD@grd% \newcount\D@grd% -\newcount\maxxD% -\newcount\iD% -\newcount\xxD% +\newcount\lie@hasse@D@x% \newcount\sum@D% \NewDocumentCommand\place@D@roots{}% {% @@ -918,37 +935,34 @@ \repeat% }% }% -\newcount\drpo% \NewDocumentCommand\place@D@root@at{mm}% {% - \xxD #1\relax% - \advance\xxD by #2\relax% - \advance\xxD by #2\relax% - \advance\xxD by -3\relax% - \drpo \the\dynkin@rank\relax% - \advance\drpo by 1\relax% + \lie@hasse@D@x #1\relax% + \advance\lie@hasse@D@x by #2\relax% + \advance\lie@hasse@D@x by #2\relax% + \advance\lie@hasse@D@x by -3\relax% \sum@D #1\relax% \advance\sum@D by #2\relax% \ifnum\sum@D=\the\dynkin@rank% \global\def\D@root@x% - {\the\xxD-\lie@hasse@three@D@shift}% + {\the\lie@hasse@D@x-\lie@hasse@three@D@shift}% \else% - \ifnum\sum@D=\the\drpo% + \ifnum\sum@D=\the\dynkin@rank@plus@one% \ifnum#1<\the\dynkin@rank% \global\def\D@root@x% - {\the\xxD-2+\lie@hasse@three@D@shift}% + {\the\lie@hasse@D@x-2+\lie@hasse@three@D@shift}% \else% - \global\def\D@root@x{\the\xxD}% + \global\def\D@root@x{\the\lie@hasse@D@x}% \fi% \else% \ifnum\sum@D<\the\dynkin@rank% - \global\def\D@root@x{\the\xxD}% + \global\def\D@root@x{\the\lie@hasse@D@x}% \else% % if \sum@D exceeds rank+1 \ifnum#1<\the\dynkin@rank% - \global\def\D@root@x{\the\xxD-2}% + \global\def\D@root@x{\the\lie@hasse@D@x-2}% \else% - \global\def\D@root@x{\the\xxD}% + \global\def\D@root@x{\the\lie@hasse@D@x}% \fi% \fi% \fi% @@ -956,7 +970,7 @@ \coordinate (#1;#2) at - ({(\D@root@x)*\dynkin@edge@length/2},{(#1-1)*\dynkin@edge@length/2}) + ({(\D@root@x)*\lie@hasse@edge@length/2},{(#1-1)*\lie@hasse@edge@length/2}) {};% }% \NewDocumentCommand\draw@D@edges{}% @@ -983,7 +997,8 @@ \D@r 1\relax% {% \loop% - \draw@D@edges@at{#1}{\the\D@r}{\the\max@D@roots}% +%%% \draw@D@edges@at{#1}{\the\D@r}{\the\max@D@roots}% + \draw@D@edges@at{#1}{\the\D@r}% \advance\D@r by 1\relax% \ifnum\D@r<\the\max@D@roots@plus@one% \repeat% @@ -1000,10 +1015,6 @@ \newcount\hasse@D@label% \NewDocumentCommand\draw@D@edges@at{mm}% {% - \drmo\the\dynkin@rank\relax% - \advance\drmo by -1\relax% - \drpo \the\dynkin@rank\relax% - \advance\drpo by 1\relax% \hasse@D@gpo#1\relax% \advance\hasse@D@gpo by 1\relax% \hasse@D@gpi#1\relax% @@ -1035,7 +1046,7 @@ \xdef\hasse@D@layer{Dynkin above}% \else% % below or middle. - \ifnum\hasse@D@gpi=\the\drpo% + \ifnum\hasse@D@gpi=\the\dynkin@rank@plus@one% \xdef\hasse@D@layer{Dynkin behind}% \fi% \fi% @@ -1045,7 +1056,7 @@ \fi% \fi% \ifnum\dynkin@rank>#1% - \ifnum\hasse@D@gpi<\the\drpo% + \ifnum\hasse@D@gpi<\the\dynkin@rank@plus@one% \else% \global\advance\hasse@D@label -1\relax% \fi% @@ -1069,7 +1080,7 @@ \fi% \fi% \ifnum#1=1% - \ifnum\drmo=#2% + \ifnum\dynkin@rank@minus@one=#2% \global\hasse@Dfalse\relax% \else% \xdef\hasse@D@LR{right}% @@ -1080,13 +1091,13 @@ \ifnum\hasse@D@label>\the\dynkin@rank% \hasse@D@label -\hasse@D@label\relax% \advance\hasse@D@label \the\dynkin@rank\relax% - \advance\hasse@D@label \the\drmo\relax% + \advance\hasse@D@label \the\dynkin@rank@minus@one\relax% \fi% - \ifnum\drmo<#1% + \ifnum\dynkin@rank@minus@one<#1% \else% \ifnum#2=1% \else% - \ifnum\hasse@D@gpi<\the\drpo% + \ifnum\hasse@D@gpi<\the\dynkin@rank@plus@one% \else% \advance\hasse@D@label 1\relax% \fi% @@ -1099,11 +1110,11 @@ \global\advance\hasse@D@target by 1\relax% \fi% \else% - \ifnum\drmo=#1% + \ifnum\dynkin@rank@minus@one=#1% \global\advance\hasse@D@target by -1\relax% \fi% \fi% - \ifnum\hasse@D@gpi=\the\drpo% + \ifnum\hasse@D@gpi=\the\dynkin@rank@plus@one% \ifnum#2>1% \xdef\hasse@D@layer{Dynkin behind}% \xdef\hasse@D@LR{right}% @@ -1112,7 +1123,7 @@ \ifnum\hasse@D@gpi=\the\dynkin@rank% \xdef\hasse@D@layer{Dynkin above}% \else% - \ifnum\hasse@D@gpi=\the\drmo% + \ifnum\hasse@D@gpi=\the\dynkin@rank@minus@one% \xdef\hasse@D@layer{Dynkin above}% \else% \xdef\hasse@D@layer{Dynkin middle}% @@ -1129,7 +1140,7 @@ \end{pgfonlayer}% \fi% % % Draw any other edges. - \ifnum\hasse@D@gpi=\the\drmo% + \ifnum\hasse@D@gpi=\the\dynkin@rank@minus@one% \hasse@D@target#2\relax% \advance\hasse@D@target by 1\relax% \begin{pgfonlayer}{Dynkin behind} @@ -1142,38 +1153,7 @@ }% \newcount\maxD@grd% \newcount\D@grd% -\newcount\maxxD% \newcount\sum@D% -\NewDocumentCommand\draw@D@roots{}% -{% - \drmo \the\dynkin@rank\relax% - \advance\drmo by -1\relax% - \maxD@grd \the\dynkin@rank\relax% - \advance\maxD@grd by \the\dynkin@rank\relax% - \advance\maxD@grd by -2\relax% - \D@grd 1\relax% - \loop% - % Construct the roots at grade \D@grd. - \draw@D@roots@at@grade{\D@grd}% - \advance\D@grd by 1\relax% - \ifnum\D@grd<\the\maxD@grd% - \repeat% -}% -\NewDocumentCommand\draw@D@roots@at@grade{m}% -{% - \hasse@D@width@at@grade{#1}{\max@D@roots}% - \max@D@roots@plus@one \the\max@D@roots\relax% - \advance\max@D@roots@plus@one 1\relax% - \D@r 1\relax% - {% - \loop% - \draw@lie@hasse@root{\the\D@grd;\the\D@r}% - \advance\D@r by 1\relax% - \ifnum\D@r<\the\max@D@roots@plus@one% - \repeat% - }% -}% -%}% \newcount\lie@hasse@grade@no \newcount\lie@hasse@root@no \def\lie@hasse@XX{} @@ -1205,14 +1185,14 @@ \coordinate (\the\lie@hasse@grade@no;\the\lie@hasse@root@no) at - ({\lie@hasse@XX*\dynkin@edge@length/2}, - {(\the\lie@hasse@grade@no-1)*\dynkin@edge@length/2}) {};% + ({\lie@hasse@XX*\lie@hasse@edge@length/2}, + {(\the\lie@hasse@grade@no-1)*\lie@hasse@edge@length/2}) {};% \global\advance\lie@hasse@root@no by 1% }% \NewDocumentCommand\lie@hasse@place@root@list{m}% {% \global\lie@hasse@root@no 1\relax% - \expandafter\forcsvlist\expandafter{\lie@hasse@place@root}{#1}% + \expandafter\forcsvlist\expandafter\lie@hasse@place@root{#1}% \global\advance\lie@hasse@grade@no by 1% }% \NewDocumentCommand\lie@hasse@place@roots{m}% @@ -1224,26 +1204,6 @@ }% \expandafter\docsvlist\expandafter{#1}% }% -\NewDocumentCommand\lie@hasse@draw@root{m}% -{% - \draw@lie@hasse@root{\the\lie@hasse@grade@no;\the\lie@hasse@root@no}% - \global\advance\lie@hasse@root@no by 1% -}% -\NewDocumentCommand\lie@hasse@root@draw@list{m}% -{% - \global\lie@hasse@root@no 1\relax% - \expandafter\forcsvlist\expandafter{\lie@hasse@draw@root}{#1}% - \global\advance\lie@hasse@grade@no by 1% -}% -\NewDocumentCommand\lie@hasse@draw@roots{m}% -{% - \global\lie@hasse@grade@no 1\relax% - \renewcommand*{\do}[1]% - {% - \lie@hasse@root@draw@list{##1}% - }% - \expandafter\docsvlist\expandafter{#1}% -}% \newcount\lie@hasse@grade@no@plus@one% \newcount\lie@hasse@edge@count% \def\lie@hasse@edge@go{% @@ -1256,7 +1216,8 @@ {% \global\advance\lie@hasse@edge@count by 1\relax% \begin{pgfonlayer}{Dynkin above}% - \lie@hasse@finish@edge#1!% +%%? \lie@hasse@finish@edge#1!% + \lie@hasse@finish@edge#1\relax% \end{pgfonlayer}% }% \def\lie@hasse@process@edge@behind#1!% @@ -1289,13 +1250,12 @@ \NewDocumentCommand\lie@hasse@process@edge@lists{m}% {% \global\lie@hasse@grade@no 1\relax% - \expandafter\forcsvlist\expandafter{\lie@hasse@process@edge@list}{#1}% + \expandafter\forcsvlist\expandafter\lie@hasse@process@edge@list{#1}% }% \NewDocumentCommand\hasse@X{mm}% {% \lie@hasse@place@roots{#1}% \lie@hasse@process@edge@lists{#2}% - \lie@hasse@draw@roots{#1}% }% \NewDocumentCommand\hasse@E@six@width@at@grade{mm}% {% @@ -1323,7 +1283,11 @@ #2 1% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% }% -% In the following code, edges are described by grade: in grade g, the expression i+r<j. means an edge from g;i to (g+1);j labelled by root r, with a label on the left; use > instead of < to get the right. Use a star in front to get this edge on the higher layer. +% In the following code, edges are described by grade: +% in grade g, the expression i+r<j. means an edge from +% g;i to (g+1);j labelled by root r, with a label on +% the left; use > instead of < to get the right. Use a +% star in front to get this edge on the higher layer. \NewDocumentCommand\hasse@E@six{}% {% \hasse@X% @@ -1353,13 +1317,45 @@ }%%% \iflie@hasse@threeD% \begin{pgfonlayer}{Dynkin middle}% -\fill[/Lie Hasse diagram/top] (2;1) -- (5;3) -- (2;5) -- (1;5) -- (2;4) -- (1;3) -- (2;2) -- (1;2) -- cycle;% -\fill[/Lie Hasse diagram/top] (2;3) -- (4;1) -- (6;2) -- (4;5) -- cycle;% -\fill[/Lie Hasse diagram/right] (1;3) -- (2;3) -- (4;5) -- (3;5) -- cycle;% -\fill[/Lie Hasse diagram/left] (3;1) -- (4;1) -- (2;3) -- (1;3) -- cycle;% -\fill[/Lie Hasse diagram/left] (4;3) -- (5;1) -- (6;1) -- (5;2) -- cycle;% -\fill[/Lie Hasse diagram/right] (4;3) -- (5;2) -- (6;3) -- (5;4) -- cycle;% -\fill[/Lie Hasse diagram/top] (5;2) -- (7;1) -- (9;1) -- (7;3) -- cycle;% + \fill[/Lie Hasse diagram/top] + (2;1) -- + (5;3) -- + (2;5) -- + (1;5) -- + (2;4) -- + (1;3) -- + (2;2) -- + (1;2) -- cycle;% + \fill[/Lie Hasse diagram/top] + (2;3) -- + (4;1) -- + (6;2) -- + (4;5) -- cycle;% + \fill[/Lie Hasse diagram/right] + (1;3) -- + (2;3) -- + (4;5) -- + (3;5) -- cycle;% + \fill[/Lie Hasse diagram/left] + (3;1) -- + (4;1) -- + (2;3) -- + (1;3) -- cycle;% + \fill[/Lie Hasse diagram/left] + (4;3) -- + (5;1) -- + (6;1) -- + (5;2) -- cycle;% + \fill[/Lie Hasse diagram/right] + (4;3) -- + (5;2) -- + (6;3) -- + (5;4) -- cycle;% + \fill[/Lie Hasse diagram/top] + (5;2) -- + (7;1) -- + (9;1) -- + (7;3) -- cycle;% \end{pgfonlayer}% \fi% }% @@ -1399,7 +1395,6 @@ #2 1% \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi% }% - \NewDocumentCommand\hasse@E@seven{}% {% \hasse@X% @@ -1457,20 +1452,64 @@ }%%% \iflie@hasse@threeD% \begin{pgfonlayer}{Dynkin middle}% -\fill[/Lie Hasse diagram/top] (2;1) -- (6;3) -- (2;6) -- (1;6) -- (2;5) -- (1;4) -- (2;3) -- (1;3) -- - (2;2) -- (1;2) -- cycle;% -\fill[/Lie Hasse diagram/top] (5;1) -- (7;3) -- (4;6) -- (2;4) -- cycle;% -\fill[/Lie Hasse diagram/top] (7;1) -- (9;3) -- (7;5) -- (5;4) -- cycle;% -\fill[/Lie Hasse diagram/top] (9;1) -- (12;1) -- (13;1) -- (14;1) -- (11;3) -- (7;2) -- cycle;% -\fill[/Lie Hasse diagram/right] (1;4) -- (2;4) -- (4;6) -- (3;6) -- cycle;% -\fill[/Lie Hasse diagram/left] (4;1) -- (5;1) -- (2;4) -- (1;4) -- cycle;% -\fill[/Lie Hasse diagram/left] (4;4) -- (6;1) -- (8;1) -- (7;2) -- (6;2) -- (5;4) -- cycle;% -\fill[/Lie Hasse diagram/right] (4;4) -- (5;4) -- (6;5) -- (5;6) -- cycle;% -\fill[/Lie Hasse diagram/right] (6;2) -- (7;2) -- (9;4) -- (8;4) -- cycle;% + \fill[/Lie Hasse diagram/top] + (2;1) -- + (6;3) -- + (2;6) -- + (1;6) -- + (2;5) -- + (1;4) -- + (2;3) -- + (1;3) -- + (2;2) -- + (1;2) -- cycle;% + \fill[/Lie Hasse diagram/top] + (5;1) -- + (7;3) -- + (4;6) -- + (2;4) -- cycle;% + \fill[/Lie Hasse diagram/top] + (7;1) -- + (9;3) -- + (7;5) -- + (5;4) -- cycle;% + \fill[/Lie Hasse diagram/top] + (9;1) -- + (12;1) -- + (13;1) -- + (14;1) -- + (11;3) -- + (7;2) -- cycle;% + \fill[/Lie Hasse diagram/right] + (1;4) -- + (2;4) -- + (4;6) -- + (3;6) -- cycle;% + \fill[/Lie Hasse diagram/left] + (4;1) -- + (5;1) -- + (2;4) -- + (1;4) -- cycle;% + \fill[/Lie Hasse diagram/left] + (4;4) -- + (6;1) -- + (8;1) -- + (7;2) -- + (6;2) -- + (5;4) -- cycle;% + \fill[/Lie Hasse diagram/right] + (4;4) -- + (5;4) -- + (6;5) -- + (5;6) -- cycle;% + \fill[/Lie Hasse diagram/right] + (6;2) -- + (7;2) -- + (9;4) -- + (8;4) -- cycle;% \end{pgfonlayer}% \fi% }% - \NewDocumentCommand\hasse@E@eight@width@at@grade{mm}% {% \ifnum#1=1% @@ -1527,7 +1566,6 @@ #2 1% \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% }% - \NewDocumentCommand\hasse@E@eight{}% {% \hasse@X{% @@ -1754,11 +1792,11 @@ {{0,2,4,6},{1,3,5},{2,3:1,4},{2:1,3,4:1},{1:1,3:1,5:1},{2:1,4:1},{1:1,3:1},{2:1},{2:2},{2:3},{2:4}}% {% grades: {% 1 -1+2<1,*2+3<2,*3+4<3,*2+1>1,*3+2>2,4+3>3}, +1+2<1,*2+3>2,*3+4>3,*2+1<1,*3+2<2,4+3>3}, {% 2 -*1+3<1,*2+4<3,*2+3<2,*2+1<1,3+2>3}, +*1+3<1,*2+4>3,*2+1<1,*2+3>2,3+2>3}, {% 3 -*1+3<1,1+4<2,*2+4<3,*2+1<1,3+1>2,*3+3>3}, +*1+3<1,1+4>2,*2+4>3,*2+1<1,3+1>2,*3+3>3}, {% 4 *1+2<1,*1+4<2,2+3<2,*3+1>2,*3+4>3}, {% 5 @@ -2026,8 +2064,8 @@ }% \global\root@sum@resetfalse% }% -\xdef\my@root@sum{}% -\xdef\my@fixed@root@sum{}% +\xdef\lie@hasse@root@sum{}% +\xdef\lie@hasse@fixed@root@sum{}% \NewDocumentCommand\rootSum{oommm}% {% \IfValueT{#1}% @@ -2053,15 +2091,15 @@ \fi% \IfStrEqCase{\dynkin@series}% {% - {A}{\hasse@A@root@sum{#3}{#4}{\my@root@sum}}% - {B}{\hasse@B@root@sum{#3}{#4}{\my@root@sum}}% - {C}{\hasse@C@root@sum{#3}{#4}{\my@root@sum}}% - {D}{\hasse@D@root@sum{#3}{#4}{\my@root@sum}}% - {E}{\xdef\my@root@sum{\exceptional@root@sum{#3;#4}}}% - {F}{\xdef\my@root@sum{\exceptional@root@sum{#3;#4}}}% - {G}{\xdef\my@root@sum{\exceptional@root@sum{#3;#4}}}% + {A}{\hasse@A@root@sum{#3}{#4}{\lie@hasse@root@sum}}% + {B}{\hasse@B@root@sum{#3}{#4}{\lie@hasse@root@sum}}% + {C}{\hasse@C@root@sum{#3}{#4}{\lie@hasse@root@sum}}% + {D}{\hasse@D@root@sum{#3}{#4}{\lie@hasse@root@sum}}% + {E}{\xdef\lie@hasse@root@sum{\exceptional@root@sum{#3;#4}}}% + {F}{\xdef\lie@hasse@root@sum{\exceptional@root@sum{#3;#4}}}% + {G}{\xdef\lie@hasse@root@sum{\exceptional@root@sum{#3;#4}}}% }% - \StrSubstitute{\my@root@sum}{.}{,}[#5]% + \StrSubstitute{\lie@hasse@root@sum}{.}{,}[#5]% }% %% \rootSystemHeight[G][2]{\h} sets the counter \h to the height of the poset %% of the root system G2. \rootSystemHeight{\h} uses the current root system. @@ -2451,7 +2489,7 @@ 4;1=3.1,% 5;1=3.2}% }% -\NewDocumentCommand\forAllPositiveRootsInHasseDiagram{m}% +\NewDocumentCommand\forAllPositiveRoots{m}% {% \rootSystemHeight{\lie@hasse@height}% \foreach \root@grady in {1,...,\the\lie@hasse@height}% diff --git a/graphics/pgf/contrib/lie-hasse/lie-hasse.tex b/graphics/pgf/contrib/lie-hasse/lie-hasse.tex index 82643fee14..762639c603 100644 --- a/graphics/pgf/contrib/lie-hasse/lie-hasse.tex +++ b/graphics/pgf/contrib/lie-hasse/lie-hasse.tex @@ -1,5 +1,5 @@ \documentclass{amsart} -\title[The Lie Hasse package]{The Lie Hasse package \\ Version 1.0} +\title[The Lie Hasse package]{The Lie Hasse package \\ Version 1.01} %% My name: \makeatletter \DeclareRobustCommand{\scotsMc}{\scotsMcx{c}} @@ -19,8 +19,7 @@ \author{\authorsname} \address{School of Mathematical Sciences, University College Cork, Cork, Ireland} \email{b.mckay@ucc.ie} -\date{3 February 2020} -\usepackage{etex} +\date{9 July 2024} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenx} \usepackage{etoolbox} @@ -87,7 +86,7 @@ root radius=.02cm, edge length=.5cm, edge quotes/.style={opacity=0}% - ]{E}{8}% + ]E8% \end{tikzpicture}% \end{center}% \begin{center} @@ -106,26 +105,26 @@ This package draws the Hasse diagram of the poset of the positive simple roots o \begin{document} The Hasse diagram of \(F_4\) is \begin{center} -\hasse[edge length=1cm]{F}{4} +\hasse F4 \end{center} \end{document} \end{Verbatim} \end{tcolorbox} \par\noindent{}The Hasse diagram of \(F_4\) is \begin{center} -\hasse[edge length=1cm]{F}{4} +\hasse[edge length=1cm]F4 \end{center} Each edge is labelled with the simple root by which vertices differ. \begin{tcblisting}{title={Inside a \TikZ statement}} -\(B_4\) has Dynkin diagram \tikz \dynkin[edge length=.35cm]{B}{4};, Hasse diagram +\(B_4\) has Dynkin diagram \tikz \dynkin{B}{4};, Hasse diagram \begin{center} -\hasse[edge length=1cm]{B}{4} +\hasse[edge length=1cm]B4 \end{center} \end{tcblisting} \begin{tcblisting}{title={Inside a Dynkin diagram environment, diagrams fit together}} The Hasse diagram of \(B_4\) is \begin{dynkinDiagram}[vertical shift=0,edge length=1cm]{B}{4} -\hasse{B}{4} +\hasse[edge length=1cm]B4 \end{dynkinDiagram} \end{tcblisting} We shut off the default vertical shift of the Dynkin diagram, so that it starts at the origin. @@ -133,35 +132,26 @@ There is an option to \verb!\hasse! for this: \begin{tcblisting}{title={Attaching the Dynkin diagram}} The Hasse diagram of \(B_4\) is \begin{center} -\hasse[attach Dynkin diagram=true]{B}{4} +\hasse[attach Dynkin diagram=true]B4 \end{center} \end{tcblisting} Unfortunately, attaching a Dynkin diagram looks terrible for \(D\) or \(E\) series, so a Dynkin diagram appears below. \begin{tcblisting}{title={Attaching the Dynkin diagram}} The Hasse diagram of \(D_5\) is \begin{center} -\hasse[attach Dynkin diagram=true]{D}{5} +\hasse[attach Dynkin diagram=true]D5 \end{center} \end{tcblisting} \begin{tcblisting}{title={Inside a \TikZ environment}} \begin{tikzpicture} -\hasse{A}{4} +\hasse A4 \draw (4;1) circle (5pt); \draw[red] (2;3) circle (5pt); \end{tikzpicture} \end{tcblisting} In this example, we see that the roots of the Hasse diagram are \TikZ{} nodes labelled \(g;i\) for grade \(g\) (i.e. \(g\) units up the page) and index \(i\) (i.e. \(i^{\text{th}}\) root of grade \(g\) drawn on the page, starting from the left). -\section{Inherited options} -The Lie Hasse package inherits options from the Dynkin diagrams package: the edge lengths are set with -\begin{Verbatim} -\tikzset{/Dynkin diagram/edge lengths=1.2cm} -\end{Verbatim} -and similarly the ordering of roots with -\begin{Verbatim} -\tikzset{/Dynkin diagram/ordering=Bourbaki} -\end{Verbatim} - +\newpage \section{Prettier} The package includes a more elaborate \verb!\hasseDiagrams! command, taking a list of semicolon separated Dynkin diagram identfiers. \begin{tcolorbox}[title={With some global options to make prettier diagrams}] @@ -198,11 +188,20 @@ The package includes a more elaborate \verb!\hasseDiagrams! command, taking a li \endgroup Global options: \begin{verbatim} - edge/.style={ultra thick}, - edge quotes/.style={/Dynkin diagram/text style,auto,inner sep=2pt}, +\tikzset{/Lie Hasse, + edge/.style={ultra thick}, + edge quotes/.style={ + /Dynkin diagram/text style, + auto, + inner sep=2pt}, \end{verbatim} allow to change the edges, and to change the way that labels are printed, and how close labels are to the edges. - +To give even greater control, the user can define a command \verb!\edgeQuote! of one argument, which is applied to the label placed on every edge of the Hasse diagram. +The default is +\begin{verbatim} +\NewDocumentCommand\edgeQuote{m}{\contour{white}{#1}} +\end{verbatim} +which ensures that every label, which is black text by default, has a slight white outline to make it easier to read against a coloured background. \section{Root order} @@ -222,6 +221,10 @@ We can use this like: \hasseDiagrams{[ordering=Carter]E6;[ordering=Dynkin]E6} \hasseDiagrams{[ordering=Kac]E6} \endgroup +The Lie Hasse package inherits the ordering of roots from the Dynkin diagrams package, so we can set it with +\begin{Verbatim} +\tikzset{/Dynkin diagram/ordering=Bourbaki} +\end{Verbatim} \section{Graph height and width} The \emph{height} of a Hasse diagram is the number of grades. @@ -238,7 +241,7 @@ to store the height of \(G_2\) in a counter called \verb!\h!, and \end{Verbatim} to store the width of \(G_2\) at grade \(3\) in a counter called \verb!\w!. -Once you use \verb!\dynkin{G}{2}! or \verb!\hasse{G}{2}! or the other commands, like +Once you use \verb!\dynkin G2! or \verb!\hasse G2! or the other commands, like \begin{Verbatim} \rootSystemHeight[G][2]{\h} \end{Verbatim} @@ -260,7 +263,8 @@ The \verb!show height! option: \hasseDiagrams{G2} \end{Verbatim} \tikzset{/Lie Hasse diagram,show name=true,show height=true} -\hasseDiagrams{G2} +\hasse G2 + The \verb!show widths! option: \begin{Verbatim} \tikzset{/Lie Hasse diagram/show widths=true} @@ -293,11 +297,11 @@ Here is the Dynkin diagram of \(E_8\), indicating the order of the roots in Cart Here is the same Dynkin diagram, except showing, at each simple root, the coefficient of that simple root in the highest root. \begin{Verbatim} \rootSum[E][8]{29}{1}{\rs} -\dynkin[labels=\rs,ordering=Carter,edge length=.35cm]{E}{8} +\dynkin[expand labels=\rs,ordering=Carter,edge length=.35cm]{E}{8} \end{Verbatim} \rootSum[E][8]{29}{1}{\rs} \begin{center} -\dynkin[labels=\rs,ordering=Carter,edge length=.35cm]{E}{8} +\dynkin[expand labels=\rs,ordering=Carter,edge length=.35cm]{E}{8} \end{center} The option \verb!for all roots! allows execution of code once on every root. @@ -312,7 +316,7 @@ The option \verb!for all roots! allows execution of code once on every root. root radius=.05cm }, for all roots/.code 2 args={\drawRootAsDynkinSum{#1}{#2}}} -\hasseDiagrams{D5} +\hasse D5 \end{Verbatim} \begingroup \tikzset{/Lie Hasse diagram, @@ -341,23 +345,23 @@ A simple example: \end{Verbatim} \newcommand{\foo}[2]% {% - \node[below,scale=.75] at (#1;#2) {\(#1,#2\)};% + \node[below,scale=.5] at (#1;#2) {\(#1,#2\)};% }% Inside a \TikZ{} or \verb!dynkinDiagram! environment: \begin{Verbatim} \tikzset{/Lie Hasse diagram/edge quotes/.style={opacity=0}, /Dynkin diagram/edge length=1.5cm} \begin{tikzpicture} - \hasse{D}{6}% - \forAllPositiveRootsInHasseDiagram{\foo}% + \hasse D6% + \forAllPositiveRoots{\foo}% \end{tikzpicture} \end{Verbatim} \begingroup \tikzset{/Lie Hasse diagram/edge quotes/.style={opacity=0}, /Dynkin diagram/edge length=1.5cm} \begin{tikzpicture} - \hasse{D}{6}% - \forAllPositiveRootsInHasseDiagram{\foo}% + \hasse D6% + \forAllPositiveRoots{\foo}% \end{tikzpicture} If you put this into the \verb!for all roots! option, it executes on its own: @@ -378,19 +382,19 @@ Opposite sides of any square have the same edge label, by commutativity of addit Hence we don't need to see every edge perfectly. The three dimensional effect is the default: \begin{Verbatim} -\hasse{D}{4}\hasse{E}{6} +\hasse D4\hasse E6 \end{Verbatim} \begin{center} -\hasse{D}{4}\hasse{E}{6} +\hasse D4\hasse E6 \end{center} We can turn it off: \begin{Verbatim} -\hasse[three D=false]{D}{4} -\hasse[three D=false]{E}{6} +\hasse[three D=false] D4 +\hasse[three D=false] E6 \end{Verbatim} \begin{center} -\hasse[three D=false]{D}{4} -\hasse[three D=false]{E}{6} +\hasse[three D=false] D4 +\hasse[three D=false] E6 \end{center} or globally with \verb!\tikzset{/Lie Hasse diagram/three D=false}!. @@ -430,9 +434,9 @@ You can change these: \section{Label the simple roots} Ringel \cite{Ringel:2013} labels his edges like \begin{Verbatim} -\hasseDiagrams{[labels={f,e,d,c,u,b,a}]E7} +\hasse[labels={f,e,d,c,u,b,a}]E7 \end{Verbatim} -\hasseDiagrams{[labels={f,e,d,c,u,b,a}]E7} +\hasse[labels={f,e,d,c,u,b,a}]E7 \section{Parabolic subgroups} This package offers nothing over Ringel's original pictures, except that the user can pick some simple roots whose associated edges are drawn differently. @@ -440,47 +444,48 @@ The chosen simple roots are called \emph{compact}, following terminology from th We let the reader explore the notation for parabolic subgroups in the Dynkin diagrams package, and use this to declare various roots compact. \begin{Verbatim} \tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,three D=false} -\hasseDiagrams{D{**x*x*x*}} +\hasse D{**x*x*x*} \end{Verbatim} \begingroup \tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,three D=false} -\hasseDiagrams{D{**x*x*x*}} +\hasse D{**x*x*x*} \endgroup + Our motivation comes from trying to identify the invariant vector subbundles of the tangent bundle of a rational homogeneous variety \cite{MathOverflow:123801}. Such diagrams are often unreadable if we don't turn off the three dimensional graphics. By default, noncompact root edges are not drawn. \begingroup \tikzset{/Lie Hasse diagram,attach Dynkin diagram=true,show name=false,three D=false} \begin{Verbatim} -\hasseDiagrams{E{*xx*x*}} +\hasse E{*xx*x*} \end{Verbatim} -\hasseDiagrams{E{*xx*x*}} +\hasse E{*xx*x*} \begin{Verbatim} -\hasseDiagrams{A{x*x*}} +\hasse A{x*x*} \end{Verbatim} -\hasseDiagrams{A{x*x*}} +\hasse A{x*x*} \begin{Verbatim} -\hasseDiagrams{[parabolic=113]B8} +\hasse[parabolic=113]B8 \end{Verbatim} -\hasseDiagrams{[parabolic=113]B8} +\hasse[parabolic=113]B8 \begin{Verbatim} -\hasseDiagrams{C{**xx*x**}} +\hasse C{**xx*x**} \end{Verbatim} -\hasseDiagrams{C{**xx*x**}} +\hasse C{**xx*x**} \newpage \begin{Verbatim} -\hasseDiagrams{E{*x*x*x**}} +\hasse E{*x*x*x**} \end{Verbatim} -\hasseDiagrams{E{*x*x*x**}} +\hasse E{*x*x*x**} \newpage \begin{Verbatim} -\hasseDiagrams{F{**xx}} +\hasse F{**xx} \end{Verbatim} -\hasseDiagrams{F{**xx}} +\hasse F{**xx} \begin{Verbatim} -\hasseDiagrams{G{*x}} +\hasse G{*x} \end{Verbatim} -\hasseDiagrams{G{*x}} +\hasse G{*x} \endgroup \section{Examples} diff --git a/graphics/pgf/contrib/pgf-periodictable/README b/graphics/pgf/contrib/pgf-periodictable/README index f33f53fa72..f761cd2439 100644 --- a/graphics/pgf/contrib/pgf-periodictable/README +++ b/graphics/pgf/contrib/pgf-periodictable/README @@ -1,4 +1,4 @@ -This is pgf-PeriodicTable, version 2.1.0a (2024/04/03). +This is pgf-PeriodicTable, version 2.1.3 (2024/08/07). 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 @@ -22,6 +22,20 @@ ____________________________________________________________ Major changes: +*** v2.1.3 (07/08/2024) *** +The engine's detection mechanism (pdfLaTeX, LuaLaTeX or XeTeX) has been changed to prevent erroneous detection when the packages 'hyperref' or 'bookmark' are loaded and the document is compiled with LuaLaTeX - in this case, pgf-PeriodicTable disturbs the selection of the document font. +Fixed an issue with the Chemical Symbol color when a non-rgb color is used, such as cyan or yellow , which are defined in the xcolor package using the cmyk model (when loaded without options). + +*** v2.1.2 (01/08/2024) *** +Fixed incorrect Spanish translations of some element names. +Minor code improvements to eliminate runtime warnings («LaTeX Font Warning: Font shape `TU/TeXGyreHeros(0)/l/n' undefined» or «Missing character: There is no m (U+006D) in font nullfont!» ... ) + +*** v2.1.1 (07/07/2024) *** +New keys: +- group numbers (to display group numbers in arabic numerals, Roman numerals or both) +- Roman label color (sets the color of the Roman numerals) +- O Roman (the oxidation numbers are presnted in Roman numerals) + *** v2.1.0a (03/04/2024) *** Translation files have been renamed from 'lang.{undefined,nl}.tex' to 'pgfPT.lang.{undefined,nl}.tex' to match the runtime tree of TeX Live (names must be globally unique for reliable searching). diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_O.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_O.tex new file mode 100644 index 0000000000..06f322d5ee --- /dev/null +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_O.tex @@ -0,0 +1,33 @@ +\vfill% +\subsubsection{\texorpdfstring{\ding{224} The oxidation states}{The oxidation states}}%\vspace{6pt}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% O color +\pgfPTMoption{4}{O color}{black}{% +Sets the color of the oxidation states. +} +\\ [10pt]\pgfPTMbuildcell(5,3)[(1;1-2;Z),(1;3;radio),(2-3;1.5-3.5;CS),(4;1-3;name),(5;1-3;O)]% +\pgfPTbuildcell(5,3)[(1;1-2;Z),(1;3;radio),(2-3;1.5-3.5;CS),(4;1-3;name),(5;1-3;O)]% +\\ [5pt]\pgfPTMmacrobox{pgfPTstyle}[show title=false]% +\pgfPTstyle[show title=false]% +\\ [-1pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},O color=red]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},O color=red]}}% +\\ [0pt]\pgfPTendoption% +% O font \tiny\bfseries +\pgfPTMoption{4}{O font}{\string\tiny\string\bfseries}{% +Sets the font of the oxidation states. +} +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},O font=\string\itshape\string\tiny]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},O font=\itshape\tiny]}}% +\\ [0pt]\pgfPTendoption% +% O Roman +\newpage\vspace{-34pt}\ % +\pgfPTMoption[\mbox{\pgfPTnewinversion{2.1.1}}]{4}{O Roman}{false}{% +When set to \red{true} the oxidation states are displayed in Roman numerals, otherwise they are displayed in arabic numerals. +} +%\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},O Roman]% +%\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},O Roman]}}% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list=spd,O Roman,group numbers=CAS]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list=spd,O Roman,group numbers=CAS]}}% +\\ [5pt]\pgfPTendoption% +\pgfPTresetcell% +\endinput diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex index e74b8bf418..c90a4cae94 100644 --- a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_OtherCont.tex @@ -12,7 +12,7 @@ For all the \textit{other contents} available for the cells of the periodic tabl \item\red{\textbf{Ei}}:\hspace{.5ex}first ionization energy \item\red{\textbf{eneg}}:\hspace{.5ex}electronegativity (Pauling) \item\red{\textbf{eaff}}:\hspace{.5ex}electroaffnity -\item\red{\textbf{O}}:\hspace{.5ex}oxidation states +%\item\red{\textbf{O}}:\hspace{.5ex}oxidation states \item\red{\textbf{Tmelt}}:\hspace{.5ex}melting point (Kelvin) \item\red{\textbf{TmeltC}}:\hspace{.5ex}melting point (Celsius degrees) \item\red{\textbf{Tboil}}:\hspace{.5ex}boiling point (Kelvin) diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_density.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_density.tex index 2a33c0371e..511bd765c6 100644 --- a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_density.tex +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_density.tex @@ -14,28 +14,28 @@ Sets the density value text color.} \pgfPTMoption{4}{d font}{\string\tiny\string\bfseries}{% Sets the density value text font. } -\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false]% -\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},Z list={1,...,36},cell style=myd,show title=false]}}% -\\ [10pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false,d font=\string\tiny\string\itshape]% +%\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false]% +%\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},Z list={1,...,36},cell style=myd,show title=false]}}% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false,d font=\string\tiny\string\itshape]% \\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},Z list={1,...,36},cell style=myd,show title=false,d font=\tiny\itshape]}}% \\ [0pt]\pgfPTendoption% -% d unit=<g/cm3|g/dm3|both> .default=g/dm3 \vfill% +% d unit=<g/cm3|g/dm3|both> .default=g/dm3 \pgfPTMoption[\pgfPTnewinversion{1.0.1}]{4}{d unit}{both}{% Sets the unit for the density of the elements. The two possible values to this key are \red{g/dm3} ($\mathsf{g/dm^3}$), \red{g/cm3} ($\mathsf{g/cm^3}$) and \red{both} ($\mathsf{g/dm^3}$ for elements in the gaseous state and $\mathsf{g/cm^3}$ for all other elements). }% \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false]% -\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false]}}% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false]}}% \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false,d unit=g/cm3]% -\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false,d unit=g/cm3]}}% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false,d unit=g/cm3]}}% \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},cell style=myd,show title=false,d unit=g/dm3]% -\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false,d unit=g/dm3]}}% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},cell style=myd,show title=false,d unit=g/dm3]}}% \\ [0pt]\pgfPTendoption% -\vfill\newpage\ \\ [-32pt]% +\newpage\ \\ [-32pt]% % d precision \pgfPTMoption{4}{d precision}{-1}{% Sets the density precision, \ie, the decimal places displayed in their value, performing the respective rounding, without zero padding the value. -\\ [10pt]\tikz{\node[text width=\linewidth-.6666em,fill=orange!5!white,draw=orange,rounded corners=2pt] {\textbf{\red{NOTE}}:\\ Rounding is performed over density values witch actually have a maximum 5 or 8 decimal places, when the values are in $\mathsf{g/dm^3}$ or in $\mathsf{g/cm^3}$, respectively.. So giving this key a value of -1 (the value of the melting or boiling point as-is) or 5 or 8 has the same effect. +\\ [10pt]\tikz{\node[text width=\linewidth-.6666em,fill=orange!5!white,draw=orange,rounded corners=2pt] {\textbf{\red{NOTE}}:\\ Rounding is performed over density values witch actually have a maximum 5 or 8 decimal places, when the values are in $\mathsf{g/dm^3}$ or in $\mathsf{g/cm^3}$, respectively.. So giving this key a value of -1 (the value of the density as-is) or 5 or 8 has the same effect. \\ \textit{Therefore the values provided to this key should be any integer between -1 and 4 ($\mathsf{g/dm^3}$) or 7 ($\mathsf{g/cm^3}$). Any other integer provided will be processed as -1.}};} } \vfill%\\ [10pt] diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_name.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_name.tex index 78f8178826..0fcc955dd2 100644 --- a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_name.tex +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_name.tex @@ -11,7 +11,7 @@ Sets the color of the element name. \\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},name color=red]}}% \\ [0pt]\pgfPTendoption% % name font -\pgfPTMoption{4}{name font}{\string\fontseries\{l\}\string\selectfont\string\tiny}{% +\pgfPTMoption{4}{name font}{\string\tiny}{% \string\fontseries\{l\}\string\selectfont (removed @v2.1.2) Sets the font of the element name. } \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},name font=\string\itshape\string\tiny]% diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_periodgroup.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_periodgroup.tex index 59e27e553e..ff09b0b2e1 100644 --- a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_periodgroup.tex +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgf-PeriodicTableManual_periodgroup.tex @@ -1,4 +1,3 @@ -%\vfill\vfill% \subsubsection{\texorpdfstring{\ding{224} Periods and Groups}{Periods and Groups}}%\vspace{6pt}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % show period numbers @@ -10,17 +9,38 @@ \\ [10pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},show period numbers=false]% \\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},show period numbers=false]}}% \\ [5pt]\pgfPTendoption% -%\vfill% -%\newpage\ \\ [-32pt]% % show group numbers \label{option_show group numbers}% \pgfPTMoption{4}{show group numbers}{true}% {When set to \red{true} the group numbers are shown, otherwise they are not shown.}% \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36}]% -\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36}]}}% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36}]}}% \\ [10pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},show group numbers=false]% -\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},show group numbers=false]}}% -\\ [5pt]\pgfPTendoption% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},show group numbers=false]}}% +\\ [0pt]\pgfPTendoption% +\vfill% +% group numbers +\label{option_group numbers}% +\pgfPTMoption[\pgfPTnewinversion{2.1.1}]{4}{group numbers}{arabic}% +{This key controls how group numbering is displayed: +\vspace{4pt}\begin{itemlist} +\item\red{\textbf{arabic}}: group numbers are shown in arabic numerals as recommended by IUPAC since 1988. +\item\red{\textbf{CAS}}: group numbers are shown in Roman numerals and `A' or `B' suffix. This is an older naming scheme, used by the Chemical Abstract Service (CAS), more popular in the United States. +\item\red{\textbf{IUPAC}}: group numbers are shown in Roman numerals and `A' or `B' suffix. This is an older naming scheme, used by IUPAC before 1988, more popular in Europe. +\item\red{\textbf{CAS*}}: combines the option \red{CAS} and \red{arabic}. Roman numerals and `A' or `B' suffix are above the group and the arabic numerals above them. +\item\red{\textbf{IUPAC*}}: combines the option \red{IUPAC} and \red{arabic}. Roman numerals and `A' or `B' suffix are above the group and the arabic numerals above them. +\end{itemlist} +}% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=CAS]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=CAS]}}% +\newpage\vspace{-34pt}\ %\\ [10pt] +\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=IUPAC]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=IUPAC]}}% +\\ [10pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=CAS*]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=CAS*]}}% +\\ [10pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=IUPAC*]% +\\ [5pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=IUPAC*]}}% +\\ [0pt]\pgfPTendoption% \vfill% % period label color \label{option_period label color}% @@ -28,19 +48,26 @@ {Sets the period label color.}% \\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},period label color=black]% \\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},period label color=black]}}% -\\ [5pt]\pgfPTendoption% -\vfill% -%\newpage\ \\ [-32pt]% +\\ [0pt]\pgfPTendoption% +\newpage\vspace{-34pt}\ %\vfill% % group label color \label{option_group label color}% \pgfPTMoption{4}{group label color}{blue!50!black}% {Sets the group label color.}% -\vfill% -\newpage%\\ [5pt] -\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group label color=black]% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group label color=black]% \\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group label color=black]}}% \\ [0pt]\pgfPTendoption% \vfill% +% Roman label color +\label{option_Roman label color}% +\pgfPTMoption[\pgfPTnewinversion{2.1.1}]{4}{Roman label color}{blue!70!black}% +{Sets the Roman group label color.}% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=CAS*,Roman label color=purple]% +\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=CAS*,Roman label color=purple]}}% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},group numbers=CAS*,Roman label color=purple, group label color=teal]% +\\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},group numbers=CAS*,Roman label color=purple,group label color=teal]}}% +\\ [0pt]\pgfPTendoption% +\vfill% % label font \label{option_label font}% \pgfPTMoption{4}{label font}{\string\small\string\bfseries}% @@ -62,7 +89,6 @@ The key \red{show period numbers} is set to \red{true}. \\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},per={gr=false,c=green!50!black}]}}% \\ [0pt]\pgfPTendstyle% \vfill% -%\newpage\ \\ [-32pt]% % gr={per=??,c=??,f=??} -> auto sets 'show groups numbers=true'; 'show period numbers' can be set to 'false' by the user % gr/.default={per=true,c=blue!50!black,f=\small\bfseries} % gr (pseudo style) @@ -72,11 +98,10 @@ The key \red{show period numbers} is set to \red{true}. The key \red{show group numbers} is set to \red{true}. \\ [3pt]\makebox[\linewidth][c]{\use{gr=\{per=<true|false>,c=<color>,f=<font commands>\}}}% }% -\vfill% -\newpage%\\ [5pt] -\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},gr={per=false,c=green!50!black}]% +\\ [5pt]\pgfPTMmacrobox{pgfPT}[Z list={1,...,36},gr={per=false,c=green!50!black}]% \\ [10pt]\makebox[\linewidth][c]{\scalebox{.6}{\pgfPT[Z list={1,...,36},gr={per=false,c=green!50!black}]}}% \\ [0pt]\pgfPTendstyle% +\newpage\vspace{-34pt}\ %% % per+gr={c=??,pc=??,gc=??,f=??} -> auto sets 'show period numbers=true' & 'show groups numbers=true' % per+gr/.default={pc=red!50!black,gc=blue!50!black,f=\small\bfseries} % per+gr (pseudo style) diff --git a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex index 70d6e325ca..f53b6659ce 100644 --- a/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex +++ b/graphics/pgf/contrib/pgf-periodictable/manualfiles/pgfPTmanual.macros.tex @@ -1,12 +1,15 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Definitions for pgf-PeriodicTable Manual -% Hugo Gomes @ 04/03/2024 v2.1.0a +% Hugo Gomes @ 07/08/2024 v2.1.3 +% Hugo Gomes @ 01/08/2024 v2.1.2 +% Hugo Gomes @ 07/07/2024 v2.1.1 +% Hugo Gomes @ 03/04/2024 v2.1.0a % Hugo Gomes @ 14/02/2024 v2.1.0 % Hugo Gomes @ 29/05/2023 v2.0.1 % Hugo Gomes @ 20/02/2023 v2.0.0 % Hugo Gomes @ 08/11/2022 v1.0.1 % Hugo Gomes @ 10/10/2022 v1.0.0 -\def\pgfPTversion{2.1.0a}% +\def\pgfPTversion{2.1.3}% \def\pgfPTnewinversion#1{new in v#1}% \def\pgfPTchangedinversion#1{changed in v#1}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -21,31 +24,6 @@ \setcounter{secnumdepth}{1}% \setcounter{tocdepth}{4} % -\makeatletter% -\global\renewcommand\thesection{}% -\renewcommand\thesubsection{\@arabic\c@subsection}% -\renewcommand\section{\@startsection{section}{1}{\z@}% - {-3.5ex \@plus -1ex \@minus -.2ex}% - {2.3ex \@plus.2ex}% - {\hskip-1.4395em\normalfont\Large\bfseries}}% -\renewcommand*\l@section[2]{% - \ifnum \c@tocdepth >\z@% - \addpenalty\@secpenalty% - \addvspace{1.0em \@plus\p@}% - \setlength\@tempdima{0em}% - \begingroup% - \parindent \z@ \rightskip \@pnumwidth% - \parfillskip -\@pnumwidth% - \leavevmode \bfseries% - \advance\leftskip\@tempdima% - \hskip -\leftskip% - #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par% - \endgroup% - \fi}% -\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{1.5em}}% -\renewcommand*\l@subsubsection{\@dottedtocline{3}{3.0em}{2.4em}}% -\renewcommand*\l@paragraph{\@dottedtocline{4}{4.25em}{1.35em}}% -\makeatother% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfdeclarelayer{back}% \pgfsetlayers{back,main}% diff --git a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty index 3768fc4f24..69f65ee602 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty +++ b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTable.sty @@ -1,4 +1,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Hugo Gomes @ 07/08/2024 v2.1.3 +% Hugo Gomes @ 01/08/2024 v2.1.2 +% Hugo Gomes @ 07/07/2024 v2.1.1 % Hugo Gomes @ 03/04/2024 v2.1.0a % Hugo Gomes @ 14/02/2024 v2.1.0 % Hugo Gomes @ 29/05/2023 v2.0.1 @@ -7,7 +10,7 @@ % Hugo Gomes @ 10/10/2022 v1.0.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{pgf-PeriodicTable}[03/04/2024 pgf-PeriodicTable v2.1.0a]%% +\ProvidesPackage{pgf-PeriodicTable}[07/08/2024 pgf-PeriodicTable v2.1.3]%% \RequirePackage{tikz}% \usetikzlibrary{fadings}% \tikzfading[name=aumentax, left color=transparent!80, right color=transparent!1]% @@ -16,11 +19,19 @@ \tikzfading[name=diminuiy, bottom color=transparent!80, top color=transparent!1]% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % check the engine and load font packages -\ifx\pdfliteral\undefined\relax% XeLaTeX or LuaLaTeX -\RequirePackage{fontspec}[2020/02/03]\edef\pgfPT@fontspec{1}% -\else% pdfLaTeX -\RequirePackage[T1]{fontenc}\edef\pgfPT@fontspec{0}% -\fi% +% changed in v2.1.3 +% pdfLaTeX -------------------------------------------------- +\ifx\pdftexversion\undefined\else% +\RequirePackage[T1]{fontenc}\edef\pgfPT@fontspec{0}\edef\pgfPT@engine{0}% +\fi% ----------------------------------------------------------- +% LuaLaTeX -------------------------------------------------- +\ifx\directlua\undefined\else% +\RequirePackage{fontspec}[2020/02/03]\edef\pgfPT@fontspec{1}\edef\pgfPT@engine{1}% +\fi% ----------------------------------------------------------- +% XeLaTeX --------------------------------------------------- +\ifx\XeTeXrevision\undefined\else% +\RequirePackage{fontspec}[2020/02/03]\edef\pgfPT@fontspec{1}\edef\pgfPT@engine{2}% +\fi% ----------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ifs to user language and list of user translations available \newif\ifpgfPT@user@lang\pgfPT@user@langfalse% @@ -190,10 +201,10 @@ font,IUPAC,capitalize element names=false,show title,show period numbers,show gr show legend,legend acronyms,legend back color,show legend pins,show extra legend,legend radio color,% legend CS color,legend Z color,show blocks=false,show families=false,show MNM line,show periodic variations=false,% show label LaAc,title font,title color,cell width,cell height,cell style,label font,period label color,group label color,% -label LaAc font,Z list,CS solid, CS liquid,CS gas,CS synt,CS font,CS render mode,CS outline color,CS outline width,% +label LaAc font,group numbers,Roman label color,Z list,CS solid, CS liquid,CS gas,CS synt,CS font,CS render mode,CS outline color,CS outline width,% Z backcolor,Z color,Z font,Z align,Z padding,Z use box width=false,name color,name font,name align,Ar color,Ar font,Ar label,Ar precision,% R color,R font,Rcov color,Rcov font,Rion color,Rion font,Ei color,Ei font,eneg color,eneg font,eaff color,eaff font,% -O color,O font,Tmelt color,Tmelt font,TmeltC color,TmeltC font,Tboil color,Tboil font,TboilC color,TboilC font,% +O color,O font,O Roman=false,Tmelt color,Tmelt font,TmeltC color,TmeltC font,Tboil color,Tboil font,TboilC color,TboilC font,% eDist color,eDist font,eDist sep,eConfign color,eConfign font,eConfignl color,eConfignl font,d color,d font,Cp color,Cp font,% kT color,kT font,ls color,ls font,ls align,ls,lsa color,lsa font,lsb color,lsb font,lsc color,lsc font,lsca color,lsca font,% DiscY color,DiscY font,DiscY BC scale,DiscC color,DiscC font,spectra color,spectra font,MNM line color,MNM line width,%DiscC, @@ -661,6 +672,16 @@ d unit,d precision,E precision,ls unit,ls precision,T precision,Cp precision,kT \fi% % O -> Oxidation States \ifpgfPT@O\relax% + \ifpgfPTORoman% new in v2.1.1 + \ifnum\Z=25\relax% Mn + \node[font=\pgfPTOfont,text=\pgfPTOcolor,text width=\pgfPT@data@O@wd,text centered]% + at ([xshift=\pgfPT@data@O@x,yshift=-\pgfPT@data@O@y]\Z) {\vbox to\pgfPT@data@O@ht{\vfil\pgfPT@box@zerodepth{\resizebox{.95\linewidth}{\height}{\pgfPT@data@ORoman}} + \vfil}};% + \else% + \node[font=\pgfPTOfont,text=\pgfPTOcolor,text width=\pgfPT@data@O@wd,text centered]% + at ([xshift=\pgfPT@data@O@x,yshift=-\pgfPT@data@O@y]\Z) {\vbox to\pgfPT@data@O@ht{\vfil\pgfPT@box@zerodepth{\pgfPT@data@ORoman}\vfil}};% + \fi% + \else% \ifnum\Z=25\relax% Mn \node[font=\pgfPTOfont,text=\pgfPTOcolor,text width=\pgfPT@data@O@wd,text centered]% at ([xshift=\pgfPT@data@O@x,yshift=-\pgfPT@data@O@y]\Z) {\vbox to\pgfPT@data@O@ht{\vfil\pgfPT@box@zerodepth{\resizebox{.95\linewidth}{\height}{\pgfPT@data@O}} @@ -669,6 +690,7 @@ d unit,d precision,E precision,ls unit,ls precision,T precision,Cp precision,kT \node[font=\pgfPTOfont,text=\pgfPTOcolor,text width=\pgfPT@data@O@wd,text centered]% at ([xshift=\pgfPT@data@O@x,yshift=-\pgfPT@data@O@y]\Z) {\vbox to\pgfPT@data@O@ht{\vfil\pgfPT@box@zerodepth{\pgfPT@data@O}\vfil}};% \fi% + \fi% \fi% % Tmelt -> Melting Point (Kelvin) \ifpgfPT@Tmelt\relax% @@ -1188,15 +1210,21 @@ d unit,d precision,E precision,ls unit,ls precision,T precision,Cp precision,kT % groups --> \ifpgfPTgrlabels% \global\pgfPTis@labeldrawnfalse% +\pgfPT@gr@numbers{\pgfPTgrnum}% new in v2.1.1 \ifpgfPTIUPACMMIX% \foreach \group in {1,2,4,5,...,18} {% \edef\pgfPT@@grlist{\csname pgfPT@cells@G\@Roman\group\endcsname}% \foreach \Zsearch in \pgfPT@@grlist{% \foreach \Z in \pgfPT@@cellslist {% \ifnum\Z=\Zsearch\global\pgfPTis@labeldrawntrue% - {\pgfPTlabfont\pgfPTnumberfont\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else\let\pgfPT@printnum\relax\fi% - \node[above,font=\pgfPTlabfont,text=\pgfPTlabgrcolor] at% - ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{\group}};}\breakforeach\fi% + {\pgfPTlabfont\pgfPTnumberfont\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else% + \ifpgfPT@grRoman\let\pgfPT@printnum\pgfPT@gr@Roman\colorlet{pgfPT@grcolor}{\pgfPTRomanlabgrcolor}\else\let\pgfPT@printnum\relax\fi\fi% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{\group}}; + \ifpgfPT@grarabic\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift+2ex]\Z) {\group};\fi}% + \breakforeach\fi% }% \ifpgfPTis@labeldrawn\global\pgfPTis@labeldrawnfalse\breakforeach\fi% }% @@ -1205,9 +1233,14 @@ d unit,d precision,E precision,ls unit,ls precision,T precision,Cp precision,kT \foreach \Zsearch in \pgfPT@cells@GIIILaAc{% \foreach \Z in \pgfPT@@cellslist {% \ifnum\Z=\Zsearch\global\pgfPTis@labeldrawntrue% - {\pgfPTlabfont\pgfPTnumberfont\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else\let\pgfPT@printnum\relax\fi% - \node[above,font=\pgfPTlabfont,text=\pgfPTlabgrcolor] at% - ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{3}};}\breakforeach\fi% + {\pgfPTlabfont\pgfPTnumberfont\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else% + \ifpgfPT@grRoman\let\pgfPT@printnum\pgfPT@gr@Roman\colorlet{pgfPT@grcolor}{\pgfPTRomanlabgrcolor}\else\let\pgfPT@printnum\relax\fi\fi% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{3}}; + \ifpgfPT@grarabic\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift+2ex]\Z) {3};\fi}% + \breakforeach\fi% }% \ifpgfPTis@labeldrawn\global\pgfPTis@labeldrawnfalse\breakforeach\fi% }% @@ -1217,9 +1250,14 @@ d unit,d precision,E precision,ls unit,ls precision,T precision,Cp precision,kT \foreach \Zsearch in \pgfPT@@grlist{% \foreach \Z in \pgfPT@@cellslist {% \ifnum\Z=\Zsearch\global\pgfPTis@labeldrawntrue% - {\pgfPTlabfont\pgfPTnumberfont\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else\let\pgfPT@printnum\relax\fi% - \node[above,font=\pgfPTlabfont,text=\pgfPTlabgrcolor] at% - ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{\group}};}\breakforeach\fi% + {\pgfPTlabfont\pgfPTnumberfont\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}\ifpgfPT@zhnumbers@gr\let\pgfPT@printnum\zhnumber\else% + \ifpgfPT@grRoman\let\pgfPT@printnum\pgfPT@gr@Roman\colorlet{pgfPT@grcolor}{\pgfPTRomanlabgrcolor}\else\let\pgfPT@printnum\relax\fi\fi% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift]\Z) {\pgfPT@printnum{\group}};% + \ifpgfPT@grarabic\colorlet{pgfPT@grcolor}{\pgfPTlabgrcolor}% + \node[above,font=\pgfPTlabfont,text=pgfPT@grcolor] at% + ([xshift=\pgfPT@@xshift,yshift=\pgfPT@grlabel@yshift+2ex]\Z) {\group};\fi}% + \breakforeach\fi% }% \ifpgfPTis@labeldrawn\global\pgfPTis@labeldrawnfalse\breakforeach\fi% }% @@ -2979,7 +3017,9 @@ rectangle \fi% \pgfPT@element@count=118 \fi\fi% min=1 & max 118 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\@pgfPT@resetlayers% Restoring pgf layers to those used in the document +% corrected in v2.1.2: \@pgfPT@resetlayers -> \pgfsetlayers{\@pgfPT@resetlayers} +% ... Warning: Missing character: There is no m (U+006D) in font nullfont! ... +\pgfsetlayers{\@pgfPT@resetlayers}% Restoring pgf layers to those used in the document \fontseries{\seriesdefault}\fontshape{\shapedefault}\fontfamily{\familydefault}\selectfont% Restoring the font settings to normal mode in the document }% end tikz }% @@ -3054,15 +3094,14 @@ rectangle % renders text via pdfliteral: ------------- % #1 outline width width #2 txt #3 #4 #5 rgb stroke color #6 #7 #8 rgb fill color ----------- % #9 txt render mode (0 - fill 1 - stroke 2 - fill then stroke --------- -\ifx\pdfliteral\undefined\relax% -\ifx\pdfextension\undefined\relax% XeLaTeX -\def\pgfPT@lt[#1](#2)(#3,#4,#5)(#6,#7,#8)(#9){\special{pdf:literal direct #1 w #3 #4 #5 RG #6 #7 #8 rg #9 Tr}#2\special{pdf:literal direct 0 0 0 rg 1 w 0 Tr}}% -\else% LuaLaTeX -\protected\def\pdfliteral{\pdfextension literal} +% changed in v2.1.3 +\ifcase\pgfPT@engine\relax% pdfLaTeX \def\pgfPT@lt[#1](#2)(#3,#4,#5)(#6,#7,#8)(#9){\pdfliteral direct {#1 w #3 #4 #5 RG #6 #7 #8 rg #9 Tr}{#2}\pdfliteral direct {0 0 0 rg 1 w 0 Tr}}% -\fi% -\else% pdfLaTeX +\or% LuaLaTeX +\protected\def\pdfliteral{\pdfextension literal}% \def\pgfPT@lt[#1](#2)(#3,#4,#5)(#6,#7,#8)(#9){\pdfliteral direct {#1 w #3 #4 #5 RG #6 #7 #8 rg #9 Tr}{#2}\pdfliteral direct {0 0 0 rg 1 w 0 Tr}}% +\or% XeLaTeX +\def\pgfPT@lt[#1](#2)(#3,#4,#5)(#6,#7,#8)(#9){\special{pdf:literal direct #1 w #3 #4 #5 RG #6 #7 #8 rg #9 Tr}#2\special{pdf:literal direct 0 0 0 rg 1 w 0 Tr}}% \fi% % END !! \pgfPT@lt -------------------------------------------------------------------------------- % @@ -3073,9 +3112,10 @@ rectangle % auxiliary macros to set the rgb components of one color --------------------------------------- % with use of \extractcolorspecs from xcolor package --------------------------------------------- % each component is stored in \pgfPT@«r, g or b» & «s or f» ------------------------------------- -\def\pgfPT@extract@rgb@stroke#1{\extractcolorspecs{#1}{\pgfPTcolmodel}{\pgfPTcolinfo}\expandafter\pgfPT@set@rgb@stroke\pgfPTcolinfo\relax}% +% v3.1.3: added conversion of the color to rgb :: \colorlet{#1}[rgb]{#1} +\def\pgfPT@extract@rgb@stroke#1{\colorlet{#1}[rgb]{#1}\extractcolorspecs{#1}{\pgfPTcolmodel}{\pgfPTcolinfo}\expandafter\pgfPT@set@rgb@stroke\pgfPTcolinfo\relax}% \def\pgfPT@set@rgb@stroke#1,#2,#3\relax{\def\pgfPT@rs{#1}\def\pgfPT@gs{#2}\def\pgfPT@bs{#3}}% -\def\pgfPT@extract@rgb@fill#1{\extractcolorspecs{#1}{\pgfPTcolmodel}{\pgfPTcolinfo}\expandafter\pgfPT@set@rgb@fill\pgfPTcolinfo\relax}% +\def\pgfPT@extract@rgb@fill#1{\colorlet{#1}[rgb]{#1}\extractcolorspecs{#1}{\pgfPTcolmodel}{\pgfPTcolinfo}\expandafter\pgfPT@set@rgb@fill\pgfPTcolinfo\relax}% \def\pgfPT@set@rgb@fill#1,#2,#3\relax{\def\pgfPT@rf{#1}\def\pgfPT@gf{#2}\def\pgfPT@bf{#3}}% % END !! \pgfPT@«color macros» ------------------------------------------------------------------ % diff --git a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.pdf b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.pdf Binary files differindex 7c0b250d7c..e8c9672259 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.pdf +++ b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.pdf diff --git a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.tex b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.tex index 659f09fd72..c2b22dd9ad 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.tex +++ b/graphics/pgf/contrib/pgf-periodictable/pgf-PeriodicTableManual.tex @@ -10,7 +10,7 @@ \date{\today} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document}% -\usefont{T1}{verdana}{m}{n}% +\usefont{T1}{vna}{m}{n} \begin{titlepage} \vspace{\stretch{1}}% \maketitle\thispagestyle{empty}% @@ -114,8 +114,8 @@ This option works with the \textrm{Xe\LaTeX} and \textrm{Lua\LaTeX} engines to t \\ [3pt]\pgfPTMline \subsection{Interaction with other packages} \subsubsection{fontspec} -To correctly set the font in each cell contents the command \bs{fontspec} must be used. For example if you want to use \textit{Arial} for the \red{name font}, it must be set using \red{font name=\bs{fontspec}\lb Arial\rb\bs{selectfont}}.\\ All other font selection commands, \eg, \bs{large}, \mbox{\bs{itshape}}, are used as usual. For example if you want to use \textit{Arial}\hfil\ in\hfil\ \textit{large}\hfil\ size\hfil\ and\hfil\ \textit{bold}\hfil\ weight\hfil\ for\hfil\ the \red{name font}, then you type -\\ \makebox[\linewidth][s]{\red{font name=\bs{large}\bs{bfseries}\bs{fontspec}\lb Arial\rb\bs{selectfont}}\hfil\ or\hfil\ \red{font name=\bs{fontspec}\lb Arial\rb}} +To correctly set the font in each cell contents the command \bs{fontspec} must be used. For example if you want to use \textit{Arial} for the \red{name font}, it must be set using \red{name font=\bs{fontspec}\lb Arial\rb\bs{selectfont}}.\\ All other font selection commands, \eg, \bs{large}, \mbox{\bs{itshape}}, are used as usual. For example if you want to use \textit{Arial}\hfil\ in\hfil\ \textit{large}\hfil\ size\hfil\ and\hfil\ \textit{bold}\hfil\ weight\hfil\ for\hfil\ the \red{name font}, then you type +\\ \makebox[\linewidth][s]{\red{name font=\bs{large}\bs{bfseries}\bs{fontspec}\lb Arial\rb\bs{selectfont}}\hfil\ or\hfil\ \red{name font=\bs{fontspec}\lb Arial\rb}} \\ \bs{large}\bs{bfseries}\bs{selectfont}. \subsubsection{ragged2e} Using \texttt{\large\textcolor{green!40!black}{\textbackslash usepackage}\textcolor{blue!70!black}{[}\textcolor{brown!60!black}{document}% @@ -203,6 +203,8 @@ The following options and styles are used for customizing the contents available \input{manualfiles/pgf-PeriodicTableManual_name.tex}% \label{file:Ar}% \input{manualfiles/pgf-PeriodicTableManual_Ar.tex}% +\label{file:O}% +\input{manualfiles/pgf-PeriodicTableManual_O.tex}% \label{file:density}% \input{manualfiles/pgf-PeriodicTableManual_density.tex}% \label{file:ls}% diff --git a/graphics/pgf/contrib/pgf-periodictable/pgfPT.data.tex b/graphics/pgf/contrib/pgf-periodictable/pgfPT.data.tex index 62d62e0f89..0a87ee38dd 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgfPT.data.tex +++ b/graphics/pgf/contrib/pgf-periodictable/pgfPT.data.tex @@ -142,122 +142,122 @@ }% % ############################ THE DATA ############################# % -\def\pgfPT@data@i{H/CS,1.008/Ar,[1.0078\noexpand\pgfPT@virgula1.0082]/Arstar,0/radio,53/R,32/Rcov,139.9\noexpand\pgfPT@espaco(1-)/Rion,1312/Ei,2.2/eneg,72.77/eaff,\noexpand\pgfPT@pm1/O,13.99/Tmelt,-259.16/TmeltC,20.271/Tboil,-252.879/TboilC,1/eDist,::1s+1/eConfign,::1s+1/eConfignl,0.08988/d,28.836/Cp,0.1805/kT,hex/ls,470/lsa,470/lsb,340/lsc,0.72/lsca,1766/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@ii{He/CS,4.0026/Ar,4.0026/Arstar,0/radio,31/R,46/Rcov,---/Rion,2372.3/Ei,---/eneg,0/eaff,---/O,---/Tmelt,---/TmeltC,4.222/Tboil,-268.928/TboilC,2/eDist,::1s+2/eConfign,::1s+2/eConfignl,0.1786/d,20.786/Cp,0.1513/kT,fcc/ls,424.4/lsa,/lsb,/lsc,/lsca,1895/DiscY,19/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@iii{Li/CS,6.94/Ar,[6.938\noexpand\pgfPT@virgula6.997] /Arstar,0/radio,167/R,133/Rcov,76\noexpand\pgfPT@espaco(1+)/Rion,520.2/Ei,0.98/eneg,59.63/eaff,+1/O,453.65/Tmelt,180.5/TmeltC,1603/Tboil,1330/TboilC,2\noexpand\pgfPTeDistsep1/eDist,[He]::2s+1/eConfign,[He]::2s+1/eConfignl,534/d,24.86/Cp,84.8/kT,bcc/ls,350.93/lsa,/lsb,/lsc,/lsca,1817/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@iv{Be/CS,9.0122/Ar,9.0122/Arstar,0/radio,112/R,10/Rcov,45\noexpand\pgfPT@espaco(2+)/Rion,899.5/Ei,1.57/eneg,0/eaff,+2/O,1560/Tmelt,1287/TmeltC,2742/Tboil,2469/TboilC,2\noexpand\pgfPTeDistsep2/eDist,[He]::2s+2/eConfign,[He]::2s+2/eConfignl,1850/d,16.443/Cp,200/kT,hcp/ls,228.56/lsa,/lsb,358.32/lsc,1.57/lsca,1798/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@v{B/CS,10.81/Ar,[10.806\noexpand\pgfPT@virgula10.821] /Arstar,0/radio,87/R,85/Rcov,27\noexpand\pgfPT@espaco(3+)/Rion,800.6/Ei,2.04/eneg,26.99/eaff,+3/O,2349/Tmelt,2076/TmeltC,4200/Tboil,3927/TboilC,2\noexpand\pgfPTeDistsep3/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+1/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+1/eConfignl,2340/d,11.087/Cp,27.4/kT,rho/ls,505.66/lsa,/lsb,/lsc,/lsca,1808/DiscY,7/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@vi{C/CS,12.011/Ar,[12.009\noexpand\pgfPT@virgula12.012]/Arstar,0/radio,67/R,75/Rcov,16\noexpand\pgfPT@espaco(4+)/Rion,1086.5/Ei,2.55/eneg,121.78/eaff,0\noexpand\pgfPT@virgula\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,3823/Tmelt,3550/TmeltC,4300/Tboil,4027/TboilC,2\noexpand\pgfPTeDistsep4/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+2/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+2/eConfignl,2267/d,8.517/Cp,140/kT,hex/ls,246.12/lsa,/lsb,670.79/lsc,2.73/lsca,3750\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@vii{N/CS,14.007/Ar,[14.006\noexpand\pgfPT@virgula14.008]/Arstar,0/radio,56/R,71/Rcov,146\noexpand\pgfPT@espaco(3-)\noexpand\pgfPT@virgula16\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula13\noexpand\pgfPT@espaco(5+)/Rion,1402.3/Ei,3.04/eneg,0/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5/O,63.15/Tmelt,-210/TmeltC,77.355/Tboil,-195.795/TboilC,2\noexpand\pgfPTeDistsep5/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+3/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+3/eConfignl,1.251/d,29.124/Cp,0.02583/kT,hex/ls,386.1/lsa,386.1/lsb,626.5/lsc,1.62/lsca,1772/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@viii{O/CS,15.999/Ar,[15.999\noexpand\pgfPT@virgula16.000]/Arstar,0/radio,48/R,63/Rcov,140\noexpand\pgfPT@espaco(2-)/Rion,1313.9/Ei,3.44/eneg,140.98/eaff,--2/O,54.36/Tmelt,-218.79/TmeltC,90.188/Tboil,-182.962/TboilC,2\noexpand\pgfPTeDistsep6/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+4/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+4/eConfignl,1.429/d,29.378/Cp,0.02658/kT,mono/ls,540.3/lsa,342.9/lsb,508.6/lsc,0.94/lsca,1771/DiscY,19/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@ix{F/CS,18.998/Ar,18.998/Arstar,0/radio,42/R,64/Rcov,133\noexpand\pgfPT@espaco(1-)/Rion,1681/Ei,3.98/eneg,328.16/eaff,--1/O,53.48/Tmelt,-219.67/TmeltC,85.04/Tboil,-188.11/TboilC,2\noexpand\pgfPTeDistsep7/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+5/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+5/eConfignl,1.7/d,31.304/Cp,0.0277/kT,mono/ls,550/lsa,328/lsb,728/lsc,1.32/lsca,1886/DiscY,5/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@x{Ne/CS,20.18/Ar,20.18/Arstar,0/radio,38/R,67/Rcov,---/Rion,2080.7/Ei,---/eneg,0/eaff,---/O,24.56/Tmelt,-248.59/TmeltC,27.104/Tboil,-246.046/TboilC,2\noexpand\pgfPTeDistsep8/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+6/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+6/eConfignl,0.9002/d,20.786/Cp,0.0491/kT,fcc/ls,442.9/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@xi{Na/CS,22.99/Ar,22.99/Arstar,0/radio,190/R,155/Rcov,102\noexpand\pgfPT@espaco(1+)/Rion,495.8/Ei,0.93/eneg,52.87/eaff,+1/O,370.944/Tmelt,97.794/TmeltC,1156.09/Tboil,882.94/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Ne]::3s+1/eConfign,[Ne]::3s+1/eConfignl,968/d,28.23/Cp,142/kT,bcc/ls,429.06/lsa,/lsb,/lsc,/lsca,1807/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xii{Mg/CS,24.305/Ar,[24.304\noexpand\pgfPT@virgula24.307] /Arstar,0/radio,145/R,139/Rcov,72\noexpand\pgfPT@espaco(2+)/Rion,737.7/Ei,1.31/eneg,0/eaff,+2/O,923/Tmelt,650/TmeltC,1363/Tboil,1090/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Ne]::3s+2/eConfign,[Ne]::3s+2/eConfignl,1738/d,24.869/Cp,156/kT,hcp/ls,320.94/lsa,/lsb,521.05/lsc,1.62/lsca,1755/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xiii{Al/CS,26.982/Ar,26.982/Arstar,0/radio,118/R,126/Rcov,53.5\noexpand\pgfPT@espaco(3+)/Rion,577.5/Ei,1.61/eneg,41.76/eaff,+3/O,933.47/Tmelt,660.32/TmeltC,2743/Tboil,2470/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep3/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+1/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+1/eConfignl,2700/d,24.2/Cp,237/kT,fcc/ls,404.95/lsa,/lsb,/lsc,/lsca,1824/DiscY,2/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xiv{Si/CS,28.085/Ar,[28.084\noexpand\pgfPT@virgula28.086]/Arstar,0/radio,111/R,116/Rcov,40\noexpand\pgfPT@espaco(4+)/Rion,786.5/Ei,1.9/eneg,134.07/eaff,\noexpand\pgfPT@pm4/O,1687/Tmelt,1414/TmeltC,3538/Tboil,3265/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep4/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+2/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+2/eConfignl,2330/d,19.789/Cp,149/kT,dia/ls,543.095/lsa,/lsb,/lsc,/lsca,1823/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xv{P/CS,30.974/Ar,30.974/Arstar,0/radio,98/R,111/Rcov,212\noexpand\pgfPT@espaco(3-)\noexpand\pgfPT@virgula44\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula38\noexpand\pgfPT@espaco(5+)/Rion,1011.8/Ei,2.19/eneg,72.04/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,317.3/Tmelt,44.15/TmeltC,550/Tboil,277/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep5/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+3/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+3/eConfignl,1823/d,23.824/Cp,0.236/kT,tric/ls,1145/lsa,550.3/lsb,1126.1/lsc,0.98/lsca,1669/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xvi{S/CS,32.06/Ar,[32.059\noexpand\pgfPT@virgula32.076]/Arstar,0/radio,88/R,103/Rcov,184\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula37\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula29\noexpand\pgfPT@espaco(6+)/Rion,999.6/Ei,2.58/eneg,200.41/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,388.36/Tmelt,115.21/TmeltC,717.8/Tboil,444.6/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep6/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+4/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+4/eConfignl,1960/d,22.75/Cp,0.205/kT,fcort/ls,1046.5/lsa,1286.6/lsb,2448.6/lsc,2.34/lsca,500\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xvii{Cl/CS,35.45/Ar,[35.446\noexpand\pgfPT@virgula35.457]/Arstar,0/radio,79/R,99/Rcov,181\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula12\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula27\noexpand\pgfPT@espaco(7+)/Rion,1251.2/Ei,3.16/eneg,348.58/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,171.6/Tmelt,-101.5/TmeltC,239.11/Tboil,-34.04/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep7/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+5/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+5/eConfignl,3.2/d,33.949/Cp,0.0089/kT,bcort/ls,622.35/lsa,445.61/lsb,817.85/lsc,1.31/lsca,1774/DiscY,18/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@xviii{Ar/CS,39.95/Ar,[39.792\noexpand\pgfPT@virgula39.963]/Arstar,0/radio,71/R,96/Rcov,---/Rion,1520.6/Ei,---/eneg,0/eaff,0/O,83.81/Tmelt,-189.34/TmeltC,87.302/Tboil,-185.848/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+6/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+6/eConfignl,1.784/d,20.786/Cp,0.01772/kT,fcc/ls,525.6/lsa,/lsb,/lsc,/lsca,1894/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@xix{K/CS,39.098/Ar,39.098/Arstar,0/radio,243/R,196/Rcov,138\noexpand\pgfPT@espaco(1+)/Rion,418.8/Ei,0.82/eneg,48.38/eaff,+1/O,336.7/Tmelt,63.5/TmeltC,1032/Tboil,759/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Ar]::4s+1/eConfign,[Ar]::4s+1/eConfignl,890/d,29.6/Cp,102.5/kT,bcc/ls,532.8/lsa,/lsb,/lsc,/lsca,1807/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xx{Ca/CS,40.078/Ar,40.078(4) /Arstar,0/radio,194/R,171/Rcov,100\noexpand\pgfPT@espaco(2+)/Rion,589.8/Ei,1/eneg,2.37/eaff,+2/O,1115/Tmelt,842/TmeltC,1757/Tboil,1484/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Ar]::4s+2/eConfign,[Ar]::4s+2/eConfignl,1550/d,25.929/Cp,201/kT,fcc/ls,558.84/lsa,/lsb,/lsc,/lsca,1808/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxi{Sc/CS,44.956/Ar,44.956/Arstar,0/radio,184/R,148/Rcov,74.5\noexpand\pgfPT@espaco(3+)/Rion,633.1/Ei,1.36/eneg,18/eaff,+3/O,1814/Tmelt,1541/TmeltC,3109/Tboil,2836/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+1\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+1/eConfignl,2985/d,25.52/Cp,15.8/kT,hcp/ls,330.9/lsa,/lsb,527.33/lsc,1.59/lsca,1879/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxii{Ti/CS,47.867/Ar,47.867/Arstar,0/radio,176/R,136/Rcov,86\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula67\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula60.5\noexpand\pgfPT@espaco(4+)/Rion,658.8/Ei,1.54/eneg,7.29/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4/O,1941/Tmelt,1668/TmeltC,3560/Tboil,3287/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+2\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+2/eConfignl,4506/d,25.06/Cp,21.9/kT,hcp/ls,295.03/lsa,/lsb,468.31/lsc,1.59/lsca,1791/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxiii{V/CS,50.942/Ar,50.942/Arstar,0/radio,171/R,134/Rcov,79\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula64\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula58\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula54\noexpand\pgfPT@espaco(5+)/Rion,650.9/Ei,1.63/eneg,50.91/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5/O,2183/Tmelt,1910/TmeltC,3680/Tboil,3407/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+3\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+3/eConfignl,6110/d,24.89/Cp,30.7/kT,bcc/ls,302.31/lsa,/lsb,/lsc,/lsca,1830/DiscY,23/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxiv{Cr/CS,51.996/Ar,51.996/Arstar,0/radio,166/R,122/Rcov,73\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula61.5\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula44\noexpand\pgfPT@espaco(6+)/Rion,652.9/Ei,1.66/eneg,65.21/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+6/O,2180/Tmelt,1907/TmeltC,2755/Tboil,2482/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep1/eDist,[Ar]::3d+5\noexpand\pgfPT@virgula4s+1/eConfign,[Ar]::4s+1\noexpand\pgfPT@virgula3d+5/eConfignl,7150/d,23.35/Cp,93.9/kT,bcc/ls,288.46/lsa,/lsb,/lsc,/lsca,1797/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxv{Mn/CS,54.938/Ar,54.938/Arstar,0/radio,161/R,119/Rcov,67\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula58\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula25.5\noexpand\pgfPT@espaco(6+)\noexpand\pgfPT@virgula46\noexpand\pgfPT@espaco(7+)/Rion,717.3/Ei,1.55/eneg,0/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6\noexpand\pgfPT@virgula+7/O,1519/Tmelt,1246/TmeltC,2334/Tboil,2061/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+5\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+5/eConfignl,7210/d,26.32/Cp,7.81/kT,bcc/ls,891.39/lsa,/lsb,/lsc,/lsca,1774/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxvi{Fe/CS,55.845/Ar,55.845(2)/Arstar,0/radio,156/R,116/Rcov,61\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula55\noexpand\pgfPT@espaco(3+)/Rion,762.5/Ei,1.83/eneg,14.79/eaff,+2\noexpand\pgfPT@virgula+3/O,1811/Tmelt,1538/TmeltC,3134/Tboil,2861/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+6\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+6/eConfignl,7860/d,25.1/Cp,80.4/kT,bcc/ls,286.64/lsa,/lsb,/lsc,/lsca,2000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxvii{Co/CS,58.933/Ar,58.933/Arstar,0/radio,152/R,111/Rcov,65\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula54.5\noexpand\pgfPT@espaco(3+)/Rion,760.4/Ei,1.88/eneg,63.9/eaff,+2\noexpand\pgfPT@virgula+3/O,1768/Tmelt,1495/TmeltC,3200/Tboil,2927/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+7\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+7/eConfignl,8900/d,24.81/Cp,100/kT,hcp/ls,250.71/lsa,/lsb,406.95/lsc,1.62/lsca,1735/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxviii{Ni/CS,58.693/Ar,58.693/Arstar,0/radio,149/R,110/Rcov,69\noexpand\pgfPT@espaco(2+)/Rion,737.1/Ei,1.91/eneg,111.65/eaff,+2/O,1728/Tmelt,1455/TmeltC,3003/Tboil,2730/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+8\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+8/eConfignl,8908/d,26.07/Cp,90.9/kT,fcc/ls,352.4/lsa,/lsb,/lsc,/lsca,1751/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxix{Cu/CS,63.546/Ar,63.546(3)/Arstar,0/radio,145/R,112/Rcov,77\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula73\noexpand\pgfPT@espaco(2+)/Rion,745.5/Ei,1.9/eneg,119.24/eaff,+1\noexpand\pgfPT@virgula+2/O,1357.77/Tmelt,1084.62/TmeltC,2835/Tboil,2562/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+1/eConfign,[Ar]::4s+1\noexpand\pgfPT@virgula3d+10/eConfignl,8960/d,24.44/Cp,401/kT,fcc/ls,361.47/lsa,/lsb,/lsc,/lsca,8000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxx{Zn/CS,65.38/Ar,65.38(2)/Arstar,0/radio,142/R,118/Rcov,74\noexpand\pgfPT@espaco(2+)/Rion,906.4/Ei,1.65/eneg,0/eaff,+2/O,692.68/Tmelt,419.53/TmeltC,1180/Tboil,907/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10/eConfignl,7140/d,25.39/Cp,116/kT,hcp/ls,266.49/lsa,/lsb,494.68/lsc,1.86/lsca,1746/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxi{Ga/CS,69.723/Ar,69.723/Arstar,0/radio,136/R,124/Rcov,62\noexpand\pgfPT@espaco(3+)/Rion,578.8/Ei,1.81/eneg,29.06/eaff,+3/O,302.9146/Tmelt,29.7646/TmeltC,2673/Tboil,2400/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+1/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+1/eConfignl,5910/d,25.86/Cp,40.6/kT,bcort/ls,452.58/lsa,451.86/lsb,765.7/lsc,1.69/lsca,1875/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxii{Ge/CS,72.63/Ar,72.630(8)/Arstar,0/radio,125/R,121/Rcov,73\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(4+)/Rion,762/Ei,2.01/eneg,118.94/eaff,+2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,1211.4/Tmelt,938.25/TmeltC,3106/Tboil,2833/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+2/eConfignl,5323/d,23.222/Cp,60.2/kT,dia/ls,565.791/lsa,/lsb,/lsc,/lsca,1886/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxiii{As/CS,74.922/Ar,74.922/Arstar,0/radio,114/R,121/Rcov,58\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula46\noexpand\pgfPT@espaco(5+)/Rion,947/Ei,2.18/eneg,77.65/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,1090/Tmelt,817/TmeltC,887/Tboil,614/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+3/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+3/eConfignl,5727/d,24.64/Cp,50.2/kT,rho/ls,375.98/lsa,375.98/lsb,1054.75/lsc,2.81/lsca,1250/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxiv{Se/CS,78.971/Ar,78.971(8)/Arstar,0/radio,103/R,116/Rcov,198\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula50\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula42\noexpand\pgfPT@espaco(6+)/Rion,941/Ei,2.55/eneg,194.96/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,494/Tmelt,221/TmeltC,958/Tboil,685/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+4/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+4/eConfignl,4810/d,25.363/Cp,0.519/kT,mono/ls,905.4/lsa,908.3/lsb,1160.1/lsc,1.28/lsca,1817/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxv{Br/CS,79.904/Ar,[79.901\noexpand\pgfPT@virgula79.907]/Arstar,0/radio,94/R,114/Rcov,196\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula59\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula31\noexpand\pgfPT@espaco(5+)/Rion,1139.9/Ei,2.96/eneg,324.54/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5/O,265.8/Tmelt,-7.3/TmeltC,332/Tboil,58.8/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+5/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+5/eConfignl,3102.8/d,75.69/Cp,0.122/kT,bcort/ls,672.65/lsa,464.51/lsb,870.23/lsc,1.29/lsca,1825/DiscY,5/DiscC,1/spectra,liquido/cor}% -\def\pgfPT@data@xxxvi{Kr/CS,83.798/Ar,83.798(2)/Arstar,0/radio,88/R,117/Rcov,---/Rion,1350.8/Ei,3/eneg,0/eaff,0/O,115.78/Tmelt,-157.37/TmeltC,119.735/Tboil,-153.415/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+6/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+6/eConfignl,3.749/d,20.786/Cp,0.00943/kT,fcc/ls,570.6/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@xxxvii{Rb/CS,85.468/Ar,85.468/Arstar,0/radio,265/R,210/Rcov,152\noexpand\pgfPT@espaco(1+)/Rion,403/Ei,0.82/eneg,46.88/eaff,+1/O,312.45/Tmelt,39.3/TmeltC,961/Tboil,688/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Kr]::5s+1/eConfign,[Kr]::5s+1/eConfignl,1532/d,31.06/Cp,58.2/kT,bcc/ls,558.5/lsa,/lsb,/lsc,/lsca,1861/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxviii{Sr/CS,87.62/Ar,87.62/Arstar,0/radio,219/R,185/Rcov,118\noexpand\pgfPT@espaco(2+)/Rion,549.5/Ei,0.95/eneg,5.02/eaff,+2/O,1050/Tmelt,777/TmeltC,1650/Tboil,1382/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Kr]::5s+2/eConfign,[Kr]::5s+2/eConfignl,2640/d,26.4/Cp,35.4/kT,fcc/ls,608.49/lsa,/lsb,/lsc,/lsca,1787/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xxxix{Y/CS,88.906/Ar,88.906/Arstar,0/radio,212/R,163/Rcov,90\noexpand\pgfPT@espaco(3+)/Rion,600/Ei,1.22/eneg,29.6/eaff,+3/O,1799/Tmelt,1526/TmeltC,3203/Tboil,2930/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+1\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+1/eConfignl,4472/d,26.53/Cp,17.2/kT,hcp/ls,364.74/lsa,/lsb,573.06/lsc,1.57/lsca,1794/DiscY,4/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xl{Zr/CS,91.224/Ar,91.224(2)/Arstar,0/radio,206/R,154/Rcov,72\noexpand\pgfPT@espaco(4+)/Rion,640.1/Ei,1.33/eneg,41.81/eaff,+4/O,2128/Tmelt,1855/TmeltC,4650/Tboil,4377/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+2\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+2/eConfignl,6520/d,25.36/Cp,22.6/kT,hcp/ls,323.2/lsa,/lsb,514.7/lsc,1.59/lsca,1789/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xli{Nb/CS,92.906/Ar,92.906/Arstar,0/radio,198/R,147/Rcov,64\noexpand\pgfPT@espaco(5+)/Rion,652.1/Ei,1.6/eneg,88.52/eaff,+5/O,2750/Tmelt,2477/TmeltC,5017/Tboil,4744/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+4\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+4/eConfignl,8570/d,24.6/Cp,53.7/kT,bcc/ls,330.04/lsa,/lsb,/lsc,/lsca,1801/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlii{Mo/CS,95.95/Ar,95.95/Arstar,0/radio,190/R,138/Rcov,65\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula59\noexpand\pgfPT@espaco(6+)/Rion,684.3/Ei,2.16/eneg,72.1/eaff,+4\noexpand\pgfPT@virgula+6/O,2896/Tmelt,2623/TmeltC,4912/Tboil,4639/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+5\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+5/eConfignl,10280/d,24.06/Cp,138/kT,bcc/ls,314.69/lsa,/lsb,/lsc,/lsca,1781/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xliii{Tc/CS,[98]/Ar,/Arstar,1/radio,183/R,128/Rcov,64.5\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula56\noexpand\pgfPT@espaco(7+)/Rion,702/Ei,1.9/eneg,53/eaff,+4\noexpand\pgfPT@virgula+7/O,2430/Tmelt,2157/TmeltC,4538/Tboil,4265/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+5\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+5/eConfignl,11000/d,24.27/Cp,50.6/kT,hcp/ls,273.5/lsa,/lsb,438.8/lsc,1.6/lsca,1937/DiscY,11/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xliv{Ru/CS,101.07/Ar,101.07/Arstar,0/radio,178/R,125/Rcov,68\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula62\noexpand\pgfPT@espaco(4+)/Rion,710.2/Ei,2.2/eneg,100.96/eaff,+3\noexpand\pgfPT@virgula+4/O,2607/Tmelt,2334/TmeltC,4423/Tboil,4150/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+7\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+7/eConfignl,12450/d,24.06/Cp,117/kT,hcp/ls,270.55/lsa,/lsb,428.16/lsc,1.58/lsca,1844/DiscY,15/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlv{Rh/CS,102.91/Ar,102.91/Arstar,0/radio,173/R,125/Rcov,66.5\noexpand\pgfPT@espaco(3+)/Rion,719.7/Ei,2.28/eneg,110.27/eaff,+3/O,2237/Tmelt,1964/TmeltC,3968/Tboil,3695/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+8\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+8/eConfignl,12410/d,24.98/Cp,150/kT,fcc/ls,380.34/lsa,/lsb,/lsc,/lsca,1804/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlvi{Pd/CS,106.42/Ar,106.42/Arstar,0/radio,169/R,120/Rcov,86\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula61.5\noexpand\pgfPT@espaco(4+)/Rion,804.4/Ei,2.2/eneg,54.24/eaff,0\noexpand\pgfPT@virgula+2\noexpand\pgfPT@virgula+4/O,1828.05/Tmelt,1554.9/TmeltC,3236/Tboil,2963/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18/eDist,[Kr]::4d+10/eConfign,[Kr]::4d+10/eConfignl,12023/d,25.98/Cp,71.8/kT,fcc/ls,389.02/lsa,/lsb,/lsc,/lsca,1802/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlvii{Ag/CS,107.87/Ar,107.87/Arstar,0/radio,165/R,128/Rcov,115\noexpand\pgfPT@espaco(1+)/Rion,731/Ei,1.93/eneg,125.86/eaff,+1/O,1234.93/Tmelt,961.78/TmeltC,2483/Tboil,2210/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+10/eConfignl,10490/d,25.35/Cp,429/kT,fcc/ls,408.57/lsa,/lsb,/lsc,/lsca,3000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,0/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlviii{Cd/CS,112.41/Ar,112.41/Arstar,0/radio,161/R,136/Rcov,95\noexpand\pgfPT@espaco(2+)/Rion,867.8/Ei,1.69/eneg,0/eaff,+2/O,594.22/Tmelt,321.07/TmeltC,1040/Tboil,767/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10/eConfignl,8650/d,26.02/Cp,96.6/kT,hcp/ls,297.88/lsa,/lsb,561.67/lsc,1.89/lsca,1817/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xlix{In/CS,114.82/Ar,114.82/Arstar,0/radio,156/R,142/Rcov,80\noexpand\pgfPT@espaco(3+)/Rion,558.3/Ei,1.78/eneg,37.04/eaff,+3/O,429.75/Tmelt,156.6/TmeltC,2345/Tboil,2072/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+1/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+1/eConfignl,7310/d,26.74/Cp,81.8/kT,tetr/ls,325.17/lsa,/lsb,494.59/lsc,1.52/lsca,1863/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@l{Sn/CS,118.71/Ar,118.71/Arstar,0/radio,145/R,140/Rcov,118\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula69\noexpand\pgfPT@espaco(4+)/Rion,708.6/Ei,1.96/eneg,107.3/eaff,+2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,505.08/Tmelt,231.93/TmeltC,2875/Tboil,2602/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+2/eConfignl,7265/d,25.77/Cp,66.8/kT,ctetr/ls,583.1/lsa,/lsb,318.1/lsc,0.55/lsca,3000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,0/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@li{Sb/CS,121.76/Ar,121.76/Arstar,0/radio,133/R,140/Rcov,76\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula60\noexpand\pgfPT@espaco(5+)/Rion,834/Ei,2.05/eneg,101.06/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,903.78/Tmelt,630.63/TmeltC,1908/Tboil,1635/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+3/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+3/eConfignl,6697/d,25.23/Cp,24.4/kT,rho/ls,430.7/lsa,/lsb,1127.3/lsc,2.62/lsca,815/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lii{Te/CS,127.6/Ar,127.60(3)/Arstar,0/radio,123/R,136/Rcov,221\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula97\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula56\noexpand\pgfPT@espaco(6+)/Rion,869.3/Ei,2.1/eneg,190.16/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,722.66/Tmelt,449.51/TmeltC,1261/Tboil,988/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+4/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+4/eConfignl,6240/d,25.73/Cp,3/kT,rho/ls,445.72/lsa,/lsb,592.9/lsc,1.33/lsca,1782/DiscY,14/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@liii{I/CS,126.9/Ar,126.9/Arstar,0/radio,115/R,133/Rcov,220\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula95\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(7+)/Rion,1008.4/Ei,2.66/eneg,295.15/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,386.85/Tmelt,113.7/TmeltC,457.4/Tboil,184.3/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+5/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+5/eConfignl,4933/d,54.44/Cp,0.449/kT,bcort/ls,726.97/lsa,479.03/lsb,979.42/lsc,1.35/lsca,1811/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@liv{Xe/CS,131.29/Ar,131.29/Arstar,0/radio,108/R,131/Rcov,---/Rion,1170.4/Ei,2.6/eneg,0/eaff,0/O,161.4/Tmelt,-111.75/TmeltC,165.051/Tboil,-108.099/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+6/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+6/eConfignl,5.894/d,20.786/Cp,0.00565/kT,fcc/ls,620.23/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@lv{Cs/CS,132.91/Ar,132.91/Arstar,0/radio,298/R,232/Rcov,167\noexpand\pgfPT@espaco(1+)/Rion,375.7/Ei,0.79/eneg,45.51/eaff,+1/O,301.7/Tmelt,28.5/TmeltC,944/Tboil,671/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Xe]::6s+1/eConfign,[Xe]::6s+1/eConfignl,1930/d,32.21/Cp,35.9/kT,bcc/ls,614.1/lsa,/lsb,/lsc,/lsca,1860/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lvi{Ba/CS,137.33/Ar,137.33/Arstar,0/radio,253/R,196/Rcov,135\noexpand\pgfPT@espaco(2+)/Rion,502.9/Ei,0.89/eneg,13.95/eaff,+2/O,1000/Tmelt,727/TmeltC,1910/Tboil,1637/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::6s+2/eConfign,[Xe]::6s+2/eConfignl,3510/d,28.07/Cp,18.4/kT,bcc/ls,501.9/lsa,/lsb,/lsc,/lsca,1808/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lvii{La/CS,138.91/Ar,138.91/Arstar,0/radio,226/R,180/Rcov,103.2\noexpand\pgfPT@espaco(3+)/Rion,538.1/Ei,1.1/eneg,53.8/eaff,+3/O,1193/Tmelt,920/TmeltC,3737/Tboil,3464/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula5d+1/eConfignl,6162/d,27.11/Cp,13.4/kT,hex/ls,377.2/lsa,/lsb,1214.4/lsc,3.22/lsca,1838/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lviii{Ce/CS,140.12/Ar,140.12/Arstar,0/radio,210/R,163/Rcov,101\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula87\noexpand\pgfPT@espaco(4+)/Rion,534.4/Ei,1.12/eneg,55/eaff,+3\noexpand\pgfPT@virgula+4/O,1068/Tmelt,795/TmeltC,3716/Tboil,3443/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep19\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+1\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+1\noexpand\pgfPT@virgula5d+1/eConfignl,6770/d,26.94/Cp,11.3/kT,hex/ls,362/lsa,/lsb,599/lsc,1.65/lsca,1803/DiscY,9/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lix{Pr/CS,140.91/Ar,140.91/Arstar,0/radio,247/R,17/Rcov,99\noexpand\pgfPT@espaco(3+)/Rion,527/Ei,1.13/eneg,10.54/eaff,+3/O,1208/Tmelt,935/TmeltC,3403/Tboil,3130/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep21\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+3\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+3/eConfignl,6770/d,27.2/Cp,12.5/kT,hex/ls,367.21/lsa,/lsb,1183.26/lsc,3.22/lsca,1885/DiscY,1/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lx{Nd/CS,144.24/Ar,144.24/Arstar,0/radio,206/R,17/Rcov,98.3\noexpand\pgfPT@espaco(3+)/Rion,533.1/Ei,1.14/eneg,9.41/eaff,+3/O,1297/Tmelt,1024/TmeltC,3347/Tboil,3074/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep22\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+4\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+4/eConfignl,7010/d,27.45/Cp,16.5/kT,hex/ls,365.82/lsa,/lsb,1179.66/lsc,3.22/lsca,1885/DiscY,1/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxi{Pm/CS,[145]/Ar,[145]/Arstar,1/radio,205/R,173/Rcov,97\noexpand\pgfPT@espaco(3+)/Rion,540/Ei,1.13/eneg,12.45/eaff,+3/O,1315/Tmelt,1042/TmeltC,3273/Tboil,3000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep23\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+5\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+5/eConfignl,7260/d,---/Cp,17.9/kT,hex/ls,365/lsa,/lsb,1165/lsc,3.19/lsca,1945/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@lxii{Sm/CS,150.36/Ar,150.36(2)/Arstar,0/radio,238/R,172/Rcov,95.8\noexpand\pgfPT@espaco(3+)/Rion,544.5/Ei,1.17/eneg,15.63/eaff,+3/O,1345/Tmelt,1072/TmeltC,2173/Tboil,1900/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep24\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+6\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+6/eConfignl,7520/d,29.54/Cp,13.3/kT,rho/ls,362.1/lsa,/lsb,2625/lsc,7.25/lsca,1879/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxiii{Eu/CS,151.96/Ar,151.96/Arstar,0/radio,231/R,168/Rcov,117\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula94.7\noexpand\pgfPT@espaco(3+)/Rion,547.1/Ei,1.2/eneg,11.2/eaff,+2\noexpand\pgfPT@virgula+3/O,1099/Tmelt,826/TmeltC,1802/Tboil,1529/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+7\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+7/eConfignl,5244/d,27.66/Cp,13.9/kT,bcc/ls,458.1/lsa,/lsb,/lsc,/lsca,1901/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxiv{Gd/CS,157.25/Ar,157.25(3)/Arstar,0/radio,233/R,169/Rcov,93.5\noexpand\pgfPT@espaco(3+)/Rion,593.4/Ei,1.2/eneg,13.22/eaff,+3/O,1585/Tmelt,1312/TmeltC,3273/Tboil,3000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+7\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+7\noexpand\pgfPT@virgula5d+1/eConfignl,7900/d,37.03/Cp,10.6/kT,hcp/ls,363.6/lsa,/lsb,578.26/lsc,1.59/lsca,1880/DiscY,20/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxv{Tb/CS,158.93/Ar,158.93/Arstar,0/radio,225/R,168/Rcov,92.3\noexpand\pgfPT@espaco(3+)/Rion,565.8/Ei,1.2/eneg,12.67/eaff,+3/O,1629/Tmelt,1356/TmeltC,3396/Tboil,3123/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep27\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+9\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+9/eConfignl,8230/d,28.91/Cp,11.1/kT,hcp/ls,360.1/lsa,/lsb,569.36/lsc,1.58/lsca,1843/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxvi{Dy/CS,162.5/Ar,162.5/Arstar,0/radio,228/R,167/Rcov,91.2\noexpand\pgfPT@espaco(3+)/Rion,573/Ei,1.22/eneg,33.96/eaff,+3/O,1680/Tmelt,1407/TmeltC,2840/Tboil,2567/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep28\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+10\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+10/eConfignl,8540/d,27.7/Cp,10.7/kT,hcp/ls,359.3/lsa,/lsb,565.37/lsc,1.57/lsca,1886/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxvii{Ho/CS,164.93/Ar,164.93/Arstar,0/radio,226/R,166/Rcov,90.1\noexpand\pgfPT@espaco(3+)/Rion,581/Ei,1.23/eneg,32.61/eaff,+3/O,1734/Tmelt,1461/TmeltC,2873/Tboil,2600/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep29\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+11\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+11/eConfignl,8790/d,27.15/Cp,16.2/kT,hcp/ls,357.73/lsa,/lsb,561.58/lsc,1.57/lsca,1878/DiscY,20/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxviii{Er/CS,167.26/Ar,167.26/Arstar,0/radio,226/R,165/Rcov,89\noexpand\pgfPT@espaco(3+)/Rion,589.3/Ei,1.24/eneg,30.1/eaff,+3/O,1802/Tmelt,1529/TmeltC,3141/Tboil,2868/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep30\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+12\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+12/eConfignl,9066/d,28.12/Cp,14.5/kT,hcp/ls,355.88/lsa,/lsb,558.74/lsc,1.57/lsca,1843/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxix{Tm/CS,168.93/Ar,168.93/Arstar,0/radio,222/R,164/Rcov,88\noexpand\pgfPT@espaco(3+)/Rion,596.7/Ei,1.25/eneg,99/eaff,+3/O,1818/Tmelt,1545/TmeltC,2223/Tboil,1950/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep31\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+13\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+13/eConfignl,9320/d,27.03/Cp,16.9/kT,hcp/ls,353.75/lsa,/lsb,555.46/lsc,1.57/lsca,1879/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxx{Yb/CS,173.05/Ar,173.05/Arstar,0/radio,222/R,170/Rcov,86.8\noexpand\pgfPT@espaco(3+)/Rion,603.4/Ei,1.1/eneg,0/eaff,+3/O,1097/Tmelt,824/TmeltC,1703/Tboil,1430/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14/eConfignl,6900/d,26.74/Cp,38.5/kT,fcc/ls,548.47/lsa,/lsb,/lsc,/lsca,1878/DiscY,20/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxi{Lu/CS,174.97/Ar,174.97/Arstar,0/radio,217/R,162/Rcov,86.1\noexpand\pgfPT@espaco(3+)/Rion,523.5/Ei,1.27/eneg,23.04/eaff,+3/O,1925/Tmelt,1652/TmeltC,3675/Tboil,3402/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+1/eConfignl,9841/d,26.86/Cp,16.4/kT,hcp/ls,350.31/lsa,/lsb,555.09/lsc,1.58/lsca,1906/DiscY,6/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxii{Hf/CS,178.49/Ar,178.49(2)/Arstar,0/radio,208/R,152/Rcov,71\noexpand\pgfPT@espaco(4+)/Rion,658.5/Ei,1.3/eneg,17.18/eaff,+4/O,2506/Tmelt,2233/TmeltC,4876/Tboil,4603/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+2\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+2/eConfignl,13310/d,25.73/Cp,23/kT,hcp/ls,319.64/lsa,/lsb,505.11/lsc,1.58/lsca,1922/DiscY,2/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxiii{Ta/CS,180.95/Ar,180.95/Arstar,0/radio,200/R,146/Rcov,64\noexpand\pgfPT@espaco(5+)/Rion,761/Ei,1.5/eneg,31/eaff,+5/O,3290/Tmelt,3017/TmeltC,5731/Tboil,5458/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+3\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+3/eConfignl,16690/d,25.36/Cp,57.5/kT,bcc/ls,330.26/lsa,/lsb,/lsc,/lsca,1802/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxiv{W/CS,183.84/Ar,183.84/Arstar,0/radio,193/R,137/Rcov,66\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula60\noexpand\pgfPT@espaco(6+)/Rion,770/Ei,2.36/eneg,78.76/eaff,+4\noexpand\pgfPT@virgula+6/O,3695/Tmelt,3422/TmeltC,6203/Tboil,5930/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+4\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+4/eConfignl,19250/d,24.27/Cp,173/kT,bcc/ls,316.52/lsa,/lsb,/lsc,/lsca,1783/DiscY,17/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxv{Re/CS,186.21/Ar,186.21/Arstar,0/radio,188/R,131/Rcov,63\noexpand\pgfPT@espaco(4+)/Rion,760/Ei,1.9/eneg,5.83/eaff,+4/O,3459/Tmelt,3186/TmeltC,5869/Tboil,5596/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+5\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+5/eConfignl,21020/d,25.48/Cp,48/kT,hcp/ls,276.1/lsa,/lsb,445.8/lsc,1.62/lsca,1925/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxvi{Os/CS,190.23/Ar,190.23(3)/Arstar,0/radio,185/R,129/Rcov,63\noexpand\pgfPT@espaco(4+)/Rion,840/Ei,2.2/eneg,103.99/eaff,+4/O,3306/Tmelt,3033/TmeltC,5285/Tboil,5012/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+6\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+6/eConfignl,22590/d,24.7/Cp,87.6/kT,hcp/ls,273.43/lsa,/lsb,431.73/lsc,1.58/lsca,1803/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxvii{Ir/CS,192.22/Ar,192.22/Arstar,0/radio,180/R,122/Rcov,68\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula62.5\noexpand\pgfPT@espaco(4+)/Rion,880/Ei,2.2/eneg,150.91/eaff,+3\noexpand\pgfPT@virgula+4/O,2719/Tmelt,2446/TmeltC,4403/Tboil,4130/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+7\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+7/eConfignl,22560/d,25.1/Cp,147/kT,fcc/ls,383.92/lsa,/lsb,/lsc,/lsca,1803/DiscY,7/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxviii{Pt/CS,195.08/Ar,195.08/Arstar,0/radio,177/R,123/Rcov,80\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula62.5\noexpand\pgfPT@espaco(4+)/Rion,870/Ei,2.28/eneg,205.04/eaff,+2\noexpand\pgfPT@virgula+4/O,2041.4/Tmelt,1768.3/TmeltC,4098/Tboil,3825/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep17\noexpand\pgfPTeDistsep1/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+9\noexpand\pgfPT@virgula6s+1/eConfign,[Xe]::6s+1\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+9/eConfignl,21450/d,25.86/Cp,71.6/kT,fcc/ls,392.35/lsa,/lsb,/lsc,/lsca,1735/DiscY,13/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxix{Au/CS,196.97/Ar,196.97/Arstar,0/radio,174/R,124/Rcov,137\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula85\noexpand\pgfPT@espaco(3+)/Rion,890.1/Ei,2.54/eneg,222.75/eaff,+1\noexpand\pgfPT@virgula+3/O,1337.33/Tmelt,1064.18/TmeltC,3243/Tboil,2970/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+1/eConfign,[Xe]::6s+1\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10/eConfignl,19300/d,25.418/Cp,318/kT,fcc/ls,407.83/lsa,/lsb,/lsc,/lsca,4000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,100/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxx{Hg/CS,200.59/Ar,200.59/Arstar,0/radio,171/R,133/Rcov,119\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula102\noexpand\pgfPT@espaco(2+)/Rion,1007.1/Ei,2/eneg,0/eaff,+1\noexpand\pgfPT@virgula+2/O,234.32/Tmelt,-38.83/TmeltC,629.88/Tboil,356.73/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10/eConfignl,13534/d,27.983/Cp,8.3/kT,rho/ls,300.9/lsa,/lsb,/lsc,/lsca,1500\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,liquido/cor}% -\def\pgfPT@data@lxxxi{Tl/CS,204.38/Ar,[204.38\noexpand\pgfPT@virgula204.39]/Arstar,0/radio,156/R,144/Rcov,150\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula88.5\noexpand\pgfPT@espaco(3+)/Rion,589.4/Ei,1.62/eneg,30.88/eaff,+1\noexpand\pgfPT@virgula+3/O,577/Tmelt,304/TmeltC,1746/Tboil,1473/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+1/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+1/eConfignl,11850/d,26.32/Cp,46.1/kT,hcp/ls,345.66/lsa,/lsb,552.48/lsc,1.6/lsca,1861/DiscY,21/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxxii{Pb/CS,207.2/Ar,207.2/Arstar,0/radio,154/R,144/Rcov,119\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula77.5\noexpand\pgfPT@espaco(4+)/Rion,715.6/Ei,1.87/eneg,34.42/eaff,+2\noexpand\pgfPT@virgula+4/O,600.61/Tmelt,327.46/TmeltC,2022/Tboil,1749/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+2/eConfignl,11340/d,26.65/Cp,35.3/kT,fcc/ls,495.02/lsa,/lsb,/lsc,/lsca,3800\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxxiii{Bi/CS,208.98/Ar,208.98/Arstar,0/radio,143/R,151/Rcov,103\noexpand\pgfPT@espaco(3+)/Rion,703/Ei,2.02/eneg,90.92/eaff,+3/O,544.7/Tmelt,271.5/TmeltC,1837/Tboil,1564/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+3/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+3/eConfignl,9780/d,25.52/Cp,7.97/kT,mono/ls,667.4/lsa,611.7/lsb,330.4/lsc,0.5/lsca,1400/DiscY,12/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxxiv{Po/CS,[209]/Ar,/Arstar,1/radio,135/R,145/Rcov,223\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula94\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula67\noexpand\pgfPT@espaco(6+)/Rion,812.1/Ei,2/eneg,136/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+6/O,527/Tmelt,254/TmeltC,1235/Tboil,962/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+4/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+4/eConfignl,9196/d,26.4/Cp,0/kT,sc/ls,335.9/lsa,/lsb,/lsc,/lsca,1898/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxxv{At/CS,[210]/Ar,/Arstar,1/radio,127/R,147/Rcov,62\noexpand\pgfPT@espaco(7+)/Rion,899.003/Ei,2.2/eneg,233.09/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,575/Tmelt,302/TmeltC,503/Tboil,230/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+5/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+5/eConfignl,---/d,---/Cp,1.7/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1940/DiscY,22/DiscC,0/spectra,solido/cor}% -\def\pgfPT@data@lxxxvi{Rn/CS,[222]/Ar,/Arstar,1/radio,120/R,142/Rcov,---/Rion,1037/Ei,2.2/eneg,0/eaff,+2\noexpand\pgfPT@virgula+6/O,202/Tmelt,-71/TmeltC,211.5/Tboil,-61.7/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+6/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+6/eConfignl,9.73/d,20.786/Cp,0.00361/kT,fcc/ls,---/lsa,/lsb,/lsc,/lsca,1899/DiscY,8/DiscC,1/spectra,gasoso/cor}% -\def\pgfPT@data@lxxxvii{Fr/CS,[223]/Ar,/Arstar,1/radio,---/R,---/Rcov,180\noexpand\pgfPT@espaco(1+)/Rion,380/Ei,0.7/eneg,46.89/eaff,+1/O,281/Tmelt,8/TmeltC,890/Tboil,620/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Rn]::7s+1/eConfign,[Rn]::7s+1/eConfignl,---/d,31.8/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1939/DiscY,5/DiscC,0/spectra,solido/cor}% -\def\pgfPT@data@lxxxviii{Ra/CS,[226]/Ar,/Arstar,1/radio,---/R,201/Rcov,148\noexpand\pgfPT@espaco(2+)/Rion,509.3/Ei,0.9/eneg,9.65/eaff,+2/O,973/Tmelt,700/TmeltC,2010/Tboil,1737/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::7s+2/eConfign,[Rn]::7s+2/eConfignl,5500/d,---/Cp,18.6/kT,bcc/ls,514.8/lsa,/lsb,/lsc,/lsca,1898/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@lxxxix{Ac/CS,[227]/Ar,/Arstar,1/radio,---/R,186/Rcov,106.5\noexpand\pgfPT@espaco(3+)/Rion,499/Ei,1.1/eneg,33.77/eaff,+3/O,1323/Tmelt,1050/TmeltC,3471/Tboil,3198/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula6d+1/eConfignl,10000/d,27.2/Cp,12/kT,fcc/ls,587/lsa,/lsb,/lsc,/lsca,1902/DiscY,5/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xc{Th/CS,232.04/Ar,232.04/Arstar,1/radio,---/R,175/Rcov,/Rion,587/Ei,1.3/eneg,58.63/eaff,+4/O,2115/Tmelt,1842/TmeltC,5061/Tboil,4788/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Rn]::6d+2\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula6d+2/eConfignl,11700/d,26.23/Cp,54/kT,fcc/ls,508.42/lsa,/lsb,/lsc,/lsca,1829/DiscY,18/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xci{Pa/CS,231.04/Ar,231.04/Arstar,1/radio,---/R,169/Rcov,90\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula78\noexpand\pgfPT@espaco(5+)/Rion,568/Ei,1.5/eneg,53.03/eaff,+5/O,1841/Tmelt,1568/TmeltC,4273/Tboil,4000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep20\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+2\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+2\noexpand\pgfPT@virgula6d+1/eConfignl,15370/d,---/Cp,47/kT,tetr/ls,392.5/lsa,/lsb,323.8/lsc,0.82/lsca,1913/DiscY,10/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xcii{U/CS,238.03/Ar,238.03/Arstar,1/radio,---/R,170/Rcov,76\noexpand\pgfPT@espaco(5+)/Rion,597.6/Ei,1.38/eneg,30.39/eaff,+4\noexpand\pgfPT@virgula+6/O,1405.3/Tmelt,1132.2/TmeltC,4404/Tboil,4131/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep21\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+3\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+3\noexpand\pgfPT@virgula6d+1/eConfignl,19100/d,27.665/Cp,27.5/kT,bcort/ls,285.37/lsa,586.95/lsb,495.48/lsc,1.74/lsca,1789/DiscY,8/DiscC,1/spectra,solido/cor}% -\def\pgfPT@data@xciii{Np/CS,[237]/Ar,/Arstar,1/radio,---/R,171/Rcov,110\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula87\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula71\noexpand\pgfPT@espaco(7+)/Rion,604.5/Ei,1.36/eneg,45.85/eaff,+5/O,917/Tmelt,644/TmeltC,4273/Tboil,4000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep22\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+4\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+4\noexpand\pgfPT@virgula6d+1/eConfignl,20200/d,29.46/Cp,6.3/kT,bcort/ls,666.3/lsa,472.3/lsb,488.7/lsc,0.73/lsca,1940/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xciv{Pu/CS,[244]/Ar,/Arstar,1/radio,---/R,172/Rcov,100\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula74\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula71\noexpand\pgfPT@espaco(6+)/Rion,584.7/Ei,1.28/eneg,0/eaff,+4/O,912.5/Tmelt,639.4/TmeltC,3501/Tboil,3228/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep24\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+6\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+6/eConfignl,19816/d,35.5/Cp,6.74/kT,mono/ls,618.3/lsa,482.2/lsb,1096.3/lsc,1.77/lsca,1940/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xcv{Am/CS,[243]/Ar,/Arstar,1/radio,---/R,166/Rcov,126\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula97.5\noexpand\pgfPT@espaco(3+)/Rion,578/Ei,1.13/eneg,9.93/eaff,+3/O,1449/Tmelt,1176/TmeltC,2880/Tboil,2607/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+7\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+7/eConfignl,12000/d,62.7/Cp,10/kT,hex/ls,346.81/lsa,/lsb,1124.1/lsc,3.24/lsca,1944/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xcvi{Cm/CS,[247]/Ar,/Arstar,1/radio,---/R,166/Rcov,97\noexpand\pgfPT@espaco(3+)/Rion,581/Ei,1.28/eneg,27.17/eaff,+3/O,1613/Tmelt,1340/TmeltC,3383/Tboil,3110/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+7\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+7\noexpand\pgfPT@virgula6d+1/eConfignl,13510/d,---/Cp,---/kT,hex/ls,349.6/lsa,/lsb,1133.1/lsc,3.24/lsca,1944/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xcvii{Bk/CS,[247]/Ar,/Arstar,1/radio,---/R,---/Rcov,96\noexpand\pgfPT@espaco(3+)/Rion,601/Ei,1.3/eneg,0/eaff,+3/O,1323/Tmelt,1050/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep27\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+9\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+9/eConfignl,14780/d,---/Cp,10/kT,hex/ls,341.6/lsa,/lsb,1106.9/lsc,3.24/lsca,1949/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xcviii{Cf/CS,[251]/Ar,/Arstar,1/radio,---/R,---/Rcov,95\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula82.1\noexpand\pgfPT@espaco(4+)/Rion,608/Ei,1.3/eneg,0/eaff,+3/O,1173/Tmelt,900/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep28\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+10\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+10/eConfignl,15100/d,---/Cp,---/kT,hex/ls,338/lsa,/lsb,1102.5/lsc,3.26/lsca,1950/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@xcix{Es/CS,[252]/Ar,/Arstar,1/radio,---/R,---/Rcov,83.5\noexpand\pgfPT@espaco(3+)/Rion,619/Ei,1.3/eneg,0/eaff,+3/O,1133/Tmelt,860/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep29\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+11\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+11/eConfignl,8840/d,---/Cp,---/kT,fcc/ls,575/lsa,/lsb,/lsc,/lsca,1952/DiscY,22/DiscC,1/spectra,sintetico/cor}% -\def\pgfPT@data@c{Fm/CS,[257]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,627/Ei,1.3/eneg,33.96/eaff,+3/O,1800/Tmelt,1527/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep30\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+12\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+12/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1952/DiscY,22/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@ci{Md/CS,[258]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,635/Ei,1.3/eneg,93.91/eaff,+3/O,1100/Tmelt,827/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep31\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+13\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+13/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1955/DiscY,22/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cii{No/CS,[259]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,642/Ei,1.3/eneg,0/eaff,+2/O,1100/Tmelt,827/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1966/DiscY,24/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@ciii{Lr/CS,[266]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,470/Ei,1.3/eneg,0/eaff,+3/O,1900/Tmelt,1627/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep3/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+1/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula7p+1/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1961/DiscY,22/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@civ{Rf/CS,[267]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-580/Ei,---/eneg,---/eaff,+4/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+2\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+2/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1969/DiscY,16/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cv{Db/CS,[268]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-665/Ei,---/eneg,---/eaff,+5/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+3\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+3/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1970/DiscY,16/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cvi{Sg/CS,[269]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-757/Ei,---/eneg,---/eaff,+6/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+4\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+4/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1974/DiscY,22/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cvii{Bh/CS,[270]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-740/Ei,---/eneg,---/eaff,+7/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+5\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+5/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1981/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cviii{Hs/CS,[270]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-730/Ei,---/eneg,---/eaff,+8/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+6\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+6/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1984/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cix{Mt/CS,[278]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-800/Ei,---/eneg,---/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+7\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+7/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1982/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cx{Ds/CS,[281]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-960/Ei,---/eneg,---/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+8\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+8/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1994/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxi{Rg/CS,[282]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-1020/Ei,---/eneg,151/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep17\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+9\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+9/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1994/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxii{Cn/CS,[285]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-1155/Ei,---/eneg,---/eaff,+2/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1996/DiscY,8/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxiii{Nh/CS,[286]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-707.2/Ei,---/eneg,66.6/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+1/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+1/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2004/DiscY,16/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxiv{Fl/CS,[289]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-832.2/Ei,---/eneg,---/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+2/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1998/DiscY,15/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxv{Mc/CS,[290]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-538.3/Ei,---/eneg,35.3/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+3/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+3/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2003/DiscY,16/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxvi{Lv/CS,[293]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-663.9/Ei,---/eneg,74.9/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+4/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+4/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2000/DiscY,15/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxvii{Ts/CS,[294]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-736.9/Ei,---/eneg,165.9/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+5/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+5/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2009/DiscY,100/DiscC,0/spectra,sintetico/cor}% -\def\pgfPT@data@cxviii{Og/CS,[294]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-860.1/Ei,---/eneg,5.4/eaff,---/O,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+6/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+6/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2002/DiscY,16/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@i{H/CS,1.008/Ar,[1.0078\noexpand\pgfPT@virgula1.0082]/Arstar,0/radio,53/R,32/Rcov,139.9\noexpand\pgfPT@espaco(1-)/Rion,1312/Ei,2.2/eneg,72.77/eaff,\noexpand\pgfPT@pm1/O,\noexpand\pgfPT@pm I/ORoman,13.99/Tmelt,-259.16/TmeltC,20.271/Tboil,-252.879/TboilC,1/eDist,::1s+1/eConfign,::1s+1/eConfignl,0.08988/d,28.836/Cp,0.1805/kT,hex/ls,470/lsa,470/lsb,340/lsc,0.72/lsca,1766/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@ii{He/CS,4.0026/Ar,4.0026/Arstar,0/radio,31/R,46/Rcov,---/Rion,2372.3/Ei,---/eneg,0/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,4.222/Tboil,-268.928/TboilC,2/eDist,::1s+2/eConfign,::1s+2/eConfignl,0.1786/d,20.786/Cp,0.1513/kT,fcc/ls,424.4/lsa,/lsb,/lsc,/lsca,1895/DiscY,19/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@iii{Li/CS,6.94/Ar,[6.938\noexpand\pgfPT@virgula6.997] /Arstar,0/radio,167/R,133/Rcov,76\noexpand\pgfPT@espaco(1+)/Rion,520.2/Ei,0.98/eneg,59.63/eaff,+1/O,+I/ORoman,453.65/Tmelt,180.5/TmeltC,1603/Tboil,1330/TboilC,2\noexpand\pgfPTeDistsep1/eDist,[He]::2s+1/eConfign,[He]::2s+1/eConfignl,534/d,24.86/Cp,84.8/kT,bcc/ls,350.93/lsa,/lsb,/lsc,/lsca,1817/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@iv{Be/CS,9.0122/Ar,9.0122/Arstar,0/radio,112/R,10/Rcov,45\noexpand\pgfPT@espaco(2+)/Rion,899.5/Ei,1.57/eneg,0/eaff,+2/O,+II/ORoman,1560/Tmelt,1287/TmeltC,2742/Tboil,2469/TboilC,2\noexpand\pgfPTeDistsep2/eDist,[He]::2s+2/eConfign,[He]::2s+2/eConfignl,1850/d,16.443/Cp,200/kT,hcp/ls,228.56/lsa,/lsb,358.32/lsc,1.57/lsca,1798/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@v{B/CS,10.81/Ar,[10.806\noexpand\pgfPT@virgula10.821] /Arstar,0/radio,87/R,85/Rcov,27\noexpand\pgfPT@espaco(3+)/Rion,800.6/Ei,2.04/eneg,26.99/eaff,+3/O,+III/ORoman,2349/Tmelt,2076/TmeltC,4200/Tboil,3927/TboilC,2\noexpand\pgfPTeDistsep3/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+1/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+1/eConfignl,2340/d,11.087/Cp,27.4/kT,rho/ls,505.66/lsa,/lsb,/lsc,/lsca,1808/DiscY,7/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@vi{C/CS,12.011/Ar,[12.009\noexpand\pgfPT@virgula12.012]/Arstar,0/radio,67/R,75/Rcov,16\noexpand\pgfPT@espaco(4+)/Rion,1086.5/Ei,2.55/eneg,121.78/eaff,0\noexpand\pgfPT@virgula\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,0\noexpand\pgfPT@virgula\noexpand\pgfPT@pm I\noexpand\pgfPT@virgula\noexpand\pgfPT@pm II\noexpand\pgfPT@virgula\noexpand\pgfPT@pm III\noexpand\pgfPT@virgula\noexpand\pgfPT@pm IV/ORoman,3823/Tmelt,3550/TmeltC,4300/Tboil,4027/TboilC,2\noexpand\pgfPTeDistsep4/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+2/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+2/eConfignl,2267/d,8.517/Cp,140/kT,hex/ls,246.12/lsa,/lsb,670.79/lsc,2.73/lsca,3750\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@vii{N/CS,14.007/Ar,[14.006\noexpand\pgfPT@virgula14.008]/Arstar,0/radio,56/R,71/Rcov,146\noexpand\pgfPT@espaco(3-)\noexpand\pgfPT@virgula16\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula13\noexpand\pgfPT@espaco(5+)/Rion,1402.3/Ei,3.04/eneg,0/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5/O,\noexpand\pgfPT@pm III\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+V/ORoman,63.15/Tmelt,-210/TmeltC,77.355/Tboil,-195.795/TboilC,2\noexpand\pgfPTeDistsep5/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+3/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+3/eConfignl,1.251/d,29.124/Cp,0.02583/kT,hex/ls,386.1/lsa,386.1/lsb,626.5/lsc,1.62/lsca,1772/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@viii{O/CS,15.999/Ar,[15.999\noexpand\pgfPT@virgula16.000]/Arstar,0/radio,48/R,63/Rcov,140\noexpand\pgfPT@espaco(2-)/Rion,1313.9/Ei,3.44/eneg,140.98/eaff,--2/O,--II/ORoman,54.36/Tmelt,-218.79/TmeltC,90.188/Tboil,-182.962/TboilC,2\noexpand\pgfPTeDistsep6/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+4/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+4/eConfignl,1.429/d,29.378/Cp,0.02658/kT,mono/ls,540.3/lsa,342.9/lsb,508.6/lsc,0.94/lsca,1771/DiscY,19/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@ix{F/CS,18.998/Ar,18.998/Arstar,0/radio,42/R,64/Rcov,133\noexpand\pgfPT@espaco(1-)/Rion,1681/Ei,3.98/eneg,328.16/eaff,--1/O,--I/ORoman,53.48/Tmelt,-219.67/TmeltC,85.04/Tboil,-188.11/TboilC,2\noexpand\pgfPTeDistsep7/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+5/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+5/eConfignl,1.7/d,31.304/Cp,0.0277/kT,mono/ls,550/lsa,328/lsb,728/lsc,1.32/lsca,1886/DiscY,5/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@x{Ne/CS,20.18/Ar,20.18/Arstar,0/radio,38/R,67/Rcov,---/Rion,2080.7/Ei,---/eneg,0/eaff,---/O,---/ORoman,24.56/Tmelt,-248.59/TmeltC,27.104/Tboil,-246.046/TboilC,2\noexpand\pgfPTeDistsep8/eDist,[He]::2s+2\noexpand\pgfPT@virgula2p+6/eConfign,[He]::2s+2\noexpand\pgfPT@virgula2p+6/eConfignl,0.9002/d,20.786/Cp,0.0491/kT,fcc/ls,442.9/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@xi{Na/CS,22.99/Ar,22.99/Arstar,0/radio,190/R,155/Rcov,102\noexpand\pgfPT@espaco(1+)/Rion,495.8/Ei,0.93/eneg,52.87/eaff,+1/O,+I/ORoman,370.944/Tmelt,97.794/TmeltC,1156.09/Tboil,882.94/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Ne]::3s+1/eConfign,[Ne]::3s+1/eConfignl,968/d,28.23/Cp,142/kT,bcc/ls,429.06/lsa,/lsb,/lsc,/lsca,1807/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xii{Mg/CS,24.305/Ar,[24.304\noexpand\pgfPT@virgula24.307] /Arstar,0/radio,145/R,139/Rcov,72\noexpand\pgfPT@espaco(2+)/Rion,737.7/Ei,1.31/eneg,0/eaff,+2/O,+II/ORoman,923/Tmelt,650/TmeltC,1363/Tboil,1090/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Ne]::3s+2/eConfign,[Ne]::3s+2/eConfignl,1738/d,24.869/Cp,156/kT,hcp/ls,320.94/lsa,/lsb,521.05/lsc,1.62/lsca,1755/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xiii{Al/CS,26.982/Ar,26.982/Arstar,0/radio,118/R,126/Rcov,53.5\noexpand\pgfPT@espaco(3+)/Rion,577.5/Ei,1.61/eneg,41.76/eaff,+3/O,+III/ORoman,933.47/Tmelt,660.32/TmeltC,2743/Tboil,2470/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep3/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+1/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+1/eConfignl,2700/d,24.2/Cp,237/kT,fcc/ls,404.95/lsa,/lsb,/lsc,/lsca,1824/DiscY,2/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xiv{Si/CS,28.085/Ar,[28.084\noexpand\pgfPT@virgula28.086]/Arstar,0/radio,111/R,116/Rcov,40\noexpand\pgfPT@espaco(4+)/Rion,786.5/Ei,1.9/eneg,134.07/eaff,\noexpand\pgfPT@pm4/O,\noexpand\pgfPT@pm IV/ORoman,1687/Tmelt,1414/TmeltC,3538/Tboil,3265/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep4/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+2/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+2/eConfignl,2330/d,19.789/Cp,149/kT,dia/ls,543.095/lsa,/lsb,/lsc,/lsca,1823/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xv{P/CS,30.974/Ar,30.974/Arstar,0/radio,98/R,111/Rcov,212\noexpand\pgfPT@espaco(3-)\noexpand\pgfPT@virgula44\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula38\noexpand\pgfPT@espaco(5+)/Rion,1011.8/Ei,2.19/eneg,72.04/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,\noexpand\pgfPT@pm III\noexpand\pgfPT@virgula+V/ORoman,317.3/Tmelt,44.15/TmeltC,550/Tboil,277/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep5/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+3/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+3/eConfignl,1823/d,23.824/Cp,0.236/kT,tric/ls,1145/lsa,550.3/lsb,1126.1/lsc,0.98/lsca,1669/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xvi{S/CS,32.06/Ar,[32.059\noexpand\pgfPT@virgula32.076]/Arstar,0/radio,88/R,103/Rcov,184\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula37\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula29\noexpand\pgfPT@espaco(6+)/Rion,999.6/Ei,2.58/eneg,200.41/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,\noexpand\pgfPT@pm II\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+VI/ORoman,388.36/Tmelt,115.21/TmeltC,717.8/Tboil,444.6/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep6/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+4/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+4/eConfignl,1960/d,22.75/Cp,0.205/kT,fcort/ls,1046.5/lsa,1286.6/lsb,2448.6/lsc,2.34/lsca,500\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xvii{Cl/CS,35.45/Ar,[35.446\noexpand\pgfPT@virgula35.457]/Arstar,0/radio,79/R,99/Rcov,181\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula12\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula27\noexpand\pgfPT@espaco(7+)/Rion,1251.2/Ei,3.16/eneg,348.58/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,\noexpand\pgfPT@pm I\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+V\noexpand\pgfPT@virgula+VII/ORoman,171.6/Tmelt,-101.5/TmeltC,239.11/Tboil,-34.04/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep7/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+5/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+5/eConfignl,3.2/d,33.949/Cp,0.0089/kT,bcort/ls,622.35/lsa,445.61/lsb,817.85/lsc,1.31/lsca,1774/DiscY,18/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@xviii{Ar/CS,39.95/Ar,[39.792\noexpand\pgfPT@virgula39.963]/Arstar,0/radio,71/R,96/Rcov,---/Rion,1520.6/Ei,---/eneg,0/eaff,0/O,0/ORoman,83.81/Tmelt,-189.34/TmeltC,87.302/Tboil,-185.848/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8/eDist,[Ne]::3s+2\noexpand\pgfPT@virgula3p+6/eConfign,[Ne]::3s+2\noexpand\pgfPT@virgula3p+6/eConfignl,1.784/d,20.786/Cp,0.01772/kT,fcc/ls,525.6/lsa,/lsb,/lsc,/lsca,1894/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@xix{K/CS,39.098/Ar,39.098/Arstar,0/radio,243/R,196/Rcov,138\noexpand\pgfPT@espaco(1+)/Rion,418.8/Ei,0.82/eneg,48.38/eaff,+1/O,+I/ORoman,336.7/Tmelt,63.5/TmeltC,1032/Tboil,759/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Ar]::4s+1/eConfign,[Ar]::4s+1/eConfignl,890/d,29.6/Cp,102.5/kT,bcc/ls,532.8/lsa,/lsb,/lsc,/lsca,1807/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xx{Ca/CS,40.078/Ar,40.078(4) /Arstar,0/radio,194/R,171/Rcov,100\noexpand\pgfPT@espaco(2+)/Rion,589.8/Ei,1/eneg,2.37/eaff,+2/O,+II/ORoman,1115/Tmelt,842/TmeltC,1757/Tboil,1484/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Ar]::4s+2/eConfign,[Ar]::4s+2/eConfignl,1550/d,25.929/Cp,201/kT,fcc/ls,558.84/lsa,/lsb,/lsc,/lsca,1808/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxi{Sc/CS,44.956/Ar,44.956/Arstar,0/radio,184/R,148/Rcov,74.5\noexpand\pgfPT@espaco(3+)/Rion,633.1/Ei,1.36/eneg,18/eaff,+3/O,+III/ORoman,1814/Tmelt,1541/TmeltC,3109/Tboil,2836/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+1\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+1/eConfignl,2985/d,25.52/Cp,15.8/kT,hcp/ls,330.9/lsa,/lsb,527.33/lsc,1.59/lsca,1879/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxii{Ti/CS,47.867/Ar,47.867/Arstar,0/radio,176/R,136/Rcov,86\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula67\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula60.5\noexpand\pgfPT@espaco(4+)/Rion,658.8/Ei,1.54/eneg,7.29/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4/O,+II\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+IV/ORoman,1941/Tmelt,1668/TmeltC,3560/Tboil,3287/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+2\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+2/eConfignl,4506/d,25.06/Cp,21.9/kT,hcp/ls,295.03/lsa,/lsb,468.31/lsc,1.59/lsca,1791/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxiii{V/CS,50.942/Ar,50.942/Arstar,0/radio,171/R,134/Rcov,79\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula64\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula58\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula54\noexpand\pgfPT@espaco(5+)/Rion,650.9/Ei,1.63/eneg,50.91/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5/O,+II\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+V/ORoman,2183/Tmelt,1910/TmeltC,3680/Tboil,3407/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+3\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+3/eConfignl,6110/d,24.89/Cp,30.7/kT,bcc/ls,302.31/lsa,/lsb,/lsc,/lsca,1830/DiscY,23/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxiv{Cr/CS,51.996/Ar,51.996/Arstar,0/radio,166/R,122/Rcov,73\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula61.5\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula44\noexpand\pgfPT@espaco(6+)/Rion,652.9/Ei,1.66/eneg,65.21/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+6/O,+II\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+VI/ORoman,2180/Tmelt,1907/TmeltC,2755/Tboil,2482/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep1/eDist,[Ar]::3d+5\noexpand\pgfPT@virgula4s+1/eConfign,[Ar]::4s+1\noexpand\pgfPT@virgula3d+5/eConfignl,7150/d,23.35/Cp,93.9/kT,bcc/ls,288.46/lsa,/lsb,/lsc,/lsca,1797/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxv{Mn/CS,54.938/Ar,54.938/Arstar,0/radio,161/R,119/Rcov,67\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula58\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula25.5\noexpand\pgfPT@espaco(6+)\noexpand\pgfPT@virgula46\noexpand\pgfPT@espaco(7+)/Rion,717.3/Ei,1.55/eneg,0/eaff,+2\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6\noexpand\pgfPT@virgula+7/O,+II\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+VI\noexpand\pgfPT@virgula+VII/ORoman,1519/Tmelt,1246/TmeltC,2334/Tboil,2061/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+5\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+5/eConfignl,7210/d,26.32/Cp,7.81/kT,bcc/ls,891.39/lsa,/lsb,/lsc,/lsca,1774/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxvi{Fe/CS,55.845/Ar,55.845(2)/Arstar,0/radio,156/R,116/Rcov,61\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula55\noexpand\pgfPT@espaco(3+)/Rion,762.5/Ei,1.83/eneg,14.79/eaff,+2\noexpand\pgfPT@virgula+3/O,+II\noexpand\pgfPT@virgula+III/ORoman,1811/Tmelt,1538/TmeltC,3134/Tboil,2861/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+6\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+6/eConfignl,7860/d,25.1/Cp,80.4/kT,bcc/ls,286.64/lsa,/lsb,/lsc,/lsca,2000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxvii{Co/CS,58.933/Ar,58.933/Arstar,0/radio,152/R,111/Rcov,65\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula54.5\noexpand\pgfPT@espaco(3+)/Rion,760.4/Ei,1.88/eneg,63.9/eaff,+2\noexpand\pgfPT@virgula+3/O,+II\noexpand\pgfPT@virgula+III/ORoman,1768/Tmelt,1495/TmeltC,3200/Tboil,2927/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+7\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+7/eConfignl,8900/d,24.81/Cp,100/kT,hcp/ls,250.71/lsa,/lsb,406.95/lsc,1.62/lsca,1735/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxviii{Ni/CS,58.693/Ar,58.693/Arstar,0/radio,149/R,110/Rcov,69\noexpand\pgfPT@espaco(2+)/Rion,737.1/Ei,1.91/eneg,111.65/eaff,+2/O,+II/ORoman,1728/Tmelt,1455/TmeltC,3003/Tboil,2730/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+8\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+8/eConfignl,8908/d,26.07/Cp,90.9/kT,fcc/ls,352.4/lsa,/lsb,/lsc,/lsca,1751/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxix{Cu/CS,63.546/Ar,63.546(3)/Arstar,0/radio,145/R,112/Rcov,77\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula73\noexpand\pgfPT@espaco(2+)/Rion,745.5/Ei,1.9/eneg,119.24/eaff,+1\noexpand\pgfPT@virgula+2/O,+I\noexpand\pgfPT@virgula+II/ORoman,1357.77/Tmelt,1084.62/TmeltC,2835/Tboil,2562/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+1/eConfign,[Ar]::4s+1\noexpand\pgfPT@virgula3d+10/eConfignl,8960/d,24.44/Cp,401/kT,fcc/ls,361.47/lsa,/lsb,/lsc,/lsca,8000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxx{Zn/CS,65.38/Ar,65.38(2)/Arstar,0/radio,142/R,118/Rcov,74\noexpand\pgfPT@espaco(2+)/Rion,906.4/Ei,1.65/eneg,0/eaff,+2/O,+II/ORoman,692.68/Tmelt,419.53/TmeltC,1180/Tboil,907/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10/eConfignl,7140/d,25.39/Cp,116/kT,hcp/ls,266.49/lsa,/lsb,494.68/lsc,1.86/lsca,1746/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxi{Ga/CS,69.723/Ar,69.723/Arstar,0/radio,136/R,124/Rcov,62\noexpand\pgfPT@espaco(3+)/Rion,578.8/Ei,1.81/eneg,29.06/eaff,+3/O,+III/ORoman,302.9146/Tmelt,29.7646/TmeltC,2673/Tboil,2400/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+1/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+1/eConfignl,5910/d,25.86/Cp,40.6/kT,bcort/ls,452.58/lsa,451.86/lsb,765.7/lsc,1.69/lsca,1875/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxii{Ge/CS,72.63/Ar,72.630(8)/Arstar,0/radio,125/R,121/Rcov,73\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(4+)/Rion,762/Ei,2.01/eneg,118.94/eaff,+2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,+II\noexpand\pgfPT@virgula\noexpand\pgfPT@pm IV/ORoman,1211.4/Tmelt,938.25/TmeltC,3106/Tboil,2833/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+2/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+2/eConfignl,5323/d,23.222/Cp,60.2/kT,dia/ls,565.791/lsa,/lsb,/lsc,/lsca,1886/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxiii{As/CS,74.922/Ar,74.922/Arstar,0/radio,114/R,121/Rcov,58\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula46\noexpand\pgfPT@espaco(5+)/Rion,947/Ei,2.18/eneg,77.65/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,\noexpand\pgfPT@pm III\noexpand\pgfPT@virgula+V/ORoman,1090/Tmelt,817/TmeltC,887/Tboil,614/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+3/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+3/eConfignl,5727/d,24.64/Cp,50.2/kT,rho/ls,375.98/lsa,375.98/lsb,1054.75/lsc,2.81/lsca,1250/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxiv{Se/CS,78.971/Ar,78.971(8)/Arstar,0/radio,103/R,116/Rcov,198\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula50\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula42\noexpand\pgfPT@espaco(6+)/Rion,941/Ei,2.55/eneg,194.96/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,\noexpand\pgfPT@pm II\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+VI/ORoman,494/Tmelt,221/TmeltC,958/Tboil,685/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+4/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+4/eConfignl,4810/d,25.363/Cp,0.519/kT,mono/ls,905.4/lsa,908.3/lsb,1160.1/lsc,1.28/lsca,1817/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxv{Br/CS,79.904/Ar,[79.901\noexpand\pgfPT@virgula79.907]/Arstar,0/radio,94/R,114/Rcov,196\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula59\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula31\noexpand\pgfPT@espaco(5+)/Rion,1139.9/Ei,2.96/eneg,324.54/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5/O,\noexpand\pgfPT@pm I\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+V/ORoman,265.8/Tmelt,-7.3/TmeltC,332/Tboil,58.8/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+5/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+5/eConfignl,3102.8/d,75.69/Cp,0.122/kT,bcort/ls,672.65/lsa,464.51/lsb,870.23/lsc,1.29/lsca,1825/DiscY,5/DiscC,1/spectra,liquido/cor}% +\def\pgfPT@data@xxxvi{Kr/CS,83.798/Ar,83.798(2)/Arstar,0/radio,88/R,117/Rcov,---/Rion,1350.8/Ei,3/eneg,0/eaff,0/O,0/ORoman,115.78/Tmelt,-157.37/TmeltC,119.735/Tboil,-153.415/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Ar]::3d+10\noexpand\pgfPT@virgula4s+2\noexpand\pgfPT@virgula4p+6/eConfign,[Ar]::4s+2\noexpand\pgfPT@virgula3d+10\noexpand\pgfPT@virgula4p+6/eConfignl,3.749/d,20.786/Cp,0.00943/kT,fcc/ls,570.6/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@xxxvii{Rb/CS,85.468/Ar,85.468/Arstar,0/radio,265/R,210/Rcov,152\noexpand\pgfPT@espaco(1+)/Rion,403/Ei,0.82/eneg,46.88/eaff,+1/O,+I/ORoman,312.45/Tmelt,39.3/TmeltC,961/Tboil,688/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Kr]::5s+1/eConfign,[Kr]::5s+1/eConfignl,1532/d,31.06/Cp,58.2/kT,bcc/ls,558.5/lsa,/lsb,/lsc,/lsca,1861/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxviii{Sr/CS,87.62/Ar,87.62/Arstar,0/radio,219/R,185/Rcov,118\noexpand\pgfPT@espaco(2+)/Rion,549.5/Ei,0.95/eneg,5.02/eaff,+2/O,+II/ORoman,1050/Tmelt,777/TmeltC,1650/Tboil,1382/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Kr]::5s+2/eConfign,[Kr]::5s+2/eConfignl,2640/d,26.4/Cp,35.4/kT,fcc/ls,608.49/lsa,/lsb,/lsc,/lsca,1787/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xxxix{Y/CS,88.906/Ar,88.906/Arstar,0/radio,212/R,163/Rcov,90\noexpand\pgfPT@espaco(3+)/Rion,600/Ei,1.22/eneg,29.6/eaff,+3/O,+III/ORoman,1799/Tmelt,1526/TmeltC,3203/Tboil,2930/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+1\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+1/eConfignl,4472/d,26.53/Cp,17.2/kT,hcp/ls,364.74/lsa,/lsb,573.06/lsc,1.57/lsca,1794/DiscY,4/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xl{Zr/CS,91.224/Ar,91.224(2)/Arstar,0/radio,206/R,154/Rcov,72\noexpand\pgfPT@espaco(4+)/Rion,640.1/Ei,1.33/eneg,41.81/eaff,+4/O,+IV/ORoman,2128/Tmelt,1855/TmeltC,4650/Tboil,4377/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+2\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+2/eConfignl,6520/d,25.36/Cp,22.6/kT,hcp/ls,323.2/lsa,/lsb,514.7/lsc,1.59/lsca,1789/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xli{Nb/CS,92.906/Ar,92.906/Arstar,0/radio,198/R,147/Rcov,64\noexpand\pgfPT@espaco(5+)/Rion,652.1/Ei,1.6/eneg,88.52/eaff,+5/O,+V/ORoman,2750/Tmelt,2477/TmeltC,5017/Tboil,4744/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+4\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+4/eConfignl,8570/d,24.6/Cp,53.7/kT,bcc/ls,330.04/lsa,/lsb,/lsc,/lsca,1801/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlii{Mo/CS,95.95/Ar,95.95/Arstar,0/radio,190/R,138/Rcov,65\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula59\noexpand\pgfPT@espaco(6+)/Rion,684.3/Ei,2.16/eneg,72.1/eaff,+4\noexpand\pgfPT@virgula+6/O,+IV\noexpand\pgfPT@virgula+VI/ORoman,2896/Tmelt,2623/TmeltC,4912/Tboil,4639/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+5\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+5/eConfignl,10280/d,24.06/Cp,138/kT,bcc/ls,314.69/lsa,/lsb,/lsc,/lsca,1781/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xliii{Tc/CS,[98]/Ar,/Arstar,1/radio,183/R,128/Rcov,64.5\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula56\noexpand\pgfPT@espaco(7+)/Rion,702/Ei,1.9/eneg,53/eaff,+4\noexpand\pgfPT@virgula+7/O,+IV\noexpand\pgfPT@virgula+VII/ORoman,2430/Tmelt,2157/TmeltC,4538/Tboil,4265/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+5\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+5/eConfignl,11000/d,24.27/Cp,50.6/kT,hcp/ls,273.5/lsa,/lsb,438.8/lsc,1.6/lsca,1937/DiscY,11/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xliv{Ru/CS,101.07/Ar,101.07/Arstar,0/radio,178/R,125/Rcov,68\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula62\noexpand\pgfPT@espaco(4+)/Rion,710.2/Ei,2.2/eneg,100.96/eaff,+3\noexpand\pgfPT@virgula+4/O,+III\noexpand\pgfPT@virgula+IV/ORoman,2607/Tmelt,2334/TmeltC,4423/Tboil,4150/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+7\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+7/eConfignl,12450/d,24.06/Cp,117/kT,hcp/ls,270.55/lsa,/lsb,428.16/lsc,1.58/lsca,1844/DiscY,15/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlv{Rh/CS,102.91/Ar,102.91/Arstar,0/radio,173/R,125/Rcov,66.5\noexpand\pgfPT@espaco(3+)/Rion,719.7/Ei,2.28/eneg,110.27/eaff,+3/O,+III/ORoman,2237/Tmelt,1964/TmeltC,3968/Tboil,3695/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+8\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+8/eConfignl,12410/d,24.98/Cp,150/kT,fcc/ls,380.34/lsa,/lsb,/lsc,/lsca,1804/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlvi{Pd/CS,106.42/Ar,106.42/Arstar,0/radio,169/R,120/Rcov,86\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula61.5\noexpand\pgfPT@espaco(4+)/Rion,804.4/Ei,2.2/eneg,54.24/eaff,0\noexpand\pgfPT@virgula+2\noexpand\pgfPT@virgula+4/O,0\noexpand\pgfPT@virgula+II\noexpand\pgfPT@virgula+IV/ORoman,1828.05/Tmelt,1554.9/TmeltC,3236/Tboil,2963/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18/eDist,[Kr]::4d+10/eConfign,[Kr]::4d+10/eConfignl,12023/d,25.98/Cp,71.8/kT,fcc/ls,389.02/lsa,/lsb,/lsc,/lsca,1802/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlvii{Ag/CS,107.87/Ar,107.87/Arstar,0/radio,165/R,128/Rcov,115\noexpand\pgfPT@espaco(1+)/Rion,731/Ei,1.93/eneg,125.86/eaff,+1/O,+I/ORoman,1234.93/Tmelt,961.78/TmeltC,2483/Tboil,2210/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+1/eConfign,[Kr]::5s+1\noexpand\pgfPT@virgula4d+10/eConfignl,10490/d,25.35/Cp,429/kT,fcc/ls,408.57/lsa,/lsb,/lsc,/lsca,3000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,0/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlviii{Cd/CS,112.41/Ar,112.41/Arstar,0/radio,161/R,136/Rcov,95\noexpand\pgfPT@espaco(2+)/Rion,867.8/Ei,1.69/eneg,0/eaff,+2/O,+II/ORoman,594.22/Tmelt,321.07/TmeltC,1040/Tboil,767/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10/eConfignl,8650/d,26.02/Cp,96.6/kT,hcp/ls,297.88/lsa,/lsb,561.67/lsc,1.89/lsca,1817/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xlix{In/CS,114.82/Ar,114.82/Arstar,0/radio,156/R,142/Rcov,80\noexpand\pgfPT@espaco(3+)/Rion,558.3/Ei,1.78/eneg,37.04/eaff,+3/O,+III/ORoman,429.75/Tmelt,156.6/TmeltC,2345/Tboil,2072/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+1/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+1/eConfignl,7310/d,26.74/Cp,81.8/kT,tetr/ls,325.17/lsa,/lsb,494.59/lsc,1.52/lsca,1863/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@l{Sn/CS,118.71/Ar,118.71/Arstar,0/radio,145/R,140/Rcov,118\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula69\noexpand\pgfPT@espaco(4+)/Rion,708.6/Ei,1.96/eneg,107.3/eaff,+2\noexpand\pgfPT@virgula\noexpand\pgfPT@pm4/O,+II\noexpand\pgfPT@virgula\noexpand\pgfPT@pm IV/ORoman,505.08/Tmelt,231.93/TmeltC,2875/Tboil,2602/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+2/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+2/eConfignl,7265/d,25.77/Cp,66.8/kT,ctetr/ls,583.1/lsa,/lsb,318.1/lsc,0.55/lsca,3000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,0/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@li{Sb/CS,121.76/Ar,121.76/Arstar,0/radio,133/R,140/Rcov,76\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula60\noexpand\pgfPT@espaco(5+)/Rion,834/Ei,2.05/eneg,101.06/eaff,\noexpand\pgfPT@pm3\noexpand\pgfPT@virgula+5/O,\noexpand\pgfPT@pm III\noexpand\pgfPT@virgula+V/ORoman,903.78/Tmelt,630.63/TmeltC,1908/Tboil,1635/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+3/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+3/eConfignl,6697/d,25.23/Cp,24.4/kT,rho/ls,430.7/lsa,/lsb,1127.3/lsc,2.62/lsca,815/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lii{Te/CS,127.6/Ar,127.60(3)/Arstar,0/radio,123/R,136/Rcov,221\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula97\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula56\noexpand\pgfPT@espaco(6+)/Rion,869.3/Ei,2.1/eneg,190.16/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+6/O,\noexpand\pgfPT@pm II\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+VI/ORoman,722.66/Tmelt,449.51/TmeltC,1261/Tboil,988/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+4/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+4/eConfignl,6240/d,25.73/Cp,3/kT,rho/ls,445.72/lsa,/lsb,592.9/lsc,1.33/lsca,1782/DiscY,14/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@liii{I/CS,126.9/Ar,126.9/Arstar,0/radio,115/R,133/Rcov,220\noexpand\pgfPT@espaco(1-)\noexpand\pgfPT@virgula95\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula53\noexpand\pgfPT@espaco(7+)/Rion,1008.4/Ei,2.66/eneg,295.15/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,\noexpand\pgfPT@pm I\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+V\noexpand\pgfPT@virgula+VII/ORoman,386.85/Tmelt,113.7/TmeltC,457.4/Tboil,184.3/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+5/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+5/eConfignl,4933/d,54.44/Cp,0.449/kT,bcort/ls,726.97/lsa,479.03/lsb,979.42/lsc,1.35/lsca,1811/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@liv{Xe/CS,131.29/Ar,131.29/Arstar,0/radio,108/R,131/Rcov,---/Rion,1170.4/Ei,2.6/eneg,0/eaff,0/O,0/ORoman,161.4/Tmelt,-111.75/TmeltC,165.051/Tboil,-108.099/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Kr]::4d+10\noexpand\pgfPT@virgula5s+2\noexpand\pgfPT@virgula5p+6/eConfign,[Kr]::5s+2\noexpand\pgfPT@virgula4d+10\noexpand\pgfPT@virgula5p+6/eConfignl,5.894/d,20.786/Cp,0.00565/kT,fcc/ls,620.23/lsa,/lsb,/lsc,/lsca,1898/DiscY,21/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@lv{Cs/CS,132.91/Ar,132.91/Arstar,0/radio,298/R,232/Rcov,167\noexpand\pgfPT@espaco(1+)/Rion,375.7/Ei,0.79/eneg,45.51/eaff,+1/O,+I/ORoman,301.7/Tmelt,28.5/TmeltC,944/Tboil,671/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Xe]::6s+1/eConfign,[Xe]::6s+1/eConfignl,1930/d,32.21/Cp,35.9/kT,bcc/ls,614.1/lsa,/lsb,/lsc,/lsca,1860/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lvi{Ba/CS,137.33/Ar,137.33/Arstar,0/radio,253/R,196/Rcov,135\noexpand\pgfPT@espaco(2+)/Rion,502.9/Ei,0.89/eneg,13.95/eaff,+2/O,+II/ORoman,1000/Tmelt,727/TmeltC,1910/Tboil,1637/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::6s+2/eConfign,[Xe]::6s+2/eConfignl,3510/d,28.07/Cp,18.4/kT,bcc/ls,501.9/lsa,/lsb,/lsc,/lsca,1808/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lvii{La/CS,138.91/Ar,138.91/Arstar,0/radio,226/R,180/Rcov,103.2\noexpand\pgfPT@espaco(3+)/Rion,538.1/Ei,1.1/eneg,53.8/eaff,+3/O,+III/ORoman,1193/Tmelt,920/TmeltC,3737/Tboil,3464/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula5d+1/eConfignl,6162/d,27.11/Cp,13.4/kT,hex/ls,377.2/lsa,/lsb,1214.4/lsc,3.22/lsca,1838/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lviii{Ce/CS,140.12/Ar,140.12/Arstar,0/radio,210/R,163/Rcov,101\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula87\noexpand\pgfPT@espaco(4+)/Rion,534.4/Ei,1.12/eneg,55/eaff,+3\noexpand\pgfPT@virgula+4/O,+III\noexpand\pgfPT@virgula+IV/ORoman,1068/Tmelt,795/TmeltC,3716/Tboil,3443/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep19\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+1\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+1\noexpand\pgfPT@virgula5d+1/eConfignl,6770/d,26.94/Cp,11.3/kT,hex/ls,362/lsa,/lsb,599/lsc,1.65/lsca,1803/DiscY,9/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lix{Pr/CS,140.91/Ar,140.91/Arstar,0/radio,247/R,17/Rcov,99\noexpand\pgfPT@espaco(3+)/Rion,527/Ei,1.13/eneg,10.54/eaff,+3/O,+III/ORoman,1208/Tmelt,935/TmeltC,3403/Tboil,3130/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep21\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+3\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+3/eConfignl,6770/d,27.2/Cp,12.5/kT,hex/ls,367.21/lsa,/lsb,1183.26/lsc,3.22/lsca,1885/DiscY,1/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lx{Nd/CS,144.24/Ar,144.24/Arstar,0/radio,206/R,17/Rcov,98.3\noexpand\pgfPT@espaco(3+)/Rion,533.1/Ei,1.14/eneg,9.41/eaff,+3/O,+III/ORoman,1297/Tmelt,1024/TmeltC,3347/Tboil,3074/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep22\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+4\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+4/eConfignl,7010/d,27.45/Cp,16.5/kT,hex/ls,365.82/lsa,/lsb,1179.66/lsc,3.22/lsca,1885/DiscY,1/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxi{Pm/CS,[145]/Ar,[145]/Arstar,1/radio,205/R,173/Rcov,97\noexpand\pgfPT@espaco(3+)/Rion,540/Ei,1.13/eneg,12.45/eaff,+3/O,+III/ORoman,1315/Tmelt,1042/TmeltC,3273/Tboil,3000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep23\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+5\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+5/eConfignl,7260/d,---/Cp,17.9/kT,hex/ls,365/lsa,/lsb,1165/lsc,3.19/lsca,1945/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@lxii{Sm/CS,150.36/Ar,150.36(2)/Arstar,0/radio,238/R,172/Rcov,95.8\noexpand\pgfPT@espaco(3+)/Rion,544.5/Ei,1.17/eneg,15.63/eaff,+3/O,+III/ORoman,1345/Tmelt,1072/TmeltC,2173/Tboil,1900/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep24\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+6\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+6/eConfignl,7520/d,29.54/Cp,13.3/kT,rho/ls,362.1/lsa,/lsb,2625/lsc,7.25/lsca,1879/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxiii{Eu/CS,151.96/Ar,151.96/Arstar,0/radio,231/R,168/Rcov,117\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula94.7\noexpand\pgfPT@espaco(3+)/Rion,547.1/Ei,1.2/eneg,11.2/eaff,+2\noexpand\pgfPT@virgula+3/O,+II\noexpand\pgfPT@virgula+III/ORoman,1099/Tmelt,826/TmeltC,1802/Tboil,1529/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+7\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+7/eConfignl,5244/d,27.66/Cp,13.9/kT,bcc/ls,458.1/lsa,/lsb,/lsc,/lsca,1901/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxiv{Gd/CS,157.25/Ar,157.25(3)/Arstar,0/radio,233/R,169/Rcov,93.5\noexpand\pgfPT@espaco(3+)/Rion,593.4/Ei,1.2/eneg,13.22/eaff,+3/O,+III/ORoman,1585/Tmelt,1312/TmeltC,3273/Tboil,3000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+7\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+7\noexpand\pgfPT@virgula5d+1/eConfignl,7900/d,37.03/Cp,10.6/kT,hcp/ls,363.6/lsa,/lsb,578.26/lsc,1.59/lsca,1880/DiscY,20/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxv{Tb/CS,158.93/Ar,158.93/Arstar,0/radio,225/R,168/Rcov,92.3\noexpand\pgfPT@espaco(3+)/Rion,565.8/Ei,1.2/eneg,12.67/eaff,+3/O,+III/ORoman,1629/Tmelt,1356/TmeltC,3396/Tboil,3123/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep27\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+9\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+9/eConfignl,8230/d,28.91/Cp,11.1/kT,hcp/ls,360.1/lsa,/lsb,569.36/lsc,1.58/lsca,1843/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxvi{Dy/CS,162.5/Ar,162.5/Arstar,0/radio,228/R,167/Rcov,91.2\noexpand\pgfPT@espaco(3+)/Rion,573/Ei,1.22/eneg,33.96/eaff,+3/O,+III/ORoman,1680/Tmelt,1407/TmeltC,2840/Tboil,2567/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep28\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+10\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+10/eConfignl,8540/d,27.7/Cp,10.7/kT,hcp/ls,359.3/lsa,/lsb,565.37/lsc,1.57/lsca,1886/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxvii{Ho/CS,164.93/Ar,164.93/Arstar,0/radio,226/R,166/Rcov,90.1\noexpand\pgfPT@espaco(3+)/Rion,581/Ei,1.23/eneg,32.61/eaff,+3/O,+III/ORoman,1734/Tmelt,1461/TmeltC,2873/Tboil,2600/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep29\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+11\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+11/eConfignl,8790/d,27.15/Cp,16.2/kT,hcp/ls,357.73/lsa,/lsb,561.58/lsc,1.57/lsca,1878/DiscY,20/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxviii{Er/CS,167.26/Ar,167.26/Arstar,0/radio,226/R,165/Rcov,89\noexpand\pgfPT@espaco(3+)/Rion,589.3/Ei,1.24/eneg,30.1/eaff,+3/O,+III/ORoman,1802/Tmelt,1529/TmeltC,3141/Tboil,2868/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep30\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+12\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+12/eConfignl,9066/d,28.12/Cp,14.5/kT,hcp/ls,355.88/lsa,/lsb,558.74/lsc,1.57/lsca,1843/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxix{Tm/CS,168.93/Ar,168.93/Arstar,0/radio,222/R,164/Rcov,88\noexpand\pgfPT@espaco(3+)/Rion,596.7/Ei,1.25/eneg,99/eaff,+3/O,+III/ORoman,1818/Tmelt,1545/TmeltC,2223/Tboil,1950/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep31\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+13\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+13/eConfignl,9320/d,27.03/Cp,16.9/kT,hcp/ls,353.75/lsa,/lsb,555.46/lsc,1.57/lsca,1879/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxx{Yb/CS,173.05/Ar,173.05/Arstar,0/radio,222/R,170/Rcov,86.8\noexpand\pgfPT@espaco(3+)/Rion,603.4/Ei,1.1/eneg,0/eaff,+3/O,+III/ORoman,1097/Tmelt,824/TmeltC,1703/Tboil,1430/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14/eConfignl,6900/d,26.74/Cp,38.5/kT,fcc/ls,548.47/lsa,/lsb,/lsc,/lsca,1878/DiscY,20/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxi{Lu/CS,174.97/Ar,174.97/Arstar,0/radio,217/R,162/Rcov,86.1\noexpand\pgfPT@espaco(3+)/Rion,523.5/Ei,1.27/eneg,23.04/eaff,+3/O,+III/ORoman,1925/Tmelt,1652/TmeltC,3675/Tboil,3402/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+1\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+1/eConfignl,9841/d,26.86/Cp,16.4/kT,hcp/ls,350.31/lsa,/lsb,555.09/lsc,1.58/lsca,1906/DiscY,6/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxii{Hf/CS,178.49/Ar,178.49(2)/Arstar,0/radio,208/R,152/Rcov,71\noexpand\pgfPT@espaco(4+)/Rion,658.5/Ei,1.3/eneg,17.18/eaff,+4/O,+IV/ORoman,2506/Tmelt,2233/TmeltC,4876/Tboil,4603/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+2\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+2/eConfignl,13310/d,25.73/Cp,23/kT,hcp/ls,319.64/lsa,/lsb,505.11/lsc,1.58/lsca,1922/DiscY,2/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxiii{Ta/CS,180.95/Ar,180.95/Arstar,0/radio,200/R,146/Rcov,64\noexpand\pgfPT@espaco(5+)/Rion,761/Ei,1.5/eneg,31/eaff,+5/O,+V/ORoman,3290/Tmelt,3017/TmeltC,5731/Tboil,5458/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+3\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+3/eConfignl,16690/d,25.36/Cp,57.5/kT,bcc/ls,330.26/lsa,/lsb,/lsc,/lsca,1802/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxiv{W/CS,183.84/Ar,183.84/Arstar,0/radio,193/R,137/Rcov,66\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula60\noexpand\pgfPT@espaco(6+)/Rion,770/Ei,2.36/eneg,78.76/eaff,+4\noexpand\pgfPT@virgula+6/O,+IV\noexpand\pgfPT@virgula+VI/ORoman,3695/Tmelt,3422/TmeltC,6203/Tboil,5930/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+4\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+4/eConfignl,19250/d,24.27/Cp,173/kT,bcc/ls,316.52/lsa,/lsb,/lsc,/lsca,1783/DiscY,17/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxv{Re/CS,186.21/Ar,186.21/Arstar,0/radio,188/R,131/Rcov,63\noexpand\pgfPT@espaco(4+)/Rion,760/Ei,1.9/eneg,5.83/eaff,+4/O,+IV/ORoman,3459/Tmelt,3186/TmeltC,5869/Tboil,5596/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+5\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+5/eConfignl,21020/d,25.48/Cp,48/kT,hcp/ls,276.1/lsa,/lsb,445.8/lsc,1.62/lsca,1925/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxvi{Os/CS,190.23/Ar,190.23(3)/Arstar,0/radio,185/R,129/Rcov,63\noexpand\pgfPT@espaco(4+)/Rion,840/Ei,2.2/eneg,103.99/eaff,+4/O,+IV/ORoman,3306/Tmelt,3033/TmeltC,5285/Tboil,5012/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+6\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+6/eConfignl,22590/d,24.7/Cp,87.6/kT,hcp/ls,273.43/lsa,/lsb,431.73/lsc,1.58/lsca,1803/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxvii{Ir/CS,192.22/Ar,192.22/Arstar,0/radio,180/R,122/Rcov,68\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula62.5\noexpand\pgfPT@espaco(4+)/Rion,880/Ei,2.2/eneg,150.91/eaff,+3\noexpand\pgfPT@virgula+4/O,+III\noexpand\pgfPT@virgula+IV/ORoman,2719/Tmelt,2446/TmeltC,4403/Tboil,4130/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+7\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+7/eConfignl,22560/d,25.1/Cp,147/kT,fcc/ls,383.92/lsa,/lsb,/lsc,/lsca,1803/DiscY,7/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxviii{Pt/CS,195.08/Ar,195.08/Arstar,0/radio,177/R,123/Rcov,80\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula62.5\noexpand\pgfPT@espaco(4+)/Rion,870/Ei,2.28/eneg,205.04/eaff,+2\noexpand\pgfPT@virgula+4/O,+II\noexpand\pgfPT@virgula+IV/ORoman,2041.4/Tmelt,1768.3/TmeltC,4098/Tboil,3825/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep17\noexpand\pgfPTeDistsep1/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+9\noexpand\pgfPT@virgula6s+1/eConfign,[Xe]::6s+1\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+9/eConfignl,21450/d,25.86/Cp,71.6/kT,fcc/ls,392.35/lsa,/lsb,/lsc,/lsca,1735/DiscY,13/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxix{Au/CS,196.97/Ar,196.97/Arstar,0/radio,174/R,124/Rcov,137\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula85\noexpand\pgfPT@espaco(3+)/Rion,890.1/Ei,2.54/eneg,222.75/eaff,+1\noexpand\pgfPT@virgula+3/O,+I\noexpand\pgfPT@virgula+III/ORoman,1337.33/Tmelt,1064.18/TmeltC,3243/Tboil,2970/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep1/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+1/eConfign,[Xe]::6s+1\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10/eConfignl,19300/d,25.418/Cp,318/kT,fcc/ls,407.83/lsa,/lsb,/lsc,/lsca,4000\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,100/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxx{Hg/CS,200.59/Ar,200.59/Arstar,0/radio,171/R,133/Rcov,119\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula102\noexpand\pgfPT@espaco(2+)/Rion,1007.1/Ei,2/eneg,0/eaff,+1\noexpand\pgfPT@virgula+2/O,+I\noexpand\pgfPT@virgula+II/ORoman,234.32/Tmelt,-38.83/TmeltC,629.88/Tboil,356.73/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10/eConfignl,13534/d,27.983/Cp,8.3/kT,rho/ls,300.9/lsa,/lsb,/lsc,/lsca,1500\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,liquido/cor}% +\def\pgfPT@data@lxxxi{Tl/CS,204.38/Ar,[204.38\noexpand\pgfPT@virgula204.39]/Arstar,0/radio,156/R,144/Rcov,150\noexpand\pgfPT@espaco(1+)\noexpand\pgfPT@virgula88.5\noexpand\pgfPT@espaco(3+)/Rion,589.4/Ei,1.62/eneg,30.88/eaff,+1\noexpand\pgfPT@virgula+3/O,+I\noexpand\pgfPT@virgula+III/ORoman,577/Tmelt,304/TmeltC,1746/Tboil,1473/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+1/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+1/eConfignl,11850/d,26.32/Cp,46.1/kT,hcp/ls,345.66/lsa,/lsb,552.48/lsc,1.6/lsca,1861/DiscY,21/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxxii{Pb/CS,207.2/Ar,207.2/Arstar,0/radio,154/R,144/Rcov,119\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula77.5\noexpand\pgfPT@espaco(4+)/Rion,715.6/Ei,1.87/eneg,34.42/eaff,+2\noexpand\pgfPT@virgula+4/O,+II\noexpand\pgfPT@virgula+IV/ORoman,600.61/Tmelt,327.46/TmeltC,2022/Tboil,1749/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+2/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+2/eConfignl,11340/d,26.65/Cp,35.3/kT,fcc/ls,495.02/lsa,/lsb,/lsc,/lsca,3800\noexpand\pgfPT@scaletxt{\pgfPTDiscYBCscale}{\noexpand\pgfPT@espaco\noexpand\pgfPT@BClabel}/DiscY,3/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxxiii{Bi/CS,208.98/Ar,208.98/Arstar,0/radio,143/R,151/Rcov,103\noexpand\pgfPT@espaco(3+)/Rion,703/Ei,2.02/eneg,90.92/eaff,+3/O,+III/ORoman,544.7/Tmelt,271.5/TmeltC,1837/Tboil,1564/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+3/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+3/eConfignl,9780/d,25.52/Cp,7.97/kT,mono/ls,667.4/lsa,611.7/lsb,330.4/lsc,0.5/lsca,1400/DiscY,12/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxxiv{Po/CS,[209]/Ar,/Arstar,1/radio,135/R,145/Rcov,223\noexpand\pgfPT@espaco(2-)\noexpand\pgfPT@virgula94\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula67\noexpand\pgfPT@espaco(6+)/Rion,812.1/Ei,2/eneg,136/eaff,\noexpand\pgfPT@pm2\noexpand\pgfPT@virgula+4\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+6/O,\noexpand\pgfPT@pm II\noexpand\pgfPT@virgula+IV\noexpand\pgfPT@virgula+V\noexpand\pgfPT@virgula+VI/ORoman,527/Tmelt,254/TmeltC,1235/Tboil,962/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+4/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+4/eConfignl,9196/d,26.4/Cp,0/kT,sc/ls,335.9/lsa,/lsb,/lsc,/lsca,1898/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxxv{At/CS,[210]/Ar,/Arstar,1/radio,127/R,147/Rcov,62\noexpand\pgfPT@espaco(7+)/Rion,899.003/Ei,2.2/eneg,233.09/eaff,\noexpand\pgfPT@pm1\noexpand\pgfPT@virgula+3\noexpand\pgfPT@virgula+5\noexpand\pgfPT@virgula+7/O,\noexpand\pgfPT@pm I\noexpand\pgfPT@virgula+III\noexpand\pgfPT@virgula+V\noexpand\pgfPT@virgula+VII/ORoman,575/Tmelt,302/TmeltC,503/Tboil,230/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+5/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+5/eConfignl,---/d,---/Cp,1.7/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1940/DiscY,22/DiscC,0/spectra,solido/cor}% +\def\pgfPT@data@lxxxvi{Rn/CS,[222]/Ar,/Arstar,1/radio,120/R,142/Rcov,---/Rion,1037/Ei,2.2/eneg,0/eaff,+2\noexpand\pgfPT@virgula+6/O,+II\noexpand\pgfPT@virgula+VI/ORoman,202/Tmelt,-71/TmeltC,211.5/Tboil,-61.7/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Xe]::4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6s+2\noexpand\pgfPT@virgula6p+6/eConfign,[Xe]::6s+2\noexpand\pgfPT@virgula4f+14\noexpand\pgfPT@virgula5d+10\noexpand\pgfPT@virgula6p+6/eConfignl,9.73/d,20.786/Cp,0.00361/kT,fcc/ls,---/lsa,/lsb,/lsc,/lsca,1899/DiscY,8/DiscC,1/spectra,gasoso/cor}% +\def\pgfPT@data@lxxxvii{Fr/CS,[223]/Ar,/Arstar,1/radio,---/R,---/Rcov,180\noexpand\pgfPT@espaco(1+)/Rion,380/Ei,0.7/eneg,46.89/eaff,+1/O,+I/ORoman,281/Tmelt,8/TmeltC,890/Tboil,620/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep1/eDist,[Rn]::7s+1/eConfign,[Rn]::7s+1/eConfignl,---/d,31.8/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1939/DiscY,5/DiscC,0/spectra,solido/cor}% +\def\pgfPT@data@lxxxviii{Ra/CS,[226]/Ar,/Arstar,1/radio,---/R,201/Rcov,148\noexpand\pgfPT@espaco(2+)/Rion,509.3/Ei,0.9/eneg,9.65/eaff,+2/O,+II/ORoman,973/Tmelt,700/TmeltC,2010/Tboil,1737/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::7s+2/eConfign,[Rn]::7s+2/eConfignl,5500/d,---/Cp,18.6/kT,bcc/ls,514.8/lsa,/lsb,/lsc,/lsca,1898/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@lxxxix{Ac/CS,[227]/Ar,/Arstar,1/radio,---/R,186/Rcov,106.5\noexpand\pgfPT@espaco(3+)/Rion,499/Ei,1.1/eneg,33.77/eaff,+3/O,+III/ORoman,1323/Tmelt,1050/TmeltC,3471/Tboil,3198/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula6d+1/eConfignl,10000/d,27.2/Cp,12/kT,fcc/ls,587/lsa,/lsb,/lsc,/lsca,1902/DiscY,5/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xc{Th/CS,232.04/Ar,232.04/Arstar,1/radio,---/R,175/Rcov,/Rion,587/Ei,1.3/eneg,58.63/eaff,+4/O,+IV/ORoman,2115/Tmelt,1842/TmeltC,5061/Tboil,4788/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Rn]::6d+2\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula6d+2/eConfignl,11700/d,26.23/Cp,54/kT,fcc/ls,508.42/lsa,/lsb,/lsc,/lsca,1829/DiscY,18/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xci{Pa/CS,231.04/Ar,231.04/Arstar,1/radio,---/R,169/Rcov,90\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula78\noexpand\pgfPT@espaco(5+)/Rion,568/Ei,1.5/eneg,53.03/eaff,+5/O,+V/ORoman,1841/Tmelt,1568/TmeltC,4273/Tboil,4000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep20\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+2\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+2\noexpand\pgfPT@virgula6d+1/eConfignl,15370/d,---/Cp,47/kT,tetr/ls,392.5/lsa,/lsb,323.8/lsc,0.82/lsca,1913/DiscY,10/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xcii{U/CS,238.03/Ar,238.03/Arstar,1/radio,---/R,170/Rcov,76\noexpand\pgfPT@espaco(5+)/Rion,597.6/Ei,1.38/eneg,30.39/eaff,+4\noexpand\pgfPT@virgula+6/O,+IV\noexpand\pgfPT@virgula+VI/ORoman,1405.3/Tmelt,1132.2/TmeltC,4404/Tboil,4131/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep21\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+3\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+3\noexpand\pgfPT@virgula6d+1/eConfignl,19100/d,27.665/Cp,27.5/kT,bcort/ls,285.37/lsa,586.95/lsb,495.48/lsc,1.74/lsca,1789/DiscY,8/DiscC,1/spectra,solido/cor}% +\def\pgfPT@data@xciii{Np/CS,[237]/Ar,/Arstar,1/radio,---/R,171/Rcov,110\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula87\noexpand\pgfPT@espaco(4+)\noexpand\pgfPT@virgula71\noexpand\pgfPT@espaco(7+)/Rion,604.5/Ei,1.36/eneg,45.85/eaff,+5/O,+V/ORoman,917/Tmelt,644/TmeltC,4273/Tboil,4000/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep22\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+4\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+4\noexpand\pgfPT@virgula6d+1/eConfignl,20200/d,29.46/Cp,6.3/kT,bcort/ls,666.3/lsa,472.3/lsb,488.7/lsc,0.73/lsca,1940/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xciv{Pu/CS,[244]/Ar,/Arstar,1/radio,---/R,172/Rcov,100\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula74\noexpand\pgfPT@espaco(5+)\noexpand\pgfPT@virgula71\noexpand\pgfPT@espaco(6+)/Rion,584.7/Ei,1.28/eneg,0/eaff,+4/O,+IV/ORoman,912.5/Tmelt,639.4/TmeltC,3501/Tboil,3228/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep24\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+6\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+6/eConfignl,19816/d,35.5/Cp,6.74/kT,mono/ls,618.3/lsa,482.2/lsb,1096.3/lsc,1.77/lsca,1940/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xcv{Am/CS,[243]/Ar,/Arstar,1/radio,---/R,166/Rcov,126\noexpand\pgfPT@espaco(2+)\noexpand\pgfPT@virgula97.5\noexpand\pgfPT@espaco(3+)/Rion,578/Ei,1.13/eneg,9.93/eaff,+3/O,+III/ORoman,1449/Tmelt,1176/TmeltC,2880/Tboil,2607/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+7\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+7/eConfignl,12000/d,62.7/Cp,10/kT,hex/ls,346.81/lsa,/lsb,1124.1/lsc,3.24/lsca,1944/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xcvi{Cm/CS,[247]/Ar,/Arstar,1/radio,---/R,166/Rcov,97\noexpand\pgfPT@espaco(3+)/Rion,581/Ei,1.28/eneg,27.17/eaff,+3/O,+III/ORoman,1613/Tmelt,1340/TmeltC,3383/Tboil,3110/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep25\noexpand\pgfPTeDistsep9\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+7\noexpand\pgfPT@virgula6d+1\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+7\noexpand\pgfPT@virgula6d+1/eConfignl,13510/d,---/Cp,---/kT,hex/ls,349.6/lsa,/lsb,1133.1/lsc,3.24/lsca,1944/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xcvii{Bk/CS,[247]/Ar,/Arstar,1/radio,---/R,---/Rcov,96\noexpand\pgfPT@espaco(3+)/Rion,601/Ei,1.3/eneg,0/eaff,+3/O,+III/ORoman,1323/Tmelt,1050/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep27\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+9\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+9/eConfignl,14780/d,---/Cp,10/kT,hex/ls,341.6/lsa,/lsb,1106.9/lsc,3.24/lsca,1949/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xcviii{Cf/CS,[251]/Ar,/Arstar,1/radio,---/R,---/Rcov,95\noexpand\pgfPT@espaco(3+)\noexpand\pgfPT@virgula82.1\noexpand\pgfPT@espaco(4+)/Rion,608/Ei,1.3/eneg,0/eaff,+3/O,+III/ORoman,1173/Tmelt,900/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep28\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+10\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+10/eConfignl,15100/d,---/Cp,---/kT,hex/ls,338/lsa,/lsb,1102.5/lsc,3.26/lsca,1950/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@xcix{Es/CS,[252]/Ar,/Arstar,1/radio,---/R,---/Rcov,83.5\noexpand\pgfPT@espaco(3+)/Rion,619/Ei,1.3/eneg,0/eaff,+3/O,+III/ORoman,1133/Tmelt,860/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep29\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+11\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+11/eConfignl,8840/d,---/Cp,---/kT,fcc/ls,575/lsa,/lsb,/lsc,/lsca,1952/DiscY,22/DiscC,1/spectra,sintetico/cor}% +\def\pgfPT@data@c{Fm/CS,[257]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,627/Ei,1.3/eneg,33.96/eaff,+3/O,+III/ORoman,1800/Tmelt,1527/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep30\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+12\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+12/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1952/DiscY,22/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@ci{Md/CS,[258]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,635/Ei,1.3/eneg,93.91/eaff,+3/O,+III/ORoman,1100/Tmelt,827/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep31\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+13\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+13/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1955/DiscY,22/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cii{No/CS,[259]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,642/Ei,1.3/eneg,0/eaff,+2/O,+II/ORoman,1100/Tmelt,827/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1966/DiscY,24/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@ciii{Lr/CS,[266]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,470/Ei,1.3/eneg,0/eaff,+3/O,+III/ORoman,1900/Tmelt,1627/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep3/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+1/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula7p+1/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1961/DiscY,22/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@civ{Rf/CS,[267]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-580/Ei,---/eneg,---/eaff,+4/O,+IV/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep10\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+2\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+2/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1969/DiscY,16/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cv{Db/CS,[268]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-665/Ei,---/eneg,---/eaff,+5/O,+V/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep11\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+3\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+3/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1970/DiscY,16/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cvi{Sg/CS,[269]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-757/Ei,---/eneg,---/eaff,+6/O,+VI/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep12\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+4\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+4/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1974/DiscY,22/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cvii{Bh/CS,[270]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-740/Ei,---/eneg,---/eaff,+7/O,+VII/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep13\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+5\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+5/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1981/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cviii{Hs/CS,[270]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-730/Ei,---/eneg,---/eaff,+8/O,+VIII/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep14\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+6\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+6/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1984/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cix{Mt/CS,[278]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-800/Ei,---/eneg,---/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep15\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+7\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+7/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1982/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cx{Ds/CS,[281]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-960/Ei,---/eneg,---/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep16\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+8\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+8/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1994/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxi{Rg/CS,[282]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-1020/Ei,---/eneg,151/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep17\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+9\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+9/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1994/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxii{Cn/CS,[285]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-1155/Ei,---/eneg,---/eaff,+2/O,+II/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep2/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1996/DiscY,8/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxiii{Nh/CS,[286]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-707.2/Ei,---/eneg,66.6/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep3/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+1/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+1/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2004/DiscY,16/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxiv{Fl/CS,[289]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-832.2/Ei,---/eneg,---/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep4/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+2/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+2/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,1998/DiscY,15/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxv{Mc/CS,[290]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-538.3/Ei,---/eneg,35.3/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep5/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+3/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+3/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2003/DiscY,16/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxvi{Lv/CS,[293]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-663.9/Ei,---/eneg,74.9/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep6/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+4/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+4/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2000/DiscY,15/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxvii{Ts/CS,[294]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-736.9/Ei,---/eneg,165.9/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep7/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+5/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+5/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2009/DiscY,100/DiscC,0/spectra,sintetico/cor}% +\def\pgfPT@data@cxviii{Og/CS,[294]/Ar,/Arstar,1/radio,---/R,---/Rcov,---/Rion,-860.1/Ei,---/eneg,5.4/eaff,---/O,---/ORoman,---/Tmelt,---/TmeltC,---/Tboil,---/TboilC,2\noexpand\pgfPTeDistsep8\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep32\noexpand\pgfPTeDistsep18\noexpand\pgfPTeDistsep8/eDist,[Rn]::5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7s+2\noexpand\pgfPT@virgula7p+6/eConfign,[Rn]::7s+2\noexpand\pgfPT@virgula5f+14\noexpand\pgfPT@virgula6d+10\noexpand\pgfPT@virgula7p+6/eConfignl,---/d,---/Cp,---/kT,---/ls,---/lsa,/lsb,/lsc,/lsca,2002/DiscY,16/DiscC,0/spectra,sintetico/cor}% \endinput diff --git a/graphics/pgf/contrib/pgf-periodictable/pgfPT.drawing.keys.tex b/graphics/pgf/contrib/pgf-periodictable/pgfPT.drawing.keys.tex index 8c09f620e1..140577bcce 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgfPT.drawing.keys.tex +++ b/graphics/pgf/contrib/pgf-periodictable/pgfPT.drawing.keys.tex @@ -189,6 +189,12 @@ group label color/.default=blue!50!black,% label LaAc font/.get=\pgfPTlabLaAcfont,% label LaAc font/.store in=\pgfPTlabLaAcfont,% label LaAc font/.default=\footnotesize\itshape,% +group numbers/.get=\pgfPTgrnum,% new in v2.1.1 +group numbers/.store in=\pgfPTgrnum,% +group numbers/.default=arabic,% +Roman label color/.get=\pgfPTRomanlabgrcolor,% new in v2.1.1 +Roman label color/.store in=\pgfPTRomanlabgrcolor,% +Roman label color/.default=blue!70!white,% LaAc/.code=\pgfPT@LaAcstyle{#1},% LaAc/.default={s=true,f=\footnotesize\itshape},% per/.code=\pgfPT@perstyle{#1},% @@ -199,7 +205,30 @@ per+gr/.code=\pgfPT@pergrstyle{#1},% per+gr/.default={pc=red!50!black,gc=blue!50!black,f=\small\bfseries}% }% % setting keys with default values --------------------------------------------------------------- -\pgfkeys{/pgfPerTable/.cd,label font,period label color,group label color,label LaAc font}% +\pgfkeys{/pgfPerTable/.cd,label font,period label color,group label color,label LaAc font,group numbers,Roman label color}% +% Groups in 'old' Roman numerals +% CAS (USA) ; old IUPAC (Europe) -> +\newif\ifpgfPT@grRoman@CAS\newif\ifpgfPT@grRoman\newif\ifpgfPT@grarabic% +\def\pgfPT@gr@numbers#1{\edef\@pgfPT@grnum@atual{#1}\relax% +\edef\@pgfPT@grnum@CAS{CAS}\edef\@pgfPT@grnum@IUPAC{IUPAC}% +\edef\@pgfPT@grnum@CASarabic{CAS*}\edef\@pgfPT@grnum@IUPACarabic{IUPAC*}% +\pgfPT@grRoman@CASfalse\pgfPT@grRomanfalse\pgfPT@grarabicfalse% +\ifx\@pgfPT@grnum@atual\@pgfPT@grnum@CAS\relax\pgfPT@grRoman@CAStrue\pgfPT@grRomantrue\else% +\ifx\@pgfPT@grnum@atual\@pgfPT@grnum@IUPAC\relax\pgfPT@grRomantrue\else% +\ifx\@pgfPT@grnum@atual\@pgfPT@grnum@CASarabic\relax\pgfPT@grRoman@CAStrue\pgfPT@grRomantrue\pgfPT@grarabictrue\else% +\ifx\@pgfPT@grnum@atual\@pgfPT@grnum@IUPACarabic\relax\pgfPT@grRomantrue\pgfPT@grarabictrue\fi\fi\fi\fi% +}% +\def\pgfPT@gr@Roman#1{\edef\@pgfPT@Z@atual{#1}\relax% +\ifpgfPT@grRoman@CAS% CAS +\ifcase\@pgfPT@Z@atual\relax\or I\hspace{.1ex}A\or II\hspace{.1ex}A\or III\hspace{.1ex}B\or IV\hspace{.1ex}B\or V\hspace{.1ex}B\or VI\hspace{.1ex}B\or VII\hspace{.1ex}B\or% +\tikz{\path (0,0);\draw[line width=.2ex] (.1*\pgfPTcellwd,-.55ex) -- (.1*\pgfPTcellwd,0) -- (1.2*\pgfPTcellwd,0);}\or VIII\hspace{.1ex}B\or\tikz[xscale=-1]{\path (0,0);\draw[line width=.2ex] (.1*\pgfPTcellwd,-.55ex) -- (.1*\pgfPTcellwd,0) -- (1.2*\pgfPTcellwd,0);}% +\or I\hspace{.1ex}B\or II\hspace{.1ex}B\or III\hspace{.1ex}A\or IV\hspace{.1ex}A\or V\hspace{.1ex}A\or VI\hspace{.1ex}A\or VII\hspace{.1ex}A\or VIII\hspace{.1ex}A\fi% +\else% old IUPAC +\ifcase\@pgfPT@Z@atual\relax\or I\hspace{.1ex}A\or II\hspace{.1ex}A\or III\hspace{.1ex}A\or IV\hspace{.1ex}A\or V\hspace{.1ex}A\or VI\hspace{.1ex}A\or VII\hspace{.1ex}A\or +\tikz{\path (0,0);\draw[line width=.2ex] (.1*\pgfPTcellwd,-.55ex) -- (.1*\pgfPTcellwd,0) -- (1.2*\pgfPTcellwd,0);}\or VIII\hspace{.1ex}A\or\tikz[xscale=-1]{\path (0,0);\draw[line width=.2ex] (.1*\pgfPTcellwd,-.55ex) -- (.1*\pgfPTcellwd,0) -- (1.2*\pgfPTcellwd,0);}% +\or I\hspace{.1ex}B\or II\hspace{.1ex}B\or III\hspace{.1ex}B\or IV\hspace{.1ex}B\or V\hspace{.1ex}B\or VI\hspace{.1ex}B\or VII\hspace{.1ex}B\or0\fi% +\fi% +}% % end !! PGF keys: labels of periods and groups ------------------------------------------------ % % defining PGF keys: the cells of the periodic table to be drawn ------------------------------- @@ -347,7 +376,7 @@ name color/.store in=\pgfPTnamecolor,% name color/.default=black,% name font/.get=\pgfPTnamefont,% name font/.store in=\pgfPTnamefont,% -name font/.default=\fontseries{l}\selectfont\tiny,% +name font/.default=\tiny,% \fontseries{l}\selectfont (removed @ v2.1.2) name align/.get=\pgfPTnamealign,% new v1.0.0 name align/.store in=\pgfPTnamealign,% left|center|right name align/.default=center% @@ -444,16 +473,18 @@ eaff font/.default=\tiny\bfseries% % setting keys with default values ----------------------------------------------------------------- \pgfkeys{/pgfPerTable/.cd,eaff color,eaff font}% % end !! +\newif\ifpgfPTORoman% new in v2.1.1 \pgfkeys{/pgfPerTable/.cd,% O color/.get=\pgfPTOcolor,% O color/.store in=\pgfPTOcolor,% O color/.default=black,% O font/.get=\pgfPTOfont,% O font/.store in=\pgfPTOfont,% -O font/.default=\tiny\bfseries% +O font/.default=\tiny\bfseries,% +O Roman/.is if=pgfPTORoman% new in v2.1.1 }% % setting keys with default values ----------------------------------------------------------------- -\pgfkeys{/pgfPerTable/.cd,O color,O font}% +\pgfkeys{/pgfPerTable/.cd,O color,O font,O Roman=false}% % end !! \pgfkeys{/pgfPerTable/.cd,% Tmelt color/.get=\pgfPTTmeltcolor,% diff --git a/graphics/pgf/contrib/pgf-periodictable/pgfPT.names.tex b/graphics/pgf/contrib/pgf-periodictable/pgfPT.names.tex index 2c321dcd34..d4135f61b9 100644 --- a/graphics/pgf/contrib/pgf-periodictable/pgfPT.names.tex +++ b/graphics/pgf/contrib/pgf-periodictable/pgfPT.names.tex @@ -27,7 +27,7 @@ \def\pgfPT@nomes@iii{l\'{i}tio/pt,lithium/en,lithium/fr,Lithium/de,litio/it,litio/es,l\'{i}tio/br,\pgfPT@user@CSname@Li/user}% \def\pgfPT@nomes@iv{ber\'{i}lio/pt,beryllium/en,b\'{e}ryllium/fr,Beryllium/de,berillio/it,berilio/es,ber\'{i}lio/br,\pgfPT@user@CSname@Be/user}% \def\pgfPT@nomes@v{boro/pt,boron/en,bore/fr,Bor/de,boro/it,boro/es,boro/br,\pgfPT@user@CSname@B/user}% -\def\pgfPT@nomes@vi{carbono/pt,carbon/en,carbone/fr,Kohlenstoff/de,carbonio/it,carb\'{o}n/es,carbono/br,\pgfPT@user@CSname@C/user}% +\def\pgfPT@nomes@vi{carbono/pt,carbon/en,carbone/fr,Kohlenstoff/de,carbonio/it,carbono/es,carbono/br,\pgfPT@user@CSname@C/user}% \def\pgfPT@nomes@vii{azoto/pt,nitrogen/en,azote/fr,Stickstoff/de,azoto/it,nitr\'{o}geno/es,nitrog\^{e}nio/br,\pgfPT@user@CSname@N/user}% \def\pgfPT@nomes@viii{oxig\'{e}nio/pt,oxygen/en,oxyg\`{e}ne/fr,Sauerstoff/de,ossigeno/it,ox\'{i}geno/es,oxig\^{e}nio/br,\pgfPT@user@CSname@O/user}% \def\pgfPT@nomes@ix{fl\'{u}or/pt,fluorine/en,fluor/fr,Fluor/de,fluoro/it,fl\'{u}or/es,fl\'{u}or/br,\pgfPT@user@CSname@F/user}% @@ -47,7 +47,7 @@ \def\pgfPT@nomes@xxiii{van\'{a}dio/pt,vanadium/en,vanadium/fr,Vanadium/de,vanadio/it,vanadio/es,van\'{a}dio/br,\pgfPT@user@CSname@V/user}% \def\pgfPT@nomes@xxiv{cr\'{o}mio/pt,chromium/en,chrome/fr,Chrom/de,cromo/it,cromo/es,cr\^{o}mio/br,\pgfPT@user@CSname@Cr/user}% \def\pgfPT@nomes@xxv{mangan\'{e}sio/pt,manganese/en,mangan\`{e}se/fr,Mangan/de,manganese/it,manganeso/es,mangan\^{e}s/br,\pgfPT@user@CSname@Mn/user}% -\def\pgfPT@nomes@xxvi{ferro/pt,iron/en,fer/fr,Eisen/de,ferro/it,planchar/es,ferro/br,\pgfPT@user@CSname@Fe/user}% +\def\pgfPT@nomes@xxvi{ferro/pt,iron/en,fer/fr,Eisen/de,ferro/it,hierro/es,ferro/br,\pgfPT@user@CSname@Fe/user}% \def\pgfPT@nomes@xxvii{cobalto/pt,cobalt/en,cobalt/fr,Kobalt/de,cobalto/it,cobalto/es,cobalto/br,\pgfPT@user@CSname@Co/user}% \def\pgfPT@nomes@xxviii{n\'{i}quel/pt,nickel/en,nickel/fr,Nickel/de,nichel/it,n\'{i}quel/es,n\'{i}quel/br,\pgfPT@user@CSname@Ni/user}% \def\pgfPT@nomes@xxix{cobre/pt,copper/en,cuivre/fr,Kupfer/de,rame/it,cobre/es,cobre/br,\pgfPT@user@CSname@Cu/user}% @@ -82,7 +82,7 @@ \def\pgfPT@nomes@lviii{c\'{e}rio/pt,cerium/en,c\'{e}rium/fr,Cer/de,cerio/it,cerio/es,c\'{e}rio/br,\pgfPT@user@CSname@Ce/user}% \def\pgfPT@nomes@lix{praseod\'{i}mio/pt,praseodymium/en,pras\'{e}odyme/fr,Praseodym/de,praseodimio/it,praseodimio/es,praseod\'{i}mio/br,\pgfPT@user@CSname@Pr/user}% \def\pgfPT@nomes@lx{neod\'{i}mio/pt,neodymium/en,n\'{e}odyme/fr,Neodym/de,neodimio/it,neodimio/es,neod\'{i}mio/br,\pgfPT@user@CSname@Nd/user}% -\def\pgfPT@nomes@lxi{prom\'{e}cio/pt,promethium/en,prom\'{e}thium/fr,Promethium/de,prometeo/it,prometeo/es,prom\'{e}cio/br,\pgfPT@user@CSname@Pm/user}% +\def\pgfPT@nomes@lxi{prom\'{e}cio/pt,promethium/en,prom\'{e}thium/fr,Promethium/de,prometeo/it,prometio/es,prom\'{e}cio/br,\pgfPT@user@CSname@Pm/user}% \def\pgfPT@nomes@lxii{sam\'{a}rio/pt,samarium/en,samarium/fr,Samarium/de,samario/it,samario/es,sam\'{a}rio/br,\pgfPT@user@CSname@Sm/user}% \def\pgfPT@nomes@lxiii{eur\'{o}pio/pt,europium/en,europium/fr,Europium/de,europium/it,europio/es,eur\'{o}pio/br,\pgfPT@user@CSname@Eu/user}% \def\pgfPT@nomes@lxiv{gadol\'{i}nio/pt,gadolinium/en,gadolinium/fr,Gadolinium/de,gadolinio/it,gadolinio/es,gadol\'{i}nio/br,\pgfPT@user@CSname@Gd/user}% @@ -124,20 +124,20 @@ \def\pgfPT@nomes@c{f\'{e}rmio/pt,fermium/en,fermium/fr,Rermium/de,fermium/it,fermio/es,f\'{e}rmio/br,\pgfPT@user@CSname@Fm/user}% \def\pgfPT@nomes@ci{mendel\'{e}vio/pt,mendelevium/en,mendelevium/fr,Mendelevium/de,mendelevio/it,mendelevio/es,mendel\'{e}vio/br,\pgfPT@user@CSname@Md/user}% \def\pgfPT@nomes@cii{nob\'{e}lio/pt,nobelium/en,nobelium/fr,Nobelium/de,nobelium/it,nobelio/es,nob\'{e}lio/br,\pgfPT@user@CSname@No/user}% -\def\pgfPT@nomes@ciii{laur\^{e}ncio/pt,lawrencium/en,lawrencium/fr,Lawrencium/de,laurenzio/it,lawrencium/es,laur\^{e}ncio/br,\pgfPT@user@CSname@Lr/user}% +\def\pgfPT@nomes@ciii{laur\^{e}ncio/pt,lawrencium/en,lawrencium/fr,Lawrencium/de,laurenzio/it,lawrencio/es,laur\^{e}ncio/br,\pgfPT@user@CSname@Lr/user}% \def\pgfPT@nomes@civ{rutherf\'{o}rdio/pt,rutherfordium/en,rutherfordium/fr,Rutherfordium/de,rutherfordium/it,rutherfordio/es,rutherf\'{o}rdio/br,\pgfPT@user@CSname@Rf/user}% -\def\pgfPT@nomes@cv{d\'{u}bnio/pt,dubnium/en,dubnium/fr,Dubnium/de,dubnio/it,dubnium/es,d\'{u}bnio/br,\pgfPT@user@CSname@Db/user}% +\def\pgfPT@nomes@cv{d\'{u}bnio/pt,dubnium/en,dubnium/fr,Dubnium/de,dubnio/it,dubnio/es,d\'{u}bnio/br,\pgfPT@user@CSname@Db/user}% \def\pgfPT@nomes@cvi{seab\'{o}rgio/pt,seaborgium/en,seaborgium/fr,Seaborgium/de,seaborgio/it,seaborgio/es,seab\'{o}rgio/br,\pgfPT@user@CSname@Sg/user}% -\def\pgfPT@nomes@cvii{b\'{o}rio/pt,bohrium/en,bohrium/fr,Bohrium/de,bohrio/it,bohrium/es,b\'{o}hrio/br,\pgfPT@user@CSname@Bh/user}% -\def\pgfPT@nomes@cviii{h\'{a}ssio/pt,hassium/en,hassium/fr,Hassium/de,hassio/it,hassium/es,h\'{a}ssio/br,\pgfPT@user@CSname@Hs/user}% +\def\pgfPT@nomes@cvii{b\'{o}rio/pt,bohrium/en,bohrium/fr,Bohrium/de,bohrio/it,bohrio/es,b\'{o}hrio/br,\pgfPT@user@CSname@Bh/user}% +\def\pgfPT@nomes@cviii{h\'{a}ssio/pt,hassium/en,hassium/fr,Hassium/de,hassio/it,hasio/es,h\'{a}ssio/br,\pgfPT@user@CSname@Hs/user}% \def\pgfPT@nomes@cix{meitn\'{e}rio/pt,meitnerium/en,meitnerium/fr,Meitnerium/de,meitnerio/it,meitnerio/es,meitn\'{e}rio/br,\pgfPT@user@CSname@Mt/user}% -\def\pgfPT@nomes@cx{darmst\'{a}dio/pt,darmstadtium/en,darmstadtium/fr,Darmstadtium/de,darmstadtium/it,darmstadtium/es,darmst\'{a}dtio/br,\pgfPT@user@CSname@Ds/user}% +\def\pgfPT@nomes@cx{darmst\'{a}dio/pt,darmstadtium/en,darmstadtium/fr,Darmstadtium/de,darmstadtium/it,darmstatio/es,darmst\'{a}dtio/br,\pgfPT@user@CSname@Ds/user}% \def\pgfPT@nomes@cxi{roentg\'{e}nio/pt,roentgenium/en,roentgenium/fr,R\"{o}ntgenium/de,roentgenio/it,roentgenio/es,roentg\^{e}nio/br,\pgfPT@user@CSname@Rg/user}% \def\pgfPT@nomes@cxii{copern\'{i}cio/pt,copernicium/en,copernicium/fr,Copernicium/de,copernicium/it,copernicio/es,copern\'{i}cio/br,\pgfPT@user@CSname@Cn/user}% \def\pgfPT@nomes@cxiii{nip\'{o}nio/pt,nihonium/en,nihonium/fr,Nihonium/de,nihonium/it,nihonio/es,nip\^{o}nio/br,\pgfPT@user@CSname@Nh/user}% \def\pgfPT@nomes@cxiv{fler\'{o}vio/pt,flerovium/en,flerovium/fr,Flerovium/de,flerovio/it,flerovio/es,fler\'{o}vio/br,\pgfPT@user@CSname@Fl/user}% \def\pgfPT@nomes@cxv{mosc\'{o}vio/pt,moscovium/en,moscovium/fr,Moscovium/de,moscovium/it,moscovio/es,mosc\'{o}vio/br,\pgfPT@user@CSname@Mc/user}% -\def\pgfPT@nomes@cxvi{liverm\'{o}rio/pt,livermorium/en,livermorium/fr,Livermorium/de,livermorio/it,livermorium/es,liverm\'{o}rio/br,\pgfPT@user@CSname@Lv/user}% +\def\pgfPT@nomes@cxvi{liverm\'{o}rio/pt,livermorium/en,livermorium/fr,Livermorium/de,livermorio/it,livermorio/es,liverm\'{o}rio/br,\pgfPT@user@CSname@Lv/user}% \def\pgfPT@nomes@cxvii{tenesso/pt,tennessine/en,tennessine/fr,Tenness/de,tennessine/it,teneso/es,tenesso/br,\pgfPT@user@CSname@Ts/user}% \def\pgfPT@nomes@cxviii{ogan\'{e}sson/pt,oganesson/en,oganesson/fr,Oganesson/de,oganesson/it,oganes\'{o}n/es,oganess\^{o}nio/br,\pgfPT@user@CSname@Og/user}% \endinput% diff --git a/graphics/pgf/contrib/pgf-spectra/README b/graphics/pgf/contrib/pgf-spectra/README index 3f4fef79e2..12c4c6b8ad 100644 --- a/graphics/pgf/contrib/pgf-spectra/README +++ b/graphics/pgf/contrib/pgf-spectra/README @@ -1,4 +1,4 @@ -This is pgf-spectra, version 3.0.1 (27/04/2023). +This is pgf-spectra, version 3.0.1a (07/07/2024). This package provides the \pgfspectra[<options>] command which draws continuous and emission or absorption spectra for 98 elements and their ions. It was developed mainly for the writing of my own documentation and exams sheets supporting directly PDF output format. @@ -7,7 +7,7 @@ It also allows the user to draw a spectrum with their own personal data. The lines data extends from Extreme UV to Near IR (from 10 to 4000 nanometers). It is possible to redshift the lines of a spectrum, by directly entering the redshift value or the velocity and the angle to compute the redshift value. Spectral lines data can be presented in a table or exported to a file. -This package also provides color conversion (correlated color temperature), shadings for use with TikZ and/or PGFPLOTS, color maps for use with PGFPLOTS, +This package also provides color conversion (correlated color temperature), shadings for use with TikZ and/or PGFPLOTS, color maps for use with PGFPLOTS, displaying the spectral lines in a table and exporting the lines data files. ____________________________________________________________ @@ -18,13 +18,24 @@ ____________________________________________________________ ** Licence: released under the LaTeX Project Public License v1.3 or later, see http://www.latex-project.org/lppl.txt ____________________________________________________________ +*** v3.0.1a (07/07/2024) *** +Removed lines data outside the range 10nm - 4000nm (H, He, Be, C, Si, Kr, Sn, I) in LSE data file, which generate a package warning, e.g. +«Package pgf-spectra Warning: invalid wavelength (4051.1602nm). The wavelength must be lesser or equal to 4000nm (NIR)... on input line 27». +Fixed chemical symbol label width producing incorrect alignment on consecutive lines for the spectrum of some elements, e.g. +------------------------------------------------------- +\pgfspectraStyle[axis,begin=400,end=700,axis step=20,axis ticks=9,axis color=lightgray, axis font color=black,label,width=.88\textwidth,height=0.7cm] +\noindent\pgfspectra[element=Cl] + +\noindent\pgfspectra[element=Rn] +------------------------------------------------------- + *** v3.0.1 (27/04/2023) *** -Fixed a small bug dealing with the 'axis label'/'axis label text' background color, which occurred when setting a visible background with the 'back' key, e.g., +Fixed a small bug dealing with the 'axis label'/'axis label text' background color, which occurred when setting a visible background with the 'back' key, e.g., \pgfspectra[element=H,axis label text={wavenumber in nanometer},back=visible50] *** v3.0.0 (25/04/2023) *** -In the \pgfspectra command, syntax for the key 'lines' has been updated: it is now possible to specify a continuous range using 'start wavelength to end +In the \pgfspectra command, syntax for the key 'lines' has been updated: it is now possible to specify a continuous range using 'start wavelength to end wavelength', for instance, 'lines={380 to 500}' or 'lines={380 to 500,633}' or 'lines={633,555,380 to 500}'. New keys for \pgfspectra: - axis label @@ -45,12 +56,12 @@ ____________________________________________________________ Previous versions *** v2.2.0 (21/02/2023) *** -LSE data renormalized to lower values within TeX capabilities. This prevents 'Dimension too large' errors and subsequent errors in spectrum drawing when +LSE data renormalized to lower values within TeX capabilities. This prevents 'Dimension too large' errors and subsequent errors in spectrum drawing when using the 'relative intensity' key. -Added maximum intensities in IR, visible an UV ranges for both data sources (NIST and LSE). Now, when using the 'relative intensity' key, the interval of -wavelengths is detected and the respective maximum intensity is used. For example, if the spectrum is within the visible range, say between 400 and 700 -nanometers, the maximum visible intensity will be used. The same is true for ranges only in IR or UV ranges. But, if the spectrum to be drawn is in more -than one region - for example, from 300 to 1000 or from 400 to 1000 or from 300 to 700 nanometers - the maximum intensity that will be used is defined +Added maximum intensities in IR, visible an UV ranges for both data sources (NIST and LSE). Now, when using the 'relative intensity' key, the interval of +wavelengths is detected and the respective maximum intensity is used. For example, if the spectrum is within the visible range, say between 400 and 700 +nanometers, the maximum visible intensity will be used. The same is true for ranges only in IR or UV ranges. But, if the spectrum to be drawn is in more +than one region - for example, from 300 to 1000 or from 400 to 1000 or from 300 to 700 nanometers - the maximum intensity that will be used is defined as the maximum intensity of all data. Fixed some typos in the manual. diff --git a/graphics/pgf/contrib/pgf-spectra/pgf-spectra.data.LSE.tex b/graphics/pgf/contrib/pgf-spectra/pgf-spectra.data.LSE.tex index 53303b35f6..9bb4004bfb 100644 --- a/graphics/pgf/contrib/pgf-spectra/pgf-spectra.data.LSE.tex +++ b/graphics/pgf/contrib/pgf-spectra/pgf-spectra.data.LSE.tex @@ -31,12 +31,12 @@ % (see Es, Bk...) % \protected\def\pgfspectra@elt@data#1{\relax\ignorespaces\global\pgfspectra@datanotfoundtrue\relax% -\pgfspectra@elt@search{#1}{H}{[92.6226 15 0],[93.0748 20 0],[93.7803 30 0],[94.9743 50 0],[97.2537 100 0],[102.5722 300 0],[121.5668 1000 0],[121.5674 500 0],[383.5384 5 0],[388.9049 6 0],[397.0072 8 0],[410.174 15 0],[434.047 30 0],[486.133 80 0],[656.272 120 0],[656.2852 180 0],[954.597 5 0],[1004.94 7 0],[1093.81 12 0],[1281.81 20 0],[1875.1 40 0],[2165.5301 5 0],[2625.15 8 0],[4051.1602 15 0],[4652.5102 4 0],[7457.8 6 0],[12368.5 3 0]}{ALLx1000x1000x0x0x0x0x0}{UVx1000x1000x0x0x0x0x0}{VISx180x180x0x0x0x0x0}{IVx40x40x0x0x0x0x0}% -\pgfspectra@elt@search{#1}{He}{[23.1454 15 1],[23.2584 20 1],[23.4347 30 1],[23.7331 50 1],[24.3027 100 1],[25.6317 300 1],[30.378 1000 1],[30.3786 500 1],[32.0293 10 0],[50.55 2 0],[50.5684 3 0],[50.5912 4 0],[50.62 5 0],[50.657 7 0],[50.7058 10 0],[50.7718 15 0],[50.8643 20 0],[50.9998 25 0],[51.2098 35 0],[51.5616 50 0],[52.2213 100 0],[53.703 400 0],[58.4334 1000 0],[59.1412 50 0],[95.87 5 1],[97.211 6 1],[99.236 8 1],[102.527 15 1],[108.494 30 1],[121.509 35 1],[121.517 50 1],[164.034 120 1],[164.047 180 1],[238.54 7 1],[251.12 9 1],[257.76 50 0],[272.319 1 0],[273.33 12 1],[276.38 2 0],[281.82 10 0],[282.908 4 0],[294.511 10 0],[301.37 40 0],[318.774 20 0],[320.296 3 1],[320.31 15 1],[335.455 1 0],[344.759 2 0],[358.727 1 0],[361.364 3 0],[363.423 2 0],[370.5 3 0],[373.286 1 0],[381.9607 10 0],[381.976 1 0],[388.865 500 0],[396.4729 20 0],[400.927 1 0],[402.6191 50 0],[402.636 5 0],[412.082 12 0],[412.099 2 0],[414.376 3 0],[438.7929 10 0],[443.755 3 0],[447.1479 200 0],[447.168 25 0],[468.54 6 1],[468.57 30 1],[471.3146 30 0],[471.338 4 0],[492.1931 20 0],[501.5678 100 0],[504.774 10 0],[541.152 5 1],[587.562 500 0],[587.597 100 0],[656.01 8 1],[667.815 100 0],[686.748 3 0],[706.519 200 0],[706.571 30 0],[728.135 50 0],[781.615 1 0],[836.169 2 0],[906.327 2 0],[921.034 2 0],[946.361 10 0],[951.66 4 0],[952.617 3 0],[952.927 1 0],[960.342 1 0],[970.26 3 0],[1002.773 6 0],[1003.116 2 0],[1012.36 15 1],[1013.85 1 0],[1031.123 10 0],[1031.154 2 0],[1066.765 3 0],[1082.909 300 0],[1083.025 1000 0],[1083.034 2000 0],[1091.305 9 0],[1091.71 3 0],[1162.64 4 1],[1196.912 30 0],[1252.752 20 0],[1278.499 50 0],[1279.057 20 0],[1284.596 7 0],[1296.845 10 0],[1298.489 2 0],[1508.364 12 0],[1700.2471 200 0],[1855.5551 1 0],[1863.6801 6 1],[1868.534 500 0],[1869.723 200 0],[1908.9381 100 0],[1954.308 20 0],[2058.1301 1000 0],[2112.007 80 0],[2112.143 10 0],[2113.2029 20 0],[3090.85 3 1],[4047.8898 4 0]}{ALLx2000x2000x1000x0x0x0x0}{UVx1000x1000x1000x0x0x0x0}{VISx500x500x30x0x0x0x0}{IVx2000x2000x15x0x0x0x0}% +\pgfspectra@elt@search{#1}{H}{[92.6226 15 0],[93.0748 20 0],[93.7803 30 0],[94.9743 50 0],[97.2537 100 0],[102.5722 300 0],[121.5668 1000 0],[121.5674 500 0],[383.5384 5 0],[388.9049 6 0],[397.0072 8 0],[410.174 15 0],[434.047 30 0],[486.133 80 0],[656.272 120 0],[656.2852 180 0],[954.597 5 0],[1004.94 7 0],[1093.81 12 0],[1281.81 20 0],[1875.1 40 0],[2165.5301 5 0],[2625.15 8 0]}{ALLx1000x1000x0x0x0x0x0}{UVx1000x1000x0x0x0x0x0}{VISx180x180x0x0x0x0x0}{IVx40x40x0x0x0x0x0}%,[4051.1602 15 0],[4652.5102 4 0],[7457.8 6 0],[12368.5 3 0] +\pgfspectra@elt@search{#1}{He}{[23.1454 15 1],[23.2584 20 1],[23.4347 30 1],[23.7331 50 1],[24.3027 100 1],[25.6317 300 1],[30.378 1000 1],[30.3786 500 1],[32.0293 10 0],[50.55 2 0],[50.5684 3 0],[50.5912 4 0],[50.62 5 0],[50.657 7 0],[50.7058 10 0],[50.7718 15 0],[50.8643 20 0],[50.9998 25 0],[51.2098 35 0],[51.5616 50 0],[52.2213 100 0],[53.703 400 0],[58.4334 1000 0],[59.1412 50 0],[95.87 5 1],[97.211 6 1],[99.236 8 1],[102.527 15 1],[108.494 30 1],[121.509 35 1],[121.517 50 1],[164.034 120 1],[164.047 180 1],[238.54 7 1],[251.12 9 1],[257.76 50 0],[272.319 1 0],[273.33 12 1],[276.38 2 0],[281.82 10 0],[282.908 4 0],[294.511 10 0],[301.37 40 0],[318.774 20 0],[320.296 3 1],[320.31 15 1],[335.455 1 0],[344.759 2 0],[358.727 1 0],[361.364 3 0],[363.423 2 0],[370.5 3 0],[373.286 1 0],[381.9607 10 0],[381.976 1 0],[388.865 500 0],[396.4729 20 0],[400.927 1 0],[402.6191 50 0],[402.636 5 0],[412.082 12 0],[412.099 2 0],[414.376 3 0],[438.7929 10 0],[443.755 3 0],[447.1479 200 0],[447.168 25 0],[468.54 6 1],[468.57 30 1],[471.3146 30 0],[471.338 4 0],[492.1931 20 0],[501.5678 100 0],[504.774 10 0],[541.152 5 1],[587.562 500 0],[587.597 100 0],[656.01 8 1],[667.815 100 0],[686.748 3 0],[706.519 200 0],[706.571 30 0],[728.135 50 0],[781.615 1 0],[836.169 2 0],[906.327 2 0],[921.034 2 0],[946.361 10 0],[951.66 4 0],[952.617 3 0],[952.927 1 0],[960.342 1 0],[970.26 3 0],[1002.773 6 0],[1003.116 2 0],[1012.36 15 1],[1013.85 1 0],[1031.123 10 0],[1031.154 2 0],[1066.765 3 0],[1082.909 300 0],[1083.025 1000 0],[1083.034 2000 0],[1091.305 9 0],[1091.71 3 0],[1162.64 4 1],[1196.912 30 0],[1252.752 20 0],[1278.499 50 0],[1279.057 20 0],[1284.596 7 0],[1296.845 10 0],[1298.489 2 0],[1508.364 12 0],[1700.2471 200 0],[1855.5551 1 0],[1863.6801 6 1],[1868.534 500 0],[1869.723 200 0],[1908.9381 100 0],[1954.308 20 0],[2058.1301 1000 0],[2112.007 80 0],[2112.143 10 0],[2113.2029 20 0],[3090.85 3 1]}{ALLx2000x2000x1000x0x0x0x0}{UVx1000x1000x1000x0x0x0x0}{VISx500x500x30x0x0x0x0}{IVx2000x2000x15x0x0x0x0}%,[4047.8898 4 0] \pgfspectra@elt@search{#1}{Li}{[149.293 3 1],[149.297 5 1],[149.304 1 1],[165.308 3 1],[165.313 5 1],[165.321 1 1],[233.688 3 1],[233.691 5 1],[233.7 2 1],[239.439 1 0],[242.543 3 0],[247.506 10 0],[255.17 24 1],[256.231 15 0],[265.729 2 1],[265.73 3 1],[272.824 0 1],[272.829 5 1],[272.832 2 1],[273.047 3 1],[273.055 1 1],[274.12 5 0],[293.402 2 1],[293.407 2 1],[293.412 5 1],[293.425 1 1],[302.912 3 1],[302.914 3 1],[315.531 3 1],[315.533 4 1],[319.626 1 1],[319.633 9 1],[319.636 4 1],[319.933 5 1],[319.943 2 1],[323.266 17 0],[371.4 1 1],[371.416 5 1],[371.427 6 1],[371.429 8 1],[371.44 7 1],[371.441 10 1],[371.451 1 1],[371.458 0 1],[371.87 3 0],[379.472 6 0],[391.53 20 0],[391.535 20 0],[398.548 10 0],[398.554 10 0],[413.256 40 0],[413.262 40 0],[427.307 20 0],[427.313 20 0],[432.542 5 1],[432.547 5 1],[432.554 1 1],[460.283 13 0],[460.289 13 0],[467.151 0 1],[467.165 6 1],[467.17 2 1],[467.806 3 1],[467.829 1 1],[488.132 4 1],[488.139 4 1],[488.149 1 1],[497.166 8 0],[497.175 8 0],[548.355 600 1],[548.565 600 1],[610.354 320 0],[610.365 320 0],[670.776 3600 0],[670.791 3600 0],[812.623 48 0],[812.645 48 0]}{ALLx3600x3600x600x0x0x0x0}{UVx24x17x24x0x0x0x0}{VISx3600x3600x600x0x0x0x0}{IVx48x48x0x0x0x0x0}% -\pgfspectra@elt@search{#1}{Be}{[7.61 1 2],[7.648 2 2],[7.853 3 2],[7.866 4 2],[7.892 1 2],[8.189 5 2],[8.238 10 2],[8.32 20 2],[8.476 30 2],[8.831 50 2],[10.025 100 2],[50.999 3 2],[54.931 2 2],[58.208 6 2],[66.132 4 2],[67.559 8 2],[72.559 4 2],[72.571 5 1],[74.358 5 1],[74.623 7 2],[76.775 2 2],[77.537 8 1],[84.206 20 1],[92.525 2 1],[94.356 10 1],[97.327 10 1],[102.693 8 1],[103.632 5 1],[104.823 15 1],[111.469 1 2],[114.303 20 1],[119.719 60 1],[121.312 2 2],[121.432 1 2],[136.225 2 2],[140.152 1 2],[142.126 10 2],[142.286 5 2],[143.517 1 2],[144.077 2 2],[151.23 20 1],[151.243 60 1],[166.149 100 0],[175.469 2 2],[177.612 15 1],[177.634 20 1],[191.703 3 2],[192.967 5 0],[194.368 10 0],[195.497 60 2],[196.459 50 0],[198.513 5 0],[199.801 60 0],[205.59 50 0],[205.601 100 0],[207.694 75 2],[208.038 60 2],[211.856 25 2],[212.227 15 2],[212.557 10 0],[212.568 20 0],[212.72 15 2],[213.725 5 2],[214.5 25 0],[217.499 55 0],[217.51 55 0],[219.157 5 2],[234.861 950 0],[235.066 20 0],[235.071 60 0],[235.083 200 0],[241.334 2 1],[241.346 16 1],[245.384 20 1],[249.454 35 0],[249.458 35 0],[249.473 100 0],[250.743 16 1],[261.799 5 1],[261.813 20 1],[265.045 100 0],[265.055 60 0],[265.062 200 0],[265.069 60 0],[265.076 100 0],[269.746 5 1],[269.758 20 1],[272.888 20 1],[273.805 30 0],[289.813 20 0],[289.819 10 0],[289.825 20 0],[298.606 30 0],[298.642 10 0],[301.933 60 0],[301.949 30 0],[301.953 30 0],[301.96 20 0],[304.652 10 1],[304.669 30 1],[311.081 10 0],[311.092 10 0],[311.099 20 0],[313.042 480 1],[313.107 320 1],[319.381 20 0],[319.71 20 1],[319.715 30 1],[320.86 20 0],[322.963 60 0],[323.352 2 1],[324.162 10 1],[324.183 30 1],[326.902 15 0],[327.458 100 1],[327.467 30 1],[328.291 30 0],[332.101 30 0],[332.109 30 0],[332.134 220 0],[334.543 20 0],[336.763 60 0],[345.137 5 0],[345.518 300 0],[347.656 20 0],[351.554 300 0],[355.5 10 0],[372.036 100 2],[373.63 100 0],[381.345 700 0],[386.513 40 0],[386.542 80 0],[386.551 1 0],[386.572 6 0],[386.603 100 0],[424.914 90 2],[425.305 100 0],[425.376 60 0],[436.066 300 1],[436.099 500 1],[440.794 400 0],[448.552 2 2],[448.73 100 2],[449.509 1 2],[449.78 140 2],[457.266 12 0],[467.333 700 1],[467.342 1000 1],[470.937 6 0],[482.816 200 1],[484.916 40 0],[485.822 2 1],[508.775 80 0],[521.812 8 1],[521.833 20 1],[525.586 3 1],[527.028 64 1],[527.081 500 1],[540.304 20 1],[541.021 20 1],[614.201 140 2],[622.911 10 0],[627.943 16 1],[627.973 30 1],[647.354 30 0],[654.789 60 1],[655.836 60 1],[656.452 30 0],[663.644 2 1],[675.672 1 1],[675.713 2 1],[678.656 30 0],[688.422 1 0],[688.444 6 0],[698.275 100 0],[715.44 6 0],[715.465 40 0],[720.913 100 0],[740.12 3 1],[740.143 2 1],[755.19 10 0],[761.868 10 0],[761.888 20 0],[809.006 60 0],[815.899 5 0],[815.924 10 0],[825.407 4 0],[828.707 10 0],[854.736 30 0],[854.767 60 0],[880.137 300 0],[888.218 6 0],[919.045 40 0],[924.392 20 0],[934.389 1 1],[939.274 40 0],[947.643 2 1],[947.703 16 1],[984.732 20 0],[989.563 10 0],[989.596 20 0],[993.978 80 0],[1009.552 16 1],[1009.573 20 1],[1011.992 60 1],[1033.103 80 0],[1106.646 30 0],[1117.373 1 1],[1149.639 120 0],[1162.516 2 1],[1166.025 2 1],[1209.536 100 1],[1209.818 30 1],[1464.392 100 0],[1464.475 60 0],[1615.772 200 0],[1785.5381 80 0],[1785.6631 120 0],[1814.3539 100 0],[3177.5051 160 0],[3177.8699 200 0]}{ALLx1000x950x1000x140x0x0x0}{UVx950x950x480x100x0x0x0}{VISx1000x700x1000x140x0x0x0}{IVx300x300x100x0x0x0x0}% -\pgfspectra@elt@search{#1}{B}{[4.859 30 4],[5.268 10 3],[6.031 30 3],[34.4 160 3],[38.5 450 3],[41.18 40 2],[41.87 285 3],[51.077 20 2],[51.085 40 2],[51.824 150 2],[51.827 75 2],[67.7 110 2],[67.714 160 2],[69.395 70 1],[73.136 40 1],[73.144 40 1],[75.848 40 2],[75.867 70 2],[88.254 110 1],[88.268 110 1],[98.467 40 1],[108.188 110 1],[108.207 110 1],[111.22 70 3],[116.89 450 3],[117.09 70 3],[123.016 110 1],[136.246 220 1],[160.046 70 0],[160.073 120 0],[162.358 160 1],[162.377 110 1],[162.402 220 1],[162.416 70 1],[162.434 160 1],[166.304 100 0],[166.687 150 0],[166.729 200 0],[181.786 150 0],[181.837 200 0],[182.591 300 0],[182.641 300 0],[184.281 110 1],[195.383 20 2],[206.578 550 2],[206.638 250 0],[206.665 250 0],[206.693 100 0],[206.719 300 0],[206.723 450 2],[207.709 160 2],[208.891 500 0],[208.957 500 0],[222.03 70 1],[223.409 40 2],[223.459 70 2],[232.303 40 1],[232.867 40 1],[239.32 40 1],[239.505 220 1],[245.969 40 1],[245.99 40 1],[249.677 1000 0],[249.773 1000 0],[252.47 70 3],[253.03 160 3],[282.168 450 3],[282.457 70 3],[282.585 285 3],[291.808 160 1],[303.226 110 1],[317.933 70 1],[332.318 110 1],[332.36 110 1],[345.129 450 1],[412.193 285 1],[419.479 110 1],[424.298 40 2],[424.361 70 2],[447.21 110 1],[447.285 110 1],[448.705 220 2],[449.773 360 2],[478.421 70 1],[494.038 110 1],[608.044 110 1],[628.547 70 1],[703.02 70 1],[703.19 40 1],[783.525 110 2],[784.141 70 2],[866.722 20 0],[866.857 70 0],[1166.004 800 0],[1166.247 570 0],[1562.908 125 0],[1624.038 200 0],[1624.467 250 0],[1899.433 235 0]}{ALLx1000x1000x450x550x450x30x0}{UVx1000x1000x450x550x450x30x0}{VISx360x0x285x360x0x0x0}{IVx800x800x0x110x0x0x0}% -\pgfspectra@elt@search{#1}{C}{[3.4973 110 4],[4.0268 450 4],[22.719 110 4],[24.491 250 3],[24.866 160 4],[24.874 160 4],[28.914 200 3],[28.923 250 3],[31.242 570 3],[31.246 500 3],[37.169 250 2],[37.175 250 2],[37.178 150 2],[38.403 650 3],[38.418 700 3],[38.6203 500 2],[41.952 400 3],[41.971 500 3],[45.0734 200 2],[45.946 400 2],[45.952 500 2],[45.963 570 2],[51.1522 250 2],[53.5288 250 2],[53.808 300 2],[53.8149 350 2],[53.8312 400 2],[57.4281 350 2],[59.5022 9 1],[68.7053 30 1],[68.7345 50 1],[85.8092 10 1],[85.8559 20 1],[90.3624 30 1],[90.3962 60 1],[90.4142 150 1],[90.448 30 1],[97.703 800 2],[100.986 9 1],[101.008 10 1],[101.037 10 1],[103.6337 80 1],[103.7018 150 1],[115.791 150 0],[115.8019 150 0],[115.8035 150 0],[117.493 370 2],[117.526 350 2],[117.559 330 2],[117.571 500 2],[117.599 350 2],[117.637 370 2],[118.8992 150 0],[118.9447 150 0],[118.9631 200 0],[119.3009 300 0],[119.3031 300 0],[119.324 300 0],[119.3264 300 0],[119.3393 100 0],[119.3649 150 0],[119.3679 150 0],[119.4064 100 0],[119.4488 100 0],[126.1552 100 0],[127.7245 250 0],[127.7282 250 0],[127.7513 300 0],[127.755 300 0],[128.0333 200 0],[131.1363 100 0],[132.3951 9 1],[132.9578 120 0],[132.96 120 0],[133.4532 150 1],[133.5708 300 1],[135.4288 100 0],[135.584 150 0],[136.4164 120 0],[145.9032 100 0],[146.3336 200 0],[146.7402 120 0],[148.1764 150 0],[154.8202 1000 3],[155.0774 900 3],[156.031 150 0],[156.0683 400 0],[156.0708 400 0],[156.1341 100 0],[156.1438 400 0],[165.6266 150 0],[165.6928 120 0],[165.7008 300 0],[165.738 120 0],[165.7907 120 0],[165.8122 150 0],[175.1823 500 0],[193.0905 1000 0],[216.294 250 2],[227.091 40 4],[227.725 5 4],[227.792 20 4],[229.687 800 2],[247.856 800 0],[250.912 250 1],[251.206 350 1],[252.441 200 3],[252.998 300 3],[257.483 250 1],[269.775 150 2],[272.485 110 2],[272.53 150 2],[272.59 150 2],[274.128 350 1],[274.649 250 1],[283.671 1000 1],[283.76 800 1],[298.211 200 2],[299.262 800 1],[387.619 350 1],[387.641 350 1],[387.666 350 1],[391.898 570 1],[392.069 800 1],[405.606 150 2],[406.794 200 2],[406.891 250 2],[407.026 250 2],[407.452 250 1],[407.585 350 1],[416.286 150 2],[418.69 250 2],[426.7 800 1],[426.726 1000 1],[432.556 200 2],[464.742 600 2],[465.025 520 2],[465.147 375 2],[465.83 200 3],[466.586 200 2],[477.175 200 0],[493.205 200 0],[494.388 5 4],[494.456 5 4],[505.217 200 0],[513.294 350 1],[513.328 350 1],[514.349 350 1],[514.516 570 1],[515.109 400 1],[538.034 300 0],[564.807 250 1],[566.247 350 1],[569.592 450 2],[580.133 250 3],[581.198 200 3],[582.642 150 2],[588.977 570 1],[589.159 350 1],[600.113 200 0],[600.603 250 0],[600.718 110 0],[601.068 150 0],[601.322 300 0],[601.484 250 0],[657.805 800 1],[658.288 570 1],[658.761 200 0],[674.438 150 2],[678.39 250 1],[703.725 150 2],[711.318 250 0],[711.519 250 0],[711.563 250 1],[711.699 200 0],[711.99 350 1],[723.132 800 1],[723.642 1000 1],[761.265 150 2],[772.62 90 3],[786.089 200 0],[805.862 200 0],[819.648 300 2],[833.299 150 2],[833.515 520 0],[850.032 300 2],[906.143 250 0],[906.247 200 0],[907.828 200 0],[908.851 250 0],[909.483 450 0],[911.18 300 0],[940.573 800 0],[960.303 150 0],[962.08 250 0],[965.844 300 0],[1068.308 200 0],[1069.125 300 0],[1161.929 12 0],[1162.883 23 0],[1165.885 13 0],[1165.968 47 0],[1166.963 24 0],[1174.822 85 0],[1175.332 142 0],[1175.476 114 0],[1177.754 11 0],[1189.291 17 0],[1189.575 30 0],[1261.41 26 0],[1350.227 20 0],[1439.965 38 0],[1440.325 16 0],[1442.012 61 0],[1442.903 12 0],[1444.224 13 0],[1655.966 12 0],[1689.0381 50 0],[1733.8561 10 0],[1744.86 11 0],[1813.9801 13 0],[1972.199 23 0]}{ALLx1000x1000x1000x800x1000x450x0}{UVx1000x1000x1000x800x1000x450x0}{VISx1000x300x1000x600x250x5x0}{IVx800x800x0x300x0x0x0}% +\pgfspectra@elt@search{#1}{Be}{[10.025 100 2],[50.999 3 2],[54.931 2 2],[58.208 6 2],[66.132 4 2],[67.559 8 2],[72.559 4 2],[72.571 5 1],[74.358 5 1],[74.623 7 2],[76.775 2 2],[77.537 8 1],[84.206 20 1],[92.525 2 1],[94.356 10 1],[97.327 10 1],[102.693 8 1],[103.632 5 1],[104.823 15 1],[111.469 1 2],[114.303 20 1],[119.719 60 1],[121.312 2 2],[121.432 1 2],[136.225 2 2],[140.152 1 2],[142.126 10 2],[142.286 5 2],[143.517 1 2],[144.077 2 2],[151.23 20 1],[151.243 60 1],[166.149 100 0],[175.469 2 2],[177.612 15 1],[177.634 20 1],[191.703 3 2],[192.967 5 0],[194.368 10 0],[195.497 60 2],[196.459 50 0],[198.513 5 0],[199.801 60 0],[205.59 50 0],[205.601 100 0],[207.694 75 2],[208.038 60 2],[211.856 25 2],[212.227 15 2],[212.557 10 0],[212.568 20 0],[212.72 15 2],[213.725 5 2],[214.5 25 0],[217.499 55 0],[217.51 55 0],[219.157 5 2],[234.861 950 0],[235.066 20 0],[235.071 60 0],[235.083 200 0],[241.334 2 1],[241.346 16 1],[245.384 20 1],[249.454 35 0],[249.458 35 0],[249.473 100 0],[250.743 16 1],[261.799 5 1],[261.813 20 1],[265.045 100 0],[265.055 60 0],[265.062 200 0],[265.069 60 0],[265.076 100 0],[269.746 5 1],[269.758 20 1],[272.888 20 1],[273.805 30 0],[289.813 20 0],[289.819 10 0],[289.825 20 0],[298.606 30 0],[298.642 10 0],[301.933 60 0],[301.949 30 0],[301.953 30 0],[301.96 20 0],[304.652 10 1],[304.669 30 1],[311.081 10 0],[311.092 10 0],[311.099 20 0],[313.042 480 1],[313.107 320 1],[319.381 20 0],[319.71 20 1],[319.715 30 1],[320.86 20 0],[322.963 60 0],[323.352 2 1],[324.162 10 1],[324.183 30 1],[326.902 15 0],[327.458 100 1],[327.467 30 1],[328.291 30 0],[332.101 30 0],[332.109 30 0],[332.134 220 0],[334.543 20 0],[336.763 60 0],[345.137 5 0],[345.518 300 0],[347.656 20 0],[351.554 300 0],[355.5 10 0],[372.036 100 2],[373.63 100 0],[381.345 700 0],[386.513 40 0],[386.542 80 0],[386.551 1 0],[386.572 6 0],[386.603 100 0],[424.914 90 2],[425.305 100 0],[425.376 60 0],[436.066 300 1],[436.099 500 1],[440.794 400 0],[448.552 2 2],[448.73 100 2],[449.509 1 2],[449.78 140 2],[457.266 12 0],[467.333 700 1],[467.342 1000 1],[470.937 6 0],[482.816 200 1],[484.916 40 0],[485.822 2 1],[508.775 80 0],[521.812 8 1],[521.833 20 1],[525.586 3 1],[527.028 64 1],[527.081 500 1],[540.304 20 1],[541.021 20 1],[614.201 140 2],[622.911 10 0],[627.943 16 1],[627.973 30 1],[647.354 30 0],[654.789 60 1],[655.836 60 1],[656.452 30 0],[663.644 2 1],[675.672 1 1],[675.713 2 1],[678.656 30 0],[688.422 1 0],[688.444 6 0],[698.275 100 0],[715.44 6 0],[715.465 40 0],[720.913 100 0],[740.12 3 1],[740.143 2 1],[755.19 10 0],[761.868 10 0],[761.888 20 0],[809.006 60 0],[815.899 5 0],[815.924 10 0],[825.407 4 0],[828.707 10 0],[854.736 30 0],[854.767 60 0],[880.137 300 0],[888.218 6 0],[919.045 40 0],[924.392 20 0],[934.389 1 1],[939.274 40 0],[947.643 2 1],[947.703 16 1],[984.732 20 0],[989.563 10 0],[989.596 20 0],[993.978 80 0],[1009.552 16 1],[1009.573 20 1],[1011.992 60 1],[1033.103 80 0],[1106.646 30 0],[1117.373 1 1],[1149.639 120 0],[1162.516 2 1],[1166.025 2 1],[1209.536 100 1],[1209.818 30 1],[1464.392 100 0],[1464.475 60 0],[1615.772 200 0],[1785.5381 80 0],[1785.6631 120 0],[1814.3539 100 0],[3177.5051 160 0],[3177.8699 200 0]}{ALLx1000x950x1000x140x0x0x0}{UVx950x950x480x100x0x0x0}{VISx1000x700x1000x140x0x0x0}{IVx300x300x100x0x0x0x0}%[7.61 1 2],[7.648 2 2],[7.853 3 2],[7.866 4 2],[7.892 1 2],[8.189 5 2],[8.238 10 2],[8.32 20 2],[8.476 30 2],[8.831 50 2], +\pgfspectra@elt@search{#1}{B}{[34.4 160 3],[38.5 450 3],[41.18 40 2],[41.87 285 3],[51.077 20 2],[51.085 40 2],[51.824 150 2],[51.827 75 2],[67.7 110 2],[67.714 160 2],[69.395 70 1],[73.136 40 1],[73.144 40 1],[75.848 40 2],[75.867 70 2],[88.254 110 1],[88.268 110 1],[98.467 40 1],[108.188 110 1],[108.207 110 1],[111.22 70 3],[116.89 450 3],[117.09 70 3],[123.016 110 1],[136.246 220 1],[160.046 70 0],[160.073 120 0],[162.358 160 1],[162.377 110 1],[162.402 220 1],[162.416 70 1],[162.434 160 1],[166.304 100 0],[166.687 150 0],[166.729 200 0],[181.786 150 0],[181.837 200 0],[182.591 300 0],[182.641 300 0],[184.281 110 1],[195.383 20 2],[206.578 550 2],[206.638 250 0],[206.665 250 0],[206.693 100 0],[206.719 300 0],[206.723 450 2],[207.709 160 2],[208.891 500 0],[208.957 500 0],[222.03 70 1],[223.409 40 2],[223.459 70 2],[232.303 40 1],[232.867 40 1],[239.32 40 1],[239.505 220 1],[245.969 40 1],[245.99 40 1],[249.677 1000 0],[249.773 1000 0],[252.47 70 3],[253.03 160 3],[282.168 450 3],[282.457 70 3],[282.585 285 3],[291.808 160 1],[303.226 110 1],[317.933 70 1],[332.318 110 1],[332.36 110 1],[345.129 450 1],[412.193 285 1],[419.479 110 1],[424.298 40 2],[424.361 70 2],[447.21 110 1],[447.285 110 1],[448.705 220 2],[449.773 360 2],[478.421 70 1],[494.038 110 1],[608.044 110 1],[628.547 70 1],[703.02 70 1],[703.19 40 1],[783.525 110 2],[784.141 70 2],[866.722 20 0],[866.857 70 0],[1166.004 800 0],[1166.247 570 0],[1562.908 125 0],[1624.038 200 0],[1624.467 250 0],[1899.433 235 0]}{ALLx1000x1000x450x550x450x30x0}{UVx1000x1000x450x550x450x30x0}{VISx360x0x285x360x0x0x0}{IVx800x800x0x110x0x0x0}%[4.859 30 4],[5.268 10 3],[6.031 30 3], +\pgfspectra@elt@search{#1}{C}{[22.719 110 4],[24.491 250 3],[24.866 160 4],[24.874 160 4],[28.914 200 3],[28.923 250 3],[31.242 570 3],[31.246 500 3],[37.169 250 2],[37.175 250 2],[37.178 150 2],[38.403 650 3],[38.418 700 3],[38.6203 500 2],[41.952 400 3],[41.971 500 3],[45.0734 200 2],[45.946 400 2],[45.952 500 2],[45.963 570 2],[51.1522 250 2],[53.5288 250 2],[53.808 300 2],[53.8149 350 2],[53.8312 400 2],[57.4281 350 2],[59.5022 9 1],[68.7053 30 1],[68.7345 50 1],[85.8092 10 1],[85.8559 20 1],[90.3624 30 1],[90.3962 60 1],[90.4142 150 1],[90.448 30 1],[97.703 800 2],[100.986 9 1],[101.008 10 1],[101.037 10 1],[103.6337 80 1],[103.7018 150 1],[115.791 150 0],[115.8019 150 0],[115.8035 150 0],[117.493 370 2],[117.526 350 2],[117.559 330 2],[117.571 500 2],[117.599 350 2],[117.637 370 2],[118.8992 150 0],[118.9447 150 0],[118.9631 200 0],[119.3009 300 0],[119.3031 300 0],[119.324 300 0],[119.3264 300 0],[119.3393 100 0],[119.3649 150 0],[119.3679 150 0],[119.4064 100 0],[119.4488 100 0],[126.1552 100 0],[127.7245 250 0],[127.7282 250 0],[127.7513 300 0],[127.755 300 0],[128.0333 200 0],[131.1363 100 0],[132.3951 9 1],[132.9578 120 0],[132.96 120 0],[133.4532 150 1],[133.5708 300 1],[135.4288 100 0],[135.584 150 0],[136.4164 120 0],[145.9032 100 0],[146.3336 200 0],[146.7402 120 0],[148.1764 150 0],[154.8202 1000 3],[155.0774 900 3],[156.031 150 0],[156.0683 400 0],[156.0708 400 0],[156.1341 100 0],[156.1438 400 0],[165.6266 150 0],[165.6928 120 0],[165.7008 300 0],[165.738 120 0],[165.7907 120 0],[165.8122 150 0],[175.1823 500 0],[193.0905 1000 0],[216.294 250 2],[227.091 40 4],[227.725 5 4],[227.792 20 4],[229.687 800 2],[247.856 800 0],[250.912 250 1],[251.206 350 1],[252.441 200 3],[252.998 300 3],[257.483 250 1],[269.775 150 2],[272.485 110 2],[272.53 150 2],[272.59 150 2],[274.128 350 1],[274.649 250 1],[283.671 1000 1],[283.76 800 1],[298.211 200 2],[299.262 800 1],[387.619 350 1],[387.641 350 1],[387.666 350 1],[391.898 570 1],[392.069 800 1],[405.606 150 2],[406.794 200 2],[406.891 250 2],[407.026 250 2],[407.452 250 1],[407.585 350 1],[416.286 150 2],[418.69 250 2],[426.7 800 1],[426.726 1000 1],[432.556 200 2],[464.742 600 2],[465.025 520 2],[465.147 375 2],[465.83 200 3],[466.586 200 2],[477.175 200 0],[493.205 200 0],[494.388 5 4],[494.456 5 4],[505.217 200 0],[513.294 350 1],[513.328 350 1],[514.349 350 1],[514.516 570 1],[515.109 400 1],[538.034 300 0],[564.807 250 1],[566.247 350 1],[569.592 450 2],[580.133 250 3],[581.198 200 3],[582.642 150 2],[588.977 570 1],[589.159 350 1],[600.113 200 0],[600.603 250 0],[600.718 110 0],[601.068 150 0],[601.322 300 0],[601.484 250 0],[657.805 800 1],[658.288 570 1],[658.761 200 0],[674.438 150 2],[678.39 250 1],[703.725 150 2],[711.318 250 0],[711.519 250 0],[711.563 250 1],[711.699 200 0],[711.99 350 1],[723.132 800 1],[723.642 1000 1],[761.265 150 2],[772.62 90 3],[786.089 200 0],[805.862 200 0],[819.648 300 2],[833.299 150 2],[833.515 520 0],[850.032 300 2],[906.143 250 0],[906.247 200 0],[907.828 200 0],[908.851 250 0],[909.483 450 0],[911.18 300 0],[940.573 800 0],[960.303 150 0],[962.08 250 0],[965.844 300 0],[1068.308 200 0],[1069.125 300 0],[1161.929 12 0],[1162.883 23 0],[1165.885 13 0],[1165.968 47 0],[1166.963 24 0],[1174.822 85 0],[1175.332 142 0],[1175.476 114 0],[1177.754 11 0],[1189.291 17 0],[1189.575 30 0],[1261.41 26 0],[1350.227 20 0],[1439.965 38 0],[1440.325 16 0],[1442.012 61 0],[1442.903 12 0],[1444.224 13 0],[1655.966 12 0],[1689.0381 50 0],[1733.8561 10 0],[1744.86 11 0],[1813.9801 13 0],[1972.199 23 0]}{ALLx1000x1000x1000x800x1000x450x0}{UVx1000x1000x1000x800x1000x450x0}{VISx1000x300x1000x600x250x5x0}{IVx800x800x0x300x0x0x0}%[3.4973 110 4],[4.0268 450 4], \pgfspectra@elt@search{#1}{N}{[16.6947 52 4],[18.175 400 3],[18.6069 52 4],[18.6153 62 4],[19.17 400 3],[19.29 400 3],[19.687 500 3],[19.723 500 3],[20.26 500 3],[20.594 500 3],[20.597 500 3],[20.603 500 3],[20.9303 90 4],[21.72 500 3],[21.79 500 3],[22.34 500 3],[22.512 800 3],[22.521 800 3],[23.412 600 3],[23.42 600 3],[23.425 600 3],[23.607 550 3],[23.799 500 3],[23.87 500 3],[23.88 600 3],[23.962 500 3],[24.72 900 3],[24.7561 90 4],[24.7706 120 4],[24.843 500 3],[24.846 500 3],[24.848 500 3],[25.795 500 2],[25.85 650 2],[25.919 700 2],[26.009 800 2],[26.045 600 3],[26.128 800 2],[26.291 500 2],[26.523 500 2],[26.527 500 2],[26.6196 150 4],[26.6379 200 4],[26.87 500 2],[27.099 650 3],[28.342 250 3],[28.348 300 3],[28.358 350 3],[28.556 600 3],[29.77 600 3],[29.782 700 3],[30.032 650 3],[30.3123 90 3],[30.328 500 3],[31.4715 150 2],[31.485 200 2],[31.4877 90 2],[31.5053 150 3],[32.2503 120 3],[32.257 150 3],[32.2724 200 3],[32.3175 120 3],[32.326 600 2],[33.505 300 3],[33.835 500 2],[34.02 500 2],[35.193 500 3],[35.198 500 2],[35.306 700 3],[36.2833 120 2],[36.2881 150 2],[36.2946 150 2],[36.2985 90 2],[37.4204 300 2],[37.4441 350 2],[38.748 500 2],[42.077 500 3],[45.1869 250 2],[45.2226 300 2],[46.374 650 3],[64.4634 285 1],[64.4837 360 1],[64.5178 450 1],[64.75 140 0],[66.0286 360 1],[67.1016 170 1],[67.1386 285 1],[67.163 150 1],[67.1773 160 1],[67.2001 170 1],[68.4996 500 2],[68.5513 570 2],[68.5816 650 2],[68.6335 500 2],[69.27 350 0],[71.3518 90 4],[71.386 150 4],[74.6984 285 1],[74.8195 150 4],[74.8291 200 4],[76.3336 500 2],[76.4359 570 2],[76.5148 570 3],[77.1544 250 2],[77.1901 300 2],[77.2385 350 2],[77.2891 200 2],[77.2975 150 2],[77.5965 650 1],[88.567 90 0],[90.9697 90 0],[91.0278 80 0],[91.0645 40 0],[91.5612 450 1],[91.5962 450 1],[91.6012 550 1],[91.6701 650 1],[92.1992 520 3],[92.1992 520 3],[92.2519 500 3],[92.2519 500 3],[92.3057 480 3],[92.4283 520 3],[95.3415 90 0],[95.3655 100 0],[95.397 130 0],[95.5335 1000 3],[96.399 130 0],[96.4626 115 0],[96.5041 70 0],[97.9842 650 2],[97.9919 700 2],[98.979 900 2],[99.1514 700 2],[99.1579 1000 2],[103.616 150 3],[106.7614 90 0],[106.8612 60 0],[107.871 90 3],[108.399 450 1],[108.458 600 1],[108.5546 430 1],[108.5701 650 1],[109.7237 175 0],[109.8095 115 0],[109.826 115 0],[110.036 105 0],[110.0465 40 0],[110.1291 90 0],[113.4165 360 0],[113.4415 385 0],[113.498 410 0],[114.365 105 0],[116.3884 130 0],[116.4206 60 0],[116.4325 105 0],[116.7448 270 0],[116.8334 105 0],[116.8417 60 0],[116.8536 195 0],[117.651 230 0],[117.663 105 0],[117.7695 195 0],[118.3031 500 2],[118.455 570 2],[118.801 90 3],[119.955 410 0],[120.0223 385 0],[120.071 360 0],[122.5026 175 0],[122.537 160 0],[122.841 130 0],[122.879 160 0],[123.8821 1000 4],[124.2804 900 4],[124.3179 360 0],[124.3306 315 0],[131.054 290 0],[131.095 250 0],[131.9 230 0],[131.968 315 0],[132.657 115 0],[132.792 115 0],[138.7371 150 2],[141.194 360 0],[149.2625 700 0],[149.282 490 0],[149.4675 640 0],[154.9336 90 4],[161.633 200 4],[161.969 350 4],[171.855 1000 3],[172.9945 250 2],[174.2729 775 0],[174.5252 700 0],[174.7848 570 2],[175.1218 350 2],[175.1657 650 2],[180.4486 150 2],[180.5669 200 2],[184.642 150 2],[186.037 90 4],[188.506 350 2],[188.522 400 2],[190.799 200 2],[191.955 150 2],[191.977 150 2],[192.065 300 2],[192.084 150 2],[192.13 200 2],[206.401 200 2],[206.442 250 2],[206.868 120 2],[207.109 90 2],[208.034 90 3],[209.553 160 1],[209.62 70 1],[209.686 110 1],[211.759 90 2],[212.15 90 2],[213.018 110 1],[214.278 160 1],[214.731 90 2],[218.82 200 2],[218.838 150 2],[220.609 160 1],[228.669 160 1],[228.844 110 1],[231.649 220 1],[231.669 160 1],[231.705 285 1],[231.809 90 3],[246.127 160 1],[247.769 150 3],[249.683 110 1],[249.697 70 1],[252.022 110 1],[252.079 160 1],[252.223 220 1],[259.094 110 1],[264.565 250 3],[264.618 300 3],[264.696 350 3],[268.218 250 2],[268.92 90 2],[270.984 160 1],[279.922 110 1],[282.364 110 1],[285.916 60 4],[288.527 160 1],[297.452 90 4],[298.078 150 4],[298.131 250 4],[299.843 60 4],[300.683 220 1],[307.825 90 3],[336.734 120 2],[343.715 360 1],[346.337 90 3],[347.871 570 3],[348.299 500 3],[348.496 400 3],[374.754 90 3],[375.467 90 2],[377.105 120 2],[383.837 285 1],[391.9 360 1],[393.852 90 2],[395.585 450 1],[399.5 1000 1],[399.863 150 2],[400.358 200 2],[403.508 360 1],[404.131 550 1],[404.353 360 1],[405.776 150 3],[409.733 250 2],[409.994 140 0],[410.343 200 2],[410.995 185 0],[417.616 285 1],[419.576 120 2],[420.01 150 2],[422.774 285 1],[423.691 285 1],[423.705 220 1],[424.178 450 1],[433.291 90 2],[434.568 120 2],[437.911 300 2],[443.274 285 1],[444.703 650 1],[451.091 90 2],[451.486 120 2],[453.041 360 1],[460.148 550 1],[460.373 350 4],[460.633 90 3],[460.716 450 1],[461.387 360 1],[461.998 250 4],[462.139 450 1],[463.054 870 1],[463.414 90 2],[464.064 120 2],[464.308 550 1],[478.813 285 1],[480.329 450 1],[484.738 180 0],[485.882 90 2],[486.715 150 2],[489.511 285 1],[491.494 160 0],[493.512 210 0],[494.456 200 4],[495.023 160 0],[496.398 350 0],[498.737 285 1],[499.436 450 1],[500.148 650 1],[500.27 360 1],[500.515 870 1],[500.732 550 1],[501.062 450 1],[501.639 360 1],[502.566 360 1],[504.51 550 1],[528.12 185 0],[529.268 140 0],[531.435 90 2],[532.082 200 2],[532.718 150 2],[549.567 450 1],[553.536 285 1],[566.663 650 1],[567.602 550 1],[567.956 870 1],[568.621 450 1],[571.077 450 1],[574.73 285 1],[575.25 700 0],[576.475 240 0],[582.954 265 0],[585.404 235 0],[592.781 360 1],[593.178 550 1],[594.024 285 1],[594.165 650 1],[595.239 285 1],[599.943 160 0],[600.847 210 0],[616.776 285 1],[637.962 360 1],[638.077 150 3],[641.165 185 0],[642.064 210 0],[642.302 210 0],[642.832 210 0],[643.768 185 0],[644.094 235 0],[645.411 90 2],[645.79 185 0],[646.702 120 2],[646.844 300 0],[648.171 265 0],[648.205 750 1],[648.27 360 0],[648.375 300 0],[648.48 325 0],[649.122 160 0],[649.954 210 0],[650.631 185 0],[661.056 750 1],[662.254 185 0],[663.694 185 0],[664.496 235 0],[664.65 185 0],[665.346 235 0],[665.651 210 0],[672.262 185 0],[739.864 210 0],[740.612 160 0],[740.624 265 0],[742.364 685 0],[744.229 785 0],[746.831 900 0],[760.88 185 0],[761.846 60 4],[776.224 450 1],[818.487 400 0],[818.802 400 0],[820.036 250 0],[821.072 300 0],[821.634 570 0],[822.314 400 0],[824.239 400 0],[843.874 550 1],[856.774 500 0],[859.4 570 0],[862.924 650 0],[865.589 500 0],[867.608 220 1],[868.028 700 0],[868.34 650 0],[868.615 500 0],[868.743 110 1],[869.9 110 1],[870.325 500 0],[871.054 160 1],[871.17 570 0],[871.883 500 0],[872.889 250 0],[874.736 200 0],[938.68 500 0],[939.279 570 0],[946.068 250 0],[986.333 200 0],[986.541 160 1],[986.821 110 1],[988.739 160 1],[989.109 220 1],[996.186 160 1],[996.934 220 1],[1002.327 285 1],[1003.545 220 1],[1006.515 220 1],[1007.012 160 1],[1010.513 250 0],[1010.889 300 0],[1011.248 350 0],[1011.464 400 0],[1012.627 110 1],[1053.957 250 0],[1207.451 200 0],[1218.682 380 0],[1228.897 225 0],[1232.876 290 0],[1238.165 310 0],[1243.84 180 0],[1246.125 510 0],[1246.962 920 0],[1342.961 500 0],[1358.133 840 0],[1358.773 180 0],[1360.227 180 0],[1362.418 290 0],[1475.707 250 0],[1486.887 100 0],[1496.66 160 0],[1558.227 180 0],[1751.658 120 0],[1758.4859 100 0],[1787.826 100 0]}{ALLx1000x920x1000x1000x1000x1000x0}{UVx1000x775x650x1000x1000x1000x0}{VISx1000x900x1000x300x150x350x0}{IVx920x920x550x0x0x0x0}% \pgfspectra@elt@search{#1}{O}{[12.4616 80 4],[13.5523 110 4],[13.8109 80 4],[13.9029 110 4],[15.1447 80 4],[15.1477 110 4],[15.1546 150 4],[16.4574 80 4],[16.4657 110 4],[16.4709 80 4],[16.6235 80 4],[16.799 150 4],[17.0219 110 4],[17.2169 450 4],[18.5745 250 4],[19.2751 375 4],[19.2799 450 4],[19.2906 520 4],[19.3003 80 4],[19.4593 200 4],[19.586 150 3],[19.601 200 3],[20.2161 80 4],[20.2224 80 4],[20.2283 80 4],[20.2334 80 4],[20.2393 150 4],[20.378 110 4],[20.382 150 4],[20.385 100 4],[20.389 200 4],[20.394 100 4],[20.718 110 3],[20.724 150 3],[20.7794 300 4],[21.504 150 4],[21.5103 200 4],[21.5245 250 4],[21.6018 250 4],[22.0352 520 4],[22.7372 80 4],[22.7469 80 4],[22.7511 150 4],[22.7549 80 4],[22.7634 80 4],[22.7689 80 4],[23.1823 150 4],[23.346 140 3],[23.35 150 3],[23.352 110 3],[23.356 200 3],[23.36 110 3],[23.836 90 3],[23.857 180 3],[24.8459 110 4],[25.256 110 3],[25.295 110 3],[25.308 150 3],[26.039 300 3],[26.056 250 3],[26.434 80 2],[26.448 110 2],[26.697 110 2],[26.698 150 2],[26.703 150 2],[27.738 150 2],[27.963 300 3],[27.994 375 3],[28.571 110 3],[28.584 150 3],[28.6448 110 4],[29.562 80 2],[29.566 110 2],[29.572 120 2],[30.341 150 2],[30.346 150 2],[30.352 140 2],[30.362 160 2],[30.369 160 2],[30.38 250 2],[30.56 200 2],[30.566 250 2],[30.57 190 2],[30.577 300 2],[30.584 190 2],[30.662 200 3],[30.688 150 3],[32.0979 450 2],[32.845 300 2],[32.874 250 2],[34.531 300 2],[35.514 110 2],[35.533 90 2],[35.547 80 2],[35.902 200 2],[35.922 190 2],[35.938 150 2],[37.38 210 2],[37.4 200 2],[37.408 300 2],[37.416 190 2],[37.433 200 2],[37.444 210 2],[39.5558 450 2],[43.498 300 2],[50.7391 800 2],[50.7683 900 2],[50.8182 1000 2],[52.5795 1000 2],[53.783 250 1],[53.826 300 1],[53.909 220 1],[53.955 200 1],[53.985 150 1],[55.333 700 3],[55.4075 775 3],[55.4514 850 3],[55.5261 700 3],[59.7818 700 2],[59.9598 1000 2],[60.8398 580 3],[60.97 110 2],[60.9829 640 3],[61.004 160 2],[61.075 200 2],[61.085 100 2],[61.6952 270 3],[61.7005 150 3],[61.7036 200 3],[62.4617 520 3],[62.513 580 3],[62.5852 640 3],[62.973 1000 4],[64.4148 150 1],[67.295 200 1],[67.377 150 1],[68.1272 230 4],[68.5544 70 0],[70.2332 800 2],[70.2822 800 2],[70.2899 900 2],[70.385 1000 2],[71.8484 900 1],[71.8562 600 1],[74.4794 70 0],[75.8678 700 4],[75.9441 640 4],[76.0228 580 4],[76.0445 775 4],[76.1128 640 4],[76.2003 700 4],[77.0793 70 0],[77.1056 90 0],[77.4518 520 4],[77.5321 70 0],[77.9734 200 3],[77.9821 315 3],[77.9912 360 3],[77.9997 200 3],[78.7711 640 3],[79.0109 520 3],[79.0199 700 3],[79.1973 70 0],[79.666 300 1],[80.22 200 3],[80.2255 160 3],[80.4267 90 0],[80.4848 70 0],[80.5295 70 0],[80.581 80 0],[83.2762 240 1],[83.2927 600 2],[83.3332 450 1],[83.3742 780 2],[83.4467 600 1],[83.5096 600 2],[83.5292 800 2],[87.7879 40 0],[92.1296 130 3],[92.1366 160 3],[92.2008 80 0],[92.3367 200 3],[92.3433 130 3],[93.5193 90 0],[94.8686 40 0],[97.1738 90 0],[97.6448 40 0],[98.8773 160 0],[99.0204 40 0],[102.5762 250 0],[102.7431 90 0],[103.923 160 0],[104.0942 60 0],[115.2152 40 0],[130.2168 900 0],[130.4858 600 0],[130.6029 300 0],[133.8612 200 3],[134.2992 130 3],[134.3512 230 3],[137.1292 640 4],[147.689 160 2],[150.672 160 4],[159.001 285 2],[159.133 160 2],[164.368 315 4],[170.7996 160 4],[176.012 220 2],[176.042 110 2],[176.322 220 2],[176.448 220 2],[176.778 750 2],[176.824 550 2],[177.167 360 2],[177.3 110 2],[177.385 110 2],[177.916 220 2],[178.103 160 2],[178.485 160 2],[178.966 220 2],[184.826 110 2],[185.662 110 2],[187.278 285 2],[187.287 285 2],[187.494 285 2],[192.004 160 2],[192.075 110 2],[192.152 110 2],[192.349 220 2],[192.382 110 2],[192.694 110 2],[201.327 360 2],[202.696 160 2],[204.567 220 2],[205.274 160 2],[228.342 30 1],[228.489 30 1],[229.332 110 1],[230.035 200 1],[231.305 30 1],[231.612 30 1],[231.679 30 1],[231.968 50 1],[232.215 30 1],[233.931 30 1],[239.044 200 2],[239.433 80 2],[241.16 110 1],[242.284 80 2],[242.555 80 1],[243.356 250 1],[243.606 80 1],[243.883 80 2],[244.426 80 1],[244.555 300 1],[244.9372 200 3],[245.004 200 3],[245.499 200 2],[249.344 200 3],[249.377 200 3],[250.773 200 3],[250.919 230 3],[251.72 200 3],[255.806 200 2],[268.753 80 2],[269.549 110 2],[273.334 300 1],[274.746 110 1],[278.101 1000 4],[278.699 920 4],[278.985 775 4],[283.626 160 3],[292.145 160 3],[294.133 200 4],[294.165 210 4],[295.968 80 2],[297.229 265 0],[298.378 250 2],[301.763 80 2],[302.345 80 2],[304.302 80 2],[304.713 200 2],[305.93 110 2],[306.342 460 3],[307.161 410 3],[312.171 80 2],[312.262 160 1],[312.944 220 1],[313.286 110 2],[313.482 450 1],[313.844 285 1],[314.466 160 4],[320.966 160 3],[323.857 80 2],[326.098 200 2],[326.546 300 2],[326.731 80 2],[327.098 220 1],[327.352 220 1],[327.769 220 1],[328.759 360 1],[330.515 160 1],[330.66 160 1],[331.23 80 2],[334.074 110 2],[334.808 230 3],[334.911 270 3],[335.427 160 3],[337.54 200 3],[337.72 220 1],[337.806 130 3],[338.12 360 3],[338.552 360 3],[339.025 285 1],[339.679 270 3],[340.352 360 3],[340.738 220 1],[340.966 230 3],[340.984 160 1],[341.169 410 3],[341.364 230 3],[344.41 80 2],[345.512 80 2],[347.081 285 1],[348.983 200 3],[349.224 160 3],[356.039 230 3],[356.333 270 3],[369.87 80 2],[370.275 80 2],[370.337 80 2],[370.724 110 2],[371.275 220 1],[371.508 110 2],[372.593 315 3],[372.733 285 1],[372.903 360 3],[373.685 410 3],[373.992 160 1],[374.4 110 2],[374.489 230 3],[374.949 360 1],[375.467 150 2],[375.721 80 2],[375.987 250 2],[379.126 110 2],[380.314 160 1],[382.341 120 0],[391.196 450 1],[391.929 160 1],[394.729 185 0],[394.748 160 0],[394.759 140 0],[395.437 220 1],[395.461 100 0],[396.159 200 2],[397.326 450 1],[398.22 220 1],[406.99 160 1],[407.216 285 1],[407.587 450 1],[408.391 80 1],[408.714 50 1],[408.927 150 1],[409.724 110 1],[410.5 220 1],[411.922 285 1],[412.399 100 4],[413.281 160 1],[414.606 50 1],[415.33 220 1],[418.546 285 1],[418.979 450 1],[423.327 80 0],[425.374 50 1],[425.398 50 1],[427.547 50 1],[430.378 50 1],[431.714 285 1],[433.686 160 1],[434.556 220 1],[434.943 285 1],[436.69 220 1],[436.825 100 0],[439.595 220 1],[441.491 450 1],[441.698 285 1],[444.821 160 1],[445.238 160 1],[446.545 50 1],[446.628 50 1],[446.783 50 1],[446.941 50 1],[459.097 360 1],[459.617 285 1],[460.939 80 1],[463.885 160 1],[464.181 360 1],[464.914 450 1],[465.084 160 1],[466.164 360 1],[467.623 285 1],[469.921 220 1],[470.536 285 1],[492.46 160 1],[493.027 230 4],[494.306 220 1],[532.91 135 0],[532.968 160 0],[533.074 190 0],[543.518 90 0],[543.578 110 0],[543.686 135 0],[557.734 120 0],[559.237 110 2],[559.791 130 4],[595.839 160 0],[595.858 190 0],[599.528 80 0],[604.623 160 0],[604.644 190 0],[604.649 110 0],[610.627 100 0],[615.598 400 0],[615.677 450 0],[615.818 490 0],[625.683 80 0],[626.155 100 0],[636.634 100 0],[637.432 100 0],[645.36 320 0],[645.444 360 0],[645.598 400 0],[650.024 130 4],[660.491 80 0],[665.383 100 0],[700.192 360 0],[700.223 450 0],[715.67 210 0],[725.415 400 0],[725.445 450 0],[725.453 320 0],[747.644 210 0],[747.724 100 0],[747.908 120 0],[748.067 120 0],[770.675 100 0],[777.194 870 0],[777.417 810 0],[777.539 750 0],[788.627 80 0],[794.315 100 0],[794.717 100 0],[794.755 235 0],[795.08 210 0],[795.216 185 0],[798.194 110 0],[798.24 135 0],[798.698 190 0],[798.733 135 0],[799.507 250 0],[822.182 400 0],[822.765 265 0],[823.002 265 0],[823.3 325 0],[823.535 120 0],[842.616 120 0],[844.625 810 0],[844.636 1000 0],[844.676 935 0],[882.043 325 0],[905.701 160 0],[911.829 120 0],[913.471 80 0],[915.014 80 0],[915.148 80 0],[915.601 235 0],[926.081 450 0],[926.084 490 0],[926.094 450 0],[926.258 400 0],[926.267 540 0],[926.277 590 0],[926.594 490 0],[926.601 640 0],[939.919 185 0],[948.116 120 0],[948.288 120 0],[948.743 235 0],[949.271 140 0],[949.797 265 0],[949.93 160 0],[950.559 235 0],[952.196 210 0],[952.336 120 0],[952.396 120 0],[952.828 100 0],[962.213 100 0],[962.529 120 0],[967.738 160 0],[969.466 80 0],[969.491 65 0],[974.15 235 0],[976.065 235 0],[990.905 120 0],[993.698 140 0],[994.041 120 0],[999.531 160 0],[1042.118 120 0],[1128.634 590 0],[1128.691 640 0],[1128.702 490 0],[1128.732 490 0],[1129.51 490 0],[1129.768 540 0],[1130.238 590 0],[1135.869 265 0],[1246.402 490 0],[1257.004 450 0],[1299.077 120 0],[1307.691 160 0],[1316.389 700 0],[1316.485 750 0],[1316.511 640 0],[1621.206 160 0],[1796.6699 120 0],[1802.1211 590 0],[1804.148 120 0],[1804.2189 120 0],[1804.623 120 0],[1822.923 140 0],[1824.3631 540 0],[2617.3561 140 0]}{ALLx1000x1000x900x1000x850x1000x0}{UVx1000x900x900x1000x850x1000x0}{VISx870x870x450x200x0x230x0}{IVx1000x1000x0x0x0x0x0}% \pgfspectra@elt@search{#1}{F}{[13.454 8 4],[14.795 8 4],[14.8 10 4],[15.251 8 4],[15.854 8 4],[16.227 8 4],[16.35 8 4],[16.356 10 4],[16.598 18 4],[16.618 20 4],[16.979 6 3],[16.984 6 3],[17.107 6 3],[17.47 8 4],[17.637 8 3],[17.843 10 4],[17.859 8 4],[18.152 8 3],[18.157 8 3],[18.298 8 4],[18.672 8 4],[18.679 8 4],[18.684 10 4],[18.697 8 4],[18.701 8 4],[18.724 6 3],[19.057 12 4],[19.084 14 4],[19.197 8 4],[19.639 10 3],[19.645 12 3],[19.976 10 3],[19.98 10 3],[19.985 10 3],[19.993 10 3],[20 10 3],[20.009 14 3],[20.101 12 3],[20.106 14 3],[20.11 12 3],[20.116 16 3],[20.122 12 3],[20.555 8 4],[20.825 18 3],[21.385 14 3],[21.406 14 3],[22.077 14 3],[22.694 12 3],[22.71 10 3],[23.012 10 2],[23.322 12 3],[23.339 10 3],[23.986 14 3],[24.002 14 3],[24.008 18 3],[24.015 14 3],[24.028 14 3],[24.037 14 3],[25.103 20 3],[25.572 10 2],[25.577 12 2],[25.586 14 2],[26.171 14 2],[26.175 12 2],[26.381 16 2],[27.023 12 3],[27.969 14 2],[31.522 16 2],[31.554 14 2],[31.575 12 2],[37.53 6 1],[38.09 6 1],[40.704 8 1],[41.965 28 3],[42.005 30 3],[42.073 32 3],[42.951 20 2],[43.015 22 2],[43.022 16 2],[43.076 30 3],[43.091 10 1],[43.155 8 1],[43.564 8 1],[45.718 14 1],[46.429 18 2],[46.437 20 4],[46.511 20 2],[46.537 22 4],[46.598 24 4],[46.699 20 4],[47.195 8 1],[47.2 12 1],[47.271 10 1],[47.302 8 1],[48.46 18 1],[49.057 26 3],[49.1 32 3],[49.738 10 3],[49.783 12 3],[49.88 14 3],[50.616 18 4],[50.808 20 4],[50.839 24 2],[51.364 10 1],[51.397 14 4],[51.408 12 4],[51.494 14 1],[52.459 16 4],[52.529 18 4],[52.63 20 4],[54.685 14 1],[54.787 12 1],[54.832 10 1],[54.852 8 1],[56.769 24 2],[56.775 22 2],[57.064 28 3],[57.13 28 3],[57.139 30 3],[57.266 32 3],[60.567 18 1],[60.629 16 1],[60.68 20 1],[60.692 14 1],[60.747 16 1],[60.806 18 1],[63.014 16 2],[63.02 18 2],[64.767 14 4],[64.777 20 4],[64.787 22 4],[64.797 14 4],[65.403 26 4],[65.612 24 2],[65.687 26 2],[65.723 22 4],[65.733 28 4],[65.833 28 2],[67.612 28 3],[67.715 26 3],[67.722 30 3],[67.899 26 3],[67.921 32 3],[75.704 12 4],[78.039 3 0],[78.052 2 0],[78.238 2 0],[79.188 2.4 0],[79.254 2 0],[79.442 2 0],[80.696 30 0],[80.96 25 0],[95.187 100 0],[95.483 200 0],[95.555 150 0],[95.852 100 0],[97.24 4 0],[97.39 70 0],[97.622 20 0],[97.651 8 0],[97.775 20 0],[108.231 12 4],[108.839 14 4],[112.976 8 1],[121.903 16 2],[126.687 16 2],[126.771 18 2],[129.754 14 2],[132.706 8 1],[132.811 10 1],[133.359 8 1],[134.36 10 1],[134.404 8 1],[135.992 14 2],[140.061 10 1],[140.714 8 1],[149.309 12 1],[149.324 10 1],[149.331 8 1],[149.893 22 2],[150.201 24 2],[150.418 22 2],[150.479 28 2],[150.63 26 2],[150.677 22 2],[155.302 20 2],[155.759 22 2],[156.373 20 2],[156.554 20 2],[162.34 20 2],[165.076 20 2],[167.039 26 2],[167.74 28 2],[170.213 8 1],[171.699 20 2],[174.475 8 1],[174.555 10 1],[174.739 12 1],[177.009 24 2],[177.067 30 2],[177.293 22 2],[177.336 28 2],[179.165 32 2],[180.303 22 2],[180.47 20 2],[180.59 34 2],[183.93 22 2],[183.997 24 2],[184.014 22 2],[190.076 16 2],[202.744 20 2],[203.032 24 2],[217.144 8 3],[221.717 24 2],[222.918 2 4],[225.272 4 4],[229.829 10 3],[245.063 4 4],[245.158 8 3],[245.207 24 2],[245.692 10 3],[246.133 2 4],[246.485 26 2],[247.029 26 2],[247.873 24 2],[248.437 30 2],[254.277 24 2],[255.611 20 1],[258.004 24 2],[258.381 26 2],[259.323 24 2],[259.553 26 2],[259.928 28 2],[262.501 26 2],[262.97 28 2],[265.644 24 2],[269.398 2 4],[270.23 2 4],[270.396 2 4],[270.717 4 4],[275.555 26 2],[275.963 32 2],[278.815 24 2],[281.145 32 2],[282.074 8 3],[282.613 10 3],[283.399 28 2],[283.563 30 2],[286.033 30 2],[286.286 24 2],[287.14 20 1],[288.758 28 2],[288.945 30 2],[290.53 24 2],[291.329 28 2],[291.634 32 2],[293.249 28 2],[299.428 28 2],[299.721 24 2],[299.753 26 2],[299.947 24 2],[303.925 26 2],[303.975 24 2],[304.28 32 2],[304.914 30 2],[305.999 24 1],[311.362 28 2],[311.57 32 2],[312.154 36 2],[312.479 28 2],[313.423 28 2],[314.699 28 2],[315.349 28 1],[317.417 36 2],[317.476 34 2],[320.276 34 1],[321.4 24 2],[326.408 28 1],[341.465 28 1],[341.645 30 1],[341.68 28 1],[341.7 32 1],[347.296 32 1],[347.331 30 1],[347.478 34 1],[350.139 38 1],[350.145 40 1],[350.157 40 1],[350.284 36 1],[350.296 40 1],[350.311 42 1],[350.537 34 1],[350.552 40 1],[350.563 44 1],[352.289 32 1],[353.687 30 1],[354.177 32 1],[359.052 32 1],[359.41 1.2 0],[359.869 34 1],[360.139 36 1],[360.284 38 1],[366.817 2.4 0],[370.453 36 1],[371.035 32 1],[373.957 32 1],[380.583 28 1],[384.709 54 1],[384.999 52 1],[385.167 50 1],[389.848 1 0],[389.883 38 1],[390.193 36 1],[390.382 34 1],[393.069 1.6 0],[393.426 1 0],[394.856 1 0],[397.204 30 1],[397.267 32 1],[397.478 34 1],[402.473 48 1],[402.501 44 1],[402.549 46 1],[408.391 32 1],[410.307 38 1],[410.322 34 1],[410.351 40 1],[410.371 36 1],[410.387 34 1],[410.916 34 1],[411.654 32 1],[411.921 30 1],[420.715 28 1],[422.516 34 1],[424.412 30 1],[424.623 40 1],[424.639 38 1],[424.659 36 1],[424.677 34 1],[424.684 32 1],[427.536 34 1],[427.753 32 1],[427.893 32 1],[429.917 40 1],[442.03 28 2],[442.735 24 2],[443.232 24 2],[444.653 32 1],[444.672 34 1],[444.719 36 1],[447.999 28 2],[473.438 28 1],[485.939 34 1],[493.326 32 1],[496.065 1.2 0],[500.2 28 1],[501.254 30 2],[511.099 32 2],[517.325 30 1],[523.041 3 0],[527.901 2.4 0],[554.052 3.6 0],[555.243 2.4 0],[557.733 2 0],[558.927 32 1],[562.406 4 0],[562.693 2.4 0],[565.915 3 0],[566.753 8 0],[567.167 18 0],[568.914 3.6 0],[570.082 5 0],[570.731 5 0],[575.317 28 2],[576.12 24 2],[595.015 2.4 0],[595.919 5 0],[596.528 14 0],[599.443 10 0],[601.583 30 0],[603.804 16 0],[604.754 180 0],[608.011 20 0],[609.182 30 2],[612.55 28 2],[614.976 160 0],[621.087 80 0],[623.357 26 2],[623.965 2600 0],[624.79 28 1],[634.851 2000 0],[636.305 28 2],[641.365 1600 0],[656.969 90 0],[658.039 60 0],[665.041 80 0],[669.048 360 0],[670.828 80 0],[677.398 1400 0],[679.553 300 0],[683.426 1800 0],[685.603 10000 0],[687.022 1600 0],[690.248 3000 0],[690.982 1200 0],[696.635 800 0],[703.747 9000 0],[712.789 6000 0],[717.99 26 1],[720.236 3000 0],[721.179 26 1],[730.903 200 0],[731.102 3000 0],[731.43 140 0],[733.196 1000 0],[733.677 24 2],[735.494 26 2],[739.869 2000 0],[742.565 800 0],[748.272 440 0],[748.916 500 0],[751.492 180 0],[755.224 1000 0],[757.338 1000 0],[760.717 1400 0],[775.47 3600 0],[780.021 3000 0],[787.918 60 0],[789.859 100 0],[793.631 70 0],[795.632 60 0],[801.601 16 1],[804.093 200 0],[807.552 180 0],[807.752 70 0],[812.656 70 0],[812.926 120 0],[815.951 60 0],[817.934 120 0],[819.124 60 0],[820.863 70 0],[821.473 500 0],[823.077 600 0],[823.219 100 0],[827.462 300 0],[829.858 400 0],[830.24 120 0],[880.758 180 0],[890.092 200 0],[891.278 60 0],[902.549 70 0],[904.21 80 0],[917.868 70 0],[943.367 40 0],[950.53 5 0],[966.204 2.4 0],[973.434 5 0],[982.211 3 0],[990.265 2.4 0],[1004.798 16 1],[1028.545 3 0],[1086.231 4 0]}{ALLx10000x10000x54x36x32x28x0}{UVx200x200x44x36x32x28x0}{VISx10000x10000x54x32x0x0x0}{IVx3000x3000x16x0x0x0x0}% @@ -44,7 +44,7 @@ \pgfspectra@elt@search{#1}{Na}{[10.628 100 4],[10.63 100 4],[10.64 100 4],[10.649 100 4],[10.793 200 4],[10.802 200 4],[11.082 200 4],[11.088 200 4],[11.151 100 4],[11.201 300 4],[11.47 100 4],[11.474 100 4],[11.799 400 4],[12.004 100 4],[12.518 400 4],[12.522 400 4],[12.529 500 4],[12.543 300 4],[12.546 300 4],[12.59 200 4],[12.621 100 4],[12.656 200 4],[12.661 100 4],[12.744 400 4],[12.747 400 4],[12.803 400 4],[12.805 400 4],[13.068 200 4],[13.135 300 4],[13.141 200 4],[13.164 300 4],[13.316 500 4],[13.339 400 4],[13.427 200 4],[13.579 300 4],[13.585 300 4],[13.6551 4 3],[13.6854 4 3],[13.881 200 4],[13.892 300 4],[13.9961 4 3],[14.2232 7 3],[14.2359 6 3],[14.6064 8 3],[14.6302 7 3],[14.864 400 4],[14.886 300 4],[15.0298 9 3],[15.0543 7 3],[15.064 7 3],[15.0687 8 3],[15.113 400 4],[15.1299 7 3],[15.5083 7 3],[15.524 7 3],[15.5448 7 3],[15.551 8 3],[15.6537 8 3],[15.721 300 4],[16.2448 12 3],[16.319 10 3],[16.362 300 4],[16.8411 12 3],[16.8546 10 3],[18.395 5 2],[18.935 5 2],[19.0445 10 3],[19.38 5 2],[19.404 5 2],[19.417 5 2],[19.429 5 2],[19.468 6 2],[19.553 6 2],[19.9772 10 3],[20.215 6 2],[20.219 6 2],[20.249 8 2],[20.271 5 2],[20.272 7 2],[20.276 8 2],[20.306 8 2],[20.328 8 2],[20.333 8 2],[20.549 10 3],[20.73 10 2],[21.534 10 2],[21.586 12 2],[21.612 12 2],[22.987 15 2],[23.059 12 2],[25.052 50 2],[25.137 30 2],[26.69 25 2],[26.765 70 2],[26.787 50 2],[26.863 50 2],[27.208 20 2],[27.245 20 2],[30.015 160 1],[30.02 160 1],[30.132 90 1],[30.144 100 1],[30.245 60 1],[30.715 800 4],[30.826 1000 4],[31.9644 10 3],[33.255 800 4],[33.391 900 4],[36.032 800 4],[36.037 800 4],[36.076 10 3],[37.208 300 1],[37.638 350 1],[37.814 100 2],[38.01 70 2],[40.072 1000 4],[40.8684 12 3],[40.9614 10 3],[41.0372 15 3],[41.1334 10 3],[41.2242 13 3],[44.505 500 4],[44.519 600 4],[45.99 600 4],[46.105 850 4],[46.326 1000 4],[129.397 60 1],[132.774 50 1],[133.676 7 2],[133.736 7 2],[134.067 8 2],[134.239 9 2],[134.273 10 2],[134.754 45 1],[135.528 11 2],[136.19 12 2],[137.234 11 2],[137.469 90 1],[140.468 90 1],[142.089 10 2],[144.419 10 2],[144.931 12 2],[149.521 45 1],[149.601 40 1],[149.773 45 1],[150.641 80 1],[150.691 60 1],[151.31 70 1],[151.963 60 1],[156.287 11 2],[156.529 10 2],[158.05 10 3],[158.218 11 3],[158.233 10 3],[158.398 11 3],[158.414 12 3],[158.699 10 3],[158.705 12 3],[159.818 10 2],[161.395 10 3],[161.592 11 3],[161.857 12 3],[165.547 11 3],[165.792 60 1],[168.894 11 2],[169.929 10 2],[170.197 15 3],[170.241 10 3],[171.112 10 2],[172.827 11 2],[173.111 10 2],[175.548 10 2],[177.657 90 1],[177.824 40 1],[178.304 60 1],[178.719 80 1],[178.885 45 1],[179.841 80 1],[180.126 45 1],[180.707 15 2],[180.709 90 1],[180.838 60 1],[181.077 10 2],[181.167 11 2],[181.681 10 2],[182.17 50 1],[183.387 45 1],[183.522 10 2],[183.522 80 1],[183.789 45 1],[183.894 10 2],[184.182 60 1],[184.436 11 2],[184.502 70 1],[184.753 12 2],[184.759 10 2],[184.956 15 2],[185.015 45 1],[185.038 12 2],[185.119 70 1],[185.317 80 1],[185.592 10 2],[185.671 10 2],[186.121 10 2],[186.645 45 1],[187.337 45 1],[187.508 60 1],[188.066 10 2],[188.191 160 1],[188.509 50 1],[188.574 45 1],[188.739 10 2],[188.747 20 2],[189.075 15 2],[190.016 15 2],[191.845 10 2],[192.396 11 2],[192.626 14 2],[192.724 12 2],[193.274 12 2],[193.389 13 2],[194.352 10 2],[194.643 12 2],[195.091 12 2],[195.124 14 2],[196.076 12 3],[196.508 11 3],[196.76 10 3],[197.716 10 2],[198.557 13 2],[199.568 10 2],[200.421 10 2],[200.522 11 2],[200.847 11 2],[201.187 15 2],[201.417 11 2],[201.703 12 2],[201.839 10 3],[202.856 12 2],[203.113 12 2],[203.59 11 2],[204.166 12 2],[204.329 12 2],[204.482 10 2],[204.544 10 2],[205.148 11 2],[206.036 10 2],[206.66 15 2],[208.291 13 2],[210.633 12 3],[211.453 10 3],[214.072 15 2],[214.454 14 2],[215.576 10 3],[220.283 15 2],[222.593 15 2],[222.853 80 1],[223.033 30 2],[223.219 16 2],[224.67 20 2],[225.147 14 2],[227.842 15 2],[228.566 13 2],[230.358 80 1],[230.999 15 2],[231.565 300 1],[238.699 18 2],[239.328 130 1],[239.403 17 2],[240.101 100 1],[240.659 15 2],[242.099 300 1],[242.473 300 1],[243.914 200 1],[244.15 250 1],[244.872 200 1],[245.218 200 1],[245.931 25 2],[246.885 18 2],[247.473 20 2],[249.315 1000 1],[249.703 25 2],[250.284 300 1],[250.63 450 1],[251.026 17 2],[251.546 600 1],[253.025 15 2],[253.154 600 1],[254.28 14 2],[258.631 550 1],[259.496 600 1],[261.181 850 1],[262.741 300 1],[263.181 300 1],[264.853 160 1],[265.131 200 1],[265.981 200 1],[266.1 850 1],[266.346 200 1],[266.646 350 1],[267.183 1000 1],[267.404 200 1],[267.809 850 1],[280.871 650 1],[280.952 850 1],[281.829 350 1],[282.987 600 1],[283.956 800 1],[284.172 1000 1],[285.281 16 0],[285.301 15 0],[285.651 650 1],[285.949 800 1],[286.102 350 1],[287.128 750 1],[287.295 650 1],[288.115 900 1],[288.626 850 1],[289.395 700 1],[290.114 900 1],[290.472 800 1],[290.492 1100 1],[291.752 1100 1],[291.905 1100 1],[291.985 1200 1],[292.095 1300 1],[292.349 1000 1],[293.088 750 1],[293.408 850 1],[293.774 950 1],[294.266 450 1],[294.57 800 1],[294.75 950 1],[295.124 1200 1],[295.24 1100 1],[296.012 850 1],[296.574 450 1],[297.073 500 1],[297.424 600 1],[297.499 750 1],[297.713 1000 1],[297.966 1100 1],[298.063 1100 1],[298.419 1300 1],[300.415 550 1],[300.744 750 1],[300.914 750 1],[300.948 450 1],[301.54 600 1],[301.734 450 1],[302.907 400 1],[303.708 400 1],[304.56 400 1],[305.367 550 1],[305.535 550 1],[305.616 550 1],[305.738 550 1],[305.795 550 1],[305.872 550 1],[306.025 700 1],[306.135 800 1],[306.438 500 1],[306.622 500 1],[306.654 500 1],[307.433 550 1],[307.832 550 1],[308.025 550 1],[308.706 550 1],[308.826 450 1],[309.204 550 1],[309.273 550 1],[309.445 650 1],[309.555 650 1],[310.358 500 1],[310.44 500 1],[311.145 450 1],[311.369 500 1],[312.294 400 1],[312.442 1700 1],[312.521 600 1],[312.938 600 1],[313.548 2500 1],[313.786 1700 1],[314.571 950 1],[314.928 2000 1],[316.374 2000 1],[317.509 700 1],[317.906 1000 1],[318.979 1700 1],[321.219 1600 1],[323.493 700 1],[325.796 1500 1],[326.021 650 1],[327.422 950 1],[328.56 1700 1],[330.135 1700 1],[330.237 19 0],[330.298 18 0],[330.496 1500 1],[331.804 1000 1],[332.769 950 1],[342.686 6 0],[353.305 1500 1],[363.127 1200 1],[371.107 850 1],[408.137 200 1],[411.37 300 1],[412.308 250 1],[423.326 250 1],[423.899 2 0],[424.037 200 1],[424.09 250 1],[424.208 3 0],[427.364 4 0],[427.679 5 0],[428.784 2 0],[429.101 3 0],[429.248 250 1],[429.286 250 1],[430.881 250 1],[430.904 250 1],[432.091 250 1],[432.14 6 0],[432.462 7 0],[433.729 250 1],[434.149 4 0],[434.411 250 1],[434.474 5 0],[436.86 200 1],[437.522 200 1],[438.749 200 1],[439.003 8 0],[439.281 250 1],[439.334 9 0],[440.512 200 1],[441.989 6 0],[442.325 7 0],[444.67 200 1],[444.741 200 1],[445.474 200 1],[445.523 200 1],[445.721 200 1],[447.463 200 1],[447.88 200 1],[448.167 200 1],[449.015 200 1],[449.087 200 1],[449.418 10 0],[449.766 11 0],[449.962 200 1],[450.697 200 1],[451.921 200 1],[452.498 200 1],[453.332 200 1],[454.163 7 0],[454.519 8 0],[455.153 200 1],[459.092 160 1],[472.223 160 1],[473.11 160 1],[473.25 100 1],[474.167 160 1],[476.879 160 1],[478.879 100 1],[481.475 50 1],[483.526 50 1],[514.311 60 1],[519.165 100 1],[520.333 50 1],[520.855 80 1],[539.063 60 1],[540.046 70 1],[541.455 90 1],[568.2633 5 0],[568.8204 9 0],[588.995 32 0],[589.5924 16 0],[617.525 60 1],[619.926 70 1],[623.468 70 1],[626.001 80 1],[627.474 80 1],[631.08 60 1],[635.283 60 1],[635.805 60 1],[636.115 70 1],[636.641 70 1],[637.891 60 1],[647.529 50 1],[651.421 90 1],[652.468 80 1],[653.07 130 1],[654.404 130 1],[654.575 130 1],[655.243 80 1],[780.978 4 0],[781.024 3 0],[818.3256 5 0],[819.4824 9 0],[864.992 7 0],[865.089 6 0],[915.388 4 0],[946.594 6 0],[996.128 7 0],[1057.228 3 0],[1074.644 10 0],[1074.929 9 0],[1083.487 8 0],[1138.145 11 0],[1140.378 12 0],[1476.748 115 0],[2205.6439 30 0],[2208.367 27 0],[2334.841 24 0],[2337.9131 24 0]}{ALLx2500x115x2500x100x15x1000x0}{UVx2500x19x2500x100x15x1000x0}{VISx300x32x300x0x0x0x0}{IVx115x115x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Mg}{[11.816 40 3],[11.881 80 3],[12.359 70 3],[12.465 240 3],[12.986 300 3],[13.281 300 3],[14.695 400 3],[14.741 300 3],[14.754 300 3],[17.08 15 2],[17.139 15 2],[18.007 350 3],[18.062 400 3],[18.08 400 3],[18.134 350 3],[18.224 15 2],[18.297 12 2],[18.651 20 2],[18.72 20 2],[18.853 10 2],[23.173 100 2],[23.426 80 2],[25.158 5 4],[27.658 35 4],[31.23 10 4],[32.099 4000 3],[32.331 3000 3],[35.109 20 4],[35.22 18 4],[35.309 30 4],[35.33 15 4],[35.422 18 4],[35.533 20 4],[80.041 40 3],[85.729 150 3],[86.674 30 3],[91.903 50 3],[92.978 30 3],[94.67 8 1],[94.677 9 1],[100.876 40 3],[102.596 14 1],[102.611 12 1],[102.641 30 3],[103.741 250 3],[104.437 80 3],[105.576 60 3],[121.099 300 3],[123.994 25 1],[124.04 20 1],[124.851 6 1],[124.993 8 1],[127.124 8 1],[127.194 9 1],[127.272 8 1],[127.343 11 1],[127.483 10 2],[128.07 11 2],[130.671 11 1],[130.788 12 1],[130.828 12 1],[130.944 14 1],[134.219 300 3],[134.657 800 3],[134.668 300 3],[135.205 600 3],[136.545 14 1],[136.726 15 1],[136.77 15 1],[136.942 18 1],[138.446 900 3],[138.577 500 3],[138.753 800 3],[139.127 12 2],[139.339 15 2],[140.468 300 3],[140.936 1000 3],[143.114 10 2],[143.753 500 3],[143.764 1000 3],[144.742 300 3],[145.954 300 3],[145.962 400 3],[147.6 20 1],[147.801 25 1],[148.089 20 1],[148.151 400 3],[148.29 30 1],[149.045 350 3],[149.55 300 3],[157.271 16 2],[158.624 12 2],[160.711 300 3],[164.593 1 0],[165.116 1 0],[165.831 2 0],[166.843 5 0],[168.302 500 3],[168.341 10 0],[168.709 13 2],[169.728 13 2],[169.881 400 3],[170.706 15 0],[172.204 10 2],[173.484 40 1],[173.762 50 1],[173.884 22 2],[174.756 12 2],[174.78 20 0],[174.893 18 2],[175.065 40 1],[175.346 50 1],[177.298 15 2],[178.325 20 2],[179.458 14 2],[180.066 15 2],[182.793 30 0],[184.417 300 3],[185.819 13 2],[187.949 12 2],[190.85 10 2],[192.39 12 2],[193.067 13 2],[193.784 11 2],[202.582 9 0],[203.955 15 2],[205.549 15 2],[206.49 25 2],[208.59 15 2],[209.196 20 2],[209.793 13 2],[211.277 15 2],[213.406 16 2],[217.77 20 2],[232.958 3 1],[239.515 20 2],[244.957 6 1],[246.775 15 2],[249.054 10 2],[251.84 12 3],[252.919 10 2],[253.479 4 3],[255.723 1 0],[256.094 1 0],[256.226 1 0],[256.494 1 0],[257.091 1 0],[257.225 1 0],[257.494 2 0],[257.789 1 0],[258.059 1 0],[258.422 1 0],[258.556 2 0],[258.828 3 0],[259.189 1 0],[259.323 1 0],[259.597 2 0],[260.25 2 0],[260.385 4 0],[260.662 5 0],[261.336 1 0],[261.473 2 0],[261.751 3 0],[262.866 3 0],[263.005 6 0],[263.287 8 0],[264.48 2 0],[264.621 3 0],[264.906 4 0],[266.076 8 1],[266.082 8 1],[266.812 6 0],[266.955 8 0],[267.246 10 0],[269.372 3 0],[269.518 5 0],[269.814 6 0],[273.199 8 0],[273.349 10 0],[273.653 12 0],[276.522 5 0],[276.834 7 0],[277.669 38 0],[277.827 32 0],[277.983 90 0],[278.129 8 0],[278.142 32 0],[278.297 36 0],[279.079 13 1],[279.553 1000 1],[279.806 16 1],[280.27 600 1],[280.976 3 0],[281.111 2 0],[281.178 1 0],[284.672 12 0],[284.675 12 0],[284.834 14 0],[284.842 14 0],[285.165 16 0],[285.166 16 0],[285.213 6000 0],[290.292 2 0],[290.636 4 0],[291.545 3 0],[291.545 3 0],[292.875 2 1],[293.654 3 1],[293.674 10 0],[293.674 10 0],[293.847 12 0],[293.847 12 0],[294.2 2 0],[294.2 13 0],[296.787 1 1],[297.17 1 1],[309.108 20 0],[309.299 22 0],[309.69 14 0],[310.471 9 1],[310.481 8 1],[316.898 6 1],[317.271 6 1],[317.578 7 1],[319.762 2 0],[329.905 12 2],[330.639 13 2],[332.993 17 0],[333.215 6 0],[333.59 12 2],[333.668 9 0],[334.258 11 2],[336.141 12 2],[338.124 10 2],[338.29 11 2],[338.737 11 2],[353.504 7 1],[353.886 8 1],[354.952 7 1],[355.337 8 1],[370.674 10 2],[382.93 140 0],[383.23 300 0],[383.829 500 0],[384.824 8 1],[384.891 1 0],[385.04 7 1],[385.396 2 0],[385.496 1 0],[385.886 2 0],[387.831 3 0],[389.191 2 0],[389.33 2 0],[389.557 3 0],[390.386 4 0],[393.84 6 0],[398.421 1 0],[398.675 8 0],[405.469 2 0],[405.75 10 0],[407.506 3 0],[408.183 2 0],[416.51 4 0],[416.727 15 0],[435.191 20 0],[435.453 6 0],[438.038 6 0],[438.464 9 1],[439.059 10 1],[442.8 8 1],[443.399 9 1],[443.649 5 1],[443.66 4 1],[448.116 14 1],[448.133 13 1],[453.429 6 1],[457.11 28 0],[462.13 3 0],[470.299 7 0],[473.003 10 0],[473.959 6 1],[473.971 5 1],[485.11 7 1],[491.6 10 2],[516.733 75 0],[517.268 220 0],[518.361 400 0],[526.421 8 1],[526.437 7 1],[534.598 1 0],[540.154 9 1],[550.96 2 0],[552.841 6 0],[571.109 30 0],[578.531 5 0],[578.556 4 0],[583.982 10 2],[591.643 7 1],[591.816 6 1],[625.675 15 2],[631.872 10 0],[631.924 9 0],[631.949 7 0],[634.674 10 1],[634.696 9 1],[654.597 11 1],[662.044 5 1],[662.057 6 1],[663.083 2 0],[678.145 7 1],[678.785 8 1],[681.286 7 1],[681.927 8 1],[689.49 4 0],[696.54 6 0],[706.041 8 0],[719.317 10 0],[729.106 10 0],[738.7 5 0],[738.769 12 0],[758.076 4 1],[765.76 20 0],[765.915 19 0],[765.99 17 0],[769.016 8 0],[769.155 15 0],[772.261 1 0],[774.634 1 0],[775.93 1 0],[778.65 5 1],[779.098 4 1],[781.114 3 0],[787.705 12 1],[788.167 2 0],[789.637 13 1],[793.081 7 0],[804.773 3 0],[804.985 5 0],[805.423 7 0],[809.872 10 0],[811.522 9 1],[812.043 8 1],[815.464 1 0],[815.913 2 0],[820.984 10 0],[821.303 20 0],[821.399 10 1],[822.292 7 1],[823.319 7 1],[823.464 11 1],[830.331 7 0],[830.56 9 0],[831.026 10 0],[834.612 15 0],[846.648 2 0],[846.884 5 0],[847.369 7 0],[871.018 10 0],[871.269 12 0],[871.783 13 0],[873.499 10 1],[873.602 17 0],[874.566 11 1],[880.676 14 0],[882.432 10 1],[883.508 11 1],[892.357 20 0],[898.903 7 0],[899.169 9 0],[899.716 10 0],[921.825 14 1],[924.427 13 1],[924.65 12 0],[925.578 30 0],[932.754 10 1],[934.054 10 1],[941.496 25 0],[942.981 17 0],[943.276 19 0],[943.878 20 0],[950.245 8 0],[950.311 7 0],[950.343 5 0],[963.189 12 1],[963.243 11 1],[995.32 15 0],[998.32 15 0],[998.647 17 0],[999.321 18 0],[1009.216 14 1],[1039.176 5 1],[1039.223 6 1],[1081.108 35 0],[1091.423 11 1],[1091.527 7 1],[1095.178 10 1],[1095.332 25 0],[1095.73 27 0],[1096.545 28 0],[1103.21 15 0],[1103.366 14 0],[1125.593 5 1],[1125.635 4 1],[1182.818 45 0],[1208.366 30 0],[1487.762 28 0],[1502.499 35 0],[1504.024 30 0],[1504.77 25 0],[1574.071 6 0],[1574.899 8 0],[1576.584 10 0],[1710.866 30 0],[2639.29 5 0]}{ALLx6000x6000x1000x100x4000x35x0}{UVx6000x6000x1000x100x4000x35x0}{VISx500x500x14x15x0x0x0}{IVx45x45x14x0x0x0x0}% \pgfspectra@elt@search{#1}{Al}{[10.38 300 4],[10.388 400 4],[10.407 250 4],[10.418 250 4],[10.795 600 4],[10.806 300 4],[10.811 300 4],[11.85 250 4],[12.403 400 3],[12.553 900 4],[12.607 800 4],[12.973 700 3],[13.041 800 4],[13.085 1000 4],[13.1 900 4],[13.144 900 4],[13.263 500 4],[16.007 800 3],[16.169 700 3],[27.869 1000 4],[28.139 900 4],[48.6884 70 2],[48.6912 30 2],[51.1138 250 2],[51.1191 150 2],[56.0317 500 2],[56.0433 200 2],[67.0068 100 2],[67.1118 200 2],[69.5829 500 2],[69.6217 400 2],[72.5683 200 2],[72.6915 300 2],[85.5034 400 2],[85.6746 500 2],[89.2024 400 2],[89.3887 50 2],[89.3897 450 2],[102.734 500 3],[104.217 800 3],[104.852 700 3],[105.89 500 3],[106.143 500 3],[106.489 600 3],[106.657 500 3],[106.826 250 4],[106.944 600 3],[108.867 500 4],[109.014 300 4],[110.574 400 3],[111.882 600 3],[112.561 500 3],[113.682 400 3],[115.03 300 4],[116.259 10 2],[116.262 5 2],[116.542 350 4],[116.848 250 4],[117.743 40 1],[119.1812 50 1],[119.85 400 3],[122.055 400 3],[123.719 900 3],[124.021 600 3],[124.086 700 3],[124.879 700 3],[125.762 900 3],[126.418 800 3],[127.276 1000 3],[128.77 500 4],[133.006 400 4],[133.79 400 3],[135.018 150 1],[135.052 400 4],[135.281 100 2],[135.282 5 2],[135.286 70 2],[136.335 400 4],[136.92 600 4],[137.37 300 4],[137.662 500 3],[137.967 600 2],[138.413 800 2],[138.879 500 3],[143.194 600 3],[144.182 700 3],[144.587 400 4],[144.751 800 3],[145.526 300 4],[145.796 600 3],[147.564 600 4],[148.605 300 4],[148.689 700 3],[149.479 800 3],[150.837 700 4],[151.907 400 3],[152.614 1000 4],[153.754 800 3],[153.912 500 4],[153.983 800 1],[155.019 500 3],[155.725 1000 3],[155.903 500 3],[156.416 700 3],[156.9385 100 1],[157.79 300 4],[158.204 900 3],[158.446 800 3],[158.928 400 3],[158.987 350 4],[159.6059 125 1],[160.5766 700 2],[160.665 400 3],[161.1814 100 2],[161.1874 800 2],[161.781 400 3],[162.5627 150 1],[162.754 600 3],[163.682 500 3],[163.906 800 3],[164.4235 100 1],[164.4809 100 1],[167.0787 1000 1],[168.625 100 1],[171.944 800 1],[172.1244 500 1],[172.1271 900 1],[172.4952 500 1],[172.4984 900 1],[176.0104 350 1],[176.1975 300 1],[176.3 290 0],[176.3869 500 1],[176.3952 700 1],[176.564 450 0],[176.5815 300 1],[176.638 450 0],[176.7731 400 1],[176.914 450 0],[181.856 1000 3],[182.8588 600 1],[183.2837 400 1],[183.4808 250 1],[185.4716 1000 2],[185.5929 300 1],[185.8026 700 1],[185.998 120 1],[186.2311 1000 1],[186.279 600 2],[188.116 700 3],[192.9978 200 1],[193.1048 150 1],[193.2377 200 1],[193.4503 400 1],[193.4713 150 1],[193.584 300 2],[193.5863 15 2],[193.5949 200 2],[193.6907 150 1],[193.9261 220 1],[199.0531 700 1],[201.6052 150 1],[201.6234 150 1],[201.6368 100 1],[207.4008 200 1],[209.4264 700 1],[209.4744 150 1],[209.4791 300 1],[209.5104 100 1],[209.5141 200 1],[215.07 60 0],[218.1 60 0],[226.91 400 0],[226.922 120 0],[231.249 60 0],[231.353 70 0],[231.748 90 0],[231.906 60 0],[232.156 140 0],[236.705 460 0],[236.761 110 0],[236.811 110 0],[236.93 180 0],[237.022 140 0],[237.073 70 0],[237.207 160 0],[237.312 850 0],[237.335 170 0],[237.357 110 0],[237.84 60 0],[239.9 110 2],[251.33 60 0],[251.587 400 3],[256.798 240 0],[257.51 480 0],[257.54 60 0],[263.155 80 1],[263.77 110 1],[265.248 150 0],[266.039 200 0],[266.917 160 1],[276.277 285 2],[276.287 220 2],[281.619 650 1],[283.796 90 0],[284.01 90 0],[290.693 450 2],[304.128 150 1],[305.007 360 0],[305.468 60 0],[305.714 450 0],[306.429 90 0],[306.614 60 0],[307.464 150 1],[308.2153 4500 0],[309.271 7200 0],[309.2839 1800 0],[320.82 500 3],[326.721 500 3],[328.513 600 3],[334.446 400 3],[334.852 360 2],[335.088 290 2],[342.892 150 1],[343.935 70 0],[344.364 150 0],[344.486 70 0],[345.822 70 0],[347.354 500 3],[347.981 60 0],[348.263 60 0],[349.223 900 3],[350.846 800 3],[351.128 500 3],[351.756 700 3],[352.703 400 3],[354.108 500 3],[358.656 450 1],[358.707 360 1],[358.745 290 1],[360.163 870 2],[360.193 550 2],[361.236 750 2],[365.106 220 1],[365.11 110 1],[365.498 150 1],[365.5 290 1],[370.211 450 2],[371.312 550 2],[390.068 450 1],[393.2 60 0],[394.4006 4500 0],[396.152 9000 0],[398.014 110 2],[399.586 110 1],[408.245 110 2],[408.861 150 2],[414.237 110 2],[414.992 650 2],[415.017 650 2],[422.681 290 1],[436.464 110 2],[447.989 650 2],[447.997 650 2],[451.256 760 2],[452.894 550 2],[452.919 870 2],[458.582 150 1],[458.819 110 1],[466.68 550 1],[470.115 110 2],[470.141 150 2],[489.876 110 1],[490.277 110 1],[490.41 110 2],[510.752 70 0],[515.101 110 2],[516.389 110 2],[528.021 150 1],[528.377 290 1],[528.585 150 1],[531.232 110 1],[531.607 220 1],[537.184 150 1],[555.706 180 0],[555.795 110 0],[559.323 450 1],[569.66 1200 2],[572.273 1000 2],[585.362 110 1],[597.194 220 1],[600.176 290 1],[600.188 220 1],[600.642 450 1],[605.521 110 2],[606.111 150 1],[606.843 290 1],[606.853 110 1],[607.323 450 1],[618.157 110 1],[618.168 150 1],[618.228 290 1],[618.245 220 1],[618.342 450 1],[620.152 450 1],[620.17 360 1],[622.618 290 1],[623.178 360 1],[624.336 450 1],[633.574 450 1],[669.602 360 0],[669.867 230 0],[708.397 60 0],[708.464 70 0],[736.157 110 0],[736.23 140 0],[760.616 60 0],[761.482 90 0],[763.537 220 2],[766.026 150 2],[768.197 220 2],[783.531 230 0],[783.613 290 0],[788.179 360 2],[788.252 150 2],[790.551 290 2],[799.305 60 0],[800.319 90 0],[806.597 70 0],[807.535 110 0],[824.359 290 2],[827.511 360 2],[864.07 290 1],[877.287 360 0],[877.39 450 0],[882.891 110 0],[884.128 180 0],[891.29 90 0],[892.356 140 0],[908.991 60 0],[913.995 70 0],[929.065 150 1],[929.075 110 1],[957.152 290 2],[960.599 360 2],[1007.629 150 1],[1076.836 110 0],[1078.204 140 0],[1087.298 110 0],[1089.173 230 0],[1125.319 450 0],[1125.488 570 0],[1312.341 570 0],[1315.076 450 0],[1671.8961 230 0],[1675.0561 300 0],[1676.3359 140 0],[2109.3039 300 0],[2116.375 360 0]}{ALLx9000x9000x1000x1200x1000x1000x0}{UVx7200x7200x1000x1000x1000x1000x0}{VISx9000x9000x550x1200x0x0x0}{IVx570x570x290x360x0x0x0}% -\pgfspectra@elt@search{#1}{Si}{[7.861 1 4],[7.89 1 4],[8.081 2 4],[8.111 2 4],[8.518 10 4],[8.558 6 4],[9.045 4 4],[9.085 4 4],[9.644 15 4],[9.714 10 4],[9.821 2 4],[11.786 20 4],[11.897 20 4],[45.782 4 3],[45.816 3 3],[51.512 2 3],[51.635 3 3],[56.661 8 2],[64.576 2 3],[65.222 6 2],[65.333 8 2],[67.348 5 2],[74.994 5 3],[80.007 5 2],[80.51 10 1],[81.505 7 3],[81.813 8 3],[82.052 20 1],[82.341 9 2],[84.372 20 1],[84.577 40 1],[85.014 10 1],[88.34 5 2],[88.972 100 1],[89.2 200 1],[89.941 10 1],[90.174 20 1],[91.301 10 1],[91.385 20 1],[92.981 20 1],[93.909 7 2],[96.795 9 2],[98.987 100 1],[99.268 200 1],[99.352 10 2],[99.479 13 2],[99.739 16 2],[100.537 7 2],[102.07 25 1],[102.369 50 1],[103.116 7 2],[103.392 8 2],[103.705 7 2],[105.705 30 1],[105.75 15 1],[106.663 8 3],[108.322 6 2],[110.837 14 2],[110.997 16 2],[111.323 18 2],[112.249 8 3],[112.744 20 1],[112.791 40 1],[112.834 10 3],[114.055 6 2],[114.158 7 2],[114.228 6 2],[114.431 8 2],[114.496 6 2],[114.511 8 2],[114.518 7 2],[115.5 6 2],[115.596 6 2],[115.81 7 2],[116.026 6 2],[116.158 8 2],[117.437 5 2],[117.443 6 2],[117.8 8 2],[119.042 100 1],[119.328 200 1],[119.45 250 1],[119.739 100 1],[120.651 30 2],[120.653 30 2],[120.752 9 2],[121.046 10 2],[121.612 10 1],[122.391 20 1],[122.425 20 1],[122.497 10 1],[122.681 50 1],[122.689 20 1],[122.699 40 1],[122.76 100 1],[122.844 10 1],[122.862 25 1],[122.875 150 1],[122.939 200 1],[123.543 7 2],[123.592 10 1],[124.674 100 1],[124.843 150 1],[125.009 100 1],[125.043 150 1],[125.116 200 1],[125.528 10 0],[125.649 40 0],[125.88 50 0],[126.042 1000 1],[126.473 2000 1],[126.502 200 1],[128.035 6 2],[129.454 17 2],[129.673 14 2],[129.889 15 2],[129.896 18 2],[130.115 14 2],[130.332 16 2],[130.437 100 1],[130.559 50 1],[130.927 200 1],[130.946 20 1],[131.259 13 2],[134.147 8 2],[134.239 7 2],[134.339 6 2],[134.687 100 1],[134.854 100 1],[135.006 150 1],[135.052 20 1],[135.066 20 1],[135.264 100 1],[135.372 100 1],[136.16 8 2],[136.237 5 2],[136.347 7 2],[136.526 8 2],[136.705 7 2],[136.944 5 2],[137.303 5 2],[138.799 5 2],[139.376 15 3],[140.277 12 3],[140.907 10 1],[141.022 20 1],[141.697 10 1],[141.724 13 2],[143.369 6 2],[143.577 8 2],[143.617 7 2],[144.173 5 2],[144.72 6 2],[145.725 5 2],[147.465 15 1],[148.487 15 1],[148.502 90 1],[148.522 30 1],[148.551 100 1],[150.024 12 2],[150.119 10 2],[150.187 9 2],[150.606 6 2],[150.91 100 1],[151.207 50 1],[151.357 30 1],[151.691 60 1],[152.672 500 1],[153.345 1000 1],[156.245 10 1],[156.285 15 1],[156.377 10 1],[157.387 50 0],[157.482 50 0],[159.241 50 0],[159.455 150 0],[159.493 50 0],[159.795 30 0],[162.287 100 0],[162.571 30 0],[162.943 300 0],[162.992 200 0],[163.113 75 0],[163.398 50 0],[163.461 1 3],[165.335 30 0],[166.452 30 0],[166.637 50 0],[166.762 100 0],[166.852 100 0],[167.259 100 0],[167.332 7 2],[167.52 200 0],[168.268 30 0],[168.682 30 0],[168.929 50 0],[169.079 30 0],[169.329 50 0],[169.551 50 0],[169.62 200 0],[169.794 200 0],[170.042 50 0],[170.063 30 0],[170.286 30 0],[170.443 50 0],[171.083 10 1],[171.13 20 1],[172.253 6 3],[172.738 5 3],[174.388 30 0],[174.74 50 0],[175.311 30 0],[176.366 50 0],[176.503 40 0],[176.56 30 0],[176.606 30 0],[177.063 30 0],[177.092 100 0],[177.683 100 0],[178.323 50 0],[179.912 100 0],[180.8 150 1],[180.909 50 0],[181.407 500 0],[181.692 200 1],[181.745 10 1],[182.245 50 0],[183.651 200 0],[183.801 30 0],[184.115 100 0],[184.144 200 0],[184.255 9 2],[184.377 200 0],[184.551 300 0],[184.61 100 0],[184.747 400 0],[184.814 200 0],[184.874 100 0],[185.067 500 0],[185.179 30 0],[185.246 200 0],[185.315 50 0],[186.932 20 1],[187.023 15 1],[187.31 100 0],[187.484 500 0],[187.581 100 0],[188.185 200 0],[188.77 200 0],[189.325 200 0],[190.133 1000 0],[190.246 100 1],[190.466 50 0],[191.062 50 1],[194.167 50 1],[194.459 15 1],[194.933 10 1],[194.956 100 1],[195.497 100 0],[198.443 30 0],[199.185 50 0],[201.097 30 0],[205.483 50 0],[205.865 50 1],[205.901 50 1],[206.119 40 0],[206.552 30 0],[207.202 200 1],[207.27 200 1],[210.321 30 0],[211.463 30 0],[212.018 3 3],[212.412 100 0],[212.747 4 3],[213.399 10 1],[213.64 30 1],[213.656 50 1],[214.791 50 0],[217.689 5 2],[220.798 110 0],[221.089 115 0],[221.174 110 0],[221.667 120 0],[221.806 120 0],[221.891 50 0],[228.704 5 3],[229.103 35 0],[229.548 6 2],[229.687 10 2],[230.093 8 2],[230.306 55 0],[230.819 10 2],[232.856 2 3],[233.44 30 1],[233.461 30 1],[234.42 10 1],[234.954 10 1],[235.017 20 1],[235.309 20 1],[235.63 100 1],[235.718 30 1],[235.797 50 1],[236.02 10 1],[236.676 2 3],[236.697 30 1],[237.099 3 3],[237.426 20 1],[242.845 10 1],[243.515 300 0],[243.877 65 0],[244.336 65 0],[244.948 11 2],[245.212 70 0],[248.282 2 3],[248.32 6 2],[248.538 1 3],[250.69 425 0],[251.432 375 0],[251.6113 500 0],[251.751 7 3],[251.9202 350 0],[252.4108 425 0],[252.8509 450 0],[253.2381 110 0],[254.182 25 2],[254.609 10 2],[255.921 14 2],[256.3679 30 0],[256.8641 85 0],[257.7151 45 0],[263.1282 190 0],[264.079 11 2],[265.551 14 2],[267.219 1 3],[267.512 4 3],[267.525 4 3],[267.757 1 3],[268.221 10 1],[272.381 3 3],[281.711 9 2],[283.149 7 2],[283.962 5 2],[288.1579 1000 0],[288.751 10 1],[289.513 3 3],[290.428 300 1],[290.447 2 3],[290.569 500 1],[295.915 5 2],[297.0355 55 0],[297.152 1 3],[298.052 5 2],[298.7645 150 0],[300.6739 50 0],[301.309 5 2],[302.0004 75 0],[302.155 20 1],[303 100 1],[303.473 6 2],[303.729 8 2],[304.093 9 2],[304.157 20 1],[304.219 30 1],[304.369 100 1],[304.385 10 1],[304.393 7 2],[304.508 5 2],[304.577 10 1],[304.83 50 1],[305.318 150 1],[306.824 7 2],[308.624 25 2],[308.646 6 2],[309.342 20 2],[309.365 5 2],[309.683 16 2],[312.627 6 2],[314.737 7 2],[314.956 7 3],[316.161 8 2],[316.571 9 3],[318.513 16 2],[318.602 13 2],[318.897 150 1],[319.225 50 1],[319.309 150 1],[319.421 50 1],[319.469 50 1],[319.541 100 1],[319.65 14 2],[319.951 200 1],[320.249 20 1],[320.387 100 1],[321.003 200 1],[321.055 15 2],[321.466 75 1],[321.625 7 2],[321.799 15 1],[322.044 10 1],[322.301 20 1],[323.05 12 2],[323.395 14 2],[324.162 15 2],[324.419 1 3],[325.34 7 2],[325.374 5 2],[325.48 7 2],[325.866 12 2],[327.046 6 2],[327.626 10 2],[327.926 7 2],[333.314 300 1],[333.982 500 1],[348.691 15 2],[352.594 9 2],[356.967 8 2],[359.047 20 2],[362.254 8 2],[363.945 5 2],[364.512 6 2],[368.14 7 2],[368.215 5 2],[376.244 8 3],[377.315 6 3],[379.141 20 2],[379.611 25 2],[380.654 30 2],[384.246 7 2],[385.366 100 1],[385.602 500 1],[386.26 200 1],[390.5523 300 0],[392.447 20 2],[394.749 6 2],[395.574 10 1],[396.384 6 2],[397.746 10 1],[398.124 5 2],[399.177 15 1],[399.801 10 1],[403.139 1 3],[403.806 2 3],[407.545 20 1],[407.678 15 1],[408.885 10 3],[410.186 5 2],[410.242 8 2],[410.2936 70 0],[411.55 5 2],[411.61 9 3],[412.807 300 1],[413.089 500 1],[418.335 10 1],[419.072 100 1],[419.813 50 1],[421.241 7 3],[431.41 3 3],[432.818 5 3],[433.85 9 2],[434.14 8 2],[437.763 8 2],[440.373 2 3],[440.59 6 2],[440.672 8 2],[441.165 1 3],[449.405 6 2],[455.262 30 2],[455.4 8 2],[456.782 25 2],[457.476 20 2],[461.127 1 3],[461.966 7 2],[462.142 100 1],[462.172 150 1],[462.862 3 3],[463.124 9 3],[463.828 7 2],[465.432 10 3],[465.692 3 3],[466.587 8 2],[466.714 1 3],[467.33 2 3],[468.302 9 2],[468.38 7 2],[471.665 16 2],[473.052 7 2],[478.2991 50 0],[479.2212 35 0],[479.2324 80 0],[480.043 8 2],[481.333 15 2],[481.972 16 2],[482.897 18 2],[488.32 15 1],[490.699 20 1],[493.28 20 1],[494.745 1 3],[494.7607 30 0],[495.011 3 3],[500.6061 40 0],[504.103 1000 1],[505.598 1000 1],[509.142 10 2],[511.376 7 2],[511.412 8 2],[518.19 100 1],[518.525 100 1],[519.286 200 1],[519.726 5 2],[520.241 500 1],[529.519 30 1],[530.497 2 3],[530.949 1 3],[540.534 100 1],[541.724 15 1],[542.892 15 1],[543.289 15 1],[543.862 100 1],[544.726 20 1],[545.146 6 2],[545.449 15 1],[545.645 100 1],[546.643 500 1],[546.687 500 1],[546.921 100 1],[547.305 7 2],[549.323 40 0],[549.645 200 1],[551.7535 35 0],[554.074 100 1],[557.666 150 1],[562.2221 30 0],[563.297 100 1],[563.948 200 1],[564.5611 90 0],[566.066 150 1],[566.5554 80 0],[566.956 1000 1],[568.144 30 1],[568.4484 120 0],[568.881 300 1],[569.0425 100 0],[570.1105 90 0],[570.137 200 1],[570.46 7 2],[570.637 100 1],[570.8397 160 0],[571.629 8 2],[573.973 20 2],[574.7667 45 0],[575.3625 45 0],[575.422 45 0],[576.2977 45 0],[577.2145 70 0],[578.0384 70 0],[578.573 30 1],[579.3071 90 0],[579.49 30 1],[579.7859 100 0],[580.047 150 1],[580.674 200 1],[582.78 30 1],[584.613 50 1],[586.748 10 1],[586.84 300 1],[587.3764 40 0],[589.879 10 2],[591.522 150 1],[594.8545 200 0],[595.756 500 1],[597.893 500 1],[606.745 10 1],[608.006 20 1],[608.667 10 1],[612.5021 90 0],[613.1574 85 0],[613.185 90 0],[614.2487 100 0],[614.5015 100 0],[615.5134 160 0],[623.732 160 0],[623.8287 40 0],[624.3813 125 0],[624.4468 125 0],[625.4188 180 0],[631.446 7 2],[633.1954 45 0],[634.71 1000 1],[637.136 1000 1],[652.436 6 2],[652.6609 45 0],[652.7199 45 0],[655.5462 45 0],[666.052 50 1],[666.5 15 1],[666.756 5 3],[667.188 100 1],[669.938 20 1],[670.121 7 3],[671.704 50 1],[672.1853 100 0],[674.164 30 0],[675.028 20 1],[681.845 30 1],[682.982 50 1],[683.156 6 2],[684.8568 30 0],[685.165 7 2],[697.6523 80 0],[699.836 3 3],[700.3567 180 0],[700.5883 180 0],[701.728 30 0],[701.7646 90 0],[703.4903 250 0],[704.794 6 3],[706.841 4 3],[716.469 70 0],[716.5545 200 0],[718.489 70 0],[719.358 65 0],[719.39 30 0],[722.6206 100 0],[723.5326 100 0],[723.582 60 0],[725.0625 180 0],[727.5294 160 0],[728.281 40 0],[728.9173 400 0],[729.026 55 0],[737.3 35 0],[740.5774 375 0],[740.9082 200 0],[741.535 40 0],[741.5946 275 0],[742.3497 425 0],[742.46 85 0],[746.189 5 2],[746.262 8 2],[746.632 9 2],[761.236 12 2],[763.05 2 3],[765.456 4 3],[767.875 4 3],[768.0267 100 0],[771.879 5 3],[772.382 6 3],[772.564 2 3],[773.047 1 3],[774.271 40 0],[775.291 1 3],[780.0008 30 0],[784.88 400 1],[784.972 500 1],[784.9967 30 0],[791.8386 90 0],[793.2349 120 0],[794.4001 140 0],[797.0306 35 0],[803.5619 35 0],[809.3241 70 0],[810.286 9 2],[810.345 11 2],[819.043 7 2],[819.116 6 2],[819.168 8 2],[823.0642 35 0],[824.061 1 3],[826.257 9 2],[826.564 5 2],[826.932 8 2],[827.138 5 2],[827.194 6 2],[844.3982 40 0],[850.1547 40 0],[850.2221 60 0],[853.6165 40 0],[855.678 120 0],[864.8462 50 0],[872.8011 40 0],[874.2451 75 0],[875.2009 100 0],[879.0389 35 0],[895.725 2 3],[901.816 1 3],[941.272 100 1],[941.3506 100 0],[1037.1269 30 0],[1058.5141 120 0],[1060.3431 120 0],[1066.0975 120 0],[1069.4251 30 0],[1072.7408 30 0],[1074.9384 60 0],[1078.455 30 0],[1078.6856 80 0],[1082.7091 140 0],[1084.3854 60 0],[1086.879 30 0],[1086.9541 130 0],[1088.2802 30 0],[1088.5336 30 0],[1097.9308 80 0],[1098.2061 30 0],[1101.7965 80 0],[1118.76 13 0],[1128.984 12 0],[1161.109 12 0],[1198.419 370 0],[1199.157 220 0],[1203.151 440 0],[1210.353 150 0],[1227.068 120 0],[1317.69 11 0],[1588.839 190 0],[1596.004 40 0],[1606.003 95 0],[1609.48 20 0],[1616.371 60 0],[1621.568 11 0],[1638.155 16 0],[1668.077 29 0],[1732.7289 28 0],[1872.29 26 0],[1938.5939 15 0],[1943.2971 48 0],[1949.3381 13 0],[1972.25 110 0],[1992.8881 31 0],[2091.7131 12 0],[2135.424 21 0],[2206.2711 12 0]}{ALLx2000x1000x2000x30x15x20x0}{UVx2000x1000x2000x30x15x20x0}{VISx1000x425x1000x30x10x0x0}{IVx500x440x500x11x2x0x0}% +\pgfspectra@elt@search{#1}{Si}{[11.786 20 4],[11.897 20 4],[45.782 4 3],[45.816 3 3],[51.512 2 3],[51.635 3 3],[56.661 8 2],[64.576 2 3],[65.222 6 2],[65.333 8 2],[67.348 5 2],[74.994 5 3],[80.007 5 2],[80.51 10 1],[81.505 7 3],[81.813 8 3],[82.052 20 1],[82.341 9 2],[84.372 20 1],[84.577 40 1],[85.014 10 1],[88.34 5 2],[88.972 100 1],[89.2 200 1],[89.941 10 1],[90.174 20 1],[91.301 10 1],[91.385 20 1],[92.981 20 1],[93.909 7 2],[96.795 9 2],[98.987 100 1],[99.268 200 1],[99.352 10 2],[99.479 13 2],[99.739 16 2],[100.537 7 2],[102.07 25 1],[102.369 50 1],[103.116 7 2],[103.392 8 2],[103.705 7 2],[105.705 30 1],[105.75 15 1],[106.663 8 3],[108.322 6 2],[110.837 14 2],[110.997 16 2],[111.323 18 2],[112.249 8 3],[112.744 20 1],[112.791 40 1],[112.834 10 3],[114.055 6 2],[114.158 7 2],[114.228 6 2],[114.431 8 2],[114.496 6 2],[114.511 8 2],[114.518 7 2],[115.5 6 2],[115.596 6 2],[115.81 7 2],[116.026 6 2],[116.158 8 2],[117.437 5 2],[117.443 6 2],[117.8 8 2],[119.042 100 1],[119.328 200 1],[119.45 250 1],[119.739 100 1],[120.651 30 2],[120.653 30 2],[120.752 9 2],[121.046 10 2],[121.612 10 1],[122.391 20 1],[122.425 20 1],[122.497 10 1],[122.681 50 1],[122.689 20 1],[122.699 40 1],[122.76 100 1],[122.844 10 1],[122.862 25 1],[122.875 150 1],[122.939 200 1],[123.543 7 2],[123.592 10 1],[124.674 100 1],[124.843 150 1],[125.009 100 1],[125.043 150 1],[125.116 200 1],[125.528 10 0],[125.649 40 0],[125.88 50 0],[126.042 1000 1],[126.473 2000 1],[126.502 200 1],[128.035 6 2],[129.454 17 2],[129.673 14 2],[129.889 15 2],[129.896 18 2],[130.115 14 2],[130.332 16 2],[130.437 100 1],[130.559 50 1],[130.927 200 1],[130.946 20 1],[131.259 13 2],[134.147 8 2],[134.239 7 2],[134.339 6 2],[134.687 100 1],[134.854 100 1],[135.006 150 1],[135.052 20 1],[135.066 20 1],[135.264 100 1],[135.372 100 1],[136.16 8 2],[136.237 5 2],[136.347 7 2],[136.526 8 2],[136.705 7 2],[136.944 5 2],[137.303 5 2],[138.799 5 2],[139.376 15 3],[140.277 12 3],[140.907 10 1],[141.022 20 1],[141.697 10 1],[141.724 13 2],[143.369 6 2],[143.577 8 2],[143.617 7 2],[144.173 5 2],[144.72 6 2],[145.725 5 2],[147.465 15 1],[148.487 15 1],[148.502 90 1],[148.522 30 1],[148.551 100 1],[150.024 12 2],[150.119 10 2],[150.187 9 2],[150.606 6 2],[150.91 100 1],[151.207 50 1],[151.357 30 1],[151.691 60 1],[152.672 500 1],[153.345 1000 1],[156.245 10 1],[156.285 15 1],[156.377 10 1],[157.387 50 0],[157.482 50 0],[159.241 50 0],[159.455 150 0],[159.493 50 0],[159.795 30 0],[162.287 100 0],[162.571 30 0],[162.943 300 0],[162.992 200 0],[163.113 75 0],[163.398 50 0],[163.461 1 3],[165.335 30 0],[166.452 30 0],[166.637 50 0],[166.762 100 0],[166.852 100 0],[167.259 100 0],[167.332 7 2],[167.52 200 0],[168.268 30 0],[168.682 30 0],[168.929 50 0],[169.079 30 0],[169.329 50 0],[169.551 50 0],[169.62 200 0],[169.794 200 0],[170.042 50 0],[170.063 30 0],[170.286 30 0],[170.443 50 0],[171.083 10 1],[171.13 20 1],[172.253 6 3],[172.738 5 3],[174.388 30 0],[174.74 50 0],[175.311 30 0],[176.366 50 0],[176.503 40 0],[176.56 30 0],[176.606 30 0],[177.063 30 0],[177.092 100 0],[177.683 100 0],[178.323 50 0],[179.912 100 0],[180.8 150 1],[180.909 50 0],[181.407 500 0],[181.692 200 1],[181.745 10 1],[182.245 50 0],[183.651 200 0],[183.801 30 0],[184.115 100 0],[184.144 200 0],[184.255 9 2],[184.377 200 0],[184.551 300 0],[184.61 100 0],[184.747 400 0],[184.814 200 0],[184.874 100 0],[185.067 500 0],[185.179 30 0],[185.246 200 0],[185.315 50 0],[186.932 20 1],[187.023 15 1],[187.31 100 0],[187.484 500 0],[187.581 100 0],[188.185 200 0],[188.77 200 0],[189.325 200 0],[190.133 1000 0],[190.246 100 1],[190.466 50 0],[191.062 50 1],[194.167 50 1],[194.459 15 1],[194.933 10 1],[194.956 100 1],[195.497 100 0],[198.443 30 0],[199.185 50 0],[201.097 30 0],[205.483 50 0],[205.865 50 1],[205.901 50 1],[206.119 40 0],[206.552 30 0],[207.202 200 1],[207.27 200 1],[210.321 30 0],[211.463 30 0],[212.018 3 3],[212.412 100 0],[212.747 4 3],[213.399 10 1],[213.64 30 1],[213.656 50 1],[214.791 50 0],[217.689 5 2],[220.798 110 0],[221.089 115 0],[221.174 110 0],[221.667 120 0],[221.806 120 0],[221.891 50 0],[228.704 5 3],[229.103 35 0],[229.548 6 2],[229.687 10 2],[230.093 8 2],[230.306 55 0],[230.819 10 2],[232.856 2 3],[233.44 30 1],[233.461 30 1],[234.42 10 1],[234.954 10 1],[235.017 20 1],[235.309 20 1],[235.63 100 1],[235.718 30 1],[235.797 50 1],[236.02 10 1],[236.676 2 3],[236.697 30 1],[237.099 3 3],[237.426 20 1],[242.845 10 1],[243.515 300 0],[243.877 65 0],[244.336 65 0],[244.948 11 2],[245.212 70 0],[248.282 2 3],[248.32 6 2],[248.538 1 3],[250.69 425 0],[251.432 375 0],[251.6113 500 0],[251.751 7 3],[251.9202 350 0],[252.4108 425 0],[252.8509 450 0],[253.2381 110 0],[254.182 25 2],[254.609 10 2],[255.921 14 2],[256.3679 30 0],[256.8641 85 0],[257.7151 45 0],[263.1282 190 0],[264.079 11 2],[265.551 14 2],[267.219 1 3],[267.512 4 3],[267.525 4 3],[267.757 1 3],[268.221 10 1],[272.381 3 3],[281.711 9 2],[283.149 7 2],[283.962 5 2],[288.1579 1000 0],[288.751 10 1],[289.513 3 3],[290.428 300 1],[290.447 2 3],[290.569 500 1],[295.915 5 2],[297.0355 55 0],[297.152 1 3],[298.052 5 2],[298.7645 150 0],[300.6739 50 0],[301.309 5 2],[302.0004 75 0],[302.155 20 1],[303 100 1],[303.473 6 2],[303.729 8 2],[304.093 9 2],[304.157 20 1],[304.219 30 1],[304.369 100 1],[304.385 10 1],[304.393 7 2],[304.508 5 2],[304.577 10 1],[304.83 50 1],[305.318 150 1],[306.824 7 2],[308.624 25 2],[308.646 6 2],[309.342 20 2],[309.365 5 2],[309.683 16 2],[312.627 6 2],[314.737 7 2],[314.956 7 3],[316.161 8 2],[316.571 9 3],[318.513 16 2],[318.602 13 2],[318.897 150 1],[319.225 50 1],[319.309 150 1],[319.421 50 1],[319.469 50 1],[319.541 100 1],[319.65 14 2],[319.951 200 1],[320.249 20 1],[320.387 100 1],[321.003 200 1],[321.055 15 2],[321.466 75 1],[321.625 7 2],[321.799 15 1],[322.044 10 1],[322.301 20 1],[323.05 12 2],[323.395 14 2],[324.162 15 2],[324.419 1 3],[325.34 7 2],[325.374 5 2],[325.48 7 2],[325.866 12 2],[327.046 6 2],[327.626 10 2],[327.926 7 2],[333.314 300 1],[333.982 500 1],[348.691 15 2],[352.594 9 2],[356.967 8 2],[359.047 20 2],[362.254 8 2],[363.945 5 2],[364.512 6 2],[368.14 7 2],[368.215 5 2],[376.244 8 3],[377.315 6 3],[379.141 20 2],[379.611 25 2],[380.654 30 2],[384.246 7 2],[385.366 100 1],[385.602 500 1],[386.26 200 1],[390.5523 300 0],[392.447 20 2],[394.749 6 2],[395.574 10 1],[396.384 6 2],[397.746 10 1],[398.124 5 2],[399.177 15 1],[399.801 10 1],[403.139 1 3],[403.806 2 3],[407.545 20 1],[407.678 15 1],[408.885 10 3],[410.186 5 2],[410.242 8 2],[410.2936 70 0],[411.55 5 2],[411.61 9 3],[412.807 300 1],[413.089 500 1],[418.335 10 1],[419.072 100 1],[419.813 50 1],[421.241 7 3],[431.41 3 3],[432.818 5 3],[433.85 9 2],[434.14 8 2],[437.763 8 2],[440.373 2 3],[440.59 6 2],[440.672 8 2],[441.165 1 3],[449.405 6 2],[455.262 30 2],[455.4 8 2],[456.782 25 2],[457.476 20 2],[461.127 1 3],[461.966 7 2],[462.142 100 1],[462.172 150 1],[462.862 3 3],[463.124 9 3],[463.828 7 2],[465.432 10 3],[465.692 3 3],[466.587 8 2],[466.714 1 3],[467.33 2 3],[468.302 9 2],[468.38 7 2],[471.665 16 2],[473.052 7 2],[478.2991 50 0],[479.2212 35 0],[479.2324 80 0],[480.043 8 2],[481.333 15 2],[481.972 16 2],[482.897 18 2],[488.32 15 1],[490.699 20 1],[493.28 20 1],[494.745 1 3],[494.7607 30 0],[495.011 3 3],[500.6061 40 0],[504.103 1000 1],[505.598 1000 1],[509.142 10 2],[511.376 7 2],[511.412 8 2],[518.19 100 1],[518.525 100 1],[519.286 200 1],[519.726 5 2],[520.241 500 1],[529.519 30 1],[530.497 2 3],[530.949 1 3],[540.534 100 1],[541.724 15 1],[542.892 15 1],[543.289 15 1],[543.862 100 1],[544.726 20 1],[545.146 6 2],[545.449 15 1],[545.645 100 1],[546.643 500 1],[546.687 500 1],[546.921 100 1],[547.305 7 2],[549.323 40 0],[549.645 200 1],[551.7535 35 0],[554.074 100 1],[557.666 150 1],[562.2221 30 0],[563.297 100 1],[563.948 200 1],[564.5611 90 0],[566.066 150 1],[566.5554 80 0],[566.956 1000 1],[568.144 30 1],[568.4484 120 0],[568.881 300 1],[569.0425 100 0],[570.1105 90 0],[570.137 200 1],[570.46 7 2],[570.637 100 1],[570.8397 160 0],[571.629 8 2],[573.973 20 2],[574.7667 45 0],[575.3625 45 0],[575.422 45 0],[576.2977 45 0],[577.2145 70 0],[578.0384 70 0],[578.573 30 1],[579.3071 90 0],[579.49 30 1],[579.7859 100 0],[580.047 150 1],[580.674 200 1],[582.78 30 1],[584.613 50 1],[586.748 10 1],[586.84 300 1],[587.3764 40 0],[589.879 10 2],[591.522 150 1],[594.8545 200 0],[595.756 500 1],[597.893 500 1],[606.745 10 1],[608.006 20 1],[608.667 10 1],[612.5021 90 0],[613.1574 85 0],[613.185 90 0],[614.2487 100 0],[614.5015 100 0],[615.5134 160 0],[623.732 160 0],[623.8287 40 0],[624.3813 125 0],[624.4468 125 0],[625.4188 180 0],[631.446 7 2],[633.1954 45 0],[634.71 1000 1],[637.136 1000 1],[652.436 6 2],[652.6609 45 0],[652.7199 45 0],[655.5462 45 0],[666.052 50 1],[666.5 15 1],[666.756 5 3],[667.188 100 1],[669.938 20 1],[670.121 7 3],[671.704 50 1],[672.1853 100 0],[674.164 30 0],[675.028 20 1],[681.845 30 1],[682.982 50 1],[683.156 6 2],[684.8568 30 0],[685.165 7 2],[697.6523 80 0],[699.836 3 3],[700.3567 180 0],[700.5883 180 0],[701.728 30 0],[701.7646 90 0],[703.4903 250 0],[704.794 6 3],[706.841 4 3],[716.469 70 0],[716.5545 200 0],[718.489 70 0],[719.358 65 0],[719.39 30 0],[722.6206 100 0],[723.5326 100 0],[723.582 60 0],[725.0625 180 0],[727.5294 160 0],[728.281 40 0],[728.9173 400 0],[729.026 55 0],[737.3 35 0],[740.5774 375 0],[740.9082 200 0],[741.535 40 0],[741.5946 275 0],[742.3497 425 0],[742.46 85 0],[746.189 5 2],[746.262 8 2],[746.632 9 2],[761.236 12 2],[763.05 2 3],[765.456 4 3],[767.875 4 3],[768.0267 100 0],[771.879 5 3],[772.382 6 3],[772.564 2 3],[773.047 1 3],[774.271 40 0],[775.291 1 3],[780.0008 30 0],[784.88 400 1],[784.972 500 1],[784.9967 30 0],[791.8386 90 0],[793.2349 120 0],[794.4001 140 0],[797.0306 35 0],[803.5619 35 0],[809.3241 70 0],[810.286 9 2],[810.345 11 2],[819.043 7 2],[819.116 6 2],[819.168 8 2],[823.0642 35 0],[824.061 1 3],[826.257 9 2],[826.564 5 2],[826.932 8 2],[827.138 5 2],[827.194 6 2],[844.3982 40 0],[850.1547 40 0],[850.2221 60 0],[853.6165 40 0],[855.678 120 0],[864.8462 50 0],[872.8011 40 0],[874.2451 75 0],[875.2009 100 0],[879.0389 35 0],[895.725 2 3],[901.816 1 3],[941.272 100 1],[941.3506 100 0],[1037.1269 30 0],[1058.5141 120 0],[1060.3431 120 0],[1066.0975 120 0],[1069.4251 30 0],[1072.7408 30 0],[1074.9384 60 0],[1078.455 30 0],[1078.6856 80 0],[1082.7091 140 0],[1084.3854 60 0],[1086.879 30 0],[1086.9541 130 0],[1088.2802 30 0],[1088.5336 30 0],[1097.9308 80 0],[1098.2061 30 0],[1101.7965 80 0],[1118.76 13 0],[1128.984 12 0],[1161.109 12 0],[1198.419 370 0],[1199.157 220 0],[1203.151 440 0],[1210.353 150 0],[1227.068 120 0],[1317.69 11 0],[1588.839 190 0],[1596.004 40 0],[1606.003 95 0],[1609.48 20 0],[1616.371 60 0],[1621.568 11 0],[1638.155 16 0],[1668.077 29 0],[1732.7289 28 0],[1872.29 26 0],[1938.5939 15 0],[1943.2971 48 0],[1949.3381 13 0],[1972.25 110 0],[1992.8881 31 0],[2091.7131 12 0],[2135.424 21 0],[2206.2711 12 0]}{ALLx2000x1000x2000x30x15x20x0}{UVx2000x1000x2000x30x15x20x0}{VISx1000x425x1000x30x10x0x0}{IVx500x440x500x11x2x0x0}%[7.861 1 4],[7.89 1 4],[8.081 2 4],[8.111 2 4],[8.518 10 4],[8.558 6 4],[9.045 4 4],[9.085 4 4],[9.644 15 4],[9.714 10 4],[9.821 2 4], \pgfspectra@elt@search{#1}{P}{[25.559 80 4],[25.567 50 4],[28.2301 90 3],[30.4996 90 3],[31.058 110 4],[31.134 150 4],[32.847 300 4],[32.878 250 4],[34.723 150 4],[34.82 200 4],[35.9293 120 3],[35.9899 150 3],[36.1514 120 3],[36.1629 150 3],[37.1299 120 3],[37.1504 150 3],[37.2001 200 3],[37.856 110 4],[38.8318 500 3],[38.95 250 4],[39.07 300 4],[41.003 150 4],[41.4604 120 3],[41.4999 200 3],[41.5805 250 3],[44.4245 250 3],[44.5158 300 3],[47.1146 90 2],[47.56 375 4],[48.4278 90 2],[49.818 120 2],[53.463 110 4],[53.499 80 4],[54.257 520 4],[54.492 600 4],[56.8038 250 3],[56.9853 200 2],[58.1831 200 2],[62.9008 350 3],[62.9914 400 3],[63.1779 500 3],[64.8482 350 3],[67.39 450 4],[75.651 300 3],[77.6353 300 3],[81.024 10 1],[82.3179 650 3],[82.473 700 3],[82.7932 800 3],[84.4646 200 2],[84.5038 150 2],[84.5664 250 2],[84.7019 250 3],[84.7669 300 2],[84.8016 200 2],[84.8465 120 2],[84.8639 150 2],[84.9799 350 3],[85.0392 200 3],[85.2686 250 2],[85.5624 350 2],[85.9406 200 2],[85.9652 500 2],[85.9729 250 2],[86.544 10 1],[86.545 450 4],[87.139 600 4],[87.7476 700 3],[91.3971 300 2],[91.712 300 2],[91.8665 350 2],[92.1849 250 2],[95.0655 1000 3],[99.762 250 4],[99.7999 200 2],[100.038 150 4],[100.3598 250 2],[102.5563 570 3],[102.8096 500 3],[103.0517 570 3],[103.3111 500 3],[103.5517 500 3],[111.798 900 4],[111.8551 570 3],[112.801 700 4],[120.6422 200 3],[124.982 20 1],[130.187 20 1],[130.447 20 1],[130.468 15 1],[130.548 35 1],[130.987 25 1],[131.07 60 1],[133.4808 500 2],[133.5705 200 3],[134.4327 650 2],[134.4845 300 2],[136.6695 500 3],[137.2674 400 3],[137.349 20 0],[137.706 20 0],[137.7282 350 3],[137.793 20 0],[137.94 25 0],[137.962 150 4],[138.0463 250 2],[138.1089 150 2],[138.147 25 0],[138.505 250 4],[143.013 50 0],[144.783 375 4],[145.289 30 1],[148.4507 500 3],[148.7788 400 3],[148.9098 300 3],[149.136 50 0],[149.299 40 0],[150.2228 350 2],[150.4663 250 2],[153.251 80 1],[153.59 120 1],[153.639 80 1],[154.229 120 1],[154.843 60 0],[161.05 450 4],[161.8632 150 2],[161.8907 200 2],[167.107 70 0],[167.168 180 0],[167.248 90 0],[167.461 230 0],[167.971 300 0],[168.599 120 0],[169.406 100 0],[170.641 60 0],[177.499 250 0],[178.287 200 0],[178.768 180 0],[184.719 100 0],[185.122 80 0],[185.891 150 0],[185.943 150 0],[186.2762 250 3],[186.2893 120 3],[186.358 200 3],[188.8523 650 3],[191.0183 200 3],[198.5682 120 3],[198.5851 150 3],[198.6114 200 3],[198.7022 150 3],[202.348 100 0],[203.347 150 0],[213.547 100 0],[213.618 200 0],[214.914 200 0],[215.294 100 0],[215.408 150 0],[218.029 200 4],[218.642 150 4],[242.44 375 4],[244.093 450 4],[244.124 200 4],[247.7823 200 3],[247.807 150 3],[247.8256 250 3],[248.419 100 1],[253.399 500 0],[253.561 700 0],[255.325 600 0],[255.49 500 0],[260.5506 250 3],[260.606 150 1],[261.1147 200 2],[262.618 100 1],[263.2713 300 2],[263.676 90 1],[264.4295 400 3],[268.0133 200 2],[272.4764 300 3],[272.877 400 3],[272.912 200 3],[273.9309 500 3],[273.9872 250 3],[274.0223 200 3],[289.5241 250 2],[296.1 300 4],[296.1242 200 3],[297.855 450 4],[317.509 700 4],[318.6186 250 2],[320.404 520 4],[321.9307 300 2],[323.3536 150 2],[323.3602 400 2],[330.892 150 1],[334.7736 650 3],[336.4467 570 3],[337.1122 400 3],[341.3543 200 3],[341.934 125 1],[342.5 100 1],[355.6546 200 2],[357.7526 200 2],[373.3393 200 3],[390.4812 200 2],[391.4314 250 2],[395.7641 300 2],[397.8307 350 2],[405.744 200 2],[405.9312 400 2],[408.0084 300 2],[408.318 150 4],[409.495 110 4],[417.848 100 1],[422.2195 500 2],[424.672 350 2],[424.9656 300 3],[428.86 200 1],[438.535 200 1],[442.071 400 1],[442.8171 200 2],[445.246 100 1],[446.3 150 1],[446.3668 200 2],[446.798 120 1],[447.526 200 1],[447.9776 250 2],[449.924 200 1],[453.081 120 1],[454.0288 250 3],[454.1112 250 3],[454.8056 150 3],[454.8449 200 3],[455.483 120 1],[455.807 120 1],[458.171 120 1],[458.804 500 1],[458.986 500 1],[460.208 600 1],[462.67 300 1],[465.831 300 1],[486.442 200 1],[492.72 150 1],[494.353 500 1],[495.439 300 1],[496.971 300 1],[515.672 110 4],[519.141 150 1],[523.5499 150 3],[525.352 300 1],[529.613 400 1],[531.607 250 1],[534.475 300 1],[537.82 250 1],[538.688 300 1],[540.972 200 1],[542.591 400 1],[545.074 400 1],[545.831 100 0],[546.12 125 1],[547.775 200 0],[548.355 200 1],[549.973 200 1],[550.719 200 1],[554.114 200 1],[558.327 200 1],[558.834 250 1],[572.771 100 1],[598.9774 150 3],[602.418 500 1],[603.404 400 1],[604.312 500 1],[605.55 250 1],[605.786 100 1],[608.3409 150 2],[608.782 350 1],[609.768 150 0],[614.2605 150 3],[616.559 350 1],[619.901 180 0],[623.229 100 1],[636.727 200 1],[640.9204 150 2],[643.532 250 1],[643.631 130 1],[645.999 600 1],[648.444 150 2],[648.6381 150 2],[650.346 600 1],[650.797 600 1],[671.328 150 1],[671.3939 150 3],[671.5906 120 3],[671.742 120 0],[699.269 150 2],[716.545 100 0],[717.512 150 0],[717.666 120 0],[744.3657 200 3],[750.576 100 0],[784.563 250 1],[811.3528 150 2],[827.807 120 0],[836.784 150 0],[853.146 100 0],[861.385 100 0],[863.762 150 0],[874.154 250 0],[887.217 50 0],[952.578 30 0],[959.354 25 0],[973.474 20 0],[975.073 25 0],[979.679 50 0],[1008.422 25 0],[1052.945 6 0],[1058.152 8 0]}{ALLx1000x700x600x650x1000x900x0}{UVx1000x700x150x650x1000x900x0}{VISx600x200x600x500x300x150x0}{IVx250x250x250x150x0x0x0}% \pgfspectra@elt@search{#1}{S}{[43.74 5 4],[43.82 5 4],[43.96 5 4],[51.93 20 3],[52.01 20 3],[52.08 40 3],[52.2 20 3],[52.25 20 3],[55.12 20 3],[65.25 40 3],[65.3 40 3],[65.36 70 3],[65.4 40 3],[65.56 70 3],[65.59 20 3],[65.73 110 3],[65.83 40 4],[65.98 70 4],[66.09 40 3],[66.14 160 3],[66.32 110 4],[66.37 40 3],[66.48 40 3],[66.61 70 3],[67.62 5 4],[67.73 5 4],[67.81 20 4],[68.03 40 4],[68.09 110 4],[68.16 40 4],[68.62 5 4],[68.69 5 4],[68.98 5 4],[69.17 5 4],[69.35 20 4],[72.95 70 2],[73.242 110 2],[73.52 70 2],[73.85 70 2],[74.49 110 3],[74.84 110 3],[75.02 110 3],[75.38 110 3],[78.65 285 4],[78.9 70 2],[79.67 70 2],[79.83 40 3],[80.05 70 3],[80.4 70 3],[80.97 70 3],[81.6 110 3],[82.49 70 2],[83.63 70 2],[84.92 160 4],[85.22 110 4],[85.48 220 4],[85.79 110 4],[86.05 110 4],[88.36 20 4],[88.45 20 4],[88.58 5 4],[90.09 20 4],[90.28 5 4],[90.59 20 4],[90.69 40 1],[91.05 40 1],[91.27 40 1],[93.74 40 1],[93.77 40 1],[99.6 20 1],[100.05 20 1],[101.44 20 1],[101.95 20 1],[106.27 160 3],[107.3 160 3],[107.35 70 3],[107.71 285 2],[109.66 20 1],[110.23 40 1],[110.84 20 3],[111.09 20 3],[113.1 20 1],[113.16 20 1],[119.4 70 2],[120.1 70 2],[123.41 40 1],[125.05 40 1],[125.38 110 1],[125.95 110 1],[127.0782 275 0],[127.7216 250 0],[129.5653 280 0],[130.2337 275 0],[130.2863 235 0],[130.311 235 0],[130.343 245 0],[130.5883 260 0],[131.0194 265 0],[131.6542 355 0],[131.6618 290 0],[132.3515 375 0],[132.6643 355 0],[138.1552 775 0],[138.551 710 0],[138.8435 960 0],[138.9154 640 0],[139.2588 775 0],[139.6112 1000 0],[140.9337 300 0],[142.503 510 0],[143.328 425 0],[143.6968 300 0],[144.8229 300 0],[147.2972 425 0],[147.3995 550 0],[147.438 300 0],[148.1665 355 0],[148.3039 485 0],[148.3233 300 0],[148.5622 330 0],[148.715 390 0],[162.4 20 3],[162.92 20 3],[166.6688 680 0],[168.753 640 0],[180.7311 710 0],[182.0343 680 0],[182.6245 640 0],[190.0286 710 0],[191.4698 550 0],[238.7 20 3],[239.89 40 3],[246.05 110 2],[248.96 110 2],[249.62 160 2],[249.91 160 2],[250.82 220 2],[262.91 20 1],[263.69 70 2],[266.54 220 2],[267 40 1],[268.05 70 2],[269.18 110 2],[270.28 110 2],[271.89 220 2],[272.14 110 2],[272.68 220 2],[273.11 220 2],[274.1 110 2],[275.69 285 2],[277.52 110 2],[278.55 160 2],[279.74 70 2],[284.77 40 1],[285.6 70 2],[286.35 110 2],[290.43 160 2],[296.48 70 2],[298.6 160 2],[309.75 110 3],[311.77 40 3],[323.42 70 2],[332.49 70 2],[349.73 110 2],[363.2 160 2],[366.2 70 2],[370.94 110 2],[371.78 160 2],[383.83 160 2],[386.76 285 0],[390.2 285 0],[392.86 160 2],[393.33 360 1],[412.08 450 0],[414.23 280 1],[414.51 360 1],[415.31 450 1],[416.27 450 1],[425.36 360 2],[428.5 110 2],[433.27 70 2],[469.41 450 0],[469.54 285 0],[469.62 160 0],[471.62 280 1],[481.55 450 1],[492.41 360 1],[492.53 450 1],[499.35 285 0],[542.86 360 1],[543.28 650 1],[545.38 1000 1],[547.36 1000 1],[550.97 1000 1],[556.49 280 1],[560.61 1000 1],[564 450 1],[564.03 450 1],[564.7 280 1],[565.99 650 1],[566.47 450 1],[570.61 160 0],[581.92 450 1],[605.27 450 0],[628.64 280 1],[628.71 450 1],[630.55 450 1],[631.27 450 1],[638.49 280 1],[639.73 280 1],[639.8 280 1],[641.37 360 1],[674.36 160 0],[674.88 285 0],[675.72 450 0],[757.9 450 0],[762.98 450 0],[768.61 285 0],[769.67 450 0],[792.4 1000 0],[792.88 160 0],[793.03 285 0],[793.17 450 0],[796.74 450 0],[796.74 450 1],[831.47 450 0],[831.47 450 1],[858.56 450 0],[868.05 285 0],[869.47 450 0],[887.45 360 0],[888.25 110 0],[888.42 220 0],[903.59 160 0],[921.29 450 0],[922.81 450 0],[923.75 450 0],[941.35 285 0],[942.19 285 0],[943.71 285 0],[964.99 650 0],[967.23 450 0],[968.08 450 0],[969.37 450 0],[969.73 285 0],[973.97 285 0],[974.19 110 0],[993.23 285 0],[994.98 285 0],[995.89 285 0],[1045.55 285 0],[1045.68 70 0],[1045.95 285 0]}{ALLx1000x1000x1000x360x160x285x0}{UVx1000x1000x110x285x160x285x0}{VISx1000x450x1000x360x0x0x0}{IVx1000x1000x450x0x0x0x0}% \pgfspectra@elt@search{#1}{Cl}{[28.733 30 4],[31.962 30 3],[33.184 20 3],[37.378 30 4],[39.015 40 4],[39.243 50 4],[40.627 10 2],[41.137 40 2],[41.181 40 2],[43.783 40 3],[46.486 40 3],[48.617 80 3],[53.473 80 3],[53.567 70 3],[53.615 60 3],[53.653 30 4],[53.701 40 4],[53.746 30 4],[53.761 90 3],[53.803 50 4],[53.812 60 3],[53.868 40 4],[54.223 80 4],[54.23 60 4],[54.287 40 4],[54.511 100 4],[54.633 60 4],[54.763 100 4],[54.922 50 3],[55.002 40 3],[55.202 70 3],[55.33 60 3],[55.462 70 3],[55.623 60 2],[55.661 70 2],[55.712 70 2],[55.9305 35 1],[56.153 70 2],[56.168 70 2],[56.174 70 2],[57.1904 40 1],[57.4406 80 1],[58.624 50 1],[60.15 50 3],[60.459 50 3],[60.635 50 2],[60.89 40 3],[61.207 40 3],[61.8057 70 1],[61.9982 60 1],[62.0298 80 1],[62.128 40 2],[62.6735 70 1],[63.319 40 4],[63.532 40 4],[63.5881 80 1],[63.6626 100 1],[65.0894 100 1],[65.37 40 3],[65.9811 100 1],[66.1841 130 1],[66.3074 200 1],[67.038 30 2],[67.313 30 2],[68.192 40 4],[68.2053 150 1],[68.317 40 4],[68.7656 150 1],[68.893 40 4],[69.3594 150 1],[72.5271 200 1],[72.8951 250 1],[74.521 40 3],[77.7562 200 1],[78.758 500 1],[78.874 500 1],[79.3342 500 1],[83.143 40 3],[83.484 50 3],[83.497 50 3],[83.9297 600 1],[83.9599 800 1],[84.081 40 3],[84.093 60 3],[84.141 700 1],[85.1691 500 1],[88.313 40 4],[88.8026 200 1],[89.3549 200 1],[89.434 40 4],[89.491 10 4],[93.628 10 2],[96.1499 200 1],[96.992 3 0],[97.321 50 3],[97.756 60 3],[97.79 40 3],[97.8284 4 0],[98.495 70 3],[98.575 40 3],[99.8372 2.5 0],[99.8432 2.5 0],[100.2346 7.5 0],[100.528 50 2],[100.878 60 2],[101.3664 15 0],[101.502 70 2],[102.5553 9 0],[106.3831 600 1],[106.7945 300 1],[107.1036 900 1],[107.1767 600 1],[107.523 500 1],[107.908 500 1],[108.4667 20 0],[108.5171 20 0],[108.5304 25 0],[108.806 40 0],[109.0271 35 0],[109.0982 25 0],[109.2437 25 0],[109.4769 40 0],[109.5148 35 0],[109.5662 35 0],[109.5797 40 0],[109.681 25 0],[109.7369 30 0],[109.8068 20 0],[109.9523 20 0],[110.7528 50 0],[113.9214 80 1],[116.7148 80 0],[117.9293 300 0],[118.8774 120 0],[120.1353 90 0],[133.5726 300 0],[134.724 1000 0],[135.1657 500 0],[136.3447 1200 0],[137.3116 250 0],[137.9528 2000 0],[138.9693 2500 0],[138.9957 2000 0],[139.6527 1200 0],[144.147 50 1],[152.8569 50 1],[153.721 30 3],[153.93 20 3],[154.2942 50 1],[154.519 20 3],[154.915 20 3],[155.8144 50 1],[156.505 50 1],[162.286 20 3],[182.25 60 2],[182.84 50 2],[185.7488 50 1],[190.161 50 2],[198.361 50 2],[199.737 45 1],[200.684 40 2],[203.2116 45 1],[208.8583 35 1],[209.1458 35 1],[225.307 70 2],[226.895 50 2],[227.834 50 2],[228.393 70 2],[232.35 60 2],[233.645 50 2],[234.064 60 2],[235.967 60 2],[237.037 60 2],[241.642 70 2],[242.779 17 1],[243.407 36 1],[244.714 60 2],[244.858 60 2],[248.691 50 2],[249.853 34 1],[250.274 47 1],[253.248 50 2],[254.696 26 1],[254.988 50 1],[256.484 46 1],[258.067 60 2],[260.331 32 1],[260.359 50 2],[263.267 50 2],[263.318 50 2],[265.872 95 1],[266.554 60 2],[267.695 75 1],[268.804 120 1],[270.136 40 3],[271.037 70 2],[272.403 50 3],[275.123 50 3],[277.064 40 3],[278.247 70 3],[283.54 40 3],[291.205 41 1],[296.556 60 2],[299.665 95 1],[300.606 50 1],[305.796 95 1],[306.313 50 3],[307.132 130 1],[307.668 60 3],[309.219 140 1],[310.446 60 2],[312.372 120 1],[313.934 80 2],[316.787 20 3],[319.145 90 2],[328.98 70 2],[331.543 190 1],[332.057 70 2],[332.906 80 2],[332.91 120 1],[334.042 90 2],[335.335 250 1],[339.289 80 2],[339.345 80 2],[353.003 90 2],[356.068 80 2],[360.21 90 2],[361.285 80 2],[362.269 70 2],[365.695 70 2],[367.028 70 2],[368.205 70 2],[370.545 60 2],[370.734 60 2],[372.045 80 2],[372.654 2 0],[374.881 80 2],[374.996 120 1],[377.935 50 2],[378.117 100 1],[379.876 150 1],[380.518 190 1],[380.946 130 1],[382.02 170 1],[382.759 280 1],[383.335 450 1],[384.32 250 1],[384.537 310 1],[384.565 390 1],[384.58 150 1],[385.099 1000 1],[385.137 790 1],[385.165 120 1],[386.083 2500 1],[386.099 440 1],[386.137 100 1],[391.387 150 1],[391.663 110 1],[392.587 50 2],[394.482 2 0],[399.15 70 2],[401.85 60 2],[405.907 60 2],[410.423 50 2],[410.479 2 0],[410.683 50 2],[413.25 1000 1],[420.967 6.5 0],[422.642 5 0],[426.458 6 0],[436.327 10 0],[436.95 10 0],[437.091 40 2],[437.293 500 1],[437.99 10 0],[438.975 10 0],[439.04 9 0],[440.303 9 0],[443.849 10 0],[447.53 9 0],[448.991 150 1],[452.619 10 0],[460.098 8 0],[460.821 50 2],[462.3938 4 0],[465.404 5 0],[466.1208 8 0],[469.1523 4.5 0],[470.314 30 2],[472.1255 4 0],[474.0729 4.5 0],[476.865 430 1],[478.132 1300 1],[479.455 9900 1],[481.006 2900 1],[481.947 1600 1],[486.375 10 2],[489.677 8100 1],[490.478 4700 1],[491.773 2600 1],[497.164 1 2],[499.548 1000 1],[507.826 2600 1],[509.9789 3 0],[521.794 5600 1],[522.136 2300 1],[539.212 1500 1],[542.323 9900 1],[542.351 1000 1],[544.337 1900 1],[544.421 1000 1],[545.702 560 1],[553.2162 4 0],[579.6305 5 0],[579.9914 4.5 0],[585.6742 3 0],[594.858 10 0],[601.9812 5 0],[608.261 3.5 0],[609.469 190 1],[611.443 16 0],[614.0245 20 0],[619.4757 16 0],[639.866 16 0],[643.4833 15 0],[653.143 15 0],[666.167 140 1],[667.843 15 0],[668.602 130 1],[671.341 120 1],[684.029 15 0],[693.2903 30 0],[698.1886 30 0],[708.6814 60 0],[725.662 750 0],[741.411 500 0],[746.237 55 0],[748.947 55 0],[749.2118 70 0],[754.7072 1100 0],[767.242 230 0],[770.2828 45 0],[771.7581 700 0],[774.497 1000 0],[776.916 220 0],[777.109 65 0],[782.136 220 0],[783.075 170 0],[787.822 300 0],[789.334 22 0],[789.931 230 0],[791.508 180 0],[792.4645 300 0],[793.389 210 0],[793.5012 170 0],[795.252 65 0],[797.472 150 0],[797.697 130 0],[798.06 60 0],[799.785 290 0],[801.561 220 0],[802.333 110 0],[805.107 40 0],[808.451 170 0],[808.556 220 0],[808.667 300 0],[808.773 130 0],[809.467 25 0],[819.442 250 0],[819.913 220 0],[820.021 220 0],[820.378 80 0],[821.204 1800 0],[822.045 300 0],[822.174 2000 0],[833.331 1800 0],[836.071 100 1],[836.184 56 1],[837.594 9990 0],[838.267 18 1],[839.202 10 1],[840.6199 40 0],[842.825 1500 0],[846.734 220 0],[855.044 220 0],[857.524 2000 0],[857.802 75 0],[858.597 7500 0],[862.854 45 0],[864.171 30 0],[868.626 350 0],[891.292 220 0],[894.806 300 0],[903.8982 200 0],[904.543 250 0],[906.9656 100 0],[907.317 200 0],[912.115 750 0],[919.1731 300 0],[919.7596 50 0],[928.886 400 0],[939.3862 150 0],[945.21 350 0],[948.6964 50 0],[958.4801 100 0],[959.222 350 0],[963.2509 25 0],[970.2439 100 0],[974.4426 25 0],[980.7057 20 0],[987.597 40 0],[1039.2549 33.1 0],[1043.283 3.8 1],[1050.662 1 1],[1050.912 1.4 1],[1051.246 1.9 1],[1051.417 2.5 1],[1080.147 0.9 1],[1088.542 0.5 1],[1095.571 0.1 1],[1112.305 30 0],[1139.262 23.1 0],[1140.969 26.9 0],[1143.633 100 0],[1172.056 18 0],[1186.676 19.5 0],[1202.17 17.2 0],[1324.38 35 0],[1329.6 31 0],[1334.68 55 0],[1382.17 52.5 0],[1436.97 14.8 0],[1493.17 29.4 0],[1510.8 26.9 0],[1546.51 38.1 0],[1546.76 16.9 0],[1552.03 109.4 0],[1573.01 148.7 0],[1581.84 19.3 0],[1586.97 278 0],[1588.33 27.7 0],[1592.89 34.2 0],[1596 73.5 0],[1597.05 28.3 0],[1607.76 12.9 0],[1619.85 25.9 0],[1937.0301 22.7 0],[1975.5301 71.7 0],[1976.6801 18.5 0],[2019.94 22.7 0],[2037.01 8.5 0],[2447 10 0]}{ALLx9990x9990x9900x90x90x100x0}{UVx2500x2500x900x90x90x100x0}{VISx9900x1100x9900x70x0x0x0}{IVx9990x9990x100x0x0x0x0}% @@ -66,7 +66,7 @@ \pgfspectra@elt@search{#1}{As}{[60.07 25 4],[61.6 40 4],[71.55 120 4],[73.48 150 4],[73.72 60 4],[76.124 165 1],[80.283 165 1],[84.99 185 2],[86.63 185 2],[87.17 510 2],[88.9 325 2],[92.75 325 2],[93.72 325 2],[95.36 325 2],[96.38 325 2],[98.77 250 4],[102.196 340 1],[102.95 250 4],[105.16 40 4],[105.66 60 4],[108.235 340 1],[113.94 500 1],[114.931 615 1],[117.22 120 2],[118.151 555 1],[118.987 555 1],[119.638 615 1],[119.656 615 1],[120.744 340 1],[120.93 185 2],[121.117 800 1],[121.81 800 1],[122.315 340 1],[124.131 760 1],[124.308 965 1],[124.567 870 1],[125.858 800 1],[126.377 965 1],[126.634 800 1],[126.759 800 1],[128.099 715 1],[128.754 715 1],[130.57 715 1],[130.774 340 1],[133.315 760 1],[134.155 965 1],[135.593 760 1],[136.977 965 1],[137.365 800 1],[137.507 1000 1],[137.578 760 1],[139.464 800 1],[140.031 800 1],[144.859 500 1],[155.888 500 1],[157.099 500 1],[159.36 100 0],[166.055 500 1],[175.86 100 0],[180.615 170 0],[186.034 340 1],[189.042 1000 0],[191.294 500 1],[193.759 800 0],[197.262 585 0],[199.035 170 0],[199.113 100 0],[199.543 100 0],[200.334 230 0],[200.919 100 0],[201.332 100 0],[211.299 100 0],[214.408 100 0],[216.552 135 0],[225.31 150 3],[226.32 200 3],[228.812 350 0],[230.1 200 3],[234.984 350 0],[237.077 100 0],[238.118 135 0],[241.75 250 3],[244.61 150 3],[245.4 250 3],[245.653 170 0],[246.14 200 3],[260.2 340 1],[278.022 170 0],[283.0359 300 1],[283.1164 300 1],[286.044 100 0],[288.4406 300 1],[292.63 80 2],[295.9572 615 1],[298.2 185 2],[300.3819 300 1],[310.88 150 3],[311.6516 300 1],[384.26 340 1],[392.26 325 2],[403.72 185 2],[419.0082 715 1],[419.74 615 1],[424.2982 615 1],[431.5657 500 1],[432.3867 500 1],[433.664 500 1],[435.2145 500 1],[435.2864 425 1],[437.117 375 1],[442.7106 615 1],[443.1562 615 1],[445.8469 715 1],[446.1075 340 1],[446.6348 715 1],[447.446 500 1],[449.423 800 1],[450.7659 850 1],[453.974 615 1],[454.3483 715 1],[460.2427 615 1],[462.9787 340 1],[470.7586 340 1],[473.067 340 1],[488.8557 340 1],[506.898 100 0],[510.558 340 1],[510.755 500 1],[512.134 100 0],[514.163 100 0],[523.138 425 1],[533.123 500 1],[540.813 100 0],[545.132 135 0],[549.7727 340 1],[555.809 425 1],[565.132 425 1],[611.007 425 1],[617.027 500 1],[651.174 300 1],[709.227 300 1],[710.272 300 1],[799.053 340 1],[817.451 300 1],[842.891 100 0],[856.471 100 0],[865.414 100 0],[882.173 135 0],[886.966 100 0],[926.728 135 0],[930.061 200 0],[959.795 230 0],[962.67 290 0],[983.376 230 0],[988.605 100 0],[990.055 140 0],[991.571 170 0],[992.305 290 0],[1001.063 100 0],[1002.404 290 0],[1045.309 100 0],[1057.502 100 0],[1061.407 170 0]}{ALLx1000x1000x1000x510x250x250x0}{UVx1000x1000x1000x510x250x250x0}{VISx850x135x850x325x0x0x0}{IVx340x290x340x0x0x0x0}% \pgfspectra@elt@search{#1}{Se}{[59.6 285 4],[60.1 285 4],[60.87 220 4],[61.3 360 4],[61.43 285 4],[63.6 285 3],[65.27 360 3],[65.42 285 3],[67.01 450 3],[67.19 285 3],[70.92 220 2],[70.94 220 2],[72.06 220 2],[72.28 220 3],[72.43 360 2],[72.64 285 2],[73.46 285 3],[73.72 220 2],[74.19 220 2],[74.64 450 3],[75.9 285 3],[75.91 450 4],[77.65 285 3],[77.73 285 2],[78.58 285 4],[79.08 220 2],[80.38 285 3],[80.43 285 4],[80.87 360 4],[81.48 220 4],[82.07 220 4],[82.85 285 1],[83.03 360 4],[83.27 360 1],[83.95 450 4],[84.3 360 2],[84.58 360 4],[87.92 220 2],[90.66 285 1],[91.29 360 1],[95.37 285 2],[95.44 220 2],[95.47 220 2],[95.96 360 3],[97.41 160 2],[97.48 360 2],[99.67 450 3],[101.34 360 1],[101.4 360 1],[103.36 450 1],[104.96 450 1],[105.74 360 1],[107.98 285 2],[109.47 360 4],[109.78 285 1],[109.91 360 2],[111.92 450 2],[114.19 360 1],[115.1 220 4],[115.6 220 1],[115.69 285 1],[116.85 285 1],[119.23 450 1],[120.57 220 1],[122.76 450 4],[123.49 220 1],[129.1 285 1],[130.72 220 3],[130.89 285 1],[131.44 285 3],[140.54 100 0],[140.64 100 0],[140.66 100 0],[143.53 120 0],[143.58 120 0],[144.48 100 0],[144.68 100 0],[144.7 100 0],[144.92 150 0],[145.63 120 0],[150.09 150 0],[153.04 250 0],[153.13 150 0],[153.18 200 0],[154.71 120 0],[156.03 120 0],[157.53 150 0],[157.76 150 0],[157.79 150 0],[157.95 150 0],[158 200 0],[158.75 150 0],[159.32 150 0],[160.65 250 0],[161.07 100 0],[161.13 100 0],[161.74 200 0],[162.12 150 0],[162.27 100 0],[162.62 120 0],[164.34 150 0],[167.12 250 0],[167.53 250 0],[169.07 250 0],[179.33 250 0],[179.53 300 0],[185.52 300 0],[185.88 250 0],[189.86 400 0],[191.38 350 0],[191.92 300 0],[196.09 500 0],[199.51 150 0],[203.98 500 0],[205.75 285 2],[207.48 500 0],[209 220 3],[213.66 285 3],[216.42 500 0],[216.52 160 3],[216.66 160 3],[233.28 150 0],[241.35 600 0],[254.8 300 0],[266.55 360 3],[272.43 285 3],[276.72 285 2],[277.38 220 2],[295.16 160 3],[303.87 220 1],[304.13 220 1],[337.98 285 2],[338.72 450 2],[341.39 450 2],[342.84 285 2],[345.78 450 2],[354.36 360 2],[357.02 285 2],[363.76 450 2],[371.17 360 2],[373.87 450 2],[374.3 285 2],[380.09 450 2],[404.67 360 2],[407.02 285 1],[408.32 220 2],[416.91 450 2],[417.53 360 1],[418.09 450 1],[432.87 120 0],[433.03 100 0],[438.29 285 1],[444.6 285 1],[444.92 220 1],[446.76 285 1],[463.79 220 2],[473.08 500 0],[473.9 400 0],[474.22 300 0],[484.06 285 1],[484.5 360 1],[522.75 450 1],[530.54 360 1],[536.55 100 0],[536.99 120 0],[537.41 110 0],[552.24 285 1],[556.69 285 1],[586.63 285 1],[605.6 450 1],[630.38 285 2],[632.56 200 0],[644.42 360 1],[649.05 285 1],[653.5 285 1],[683.13 150 0],[699.069 120 0],[699.1792 100 0],[701.0809 200 0],[701.3875 150 0],[706.2065 300 0],[757.51 200 0],[758.34 250 0],[759.22 150 0],[760.68 120 0],[800.1 300 0],[803.64 200 0],[806.09 120 0],[806.53 120 0],[808.11 120 0],[809.32 150 0],[809.47 150 0],[814.93 180 0],[815.2 150 0],[815.77 200 0],[816.31 180 0],[818.29 150 0],[818.5 100 0],[819.46 120 0],[844.047 150 0],[845.038 150 0],[874.233 150 0],[891.886 300 0],[896.969 100 0],[900.197 200 0],[903.861 200 0],[908.314 80 0],[908.879 120 0],[914.083 80 0],[918.188 60 0],[927.112 60 0],[943.25 100 0],[982.558 60 0],[1021.725 200 0],[1030.745 377 0],[1032.726 900 0],[1038.636 640 0],[1065.03 124 0],[1193.456 125 0],[1194.687 275 0],[1194.792 100 0],[1195.227 105 0],[1195.264 170 0],[1196.604 100 0],[1197.293 205 0],[1197.307 115 0],[1481.793 315 0],[1491.747 410 0],[1515.144 500 0],[1546.906 115 0],[1547.1 320 0],[1552.097 265 0],[1561.84 395 0],[1562.038 115 0],[1665.9439 360 0],[1681.3779 505 0],[1681.776 165 0],[1686.6539 205 0],[1697.2711 115 0],[2137.424 235 0],[2144.2561 680 0],[2147.348 415 0],[2171.6359 270 0],[2173.06 240 0],[2313.366 105 0],[2338.885 150 0],[2362.817 110 0],[2414.818 265 0],[2415.923 170 0],[2420.4439 185 0],[2438.599 375 0],[2441.367 160 0],[2447.117 225 0],[2501.751 255 0],[2512.743 510 0]}{ALLx900x900x450x450x450x450x0}{UVx600x600x450x450x450x450x0}{VISx500x500x450x450x0x0x0}{IVx900x900x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Br}{[37.973 70 3],[40.037 70 3],[46.837 60 4],[48.211 80 4],[53.197 90 4],[54.543 100 3],[54.79 100 4],[54.977 70 4],[55.976 100 3],[56.919 100 3],[57.659 100 3],[58.51 100 3],[58.671 100 3],[59.751 100 3],[60.009 100 3],[60.127 100 3],[60.703 100 3],[61.11 45 2],[61.785 100 3],[61.987 100 3],[62.04 30 2],[62.103 80 4],[63.014 100 3],[63.222 80 4],[64.223 100 3],[64.544 70 4],[65.264 40 4],[65.754 80 4],[66.153 100 3],[66.554 50 2],[67.719 50 2],[67.78 30 2],[67.962 80 4],[68.351 100 3],[68.768 45 2],[69.02 40 2],[69.699 35 2],[69.772 100 3],[71.168 30 1],[71.539 100 3],[72.7 30 2],[73.1 100 3],[73.64 30 2],[76.963 25 2],[80.012 100 3],[81.295 70 4],[81.366 100 3],[81.548 25 1],[81.779 25 2],[85.081 100 4],[85.527 15 4],[85.619 35 1],[88.923 100 1],[89.664 50 1],[90.599 50 1],[92.256 30 1],[94.897 100 1],[94.9 35 2],[96.04 40 2],[98.49 45 2],[98.493 50 1],[101.21 50 1],[101.554 100 1],[103.702 50 1],[104.16 60 4],[104.9 100 1],[106.476 45 1],[106.915 100 4],[107.187 50 1],[108.054 50 4],[110.15 25 0],[111.213 90 4],[113.459 30 0],[113.629 25 0],[114.356 100 4],[117.723 25 0],[117.89 40 0],[118.928 100 0],[118.938 25 0],[118.95 100 0],[119.837 50 0],[120.976 80 0],[121.073 100 0],[121.601 75 0],[122.113 100 0],[122.187 90 0],[122.324 100 0],[122.441 120 0],[122.69 120 0],[122.805 75 0],[123.243 750 0],[124.39 120 0],[124.959 80 0],[125.166 150 0],[125.58 100 0],[125.92 150 0],[126.166 120 0],[126.62 120 0],[127.482 90 3],[127.948 100 0],[128.626 100 0],[130.991 300 0],[131.35 25 2],[131.674 300 0],[131.737 100 0],[131.77 200 0],[138.46 1200 0],[140.29 25 2],[142.975 15 4],[144.26 40 4],[144.99 300 0],[147.035 15 4],[148.845 5000 0],[153.174 3000 0],[154.065 2500 0],[157.484 3000 0],[157.639 2000 0],[158.231 2500 0],[163.34 7500 0],[170.351 100 3],[213.379 100 3],[214.502 100 3],[225.721 100 3],[227.273 100 3],[228.517 35 1],[228.76 35 1],[229.344 40 2],[230.74 100 3],[231.329 30 2],[231.73 50 1],[233.693 40 1],[238.645 35 1],[238.67 50 1],[238.869 30 1],[238.896 45 1],[238.969 50 1],[239.221 35 1],[239.242 40 1],[240.816 100 3],[241.158 100 3],[246.239 30 2],[248.26 30 2],[248.85 30 1],[249.114 70 3],[249.522 30 1],[249.925 35 2],[252.17 45 1],[252.949 35 2],[254.148 40 1],[255.109 35 2],[255.692 40 1],[257.083 35 2],[257.317 30 2],[258.119 100 3],[258.499 40 2],[258.914 50 2],[259.448 30 2],[259.598 40 2],[260.62 45 2],[260.815 35 2],[261.313 50 2],[261.626 35 2],[262.652 50 2],[262.923 35 2],[263.96 35 2],[266.14 60 3],[267.153 35 2],[269.017 35 1],[271.377 40 1],[273.583 35 2],[274.652 35 1],[277.05 30 2],[278.528 30 2],[280.416 30 2],[280.755 30 1],[282.087 70 3],[284.288 100 3],[289.34 40 1],[290.771 110 3],[291.718 40 1],[292.696 40 2],[293.622 30 2],[296.721 40 1],[296.9 35 2],[297.226 50 1],[298.186 30 1],[298.587 30 1],[298.653 30 1],[299.404 40 2],[301.648 30 1],[302.076 50 2],[303.363 30 2],[303.645 35 2],[304.118 50 3],[307.442 50 2],[309.194 35 2],[311.729 35 2],[314.781 30 2],[317.408 40 2],[332.108 30 2],[333.307 45 2],[334.964 50 2],[338.056 50 3],[338.525 30 2],[342.382 35 1],[344.736 45 2],[348.758 40 2],[350.647 30 2],[351.736 45 2],[354.016 50 2],[355.108 30 2],[356.243 50 2],[360.071 45 2],[360.68 30 1],[369.353 25 2],[371.43 35 1],[381.565 120 0],[382.026 45 2],[383.469 35 1],[387.121 30 1],[389.163 40 1],[390.124 30 1],[390.395 20 2],[391.42 30 1],[391.438 50 1],[391.951 35 1],[392.409 40 1],[392.955 30 1],[393.969 35 1],[395.061 35 1],[398.038 50 1],[399.236 150 0],[402.404 30 1],[413.566 30 1],[414.02 30 1],[417.963 40 1],[419.345 30 1],[422.389 100 1],[423.689 30 1],[429.139 30 1],[436.514 200 0],[436.56 100 1],[442.514 150 0],[444.174 1000 0],[447.261 1000 0],[447.772 2000 0],[449.042 100 0],[450.655 35 2],[451.344 300 0],[451.974 20 2],[452.559 1500 0],[452.96 30 1],[454.292 50 1],[457.574 300 0],[460.136 30 1],[461.458 250 0],[462.27 35 1],[464.202 30 1],[465.198 30 1],[467.87 50 1],[469.317 40 1],[470.485 50 1],[471.976 35 1],[472.036 40 1],[472.82 30 1],[473.541 30 1],[474.264 40 1],[475.228 250 0],[476.6 35 1],[477.94 40 1],[478.031 400 0],[478.519 160 0],[478.55 50 1],[480.233 30 1],[481.67 50 1],[481.846 30 1],[484.481 35 1],[484.875 35 1],[492.112 40 1],[492.879 40 1],[493.066 45 1],[494.551 30 1],[497.976 400 0],[503.874 30 1],[505.464 30 1],[516.438 40 1],[517.587 15 2],[518.001 30 1],[518.235 50 1],[519.39 30 1],[523.823 50 1],[527.268 30 1],[530.41 35 1],[533.057 40 1],[533.205 50 1],[539.548 120 0],[542.278 40 1],[542.499 35 1],[543.507 30 1],[544.68 10 2],[546.622 120 0],[547.847 35 1],[548.879 30 1],[549.506 30 1],[550.669 50 1],[558.994 35 1],[571.871 30 1],[583.078 30 1],[585.208 180 0],[594.048 160 0],[612.214 240 0],[614.86 4000 0],[616.174 30 1],[617.739 200 0],[633.548 150 0],[635.073 6000 0],[635.294 40 1],[641.032 250 0],[648.356 180 0],[651.462 100 0],[654.457 2000 0],[654.809 150 0],[655.98 5000 0],[657.131 100 0],[657.914 180 0],[658.217 2000 0],[662.047 150 0],[663.162 5000 0],[668.228 2000 0],[669.213 1000 0],[672.828 800 0],[676.006 200 0],[677.948 200 0],[678.674 220 0],[679.004 650 0],[679.148 160 0],[686.115 180 0],[700.519 1000 0],[719.28 10 2],[726.045 200 0],[734.851 1000 0],[751.296 4000 0],[759.161 160 0],[759.507 180 0],[761.641 200 0],[767.31 10 2],[780.302 3000 0],[782.723 120 0],[788.145 250 0],[788.157 250 0],[792.581 250 0],[793.868 3000 0],[794.794 300 0],[795.018 300 0],[797.844 800 0],[797.857 1000 0],[798.994 3000 0],[802.635 200 0],[802.654 250 0],[813.152 3000 0],[815.265 100 0],[815.375 1000 0],[815.4 2500 0],[824.686 500 0],[826.496 1500 0],[827.244 7500 0],[833.47 2000 0],[834.37 1000 0],[838.404 120 0],[844.655 4000 0],[847.745 400 0],[851.338 150 0],[855.773 100 0],[856.628 100 0],[863.866 2000 0],[869.853 400 0],[879.347 1000 0],[881.996 1500 0],[882.522 2500 0],[888.898 400 0],[889.762 3000 0],[893.24 600 0],[894.939 180 0],[896.4 900 0],[902.442 35 1],[916.606 3000 0],[917.363 1500 0],[917.816 2000 0],[926.542 4000 0],[932.086 1500 0],[943.404 30 1],[979.348 600 0],[989.64 1000 0],[1014.008 300 0],[1023.774 600 0],[1029.962 100 0],[1037.765 150 0],[1045.796 3000 0],[1074.214 100 0],[1075.592 300 0],[1321.717 170 0],[1435.457 180 0],[1488.87 125 0],[1673.1189 180 0],[1856.8311 120 0],[1973.3619 350 0],[2028.173 100 0],[2062.467 100 0],[2178.724 120 0],[2286.565 400 0],[2351.315 100 0],[2834.65 50 0],[3038.085 50 0],[3163.0131 60 0],[3269.39 12 0],[3418.1871 15 0],[3834.575 15 0],[3996.4359 12 0]}{ALLx7500x7500x100x50x110x100x0}{UVx7500x7500x100x50x110x100x0}{VISx6000x6000x100x45x0x0x0}{IVx7500x7500x35x0x0x0x0}% -\pgfspectra@elt@search{#1}{Kr}{[46.735 30 2],[47.216 150 4],[48.439 100 4],[49.625 250 4],[50.077 120 4],[50.72 200 4],[54.086 30 2],[54.804 60 4],[56.564 30 2],[56.916 30 2],[57.198 30 2],[57.983 30 2],[58.514 30 2],[58.596 30 2],[59.37 30 2],[59.41 30 2],[59.641 30 2],[60.017 40 2],[60.367 30 2],[60.586 50 2],[60.647 35 2],[61.112 50 2],[61.672 35 2],[62.145 40 2],[62.28 45 2],[62.502 50 2],[62.576 30 2],[62.859 45 2],[63.004 50 2],[63.309 35 2],[63.787 120 4],[63.998 50 2],[64.641 60 2],[65.12 50 2],[65.972 50 2],[66.486 30 2],[67.234 40 2],[67.285 35 2],[67.657 35 2],[68.013 35 2],[68.368 35 2],[68.625 45 2],[68.798 45 2],[69.193 45 2],[69.561 50 2],[69.805 30 2],[70.836 50 2],[70.885 600 4],[71.4 50 2],[72.204 100 2],[72.94 60 1],[74.67 30 2],[76.118 200 1],[76.398 100 1],[76.62 60 1],[77.103 200 1],[77.369 60 1],[78.21 200 1],[78.372 100 1],[78.597 60 2],[80.576 7 3],[81.682 18 3],[81.815 60 1],[83.038 60 1],[83.766 50 2],[84.204 22 3],[84.406 100 1],[85.473 50 2],[86.258 60 2],[86.482 60 1],[86.887 60 1],[87.084 40 2],[87.608 50 2],[88.414 200 1],[88.63 1000 1],[89.101 400 1],[89.781 75 2],[91.139 200 1],[91.743 2000 1],[94.544 50 0],[94.654 50 0],[95.106 20 0],[95.34 50 0],[96.337 50 0],[96.497 2000 1],[98.729 50 2],[100.106 100 0],[100.355 100 0],[103.002 100 0],[115.874 30 2],[116.487 200 0],[123.584 650 0],[163.882 6 2],[191.409 6 2],[223.734 3 3],[229.126 6 3],[232.93 3 3],[233.675 4 3],[234.827 4 3],[235.85 3 3],[238.805 3 3],[239.394 40 2],[241.69 4 3],[242.804 3 3],[244.268 5 3],[245.17 4 3],[245.974 6 3],[246.477 100 1],[247.406 5 3],[249.248 60 1],[249.401 40 2],[251.7 4 3],[251.802 5 3],[251.938 6 3],[252.45 5 3],[254.6 5 3],[254.7 6 3],[255.808 4 3],[256.325 30 2],[258.69 3 3],[260.617 5 3],[260.95 10 3],[261.53 8 3],[262.111 7 3],[263.976 60 2],[268.032 30 2],[268.119 40 2],[271.24 80 1],[273.055 3 3],[274.818 8 3],[277.47 6 3],[282.96 3 3],[283.3 100 1],[283.608 3 3],[284.1 30 2],[285.116 30 2],[285.3 5 3],[285.93 3 3],[287.061 50 2],[289.218 100 2],[290.917 30 2],[295.256 50 2],[299.222 60 2],[302.23 50 2],[302.445 80 2],[304.693 50 2],[305.672 30 2],[306.313 60 2],[309.716 40 2],[311.225 60 2],[312.061 30 2],[312.439 100 2],[314.135 60 2],[314.201 3 3],[318.911 100 2],[319.121 80 2],[322.499 6 3],[323.952 40 2],[324.044 40 2],[324.569 300 2],[326.17 3 3],[326.481 150 2],[326.848 100 2],[327.165 30 2],[328.589 30 2],[330.475 30 2],[331.147 50 2],[332.575 200 2],[333.076 60 2],[334.248 50 2],[335.193 100 2],[337.496 40 2],[343.946 100 2],[347.465 70 2],[348.859 100 2],[350.742 200 2],[356.423 100 2],[360.788 100 1],[363.1889 200 1],[364.134 30 2],[365.3928 250 1],[366.5324 80 0],[366.901 150 1],[367.9559 100 0],[368.6182 80 1],[369.065 30 2],[371.802 300 1],[371.8595 200 1],[372.135 150 1],[374.1638 200 1],[374.48 150 1],[375.4245 80 1],[377.8089 500 1],[378.3095 500 1],[380.93 3 3],[386.058 5 3],[386.87 40 2],[387.544 150 1],[390.6177 150 1],[392.0081 200 1],[393.429 5 3],[399.484 100 1],[399.7793 100 1],[405.7037 300 1],[406.5128 300 1],[406.737 50 2],[408.8337 500 1],[409.8729 250 1],[410.9248 100 1],[413.133 40 2],[414.5122 250 1],[415.446 40 2],[425.058 150 1],[427.3969 1000 0],[428.2967 100 0],[429.2923 600 1],[430.049 200 1],[431.781 500 1],[431.8551 400 0],[431.9579 1000 0],[432.298 150 1],[435.1359 100 0],[435.5477 3000 1],[436.2641 500 0],[436.969 200 1],[437.6121 800 0],[438.654 300 1],[439.9965 200 0],[442.5189 100 0],[443.1685 500 1],[443.6812 600 1],[445.3917 600 0],[446.3689 800 0],[447.5014 800 1],[448.988 400 1],[450.2353 600 0],[452.314 400 1],[455.661 200 1],[457.7209 800 1],[458.2978 300 1],[459.28 150 1],[461.5292 500 1],[461.9166 1000 1],[463.3885 800 1],[465.8876 2000 1],[468.0406 500 1],[469.1301 100 1],[469.436 200 1],[473.9002 3000 1],[476.2435 300 1],[476.5744 1000 1],[481.176 300 1],[482.518 300 1],[483.2077 800 1],[484.6612 700 1],[485.72 150 1],[494.559 300 1],[501.645 20 2],[502.24 200 1],[508.652 250 1],[512.573 400 1],[520.832 500 1],[530.866 200 1],[533.341 500 1],[546.817 200 1],[550.143 10 2],[556.2224 500 0],[557.0288 2000 0],[558.0386 80 0],[564.9561 100 0],[568.189 400 1],[569.035 200 1],[583.2855 100 0],[587.0914 3000 0],[599.222 200 1],[599.3849 60 0],[603.717 10 2],[605.6125 60 0],[607.838 10 2],[631.022 10 2],[642.018 300 1],[642.1026 100 0],[645.6288 200 0],[657.007 150 1],[669.9228 60 0],[690.4678 100 0],[721.313 250 1],[722.4104 100 0],[728.7258 80 0],[728.978 400 1],[740.702 400 1],[742.5541 60 0],[743.578 200 1],[748.6862 100 0],[752.446 300 1],[758.7411 1000 0],[760.1544 2000 0],[764.116 150 1],[768.5244 1000 0],[769.4538 1200 0],[773.569 250 1],[774.6827 150 0],[785.4821 800 0],[791.3423 200 0],[792.8597 180 0],[793.322 200 1],[797.362 120 1],[798.2401 100 0],[805.9503 1500 0],[810.4364 4000 0],[811.2899 6000 0],[813.2967 60 0],[819.0054 3000 0],[820.272 200 1],[821.8365 80 0],[826.324 3000 0],[827.2353 100 0],[828.105 1500 0],[829.8107 5000 0],[841.243 100 0],[850.887 3000 0],[876.411 150 0],[877.6748 6000 0],[892.8692 2000 0],[923.848 500 1],[929.382 500 1],[932.099 200 1],[936.195 300 1],[936.2082 100 0],[940.282 200 1],[947.093 200 1],[957.752 500 1],[960.58 500 1],[961.961 400 1],[966.334 200 1],[971.16 200 1],[975.1758 2000 0],[980.314 500 1],[985.6314 500 0],[1022.146 1000 1],[1118.7108 100 0],[1125.7711 200 0],[1125.9126 150 0],[1145.7481 500 0],[1179.2425 150 0],[1181.9377 1500 0],[1199.7105 600 0],[1207.7224 160 0],[1286.1892 100 0],[1317.7412 1100 0],[1362.2415 1000 0],[1363.422 2400 0],[1365.8394 800 0],[1371.1036 200 0],[1373.8851 600 0],[1397.4027 150 0],[1404.5657 550 0],[1410.4298 140 0],[1440.222 180 0],[1442.6793 2000 0],[1451.784 100 0],[1473.4436 1600 0],[1476.2672 550 0],[1476.5472 450 0],[1496.1894 400 0],[1500.5307 120 0],[1520.9526 140 0],[1523.9615 1700 0],[1532.648 130 0],[1533.4958 1500 0],[1537.2037 700 0],[1547.4026 200 0],[1568.102 180 0],[1582.009 120 0],[1672.6514 200 0],[1678.5129 2000 0],[1685.3488 1000 0],[1689.0441 2400 0],[1689.6754 1600 0],[1693.5807 1800 0],[1709.8771 600 0],[1736.7605 700 0],[1740.4443 120 0],[1761.6854 150 0],[1784.2736 650 0],[1800.2229 700 0],[1816.7314 2600 0],[1839.9785 100 0],[1858.0896 150 0],[1869.6295 300 0],[1878.5461 170 0],[1879.7703 200 0],[2020.9879 140 0],[2042.3965 300 0],[2044.6971 140 0],[2116.5471 600 0],[2190.2514 1800 0],[2248.5775 120 0],[2334.0416 180 0],[2426.0506 120 0],[2429.2221 180 0],[2523.382 600 0],[2861.0551 180 0],[2865.5721 1000 0],[2876.9711 150 0],[2882.249 140 0],[2923.6689 300 0],[3066.3539 300 0],[3097.916 300 0],[3930.0602 500 0],[3948.652 1100 0],[3955.725 220 0],[3957.2602 100 0],[3958.8398 1400 0],[3958.9602 1100 0],[3995.4801 500 0],[3996.6602 300 0],[4030.6102 1300 0],[4068.516 250 0]}{ALLx6000x6000x3000x300x22x600x0}{UVx2000x650x2000x300x22x600x0}{VISx3000x3000x3000x50x5x0x0}{IVx6000x6000x1000x0x0x0x0}% +\pgfspectra@elt@search{#1}{Kr}{[46.735 30 2],[47.216 150 4],[48.439 100 4],[49.625 250 4],[50.077 120 4],[50.72 200 4],[54.086 30 2],[54.804 60 4],[56.564 30 2],[56.916 30 2],[57.198 30 2],[57.983 30 2],[58.514 30 2],[58.596 30 2],[59.37 30 2],[59.41 30 2],[59.641 30 2],[60.017 40 2],[60.367 30 2],[60.586 50 2],[60.647 35 2],[61.112 50 2],[61.672 35 2],[62.145 40 2],[62.28 45 2],[62.502 50 2],[62.576 30 2],[62.859 45 2],[63.004 50 2],[63.309 35 2],[63.787 120 4],[63.998 50 2],[64.641 60 2],[65.12 50 2],[65.972 50 2],[66.486 30 2],[67.234 40 2],[67.285 35 2],[67.657 35 2],[68.013 35 2],[68.368 35 2],[68.625 45 2],[68.798 45 2],[69.193 45 2],[69.561 50 2],[69.805 30 2],[70.836 50 2],[70.885 600 4],[71.4 50 2],[72.204 100 2],[72.94 60 1],[74.67 30 2],[76.118 200 1],[76.398 100 1],[76.62 60 1],[77.103 200 1],[77.369 60 1],[78.21 200 1],[78.372 100 1],[78.597 60 2],[80.576 7 3],[81.682 18 3],[81.815 60 1],[83.038 60 1],[83.766 50 2],[84.204 22 3],[84.406 100 1],[85.473 50 2],[86.258 60 2],[86.482 60 1],[86.887 60 1],[87.084 40 2],[87.608 50 2],[88.414 200 1],[88.63 1000 1],[89.101 400 1],[89.781 75 2],[91.139 200 1],[91.743 2000 1],[94.544 50 0],[94.654 50 0],[95.106 20 0],[95.34 50 0],[96.337 50 0],[96.497 2000 1],[98.729 50 2],[100.106 100 0],[100.355 100 0],[103.002 100 0],[115.874 30 2],[116.487 200 0],[123.584 650 0],[163.882 6 2],[191.409 6 2],[223.734 3 3],[229.126 6 3],[232.93 3 3],[233.675 4 3],[234.827 4 3],[235.85 3 3],[238.805 3 3],[239.394 40 2],[241.69 4 3],[242.804 3 3],[244.268 5 3],[245.17 4 3],[245.974 6 3],[246.477 100 1],[247.406 5 3],[249.248 60 1],[249.401 40 2],[251.7 4 3],[251.802 5 3],[251.938 6 3],[252.45 5 3],[254.6 5 3],[254.7 6 3],[255.808 4 3],[256.325 30 2],[258.69 3 3],[260.617 5 3],[260.95 10 3],[261.53 8 3],[262.111 7 3],[263.976 60 2],[268.032 30 2],[268.119 40 2],[271.24 80 1],[273.055 3 3],[274.818 8 3],[277.47 6 3],[282.96 3 3],[283.3 100 1],[283.608 3 3],[284.1 30 2],[285.116 30 2],[285.3 5 3],[285.93 3 3],[287.061 50 2],[289.218 100 2],[290.917 30 2],[295.256 50 2],[299.222 60 2],[302.23 50 2],[302.445 80 2],[304.693 50 2],[305.672 30 2],[306.313 60 2],[309.716 40 2],[311.225 60 2],[312.061 30 2],[312.439 100 2],[314.135 60 2],[314.201 3 3],[318.911 100 2],[319.121 80 2],[322.499 6 3],[323.952 40 2],[324.044 40 2],[324.569 300 2],[326.17 3 3],[326.481 150 2],[326.848 100 2],[327.165 30 2],[328.589 30 2],[330.475 30 2],[331.147 50 2],[332.575 200 2],[333.076 60 2],[334.248 50 2],[335.193 100 2],[337.496 40 2],[343.946 100 2],[347.465 70 2],[348.859 100 2],[350.742 200 2],[356.423 100 2],[360.788 100 1],[363.1889 200 1],[364.134 30 2],[365.3928 250 1],[366.5324 80 0],[366.901 150 1],[367.9559 100 0],[368.6182 80 1],[369.065 30 2],[371.802 300 1],[371.8595 200 1],[372.135 150 1],[374.1638 200 1],[374.48 150 1],[375.4245 80 1],[377.8089 500 1],[378.3095 500 1],[380.93 3 3],[386.058 5 3],[386.87 40 2],[387.544 150 1],[390.6177 150 1],[392.0081 200 1],[393.429 5 3],[399.484 100 1],[399.7793 100 1],[405.7037 300 1],[406.5128 300 1],[406.737 50 2],[408.8337 500 1],[409.8729 250 1],[410.9248 100 1],[413.133 40 2],[414.5122 250 1],[415.446 40 2],[425.058 150 1],[427.3969 1000 0],[428.2967 100 0],[429.2923 600 1],[430.049 200 1],[431.781 500 1],[431.8551 400 0],[431.9579 1000 0],[432.298 150 1],[435.1359 100 0],[435.5477 3000 1],[436.2641 500 0],[436.969 200 1],[437.6121 800 0],[438.654 300 1],[439.9965 200 0],[442.5189 100 0],[443.1685 500 1],[443.6812 600 1],[445.3917 600 0],[446.3689 800 0],[447.5014 800 1],[448.988 400 1],[450.2353 600 0],[452.314 400 1],[455.661 200 1],[457.7209 800 1],[458.2978 300 1],[459.28 150 1],[461.5292 500 1],[461.9166 1000 1],[463.3885 800 1],[465.8876 2000 1],[468.0406 500 1],[469.1301 100 1],[469.436 200 1],[473.9002 3000 1],[476.2435 300 1],[476.5744 1000 1],[481.176 300 1],[482.518 300 1],[483.2077 800 1],[484.6612 700 1],[485.72 150 1],[494.559 300 1],[501.645 20 2],[502.24 200 1],[508.652 250 1],[512.573 400 1],[520.832 500 1],[530.866 200 1],[533.341 500 1],[546.817 200 1],[550.143 10 2],[556.2224 500 0],[557.0288 2000 0],[558.0386 80 0],[564.9561 100 0],[568.189 400 1],[569.035 200 1],[583.2855 100 0],[587.0914 3000 0],[599.222 200 1],[599.3849 60 0],[603.717 10 2],[605.6125 60 0],[607.838 10 2],[631.022 10 2],[642.018 300 1],[642.1026 100 0],[645.6288 200 0],[657.007 150 1],[669.9228 60 0],[690.4678 100 0],[721.313 250 1],[722.4104 100 0],[728.7258 80 0],[728.978 400 1],[740.702 400 1],[742.5541 60 0],[743.578 200 1],[748.6862 100 0],[752.446 300 1],[758.7411 1000 0],[760.1544 2000 0],[764.116 150 1],[768.5244 1000 0],[769.4538 1200 0],[773.569 250 1],[774.6827 150 0],[785.4821 800 0],[791.3423 200 0],[792.8597 180 0],[793.322 200 1],[797.362 120 1],[798.2401 100 0],[805.9503 1500 0],[810.4364 4000 0],[811.2899 6000 0],[813.2967 60 0],[819.0054 3000 0],[820.272 200 1],[821.8365 80 0],[826.324 3000 0],[827.2353 100 0],[828.105 1500 0],[829.8107 5000 0],[841.243 100 0],[850.887 3000 0],[876.411 150 0],[877.6748 6000 0],[892.8692 2000 0],[923.848 500 1],[929.382 500 1],[932.099 200 1],[936.195 300 1],[936.2082 100 0],[940.282 200 1],[947.093 200 1],[957.752 500 1],[960.58 500 1],[961.961 400 1],[966.334 200 1],[971.16 200 1],[975.1758 2000 0],[980.314 500 1],[985.6314 500 0],[1022.146 1000 1],[1118.7108 100 0],[1125.7711 200 0],[1125.9126 150 0],[1145.7481 500 0],[1179.2425 150 0],[1181.9377 1500 0],[1199.7105 600 0],[1207.7224 160 0],[1286.1892 100 0],[1317.7412 1100 0],[1362.2415 1000 0],[1363.422 2400 0],[1365.8394 800 0],[1371.1036 200 0],[1373.8851 600 0],[1397.4027 150 0],[1404.5657 550 0],[1410.4298 140 0],[1440.222 180 0],[1442.6793 2000 0],[1451.784 100 0],[1473.4436 1600 0],[1476.2672 550 0],[1476.5472 450 0],[1496.1894 400 0],[1500.5307 120 0],[1520.9526 140 0],[1523.9615 1700 0],[1532.648 130 0],[1533.4958 1500 0],[1537.2037 700 0],[1547.4026 200 0],[1568.102 180 0],[1582.009 120 0],[1672.6514 200 0],[1678.5129 2000 0],[1685.3488 1000 0],[1689.0441 2400 0],[1689.6754 1600 0],[1693.5807 1800 0],[1709.8771 600 0],[1736.7605 700 0],[1740.4443 120 0],[1761.6854 150 0],[1784.2736 650 0],[1800.2229 700 0],[1816.7314 2600 0],[1839.9785 100 0],[1858.0896 150 0],[1869.6295 300 0],[1878.5461 170 0],[1879.7703 200 0],[2020.9879 140 0],[2042.3965 300 0],[2044.6971 140 0],[2116.5471 600 0],[2190.2514 1800 0],[2248.5775 120 0],[2334.0416 180 0],[2426.0506 120 0],[2429.2221 180 0],[2523.382 600 0],[2861.0551 180 0],[2865.5721 1000 0],[2876.9711 150 0],[2882.249 140 0],[2923.6689 300 0],[3066.3539 300 0],[3097.916 300 0],[3930.0602 500 0],[3948.652 1100 0],[3955.725 220 0],[3957.2602 100 0],[3958.8398 1400 0],[3958.9602 1100 0],[3995.4801 500 0],[3996.6602 300 0]}{ALLx6000x6000x3000x300x22x600x0}{UVx2000x650x2000x300x22x600x0}{VISx3000x3000x3000x50x5x0x0}{IVx6000x6000x1000x0x0x0x0}%,[4030.6102 1300 0],[4068.516 250 0] \pgfspectra@elt@search{#1}{Rb}{[46.585 3 2],[47.488 1 1],[48.1118 4 1],[48.243 3.5 2],[48.247 3 2],[48.283 50 2],[48.484 30 2],[48.966 50 2],[48.996 10 2],[49.348 60 2],[49.743 9 1],[49.782 5 2],[50.028 10 2],[50.833 3 2],[50.8434 2 1],[51.3266 15 1],[51.679 40 2],[53.0173 30 1],[53.364 80 2],[53.3801 7.5 1],[53.586 120 2],[54.2887 4 1],[55.5036 20 1],[55.619 120 2],[55.836 50 2],[56.477 70 2],[56.671 150 2],[57.282 100 2],[57.665 150 2],[57.963 250 2],[58.126 150 2],[58.234 50 2],[58.677 80 2],[58.9419 250 1],[59.142 10 2],[59.365 90 2],[59.494 100 2],[59.518 1 3],[59.588 130 2],[59.849 120 2],[60.209 45 2],[60.551 5 2],[60.728 50 2],[61.331 40 2],[61.967 50 2],[62.083 2 2],[62.224 10 2],[63.006 25 2],[64.3878 150 1],[64.567 50 2],[66.376 2.5 3],[67.481 2 2],[69.7049 300 1],[71.1187 600 1],[71.624 2.5 3],[73.341 2 3],[74.085 5 3],[74.1456 1000 1],[74.986 2 3],[75.375 2 3],[76.904 500 2],[77.154 1 3],[77.689 2.5 3],[81.528 250 2],[81.792 0.9 3],[85.018 1.5 3],[98.8 1 3],[160.412 100 1],[164.496 20 1],[170.752 20 1],[171.685 60 1],[176.05 500 1],[180.347 20 1],[180.968 50 1],[186.533 50 1],[188.942 50 1],[195.424 50 1],[195.654 30 1],[197.142 20 1],[198.319 50 1],[204.223 30 1],[205.221 30 1],[205.28 50 1],[206.892 200 1],[207.15 100 1],[207.595 1000 1],[209.029 100 1],[210.806 20 1],[211.65 30 1],[212.525 100 1],[212.982 40 1],[214.31 20 1],[214.383 3000 1],[215.321 10 2],[216.459 25 2],[219.036 20 1],[219.799 60 1],[219.826 60 1],[220.786 30 1],[221.708 1000 1],[222.379 20 1],[223.772 40 1],[225.065 50 1],[225.143 20 1],[225.419 80 1],[225.455 20 1],[226.354 20 1],[226.394 50 1],[226.8 10 2],[228.682 50 1],[229.171 500 1],[229.88 30 1],[230.012 15 2],[230.414 50 2],[230.445 15 2],[231.246 25 2],[233.301 25 1],[233.339 200 1],[233.707 20 2],[234.19 10 2],[234.537 20 2],[234.981 10 2],[235.311 35 1],[235.396 30 1],[235.697 40 1],[235.804 30 1],[236.427 30 1],[236.432 20 1],[236.515 20 1],[236.751 30 1],[237.321 20 1],[238.044 15 2],[238.129 10 2],[238.534 200 1],[240.594 25 1],[241.846 15 2],[243.417 40 1],[245.914 80 1],[247.22 5000 1],[248.456 30 1],[248.47 70 1],[249.638 200 1],[250.267 20 1],[251.418 25 1],[252.424 100 1],[256.186 30 2],[257.371 10 2],[257.707 10 2],[258.683 20 2],[259.456 20 1],[262.376 40 1],[263.175 100 2],[263.683 35 2],[264.558 40 1],[265.668 10 2],[268.41 100 1],[271.176 100 1],[271.386 10 2],[274.101 25 1],[279.886 50 2],[280.027 15 2],[280.758 50 2],[281.215 50 1],[283.851 35 1],[284.544 10 2],[286.977 15 2],[287.388 75 1],[290.369 50 2],[294.962 15 2],[295.101 10 2],[295.607 200 2],[296.745 50 2],[296.813 15 2],[297.074 50 2],[298.74 25 2],[302.361 35 2],[303.962 20 2],[304.148 20 2],[305.136 100 1],[307.07 25 2],[308.202 0.2 0],[308.684 50 2],[308.858 25 1],[309.849 10 2],[311.136 50 2],[311.257 1 0],[311.306 0.3 0],[311.482 25 2],[311.892 12 2],[314.89 500 1],[315.754 2.5 0],[315.826 0.5 0],[316.1 120 1],[316.934 10 2],[322.26 20 2],[322.798 5 0],[322.916 0.6 0],[327.099 200 1],[328.641 50 2],[332.149 150 1],[333.016 10 2],[334.055 120 1],[334.692 20 2],[334.872 6 0],[335.082 7.5 0],[335.389 75 1],[339.303 120 1],[341.558 75 1],[343.418 100 1],[343.926 25 2],[346.15 150 1],[349.268 10 2],[352.139 300 1],[353.155 300 1],[354.115 100 1],[358.705 10 0],[359.157 4 0],[360.06 500 1],[360.064 1000 1],[363.98 60 1],[364.626 40 1],[364.756 35 1],[366.274 100 1],[366.381 90 1],[366.672 35 1],[367.566 30 1],[369.958 250 1],[374.633 35 1],[379.681 350 1],[380.19 250 1],[382.666 100 1],[386.074 45 1],[390.729 25 1],[392.22 50 1],[392.644 250 1],[394.051 2500 1],[397.815 100 1],[402.949 170 1],[408.388 250 1],[410.428 200 1],[413.611 170 1],[419.308 350 1],[420.18 100 0],[421.553 50 0],[424.44 9000 1],[426.658 50 1],[427.025 25 1],[427.314 1500 1],[428.797 250 1],[429.397 150 1],[430.626 50 1],[434.696 100 1],[437.712 250 1],[444.01 30 1],[446.947 100 1],[449.392 40 1],[451.904 70 1],[453.034 300 1],[453.379 50 1],[454.074 40 1],[457.177 2000 1],[462.242 300 1],[463.189 35 1],[464.857 1000 1],[465.928 50 1],[473.045 100 1],[475.53 100 1],[475.782 40 1],[477.595 3000 1],[478.283 500 1],[485.534 30 1],[488.559 150 1],[508.7987 0.2 0],[513.2471 0.2 0],[515.0134 1 0],[515.208 1000 1],[516.458 30 1],[516.5023 0.1 0],[516.5142 0.2 0],[516.965 0.1 0],[519.5278 1.5 0],[523.3968 0.2 0],[526.0034 2 0],[526.0228 0.1 0],[527.051 20 1],[532.238 0.3 0],[536.2601 4 0],[539.0568 0.4 0],[543.1532 7.5 0],[543.183 0.3 0],[551.255 50 1],[552.278 500 1],[557.8788 0.6 0],[563.599 500 1],[564.7774 4 0],[565.375 2 0],[569.915 300 1],[572.4121 6 0],[572.4614 0.3 0],[573.964 20 1],[607.0755 7.5 0],[613.527 20 1],[615.9626 3 0],[619.908 100 1],[620.6309 7.5 0],[626.94 30 1],[629.8325 12 0],[629.9224 0.5 0],[645.833 1000 1],[655.562 100 1],[656.081 500 1],[677.507 300 1],[727.9997 10 0],[731.652 30 1],[740.8173 15 0],[761.8933 20 0],[775.7651 30 0],[775.9436 6 0],[780.027 9000 0],[792.526 0.5 0],[792.554 0.4 0],[794.76 4500 0],[827.141 4 0],[827.171 3 0],[860.396 200 1],[886.8512 4 0],[886.8852 3 0],[897.888 30 1],[902.177 30 1],[922.464 0.3 0],[923.425 0.2 0],[924.641 50 1],[933.887 30 1],[937.35 20 1],[939.136 30 1],[947.932 100 1],[949.372 70 1],[952.265 3 0],[952.305 0.5 0],[954.018 2 0],[961.299 30 1],[967.154 30 1],[968.905 200 1],[977.606 20 1],[993.476 20 1],[1007.5282 3.5 0],[1007.5708 3 0],[1323.517 10 0],[1344.281 2 0],[1344.357 3 0],[1366.501 7.5 0],[1475.241 100 0],[1528.843 80 0],[1528.948 15 0],[2252.965 2 0],[2293.2471 1 0],[2731.4311 0.4 0],[2790.5369 0.2 0]}{ALLx9000x9000x9000x500x5x0x0}{UVx5000x10x5000x500x5x0x0}{VISx9000x100x9000x0x0x0x0}{IVx9000x9000x200x0x0x0x0}% \pgfspectra@elt@search{#1}{Sr}{[28.431 2.4 3],[29.109 2.4 3],[29.119 2.4 3],[29.322 2.4 3],[29.812 3 3],[30.012 3 3],[30.027 2.4 3],[30.167 2.4 3],[30.718 5 2],[31.611 10 2],[32.161 10 2],[33.067 25 2],[35.162 100 2],[35.88 15 2],[36.349 50 2],[37.121 30 2],[37.853 4 3],[39.244 15 3],[39.3 10 3],[39.49 9 3],[39.622 10 3],[39.992 8 3],[40.385 7 3],[40.694 7 3],[41.293 6 3],[41.307 8 3],[41.532 8 3],[41.978 6 3],[43.021 5 3],[43.065 6 3],[43.724 200 2],[44.273 5 3],[47.176 5 3],[48.42 5 3],[49.179 375 2],[50.704 250 2],[50.814 5 3],[51.438 750 2],[51.728 2 4],[53.419 5 3],[54.051 1.2 4],[56.275 500 2],[57.801 5 4],[62.493 6 4],[64.223 5 4],[64.921 10 4],[65.915 4 4],[66.094 5 4],[66.443 40 3],[66.993 1.8 4],[68.623 7 4],[71.035 20 3],[71.579 1.2 4],[74.782 2.4 4],[86.232 1.8 4],[96.837 4 2],[97.578 4 2],[99.298 5 2],[102.523 10 2],[104.491 7 2],[105.774 4 2],[106.02 5 2],[109.877 4 2],[112.549 7 2],[114.024 4 2],[116.827 4 2],[118.209 4 2],[118.921 4 3],[123.623 10 2],[124.414 6 3],[124.475 4 3],[124.487 4 3],[125.778 4 3],[126.862 4 3],[133.113 4 3],[134.79 6 3],[136.115 4 3],[140.867 5 3],[159.274 4 3],[167.703 5 3],[170.516 4 3],[172.423 4 3],[172.953 5 3],[173.212 4 3],[177.725 4 3],[194.058 4 2],[195.844 6 2],[196.692 6 2],[199.461 4 3],[206.863 5 2],[209.959 10 2],[210.438 4 3],[211.431 5 2],[211.79 4 3],[211.848 6 2],[211.952 10 2],[213.312 10 2],[214.28 6 2],[214.574 4 2],[215.284 280 1],[216.596 280 1],[217.891 6 2],[218.014 6 2],[219.088 10 2],[220.386 10 2],[221.799 4 3],[221.95 10 2],[222.005 10 2],[223.041 4 3],[224.049 4 3],[225.338 4 3],[226.703 10 2],[227.371 20 2],[227.787 10 2],[231.033 6 2],[231.495 10 2],[233.479 10 2],[234.013 20 2],[234.697 10 3],[235.734 4 3],[240.417 10 2],[241.052 6 2],[242.81 32 0],[243.893 4 3],[244.141 5 3],[245.403 10 2],[248.279 6 3],[248.357 5 3],[248.652 20 2],[250.057 3.6 3],[250.359 10 2],[250.802 4 3],[253.403 4 3],[254.802 3.6 3],[255.56 8 3],[256.947 24 0],[257.104 8 3],[257.158 5 3],[258.934 3 3],[259.91 6 2],[262.035 5 3],[262.116 4 3],[262.269 7 2],[264.216 4 3],[264.296 6 2],[264.851 6 2],[265.466 7 2],[272.247 8 2],[278.6 10 2],[282.142 10 2],[283.053 3 3],[287.486 6 2],[292.934 6 2],[293.183 40 0],[293.46 1.8 3],[298.3 6 2],[300.261 20 2],[301.232 40 2],[301.929 2 3],[302.173 20 2],[305.983 6 2],[306.143 10 2],[310.425 6 2],[318.261 10 2],[323.539 20 2],[326.652 1.8 3],[330.173 60 0],[330.272 6 2],[332.999 60 0],[335.125 80 0],[336.633 60 0],[338.071 130 1],[343.076 10 2],[346.446 190 1],[347.489 24 1],[356.643 1.8 3],[374.105 1.8 3],[387.426 6 2],[393.64 6 2],[393.672 6 2],[394.08 60 0],[395.875 6 2],[396.926 120 0],[397.004 60 0],[403.038 260 0],[403.238 60 0],[407.771 9200 1],[409.403 6 2],[409.702 6 2],[410.563 6 2],[416.18 40 1],[421.552 6400 1],[429.857 1.8 3],[430.545 68 1],[433.58 7 2],[443.804 70 0],[460.733 13000 0],[468.508 1.8 3],[472.228 640 0],[474.192 440 0],[478.432 280 0],[481.188 960 0],[483.208 720 0],[485.504 100 0],[486.87 120 0],[487.249 600 0],[487.606 120 0],[487.632 400 0],[489.198 200 0],[496.226 1600 0],[496.794 260 0],[507.109 6 2],[513.034 6 2],[515.607 160 0],[515.826 7 2],[522.22 280 0],[522.511 400 0],[522.927 400 0],[523.855 560 0],[525.69 960 0],[525.771 8 2],[526.221 6 2],[528.832 6 2],[532.982 70 0],[539.103 6 2],[544.348 8 2],[545.084 300 0],[546.39 6 2],[548.084 1400 0],[548.612 220 0],[550.417 700 0],[552.183 520 0],[553.481 400 0],[554.005 400 0],[554.336 50 0],[566.466 6 2],[568.972 6 2],[597.01 40 0],[634.575 50 0],[636.394 50 0],[636.996 70 0],[638.075 200 0],[638.65 180 0],[638.824 120 0],[640.847 1800 0],[644.668 50 0],[646.579 50 0],[650.4 1100 0],[654.679 200 0],[655.026 340 0],[661.726 600 0],[664.354 160 0],[679.105 360 0],[687.838 960 0],[689.259 240 0],[707.01 1100 0],[715.309 12 0],[716.724 50 0],[723.227 40 0],[730.941 500 0],[762.15 100 0],[767.306 80 0],[785 10 0],[786.69 6 0],[787.4 4 0],[842.28 40 0],[850.569 24 1],[868.891 40 1],[871.956 6 1],[917 8 0],[920.45 6 0],[928.39 4 0],[929.41 20 0],[930.66 3 0],[931.92 6 0],[938.045 12 0],[941.125 8 0],[944.895 80 0],[959.6 120 0],[962.47 60 0],[963.81 20 0],[964.77 20 1],[1003.666 60 1],[1032.731 200 1],[1087.27 1.4 1],[1091.488 40 1],[1098.4 2 0],[1122.457 2.6 1],[1124.125 140 0],[1201.476 20 1],[1223.62 4 0],[1244.59 12 1],[1247.96 4 0],[1249.5 8 0],[1265.22 3 0],[1297.47 15 1],[1312.38 20 1],[1352.28 3 0],[1714.09 3 0],[1717.05 6 0],[1744.74 10 0],[1762.6 0.8 1],[1774.3 6 0],[1975.96 3 0],[2026.14 46 0],[2070.0699 24 0],[2076.45 8 0],[2077.8699 3 0],[2602.36 6 0]}{ALLx13000x13000x9200x750x40x10x0}{UVx750x80x280x750x40x10x0}{VISx13000x13000x9200x8x1.8x0x0}{IVx200x140x200x0x0x0x0}% \pgfspectra@elt@search{#1}{Y}{[21.18 0.3 3],[21.451 0.3 3],[21.597 0.6 3],[21.739 0.6 3],[22.171 1.2 3],[22.218 0.3 3],[22.298 0.6 3],[22.884 0.2 3],[22.894 2 3],[22.978 0.3 3],[23.517 0.3 3],[23.577 2.5 3],[24.212 0.1 3],[24.23 3 3],[24.414 0.3 3],[26.372 0.3 3],[26.464 15 3],[27.24 3 3],[27.303 15 3],[27.86 1 3],[28.918 0.5 4],[29.999 5 4],[31.289 0.3 4],[31.335 20 4],[32.047 4 4],[32.169 4 4],[32.558 15 4],[32.657 20 4],[32.834 17.5 4],[33.04 5 4],[33.309 90 4],[33.38 50 4],[33.512 10 4],[33.514 40 4],[33.662 50 4],[33.902 50 4],[34.002 20 4],[34.042 0.5 4],[34.459 50 4],[34.965 10 4],[34.975 0.2 4],[35.136 1 4],[35.398 10 4],[35.556 10 4],[35.586 90 3],[37.042 30 3],[37.205 30 4],[37.996 40 4],[38.682 50 3],[39.777 20 4],[40.345 30 4],[40.881 0.1 4],[40.931 20 4],[41.503 20 4],[41.818 10 4],[41.859 15 4],[41.979 5 4],[42.074 30 4],[42.503 60 3],[42.787 0.1 4],[43.075 5 4],[43.766 10 4],[44.162 0.3 4],[44.296 3 4],[45.197 0.2 4],[45.584 1.5 4],[45.784 8.5 4],[47.31 30 3],[58.498 400 4],[63.097 200 4],[64.368 0.1 2],[64.669 0.4 2],[65.387 0.6 2],[65.698 1 2],[66.874 2.5 2],[67.198 4 2],[69.172 10 2],[69.385 0.4 2],[69.52 20 2],[72.791 0.9 2],[72.847 0.4 2],[72.883 0.2 2],[72.973 2 2],[73.049 60 2],[73.27 1.5 2],[73.436 80 2],[77.078 1.5 2],[77.179 1 2],[80.426 2 2],[80.52 500 2],[80.618 7.5 2],[80.897 15 2],[80.992 700 2],[85.564 10 2],[85.782 6 2],[98.423 2.5 2],[98.796 1.5 2],[98.921 1500 2],[99.637 2500 2],[99.919 2 2],[100.056 15 2],[100.335 2.5 2],[100.658 100 2],[100.786 120 2],[107.752 12 2],[108.135 50 2],[108.463 7.5 2],[108.839 35 2],[109.525 25 2],[109.587 2.5 2],[110.321 15 2],[128.974 300 2],[130.696 250 2],[131.451 500 2],[131.61 150 2],[133.404 400 2],[154.908 0.8 2],[155.381 1.5 2],[163.514 3 2],[164.043 7.5 2],[177.98 20 2],[178.605 60 2],[204.193 1 2],[204.207 0.5 2],[206.058 150 2],[206.898 400 2],[212.798 1000 2],[219.116 1600 2],[220.076 800 2],[220.603 800 2],[224.306 35 1],[226.141 15 2],[226.157 8 2],[228.434 1000 2],[231.992 0.3 2],[232.731 1000 2],[235.42 5 0],[236.723 5000 2],[237.383 3 -1],[238.524 5 -1],[241.393 2.5 1],[241.464 4000 2],[242.22 56 1],[246.061 6 1],[249.042 2.5 0],[254.028 1.2 -1],[254.757 1.4 -1],[255.017 1 -1],[268.165 2 0],[269.421 6 0],[269.539 2.6 0],[271.03 10 2],[271.054 9 2],[272.3 9.5 0],[273.008 2.2 0],[273.485 2.2 1],[274.253 7 0],[276.01 14 0],[278.011 0.5 2],[278.521 3 1],[278.559 1.2 1],[279.12 1.2 0],[279.144 7 2],[280.011 3 1],[280.327 2 2],[280.7 10 2],[281.364 2.6 0],[281.704 9000 2],[281.886 1.8 0],[282.256 4.5 0],[282.537 2.2 1],[282.638 4.5 1],[285.443 7 1],[285.63 2.6 1],[285.787 1.1 1],[286.767 600 2],[288.648 9.5 0],[289.769 1.8 1],[289.882 1.4 1],[291.341 600 2],[291.774 150 2],[291.856 160 2],[291.905 16 0],[293.003 1.8 1],[294.053 1.5 2],[294.601 9900 2],[294.84 39 0],[294.848 2 2],[296.496 35 0],[297.042 600 2],[297.391 1.8 1],[297.459 48 0],[298.055 3 1],[298.426 75 0],[299.526 7 0],[299.694 14 0],[300.526 7 0],[301.393 140 2],[301.885 150 2],[301.895 5.5 0],[302.173 13 0],[302.228 9 0],[302.649 2.6 1],[303.659 3 1],[304.484 4.5 0],[304.537 19 0],[304.711 2.2 0],[305.522 6 1],[308.685 6 1],[309.17 5.5 0],[309.376 2.2 1],[309.588 9.5 1],[311.181 4.5 0],[311.204 5.5 1],[311.428 2.2 0],[312.877 6 1],[312.993 8 1],[313.517 9.5 1],[317.306 11 1],[317.941 22 1],[319.131 7 0],[319.562 230 1],[320.027 220 1],[320.332 220 1],[321.669 390 1],[324.228 620 1],[326.71 0.3 2],[327.68 2.5 2],[328.091 31 1],[330.847 1.9 1],[332.789 470 1],[334.038 5.5 0],[336.2 16 1],[338.859 8.5 0],[339.704 4.5 0],[341.247 8.5 0],[344.882 20 1],[345.095 7 0],[346.788 11 1],[348.573 17 0],[349.609 170 1],[352.153 8 0],[354.601 4.5 1],[354.901 390 1],[355.18 13 0],[355.269 54 0],[355.876 17 0],[357.143 19 0],[357.605 26 0],[358.452 330 1],[358.775 30 0],[358.969 10 0],[359.292 280 0],[360.073 1000 1],[360.192 620 1],[361.105 780 1],[362.094 430 0],[362.871 190 1],[363.312 780 1],[366.461 300 1],[366.849 4.5 1],[369.253 17 0],[371.03 1300 1],[371.812 6 0],[373.861 6 0],[374.755 120 1],[374.989 5 0],[377.433 1000 1],[377.656 140 1],[378.23 5 1],[378.87 740 1],[381.835 130 1],[383.288 400 1],[384.787 7 1],[386.696 50 2],[387.682 8 0],[387.828 48 1],[388.777 3 0],[390.074 300 2],[390.459 6 0],[391.458 400 2],[391.825 5 0],[393.011 6 0],[393.066 24 1],[395.036 440 1],[395.16 15 1],[395.509 6 0],[398.26 360 1],[398.75 4 0],[403.96 380 2],[403.983 94 0],[404.011 300 2],[404.764 240 0],[407.738 940 0],[408.122 9 0],[408.371 200 0],[410.238 990 0],[410.639 6 0],[411.081 8 0],[412.161 12 2],[412.492 32 1],[412.831 890 0],[414.285 750 0],[415.763 10 0],[416.752 240 0],[417.414 200 0],[417.754 800 1],[419.928 12 1],[420.47 38 1],[421.302 8 0],[421.354 4 0],[421.78 16 0],[422.063 28 0],[422.425 8 0],[423.573 60 1],[423.594 220 0],[425.12 30 0],[430.23 36 0],[430.963 280 1],[431.63 5 0],[433.078 11 0],[433.729 3 0],[434.465 6 0],[434.879 44 0],[435.233 6 0],[435.27 6 0],[435.773 12 0],[435.873 80 1],[436.603 12 0],[437.494 1200 1],[437.561 15 0],[437.933 8 0],[438.548 3 0],[438.774 10 0],[439.401 3 0],[439.467 3 0],[439.802 180 1],[442.259 89 1],[443.734 8 0],[444.366 10 0],[444.663 13 0],[446.527 2 0],[447.389 4 0],[447.572 17 0],[447.696 18 0],[447.745 16 0],[448.728 11 0],[448.747 30 0],[449.175 3 0],[449.242 2.5 0],[450.595 50 0],[451.358 5 0],[451.401 8 0],[452.205 4 0],[452.725 89 0],[452.78 44 0],[454.432 10 0],[455.937 10 0],[456.439 3 0],[457.356 6 0],[458.132 3.5 0],[458.177 3 0],[459.655 13 0],[460.48 9.5 0],[461.3 4 0],[464.37 200 0],[465.832 20 0],[465.889 7 0],[466.747 8.5 0],[467.082 6 0],[467.484 200 0],[467.835 6 0],[468.232 26 1],[468.977 8.5 0],[469.681 18 0],[470.885 3.5 0],[472.585 6 0],[472.853 17 0],[473.237 6 0],[473.762 200 2],[474.14 8.5 0],[475.279 16 0],[476.098 41 0],[478.018 1.7 0],[478.104 12 0],[478.658 16 1],[478.689 17 0],[479.93 18 0],[480.431 5 0],[480.481 7 0],[481.738 8.5 -1],[481.82 14 -1],[481.964 14 0],[482.213 12 0],[482.331 19 1],[483.915 6 0],[483.987 77 0],[484.568 55 0],[485.269 41 0],[485.425 12 0],[485.487 89 1],[485.67 5 0],[485.984 33 0],[487.965 5 0],[488.369 190 1],[488.628 5 0],[488.665 4 0],[489.344 9.5 0],[490.012 110 1],[490.611 10 0],[490.9 4.5 0],[492.187 15 0],[493.093 3.5 0],[495.066 4.5 0],[497.43 12 0],[498.213 12 1],[500.697 10 0],[507.021 7.5 0],[507.219 7.5 0],[508.742 110 1],[508.818 3 0],[510.288 750 2],[511.911 21 1],[512.04 130 2],[512.321 45 1],[513.52 18 0],[519.643 12 1],[520.041 96 1],[520.572 150 1],[523.81 1000 2],[524.081 18 0],[526.358 300 2],[528.982 6 1],[532.078 4.5 1],[538.062 7.5 0],[538.364 400 2],[540.278 22 1],[541.703 2.4 0],[542.437 9 0],[543.824 19 0],[546.646 71 0],[546.847 10 0],[547.339 9 1],[548.074 9 1],[549.317 6 0],[549.559 3.5 0],[549.741 24 1],[550.345 30 0],[550.99 25 1],[551.364 6 0],[552.163 12 0],[552.676 2.4 0],[552.754 74 0],[554.163 3.5 0],[554.45 12 0],[554.602 9 1],[555.643 7.5 0],[556.281 600 2],[556.727 60 2],[556.775 6 0],[557.224 400 2],[557.742 18 0],[558.108 2.4 0],[558.187 62 0],[559.096 2.1 0],[559.412 2.1 0],[559.548 40 2],[560.208 300 2],[560.633 12 0],[562.391 1.5 0],[563.013 56 0],[563.225 2.4 0],[563.289 2.1 0],[564.469 12 0],[564.847 12 0],[566.294 74 1],[567.527 9 0],[569.363 1.8 0],[570.673 16 0],[572.061 2.4 0],[572.889 7.5 1],[573.012 15 -1],[573.209 2.1 0],[574.385 9 0],[574.693 1.8 -1],[576.422 2.4 -1],[576.564 7.5 0],[577.395 3.5 0],[578.169 10 1],[580 1.5 -1],[581.858 1.5 -1],[582.187 3 0],[583.227 2.1 0],[583.807 0.9 -1],[585.883 1.5 -1],[587.183 1.5 0],[587.614 2.4 -1],[587.996 2.4 0],[589.394 2.4 -1],[590.296 3.5 0],[591.219 2.4 -1],[593.11 2.4 -1],[593.908 9 -1],[594.572 4.5 0],[595.002 2.4 0],[595.641 7.5 -1],[597.204 130 -1],[598.186 5 0],[598.764 100 -1],[600.36 74 -1],[600.465 12 -1],[600.919 12 0],[601.987 62 -1],[602.341 12 0],[603.66 50 -1],[605.381 42 -1],[607.278 13 -1],[608.8 5 0],[608.935 21 -1],[609.678 16 -1],[610.782 13 -1],[611.473 13 -1],[612.738 7.5 -1],[613.206 140 -1],[613.504 12 0],[613.843 15 0],[614.836 110 -1],[615.172 12 -1],[616.508 82 -1],[618.223 56 -1],[619.173 120 0],[619.982 59 -1],[621.796 45 -1],[622.259 30 0],[623.672 27 -1],[625.105 4.5 0],[627.501 12 -1],[629.546 6 -1],[631.62 2.4 -1],[633.81 2.4 -1],[635.948 1.5 -1],[636.987 1.5 -1],[640.201 7.5 0],[643.5 100 0],[643.718 2.4 0],[650.123 1.8 -1],[651.833 1.8 -1],[653.584 1.8 -1],[653.86 9 0],[655.384 1.2 -1],[655.739 7 0],[657.258 1.2 -1],[657.685 3.5 0],[658.487 2.3 0],[661.375 9.5 1],[662.249 1.4 0],[663.649 1.9 0],[665.061 4 0],[666.44 2.1 0],[668.758 15 0],[669.183 1.4 0],[669.475 0.7 0],[669.926 1.6 0],[670.071 7 0],[671.32 3.5 0],[673.599 4 0],[679.371 19 0],[679.541 7 1],[680.315 1.2 0],[681.516 2.1 0],[683.249 1.4 1],[684.524 4.5 0],[685.824 1.4 1],[688.722 2.9 0],[689.6 2.1 1],[690.826 0.9 0],[693.352 1.4 0],[695.031 2.4 0],[695.168 1 1],[695.804 1 0],[697.988 2.4 0],[700.897 1.3 0],[700.993 1 0],[703.518 1.9 0],[705.294 2.9 0],[705.428 1.3 0],[707.513 0.9 0],[712.792 1.1 0],[719.166 3.5 0],[719.593 1 0],[725.458 200 2],[726.417 3.5 1],[729.308 0.9 0],[733.062 0.9 0],[733.296 0.5 1],[734.646 5 0],[739.877 1.1 0],[745.03 2.9 1],[749.488 1.7 0],[753.671 0.7 0],[755.871 900 2],[756.313 3.5 0],[761.772 0.8 0],[762.294 1.9 0],[765.289 0.7 0],[768.949 0.5 0],[769.8 0.8 0],[771.989 1.9 0],[772.408 1.9 0],[778.842 1.3 0],[779.632 1.3 0],[780.252 0.6 0],[781.216 1.7 0],[785.552 2.9 0],[786.453 600 2],[788.19 11 1],[791.671 800 2],[798.941 40 2],[799.143 1000 2],[799.933 1 0],[817.141 800 2],[832.961 0.9 0],[834.443 2.4 0],[836.564 0.8 0],[845.036 1.7 0],[852.894 0.8 0],[864.509 400 2],[879.621 1000 2],[880.062 9.5 0],[883.585 1.9 1],[911.659 800 2]}{ALLx9900x990x1300x9900x90x400x140}{UVx9900x430x1300x9900x90x400x5}{VISx1200x990x1200x1000x0x0x140}{IVx1000x9.5x11x1000x0x0x0}% @@ -80,10 +80,10 @@ \pgfspectra@elt@search{#1}{Ag}{[70.98 40 2],[71.385 40 2],[71.773 20 2],[71.853 40 2],[72.696 60 2],[73.004 70 2],[73.028 30 2],[73.083 5 1],[73.094 30 2],[73.657 40 2],[73.813 20 2],[74.098 40 2],[74.229 40 2],[74.83 40 2],[75.28 6 1],[75.573 30 2],[75.827 20 2],[76.719 40 2],[76.833 50 2],[76.961 30 2],[77.638 70 2],[78.291 40 2],[78.576 30 2],[78.908 40 2],[79.235 50 2],[79.654 40 2],[79.791 50 2],[79.941 80 2],[80.888 60 2],[81.612 30 2],[82.239 36 2],[83.811 40 2],[100.532 3 1],[106.549 2 1],[107.223 2.4 1],[107.422 50 1],[110.703 30 1],[111.246 30 1],[119.583 12 1],[122.333 10 1],[124.08 10 1],[124.687 10 1],[125.681 11 1],[125.755 11 1],[126.663 10 1],[127.367 14 1],[129.751 13 1],[131.12 17 1],[131.381 11 1],[131.461 10 1],[132.384 12 1],[134.209 12 1],[134.257 10 1],[134.662 14 1],[135.354 10 1],[136.45 30 1],[137.322 24 2],[137.476 24 2],[139.6 20 1],[140.493 22 2],[141.093 20 1],[141.39 24 2],[141.429 24 2],[141.972 18 1],[142.861 24 2],[143.26 19 1],[145.274 24 2],[145.641 40 2],[146.472 20 1],[146.623 10 1],[147.144 20 2],[148.901 60 2],[150.737 10 0],[151.508 30 2],[151.563 20 0],[152.423 20 2],[152.704 24 2],[154.114 30 2],[154.858 10 0],[155.089 30 2],[155.304 26 2],[155.516 20 1],[158.741 26 2],[158.928 24 2],[161.379 20 2],[161.914 26 2],[163.446 20 2],[164.45 20 1],[165.152 12 0],[165.21 10 0],[165.224 20 2],[165.36 26 2],[165.443 60 2],[165.618 140 2],[165.71 30 2],[166.154 20 2],[167.075 26 2],[167.614 30 2],[168.107 20 2],[168.282 24 1],[169.351 100 2],[170.506 40 2],[170.811 2 0],[170.886 30 2],[170.927 10 0],[171.768 26 2],[172.227 40 2],[172.676 30 2],[172.814 50 2],[173.644 25 1],[174.734 40 2],[174.964 24 2],[175.089 30 2],[175.103 150 2],[176.057 20 2],[176.262 30 2],[176.614 2 0],[176.87 30 2],[177.181 20 2],[178.385 20 2],[179.037 15 1],[179.17 20 2],[179.269 20 2],[179.39 30 2],[180.224 30 2],[180.226 30 2],[180.277 20 2],[180.823 60 2],[181.683 50 2],[182.245 30 2],[182.883 70 2],[183.233 50 2],[183.25 24 2],[183.431 20 2],[183.61 50 2],[183.864 30 2],[184.014 80 2],[184.696 20 2],[184.771 4 0],[184.993 24 2],[185.633 30 2],[185.891 24 2],[186.039 20 2],[186.064 20 2],[186.712 70 2],[186.81 30 2],[187.255 20 2],[187.345 80 2],[188.036 50 2],[188.957 60 2],[191.692 80 2],[191.708 120 2],[192.53 40 2],[194.632 30 2],[194.844 20 2],[195.762 140 2],[195.927 24 2],[196.086 20 2],[196.689 80 2],[196.738 20 1],[197.592 120 2],[197.703 100 2],[198.187 30 2],[198.702 40 2],[199.516 26 2],[200.024 120 2],[200.73 60 2],[201.149 40 2],[201.365 30 2],[201.596 30 1],[203.398 30 1],[204.133 30 2],[205.317 30 2],[205.383 30 2],[205.699 40 2],[206.117 40 0],[206.985 20 0],[208.104 40 2],[211.382 16 1],[214.56 12 1],[214.647 60 2],[214.919 30 2],[216.189 120 2],[216.621 30 2],[217 3 0],[218.676 10 1],[221.123 30 2],[222.953 12 1],[223.84 20 2],[224.643 20 1],[224.651 100 2],[224.874 15 1],[228.003 15 1],[228.65 20 2],[230.956 6 0],[231.004 140 2],[231.26 2 0],[231.705 14 1],[232.029 16 1],[232.468 14 1],[233.14 16 1],[235.792 14 1],[237.502 10 0],[238.685 20 2],[239.569 60 2],[241.141 15 1],[241.323 18 1],[243.781 20 1],[244.793 16 1],[246.962 20 2],[247.384 16 1],[250.663 12 1],[256.287 20 2],[257.563 10 0],[266.049 12 1],[272.177 12 0],[276.754 15 1],[282.439 20 0],[292.677 2 0],[293.842 4 0],[309.91 4 0],[313.002 6 0],[317.058 2 0],[318.07 18 1],[321.567 3 0],[322.515 2 0],[323.318 3 0],[326.735 20 1],[328.068 11000 0],[330.567 2 0],[338.289 5600 0],[340.378 2 0],[346.916 6 0],[347.582 14 1],[349.528 16 1],[350.192 4 0],[350.803 4 0],[351.338 3 0],[352.112 2 0],[354.261 10 0],[354.716 2 0],[355.701 2 0],[358.667 4 0],[362.349 2 0],[362.468 10 0],[368.246 15 1],[368.25 6 0],[368.334 16 1],[370.92 10 0],[372.742 2 0],[375.314 4 0],[381.094 40 0],[381.178 10 0],[384.074 20 0],[384.785 3 0],[390.741 10 0],[390.931 10 1],[391.44 10 0],[392.01 14 1],[392.801 2 0],[394.043 2 0],[394.297 2 0],[394.943 12 1],[398.158 20 0],[398.519 14 1],[399.215 2 0],[405.548 20 0],[408.343 2 0],[408.591 16 1],[418.548 20 1],[421.096 18 0],[421.282 20 0],[431.107 10 0],[439.623 4 0],[447.604 10 0],[455.6 4 0],[461.569 6 0],[462.004 16 1],[462.046 10 1],[466.848 12 0],[467.76 6 0],[478.84 20 1],[479.62 4 0],[484.782 6 0],[487.41 20 0],[488.821 4 0],[491.75 2 0],[493.575 2 0],[499.289 4 0],[502.735 16 1],[512.35 3 0],[520.908 200 0],[533.362 2 0],[546.55 200 0],[547.155 20 0],[547.538 4 0],[554.567 4 0],[555.958 2 0],[566.734 20 0],[608.378 2 0],[626.85 2 0],[662.108 4 0],[735.996 4 0],[768.778 64 0],[800.54 5 1],[825.47 3 1],[827.352 100 0],[832.44 4 1],[837.95 3 1],[840.38 5 1],[849.25 3 1],[864.57 6 0],[870.485 2 0],[874.76 2.4 1],[900.09 3 1],[1255.1 2 0],[1681.95 12 0],[1741.6699 4 0],[1830.79 3 0],[1838.2301 3 0]}{ALLx11000x11000x50x150x0x0x0}{UVx11000x11000x50x150x0x0x0}{VISx200x200x20x0x0x0x0}{IVx100x100x5x0x0x0x0}% \pgfspectra@elt@search{#1}{Cd}{[42.701 50 3],[43.788 20 3],[44.785 50 3],[48.09 60 3],[48.949 10 3],[49.3 70 3],[49.513 70 3],[49.814 70 3],[49.853 70 3],[50.409 80 3],[50.42 70 3],[50.45 70 3],[50.631 80 3],[50.801 60 3],[50.895 50 3],[50.955 70 3],[50.981 25 3],[51.14 70 3],[51.3 80 3],[51.45 70 3],[51.942 60 3],[52.097 15 3],[52.441 80 3],[52.447 70 3],[52.477 50 3],[52.51 70 3],[52.519 60 3],[52.707 70 3],[53.079 50 3],[53.109 80 3],[53.151 80 3],[53.429 70 3],[53.677 70 3],[53.724 50 3],[54.09 60 3],[54.174 70 3],[54.26 80 3],[54.655 80 3],[54.801 40 3],[54.833 20 3],[54.89 15 3],[55.127 25 3],[55.29 20 3],[55.306 60 3],[55.405 80 3],[56.026 25 3],[56.416 10 3],[56.701 60 3],[67.739 8 2],[68.458 15 2],[72.07 10 2],[106.223 20 3],[111.816 150 3],[112.6 30 3],[113.408 20 3],[113.904 15 3],[115.464 20 3],[115.573 10 3],[116.465 100 3],[116.578 20 3],[116.73 40 3],[117.973 20 3],[118.307 15 3],[118.34 100 3],[119.413 40 3],[119.563 20 3],[119.647 30 3],[119.893 20 3],[121.538 15 3],[122.352 20 3],[124.606 20 3],[124.656 15 3],[124.994 15 3],[125.6 100 1],[126.647 30 3],[127.441 15 3],[128.563 20 3],[128.758 20 3],[129.643 150 1],[129.946 20 3],[130.436 40 3],[130.607 30 3],[131.689 15 3],[132.185 15 3],[132.555 20 3],[132.65 100 1],[134.097 30 3],[134.615 15 3],[135.478 30 3],[135.811 20 3],[136.255 30 3],[137.048 60 3],[137.091 150 1],[138.098 30 3],[138.36 5 2],[139.21 15 2],[139.678 10 2],[139.765 20 3],[140.368 30 3],[140.658 15 3],[141.628 25 2],[141.889 60 3],[142.029 5 2],[142.054 8 2],[142.983 15 3],[143.286 5 2],[144.608 20 2],[144.754 20 3],[144.755 25 2],[145.263 20 3],[145.574 30 2],[146.597 15 3],[146.614 8 2],[146.667 15 3],[147.197 5 2],[148.295 15 3],[149.179 20 3],[149.181 15 2],[151.101 5 2],[151.165 10 2],[151.313 5 2],[151.426 200 1],[152.355 10 2],[152.84 15 2],[152.93 30 2],[153.21 5 2],[154.517 50 2],[154.757 25 2],[155.007 10 2],[155.045 20 2],[155.089 15 2],[155.218 5 2],[155.648 5 2],[156.066 15 2],[156.603 5 2],[156.898 15 2],[157.02 20 3],[157.158 200 1],[158.239 10 2],[159.873 20 3],[160.042 20 3],[160.159 40 2],[160.487 20 2],[160.664 20 2],[160.728 10 2],[160.891 15 2],[160.961 10 2],[161.251 15 2],[162.287 15 3],[162.527 15 2],[162.854 25 2],[165.187 20 2],[165.563 25 2],[166.86 100 1],[167.815 30 2],[169.97 10 2],[170.247 50 1],[170.716 40 2],[172.193 10 2],[172.295 40 2],[172.441 50 1],[172.566 30 2],[173.9 25 2],[174.569 5 2],[174.767 40 2],[174.815 15 2],[176.882 30 2],[177.306 40 2],[178.584 100 1],[178.919 30 2],[179.34 75 2],[179.61 15 2],[180.057 5 2],[182.341 40 2],[182.77 100 1],[184.466 50 2],[185.113 40 2],[185.137 20 2],[185.585 40 2],[185.667 200 2],[187.408 150 2],[188.649 15 2],[190.348 15 2],[190.998 25 2],[191.057 15 2],[192.223 300 1],[193.959 10 2],[194.354 100 1],[196.554 40 1],[198.689 30 1],[198.881 15 2],[199.543 200 1],[200.06 20 2],[200.407 15 2],[200.749 100 1],[201.612 15 2],[203.245 50 1],[203.623 75 1],[203.983 40 2],[204.561 50 2],[206.125 10 2],[208.791 75 2],[209.6 150 1],[209.745 10 2],[210.047 5 2],[211.16 50 2],[214.441 1000 1],[215.506 50 1],[218.779 100 1],[218.813 5 2],[219.456 1000 1],[221.843 5 2],[222.443 5 2],[226.502 1000 1],[228.8022 1500 0],[231.277 1000 1],[232.107 200 1],[237.682 40 1],[241.824 7 2],[241.869 50 1],[242.636 10 2],[246.973 50 1],[248.793 40 1],[249.1 3 0],[249.558 40 1],[249.981 25 2],[250.891 10 0],[250.911 50 1],[251.622 30 1],[251.859 15 0],[252.5196 25 0],[254.4613 50 0],[255.198 50 1],[255.3465 25 0],[256.5789 3 0],[257.293 500 1],[258.0106 50 0],[258.487 3 0],[259.2026 30 0],[260.2048 25 0],[261.881 15 2],[262.8979 50 0],[263.056 5 2],[263.219 40 0],[263.942 75 0],[265.923 40 1],[266.0325 50 0],[266.82 25 1],[267.262 50 1],[267.754 100 0],[267.7748 25 0],[270.7 50 1],[271.2505 75 0],[273.382 50 0],[274.854 1000 1],[276.3894 100 0],[276.423 50 0],[276.699 20 2],[277.4958 50 0],[280.559 30 2],[282.319 30 1],[283.69 200 0],[285.646 25 1],[286.818 100 0],[288.0767 200 0],[288.1224 50 0],[291.467 200 1],[292.787 50 1],[292.927 200 1],[298.062 1000 0],[298.1362 200 0],[298.1845 50 0],[303.06 50 1],[303.572 10 2],[308.0822 150 0],[308.148 25 1],[308.2593 30 0],[309.234 100 1],[313.3167 200 0],[314.679 50 1],[325.033 150 1],[325.2524 300 0],[326.1055 300 0],[334.321 50 1],[338.549 50 1],[338.888 30 1],[340.3652 800 0],[341.749 50 1],[344.242 50 1],[346.443 100 1],[346.62 1000 0],[346.7655 800 0],[348.308 25 1],[349.544 150 1],[349.9952 25 0],[352.411 100 1],[353.569 100 1],[361.0508 1000 0],[361.2873 800 0],[361.4453 60 0],[364.9558 20 0],[398.1926 10 0],[402.912 100 1],[413.477 200 1],[414.149 50 1],[428.508 100 1],[430.6672 8 0],[441.241 100 1],[441.2989 3 0],[441.563 1000 1],[444.045 30 1],[466.2352 8 0],[467.8149 200 0],[474.469 30 1],[479.9912 300 0],[488.172 50 1],[502.55 50 1],[508.5822 1000 0],[515.466 6 0],[526.801 100 1],[527.16 100 1],[533.748 1000 1],[537.813 1000 1],[538.189 200 1],[584.33 40 1],[588.022 50 1],[609.9142 300 0],[611.149 100 0],[632.5166 100 0],[633.0013 30 0],[635.472 400 1],[635.998 500 1],[643.847 2000 0],[646.494 400 1],[656.765 25 1],[672.578 500 1],[675.919 100 1],[677.8116 30 0],[723.701 50 1],[728.438 100 1],[734.567 1000 0],[806.699 50 1],[820.0309 5 0],[929.2 20 0],[1165.5 15 0],[1449.1 35 0],[1571.2 80 0],[1912.5 55 0],[2437.8 25 0],[2545.5 35 0]}{ALLx2000x2000x1000x200x150x0x0}{UVx1500x1500x1000x200x150x0x0}{VISx2000x2000x1000x0x0x0x0}{IVx80x80x50x0x0x0x0}% \pgfspectra@elt@search{#1}{In}{[36.867 3 4],[37.01 3 4],[37.282 5 4],[37.294 5 4],[37.495 1 4],[37.584 3 4],[37.607 3 4],[37.679 5 4],[37.861 8.5 4],[37.924 1.5 4],[38.027 4.5 4],[38.156 5.5 4],[38.214 4.5 4],[38.276 5.5 4],[38.305 5 4],[38.621 8.5 4],[38.67 5 4],[38.866 1.5 4],[38.891 7 4],[39.003 5.5 4],[39.092 5.5 4],[39.229 4.5 4],[39.246 4.5 4],[39.36 0.5 4],[39.389 12.5 4],[39.574 5.5 4],[39.773 1.5 4],[39.979 5 4],[40.005 4.5 4],[40.057 12.5 4],[40.239 12.5 4],[40.533 1.5 4],[40.728 4.5 4],[40.736 1.5 4],[40.795 4.5 4],[41.743 4.5 4],[41.845 1 4],[42.316 1 4],[67.733 4 3],[68.453 7.5 3],[68.531 3.5 2],[69.162 2.5 2],[72.064 4 3],[78.217 0.5 2],[88.224 5 2],[89.084 5 2],[91.587 5 2],[91.745 1 2],[92.683 2.5 2],[140.308 15 2],[143.485 15 2],[147.034 2 3],[148.77 10 2],[149.414 10 2],[151.262 2.5 3],[152.35 2.5 3],[152.478 5 2],[153.021 10 2],[153.203 3.5 3],[153.295 15 2],[156.892 4 3],[156.933 1.5 3],[160.15 6 3],[160.508 0.5 3],[160.659 3.5 3],[162.542 50 2],[162.848 5 3],[164.228 10 2],[164.8 1 0],[165.18 4 3],[165.562 5 3],[166.738 0.5 3],[167.064 2.5 3],[167.616 0.5 0],[167.807 6 3],[170.202 2 3],[170.253 10 2],[170.711 7.5 3],[171.154 2.5 0],[172.189 3.5 3],[174.123 1 0],[174.765 6 3],[174.81 5 3],[174.883 50 2],[175.849 0.5 0],[176.788 1 2],[176.877 5 3],[177.301 6 3],[178.915 4 3],[179.338 6 3],[181.071 0.5 2],[184.241 15 2],[184.467 6 3],[185.03 20 2],[185.11 4.5 3],[185.584 4.5 3],[185.664 7.5 3],[186.298 7.5 2],[187.408 7.5 3],[190.352 2.5 3],[193.958 2.5 3],[194.331 1.5 3],[200.473 3 3],[210.117 0.5 3],[210.389 5 1],[211.231 4 3],[215.408 15 2],[215.442 1 2],[216.688 5 1],[217.99 1 0],[218.24 1 0],[218.74 1 0],[219.084 1 0],[219.567 7.5 1],[219.741 1 0],[219.952 5 2],[220.224 1 0],[220.528 25 1],[221.114 1.5 0],[222.513 2 3],[223.07 2.5 0],[223.218 2.5 2],[224.166 1.5 0],[225.579 15 1],[225.999 5 0],[226.126 10 2],[226.626 2.5 2],[227.241 2.5 2],[227.284 2.5 2],[227.82 2.5 0],[228.164 20 1],[228.375 1 0],[229.833 1 0],[229.87 1 0],[230.09 5 2],[230.249 1 0],[230.605 50 1],[230.686 12.5 0],[230.932 1.5 0],[230.975 1 0],[231.321 45 1],[231.509 1 0],[232.34 15 1],[232.441 2.5 0],[232.492 1.5 0],[232.795 35 1],[233.276 1.5 0],[233.457 40 1],[234.019 5 0],[234.59 4 0],[234.656 2.5 0],[235.075 25 1],[235.87 2.5 0],[237.814 7.5 0],[237.9 5 0],[238.263 55 1],[238.954 20 0],[239.318 20 1],[239.918 5 0],[240.647 25 1],[240.876 25 1],[241.906 25 1],[241.92 25 1],[242.72 35 1],[242.986 10 0],[243.099 5 0],[243.273 25 1],[244.263 30 1],[244.79 50 1],[245.323 30 1],[246.008 30 0],[246.802 15 0],[248.615 35 1],[248.862 55 1],[248.895 45 1],[249.859 40 1],[249.96 50 1],[250.099 45 1],[250.816 30 1],[251.231 55 1],[252.137 50 0],[252.298 5 0],[252.741 50 2],[255.356 35 1],[255.444 80 1],[256.015 550 0],[256.513 35 1],[259.875 35 1],[260.176 100 0],[260.404 25 1],[265.47 45 1],[266.263 50 1],[266.865 70 1],[267.456 70 1],[268.312 40 1],[271.026 800 0],[271.394 150 0],[272.552 25 2],[272.615 40 2],[274.975 65 1],[275.388 350 0],[277.537 20 0],[279.876 30 1],[281.897 45 1],[283.692 90 0],[285.814 15 0],[286.568 40 1],[289.018 60 1],[293.263 550 0],[294.105 50 1],[295.701 10 0],[296.617 30 1],[298.28 50 2],[299.94 55 1],[300.808 50 2],[300.882 15 2],[303.936 4000 0],[305.115 4 0],[309.98 55 1],[310.18 90 1],[313.86 65 1],[314.275 40 1],[314.67 65 1],[315.577 75 1],[315.84 50 1],[317.63 45 1],[319.811 45 1],[325.609 6500 0],[325.856 1500 0],[329.355 15 2],[333.85 45 1],[335.091 4 2],[337.659 37.5 1],[340.428 50 1],[343.84 55 1],[356.232 2.5 2],[369.391 90 1],[370.813 47.5 1],[371.614 190 1],[371.83 60 1],[371.872 80 1],[372.34 80 1],[379.521 85 1],[379.921 115 1],[383.465 125 1],[384.218 100 1],[385.282 50 2],[388.978 50 1],[390.207 50 1],[392.212 30 1],[393.44 32.5 1],[396.235 125 1],[400.466 60 1],[401.392 70 1],[402.377 50 2],[403.232 75 2],[405.694 205 1],[406.23 25 2],[407.157 50 2],[407.293 50 2],[410.176 8500 0],[420.514 70 1],[421.304 50 1],[421.966 55 1],[425.268 50 2],[437.287 75 1],[450.078 75 1],[450.958 20 2],[451.131 9000 0],[454.901 55 1],[457.085 70 1],[457.802 90 1],[457.84 90 1],[461.608 70 1],[461.717 85 1],[462.014 125 1],[462.07 75 1],[462.73 85 1],[463.704 70 1],[463.816 190 1],[464.458 110 1],[465.562 180 1],[465.674 160 1],[468.111 95 1],[468.48 225 1],[487.837 1.5 0],[490.706 45 1],[492.493 35 1],[497.377 75 1],[510.936 40 1],[511.514 50 1],[511.74 70 1],[512.08 135 1],[512.175 100 1],[512.985 40 1],[517.542 120 1],[518.444 70 1],[524.877 100 2],[525.432 15 0],[526.274 6 0],[530.945 75 1],[541.141 40 1],[541.845 70 1],[543.67 110 1],[549.75 65 1],[550.708 70 1],[551.3 160 1],[552.328 125 1],[553.65 65 1],[555.545 95 1],[557.69 120 1],[563.67 100 1],[564.515 50 2],[570.85 80 1],[570.991 25 0],[572.18 50 1],[572.317 20 2],[572.768 25 0],[581.95 50 2],[585.315 105 1],[590.34 245 1],[591.54 130 1],[591.878 60 1],[606.29 65 1],[609.595 125 1],[610.866 105 1],[611.59 90 1],[612.87 115 1],[612.94 120 1],[613.21 160 1],[614 75 1],[614.323 45 1],[614.81 70 1],[614.95 95 1],[616.115 40 1],[616.245 90 1],[619.772 100 2],[622.428 50 1],[622.83 140 1],[623.11 70 1],[630.48 135 1],[636.23 145 1],[646.9 150 1],[654.12 105 1],[675.188 95 1],[676.59 90 1],[678.372 50 1],[684.744 4 0],[689.15 160 1],[690.013 2 0],[718.29 190 1],[725.5 90 1],[727.65 105 1],[730.34 90 1],[735.06 160 1],[763.27 50 1],[768.29 50 1],[774.07 105 1],[777.696 50 1],[778.9 90 1],[780.68 35 1],[781.45 35 1],[784.09 45 1],[805.078 10 0],[822.7 120 1],[823.866 15 0],[831.492 7.5 0],[843.455 25 1],[867.895 15 0],[868.263 10 0],[870.025 25 0],[881.35 50 1],[883.26 40 1],[889.447 20 0],[917.008 5 0],[919.77 60 1],[920.2 60 1],[921.3 110 1],[924.11 80 1],[934.983 20 0],[937.027 30 0],[942.799 10 0],[997.786 50 0],[1025.703 100 0],[1071.742 30 0],[1074.431 50 0],[1133.472 10 0],[1173.148 10 0],[1291.259 5 0],[1342.996 4.5 0],[1382.448 2.5 0],[1431.625 3 0],[1441.92 1.5 0],[1466.866 3 0],[1471.908 3.5 0],[1650.4311 1 0],[2229.1061 3 0],[2387.9131 3.5 0]}{ALLx9000x9000x245x100x7.5x12.5x0}{UVx6500x6500x190x50x7.5x12.5x0}{VISx9000x9000x245x100x0x0x0}{IVx120x100x120x0x0x0x0}% -\pgfspectra@elt@search{#1}{Sn}{[1.6 7 1],[35.514 120 4],[36.101 150 4],[37.255 100 4],[60.523 50 3],[61.904 50 3],[62.873 50 3],[75.301 100 2],[76.062 50 2],[77.579 75 2],[78.468 50 2],[89.992 1 1],[90.822 50 3],[91.092 200 2],[91.74 2 1],[93.563 1 1],[94.583 3 1],[95.45 4 1],[95.625 500 3],[98.513 7 1],[99.721 4 1],[101.092 50 2],[101.626 2 1],[101.972 500 3],[104.078 4 1],[104.132 1 1],[104.449 1000 3],[104.884 50 2],[105.837 100 3],[105.859 50 3],[106.21 3 1],[107.341 1000 3],[108.75 200 3],[108.935 200 4],[109.692 300 3],[110.324 50 3],[110.819 8 1],[111.934 0 3],[112.068 200 3],[113.279 100 4],[113.929 1000 2],[115.833 1000 2],[115.905 4 1],[116.074 200 4],[116.109 200 2],[116.143 10 1],[116.158 100 2],[116.294 3 1],[117.626 100 4],[118.051 4 1],[118.062 100 2],[118.425 1000 2],[118.992 100 4],[118.999 200 2],[120.406 200 2],[120.572 100 4],[121.052 2000 2],[121.51 100 2],[121.814 100 2],[121.907 9 1],[122.37 13 1],[123.017 100 2],[123.138 100 2],[124.3 11 1],[124.363 500 2],[125.138 2000 4],[125.992 1000 2],[127.631 40 2],[128.381 100 4],[129.086 20 1],[129.436 200 4],[130.22 100 4],[130.597 1000 2],[131.455 1000 3],[131.659 20 1],[132.734 1000 2],[133.47 200 2],[134.605 200 2],[134.765 1000 2],[136.971 200 2],[138.674 1000 2],[140.052 25 1],[141.061 500 2],[143.752 1000 3],[144.977 200 2],[147.515 20 1],[148.922 9 1],[153.29 100 3],[157.036 1000 2],[167.429 50 2],[173.721 10 0],[175.146 15 0],[175.33 10 0],[175.8 7 1],[176.498 20 0],[177.34 20 0],[179.075 30 0],[180.46 80 0],[181.134 15 1],[181.171 500 2],[181.304 30 0],[181.574 40 0],[181.931 25 0],[182.3 120 0],[183.189 9 1],[184.875 50 0],[185.2 30 0],[186.032 200 0],[186.142 20 0],[186.552 20 0],[186.596 30 0],[187.329 15 0],[188.264 30 0],[188.605 80 0],[189.14 100 0],[189.729 20 0],[189.991 12 1],[190.93 50 0],[191.161 40 0],[191.352 20 0],[192.531 80 0],[192.677 20 0],[192.795 15 0],[192.89 40 0],[193.317 25 0],[194.186 500 2],[194.269 20 0],[195.215 150 0],[195.552 50 2],[196.021 15 0],[197.146 30 0],[197.76 50 0],[198.42 80 0],[199.188 15 0],[199.498 20 0],[200.805 25 0],[201.576 30 0],[202.698 30 0],[204.066 50 0],[204.09 20 0],[205.403 50 0],[205.831 70 0],[206.4 20 0],[206.858 80 0],[207.289 100 0],[207.308 100 0],[208.062 25 0],[209.158 30 0],[209.435 40 0],[209.639 200 0],[210.093 100 0],[211.393 100 0],[212.126 50 0],[214.073 25 0],[214.143 20 0],[214.846 15 0],[214.863 1 1],[214.873 40 0],[215.143 20 0],[215.154 30 1],[217.132 80 0],[219.449 150 0],[219.934 300 0],[220.965 400 0],[220.967 4 1],[221.105 40 0],[223.172 80 0],[224.605 400 0],[224.607 6 1],[225.117 60 0],[226.719 30 0],[226.891 400 0],[228.226 20 0],[228.668 200 0],[231.723 600 0],[233.48 300 0],[235.484 1000 0],[235.79 20 0],[236.034 3 1],[236.833 22 1],[238.072 60 0],[238.454 4 1],[240.815 100 0],[242.17 800 0],[242.949 1000 0],[243.352 1 1],[244.898 15 1],[245.524 60 0],[247.64 20 0],[248.339 300 0],[248.348 13 1],[248.699 10 1],[249.57 200 0],[252.261 5 1],[252.392 90 0],[253.117 80 0],[254.655 400 0],[255.801 40 0],[257.158 500 0],[259.442 200 0],[263.694 50 0],[266.124 200 0],[266.493 2 1],[270.651 700 0],[272.782 2 1],[276.178 20 0],[277.981 150 0],[278.503 80 0],[278.796 60 0],[281.259 60 0],[281.358 80 0],[282.552 2 1],[283.999 1400 0],[284.642 1 1],[285.062 200 0],[286.332 1000 0],[291.28 1 1],[291.354 200 0],[291.982 6 1],[299.1 3 1],[299.444 7 1],[300.914 700 0],[301.218 1 1],[302.394 8 1],[303.28 200 0],[303.412 850 0],[304.75 12 1],[309.469 6 1],[314.184 60 0],[317.505 550 0],[321.871 40 0],[326.234 550 0],[328.321 50 1],[333.062 110 0],[335.197 60 1],[340.748 2 1],[347.246 10 1],[353.757 7 1],[357.545 11 1],[358.239 3 1],[362.008 2 1],[362.054 6 1],[365.578 40 0],[371.523 6 1],[380.102 280 0],[384.144 4 1],[429.465 1 1],[452.474 40 0],[457.913 1 1],[458.029 1 1],[487.722 2 1],[494.431 3 1],[497.973 20 0],[507.114 2 1],[507.267 2 1],[517.454 20 0],[533.236 10 1],[556.195 20 1],[558.892 25 1],[559.62 2 1],[563.171 500 0],[575.359 15 0],[579.72 1 1],[579.918 15 1],[592.544 50 0],[597.03 100 0],[603.77 150 0],[605.486 200 -1],[606.9 250 0],[607.346 100 0],[607.748 6 1],[607.97 5 1],[614.971 400 0],[615.46 200 0],[617.15 150 0],[631.078 100 0],[635.435 40 0],[645.35 70 1],[676.145 8 1],[684.405 25 1],[719.14 20 1],[738.779 10 1],[739.86 20 0],[740.862 1 1],[768.53 30 0],[774.18 13 1],[775.497 100 0],[790.4 3 1],[803.05 100 0],[803.93 30 0],[811.409 200 0],[812.1 30 0],[834.935 30 0],[835.704 80 0],[842.272 300 0],[855.26 400 0],[868.17 50 0],[901.895 30 0],[941.086 50 0],[941.537 80 0],[961.64 150 0],[974.11 50 0],[974.28 100 0],[980.538 300 0],[985.052 500 0],[1045.647 25 0],[1080.758 11 0],[1089.4 54 0],[1119.185 70 0],[1127.766 56 0],[1133.697 17 0],[1145.459 200 0],[1161.626 200 0],[1167.077 76 0],[1169.445 25 0],[1173.978 258 0],[1182.518 96 0],[1183.582 106 0],[1193.299 254 0],[1200.95 48 0],[1231.324 111 0],[1233.56 33 0],[1253.087 42 0],[1253.65 42 0],[1278.82 37 0],[1288.85 89 0],[1298.17 187 0],[1300.03 20 0],[1301.85 187 0],[1308.15 68 0],[1346.02 378 0],[1360.82 144 0],[1501.82 13 0],[1546.42 30 0],[1700.05 20 0],[1780.75 10 0],[2062.2199 20 0],[2086.1699 40 0],[2168.6199 8 0],[2213.1699 4 0],[2299.7199 3 0],[2432.7199 4 0],[2473.8199 4 0]}{ALLx2000x1400x70x2000x1000x2000x200}{UVx2000x1400x60x2000x1000x2000x0}{VISx500x500x70x0x0x0x200}{IVx500x500x3x0x0x0x0}% +\pgfspectra@elt@search{#1}{Sn}{[35.514 120 4],[36.101 150 4],[37.255 100 4],[60.523 50 3],[61.904 50 3],[62.873 50 3],[75.301 100 2],[76.062 50 2],[77.579 75 2],[78.468 50 2],[89.992 1 1],[90.822 50 3],[91.092 200 2],[91.74 2 1],[93.563 1 1],[94.583 3 1],[95.45 4 1],[95.625 500 3],[98.513 7 1],[99.721 4 1],[101.092 50 2],[101.626 2 1],[101.972 500 3],[104.078 4 1],[104.132 1 1],[104.449 1000 3],[104.884 50 2],[105.837 100 3],[105.859 50 3],[106.21 3 1],[107.341 1000 3],[108.75 200 3],[108.935 200 4],[109.692 300 3],[110.324 50 3],[110.819 8 1],[111.934 0 3],[112.068 200 3],[113.279 100 4],[113.929 1000 2],[115.833 1000 2],[115.905 4 1],[116.074 200 4],[116.109 200 2],[116.143 10 1],[116.158 100 2],[116.294 3 1],[117.626 100 4],[118.051 4 1],[118.062 100 2],[118.425 1000 2],[118.992 100 4],[118.999 200 2],[120.406 200 2],[120.572 100 4],[121.052 2000 2],[121.51 100 2],[121.814 100 2],[121.907 9 1],[122.37 13 1],[123.017 100 2],[123.138 100 2],[124.3 11 1],[124.363 500 2],[125.138 2000 4],[125.992 1000 2],[127.631 40 2],[128.381 100 4],[129.086 20 1],[129.436 200 4],[130.22 100 4],[130.597 1000 2],[131.455 1000 3],[131.659 20 1],[132.734 1000 2],[133.47 200 2],[134.605 200 2],[134.765 1000 2],[136.971 200 2],[138.674 1000 2],[140.052 25 1],[141.061 500 2],[143.752 1000 3],[144.977 200 2],[147.515 20 1],[148.922 9 1],[153.29 100 3],[157.036 1000 2],[167.429 50 2],[173.721 10 0],[175.146 15 0],[175.33 10 0],[175.8 7 1],[176.498 20 0],[177.34 20 0],[179.075 30 0],[180.46 80 0],[181.134 15 1],[181.171 500 2],[181.304 30 0],[181.574 40 0],[181.931 25 0],[182.3 120 0],[183.189 9 1],[184.875 50 0],[185.2 30 0],[186.032 200 0],[186.142 20 0],[186.552 20 0],[186.596 30 0],[187.329 15 0],[188.264 30 0],[188.605 80 0],[189.14 100 0],[189.729 20 0],[189.991 12 1],[190.93 50 0],[191.161 40 0],[191.352 20 0],[192.531 80 0],[192.677 20 0],[192.795 15 0],[192.89 40 0],[193.317 25 0],[194.186 500 2],[194.269 20 0],[195.215 150 0],[195.552 50 2],[196.021 15 0],[197.146 30 0],[197.76 50 0],[198.42 80 0],[199.188 15 0],[199.498 20 0],[200.805 25 0],[201.576 30 0],[202.698 30 0],[204.066 50 0],[204.09 20 0],[205.403 50 0],[205.831 70 0],[206.4 20 0],[206.858 80 0],[207.289 100 0],[207.308 100 0],[208.062 25 0],[209.158 30 0],[209.435 40 0],[209.639 200 0],[210.093 100 0],[211.393 100 0],[212.126 50 0],[214.073 25 0],[214.143 20 0],[214.846 15 0],[214.863 1 1],[214.873 40 0],[215.143 20 0],[215.154 30 1],[217.132 80 0],[219.449 150 0],[219.934 300 0],[220.965 400 0],[220.967 4 1],[221.105 40 0],[223.172 80 0],[224.605 400 0],[224.607 6 1],[225.117 60 0],[226.719 30 0],[226.891 400 0],[228.226 20 0],[228.668 200 0],[231.723 600 0],[233.48 300 0],[235.484 1000 0],[235.79 20 0],[236.034 3 1],[236.833 22 1],[238.072 60 0],[238.454 4 1],[240.815 100 0],[242.17 800 0],[242.949 1000 0],[243.352 1 1],[244.898 15 1],[245.524 60 0],[247.64 20 0],[248.339 300 0],[248.348 13 1],[248.699 10 1],[249.57 200 0],[252.261 5 1],[252.392 90 0],[253.117 80 0],[254.655 400 0],[255.801 40 0],[257.158 500 0],[259.442 200 0],[263.694 50 0],[266.124 200 0],[266.493 2 1],[270.651 700 0],[272.782 2 1],[276.178 20 0],[277.981 150 0],[278.503 80 0],[278.796 60 0],[281.259 60 0],[281.358 80 0],[282.552 2 1],[283.999 1400 0],[284.642 1 1],[285.062 200 0],[286.332 1000 0],[291.28 1 1],[291.354 200 0],[291.982 6 1],[299.1 3 1],[299.444 7 1],[300.914 700 0],[301.218 1 1],[302.394 8 1],[303.28 200 0],[303.412 850 0],[304.75 12 1],[309.469 6 1],[314.184 60 0],[317.505 550 0],[321.871 40 0],[326.234 550 0],[328.321 50 1],[333.062 110 0],[335.197 60 1],[340.748 2 1],[347.246 10 1],[353.757 7 1],[357.545 11 1],[358.239 3 1],[362.008 2 1],[362.054 6 1],[365.578 40 0],[371.523 6 1],[380.102 280 0],[384.144 4 1],[429.465 1 1],[452.474 40 0],[457.913 1 1],[458.029 1 1],[487.722 2 1],[494.431 3 1],[497.973 20 0],[507.114 2 1],[507.267 2 1],[517.454 20 0],[533.236 10 1],[556.195 20 1],[558.892 25 1],[559.62 2 1],[563.171 500 0],[575.359 15 0],[579.72 1 1],[579.918 15 1],[592.544 50 0],[597.03 100 0],[603.77 150 0],[605.486 200 -1],[606.9 250 0],[607.346 100 0],[607.748 6 1],[607.97 5 1],[614.971 400 0],[615.46 200 0],[617.15 150 0],[631.078 100 0],[635.435 40 0],[645.35 70 1],[676.145 8 1],[684.405 25 1],[719.14 20 1],[738.779 10 1],[739.86 20 0],[740.862 1 1],[768.53 30 0],[774.18 13 1],[775.497 100 0],[790.4 3 1],[803.05 100 0],[803.93 30 0],[811.409 200 0],[812.1 30 0],[834.935 30 0],[835.704 80 0],[842.272 300 0],[855.26 400 0],[868.17 50 0],[901.895 30 0],[941.086 50 0],[941.537 80 0],[961.64 150 0],[974.11 50 0],[974.28 100 0],[980.538 300 0],[985.052 500 0],[1045.647 25 0],[1080.758 11 0],[1089.4 54 0],[1119.185 70 0],[1127.766 56 0],[1133.697 17 0],[1145.459 200 0],[1161.626 200 0],[1167.077 76 0],[1169.445 25 0],[1173.978 258 0],[1182.518 96 0],[1183.582 106 0],[1193.299 254 0],[1200.95 48 0],[1231.324 111 0],[1233.56 33 0],[1253.087 42 0],[1253.65 42 0],[1278.82 37 0],[1288.85 89 0],[1298.17 187 0],[1300.03 20 0],[1301.85 187 0],[1308.15 68 0],[1346.02 378 0],[1360.82 144 0],[1501.82 13 0],[1546.42 30 0],[1700.05 20 0],[1780.75 10 0],[2062.2199 20 0],[2086.1699 40 0],[2168.6199 8 0],[2213.1699 4 0],[2299.7199 3 0],[2432.7199 4 0],[2473.8199 4 0]}{ALLx2000x1400x70x2000x1000x2000x200}{UVx2000x1400x60x2000x1000x2000x0}{VISx500x500x70x0x0x0x200}{IVx500x500x3x0x0x0x0}%[1.6 7 1], \pgfspectra@elt@search{#1}{Sb}{[69.118 10 2],[69.12 1 1],[69.869 10 2],[69.922 3 4],[72.286 15 2],[72.481 8 2],[73.233 15 2],[74.606 1 4],[76.443 1 1],[81.485 1 1],[83.1 6 4],[84.939 1 1],[85.508 2 1],[87.684 4 1],[89.802 1 4],[92.107 4 1],[98.357 6 1],[99.962 15 2],[100.113 6 1],[100.943 6 1],[101.194 40 2],[105.221 6 1],[105.627 8 1],[105.658 10 2],[105.732 8 1],[106.59 40 2],[106.993 20 2],[107.043 20 2],[107.376 5 2],[107.381 6 1],[107.582 30 2],[107.81 5 2],[108.406 20 2],[109.834 10 2],[110.432 8 4],[113.543 10 2],[115.149 30 2],[115.774 40 2],[116.696 12 2],[120.52 50 2],[121.064 50 2],[122.6 12 4],[123.03 6 1],[127.498 8 1],[130.669 20 2],[132.74 8 1],[135.804 6 1],[137.958 8 2],[138.47 8 1],[140.418 20 2],[140.783 6 1],[142.957 10 2],[143.076 10 0],[143.649 8 1],[146.419 10 0],[148.657 20 0],[149.136 40 0],[150.57 12 4],[151.257 50 0],[152.447 12 4],[153.274 120 0],[153.506 80 0],[156.551 6 1],[157.611 8 1],[158.136 7 1],[159.996 80 0],[160.698 10 1],[161.28 200 0],[162.33 100 0],[165.12 50 0],[165.704 20 1],[166.26 100 0],[167.389 15 2],[169.885 50 0],[171.023 3 2],[171.184 15 2],[171.693 80 0],[171.745 150 0],[172.343 150 0],[172.533 15 2],[173.619 100 0],[173.643 8 1],[175.779 50 0],[176.23 12 2],[176.576 100 0],[178.087 100 0],[178.824 100 0],[180.018 150 0],[181.05 50 0],[181.42 80 0],[182.95 100 0],[183.932 12 2],[185.889 60 0],[186.817 50 0],[187.115 300 0],[188.256 150 0],[189.128 70 0],[189.939 70 0],[192.708 100 0],[194.613 10 2],[195.039 200 0],[196.43 80 0],[198.605 60 0],[199.06 6 1],[202.4 50 0],[202.949 60 0],[203.977 70 0],[204.957 150 0],[205.41 3 2],[206.343 50 0],[206.833 1000 0],[207.956 100 0],[209.185 2 2],[209.841 50 0],[211.848 80 0],[212.7 5 2],[212.739 100 0],[213.705 50 0],[213.969 100 0],[214.18 10 1],[214.183 50 0],[214.486 100 0],[215.891 50 0],[217.581 1500 0],[217.919 250 0],[217.925 6 1],[220.132 200 0],[220.845 300 0],[220.85 6 1],[222.073 150 0],[222.198 100 0],[222.493 120 0],[222.515 6 1],[226.251 300 0],[228.898 120 0],[229.344 150 0],[230.646 300 0],[231.147 2500 0],[231.589 150 0],[237.367 400 0],[238.364 300 0],[239.522 100 0],[242.213 150 0],[242.635 250 0],[244.551 400 0],[247.832 400 0],[248.044 150 0],[248.046 8 1],[250.771 5 2],[251.054 100 0],[252.852 2000 0],[252.854 15 1],[256.775 10 1],[257.406 150 0],[259.013 15 2],[259.805 1500 0],[259.809 500 0],[261.231 300 0],[261.42 1 2],[261.717 12 2],[261.763 1 2],[265.26 200 0],[265.655 12 1],[266.939 20 2],[267.064 300 0],[268.276 200 0],[269.225 120 0],[271.89 150 0],[276.995 400 0],[278.587 5 2],[279.027 20 2],[285.109 12 1],[285.111 100 0],[287.792 1000 0],[296.61 12 1],[298.096 15 1],[302.983 500 0],[303.401 12 1],[304.067 12 1],[323.252 600 0],[324.128 20 1],[326.751 700 0],[333.661 20 2],[338.309 12 1],[338.315 100 0],[349.846 15 1],[350.407 50 2],[351.906 15 2],[352.047 12 1],[353.345 15 2],[355.918 40 2],[356.625 40 2],[363.78 25 1],[363.783 250 0],[372.278 20 1],[372.279 200 0],[373.89 30 2],[385.022 20 1],[403.355 200 0],[403.356 20 1],[413.363 20 1],[414.054 15 1],[419.517 15 1],[421.907 20 1],[426.509 40 2],[431.432 20 1],[434.483 12 1],[435.216 50 2],[441.142 12 1],[444.648 12 1],[450.692 12 1],[451.45 15 1],[459.189 30 2],[459.69 30 1],[459.909 20 1],[460.477 15 1],[464.732 30 1],[467.574 20 1],[469.291 30 2],[471.126 40 1],[473.544 12 1],[475.781 20 1],[476.536 20 1],[476.691 12 1],[478.403 30 1],[480.201 20 1],[483.282 20 1],[487.724 20 1],[494.74 15 1],[504.456 15 1],[516.632 12 1],[517.655 15 1],[523.894 20 1],[524.771 1 2],[535.424 20 1],[546.408 15 1],[549.032 30 0],[555.61 40 0],[556.813 15 1],[560.219 30 0],[563.202 100 0],[563.975 30 1],[569.08 1 2],[571.73 1 2],[583.034 60 0],[584.55 3 2],[589.509 15 1],[600.521 100 1],[605.341 20 1],[607.98 30 1],[613.004 50 1],[615.494 20 1],[624.67 5 2],[628.76 3 2],[630.276 12 1],[661.149 20 0],[664.744 30 1],[668.801 15 1],[680.667 6 1],[764.828 30 0],[784.444 80 0],[792.465 200 0],[796.955 40 0],[841.169 60 0],[857.264 150 0],[861.955 100 0],[868.27 30 0],[913.221 30 0],[951.868 400 0],[986.678 30 0],[994.914 400 0],[1007.849 200 0],[1026.101 300 0],[1036.433 50 0],[1048.83 50 0],[1058.56 200 0],[1067.741 1000 0],[1074.194 800 0],[1079.411 80 0],[1083.973 600 0],[1086.858 200 0],[1087.955 400 0],[1101.279 300 0],[1107.995 40 0],[1108.498 30 0],[1110.484 50 0],[1110.852 50 0],[1118.961 30 0],[1126.623 150 0],[1186.337 30 0],[1195.77 1 0],[1211.606 5 0],[1227.66 2 0],[1246.675 2 0]}{ALLx2500x2500x100x50x0x12x0}{UVx2500x2500x25x50x0x12x0}{VISx200x200x100x50x0x0x0}{IVx1000x1000x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Te}{[79.96 3 1],[80.228 4 1],[94.262 3 1],[100.373 3 1],[100.78 3 1],[101.427 2.5 1],[102.279 2.5 1],[105.7 3 1],[105.951 4 1],[106.886 3 1],[107.766 4 1],[109.011 3 1],[114.404 3 1],[115.31 2.5 1],[116.142 5 1],[117.434 5 1],[117.579 6 1],[120.854 4.5 1],[121.3 2.5 1],[122.098 4.5 1],[125.362 4.5 1],[127.052 4.5 1],[127.476 3.5 1],[130.653 4 1],[132.492 5 1],[133.642 3.5 1],[134.52 3.5 1],[136.324 4.5 1],[136.673 4 1],[137.48 5 1],[139.522 3 1],[143.952 3 1],[146.525 3 1],[148.956 3.5 1],[160.799 4 1],[160.841 5 1],[161.315 5 1],[163.891 3 1],[165.54 2.5 0],[168.85 2.5 0],[170 3 0],[170.158 3 1],[170.8 2.5 0],[175.1 3 0],[175.94 2.5 0],[177.5 2.5 0],[179.57 3 0],[179.63 3 0],[182.24 5 0],[182.55 3 0],[185.06 3 0],[185.21 3 0],[185.38 3 0],[185.72 4 0],[186.04 3 0],[196.288 1.5 1],[199.483 3.5 0],[200.02 3 0],[200.202 13000 0],[207.09 4 0],[208.116 3250 0],[214.281 9000 0],[214.725 1600 0],[215.985 180 0],[220.874 4.5 0],[225.549 5 0],[225.902 250 0],[226.552 5 0],[237.306 10 1],[238.326 600 0],[238.578 750 0],[238.782 10 1],[240.163 5 1],[243.647 5 1],[243.869 25 1],[253.072 60 0],[256.782 10 1],[257.496 5 1],[257.61 2.5 1],[257.924 3.5 1],[259.112 5 1],[259.285 5 1],[260.572 5 1],[262.192 2.5 1],[262.486 5 1],[262.796 10 1],[264.189 10 1],[264.848 10 1],[264.966 50 1],[265.77 20 1],[266.11 40 1],[267.713 55 0],[271.158 10 1],[276.965 3 0],[284.117 5 1],[284.615 5 1],[285.829 50 1],[286.1 10 1],[286.882 20 1],[289.541 75 1],[291.989 15 1],[294.211 25 1],[294.668 25 1],[296.729 35 1],[297.367 10 1],[297.59 25 1],[299.704 7.5 1],[301.202 7.5 1],[301.758 25 1],[302.331 10 1],[304.7 35 1],[305.246 10 1],[306.316 5 1],[307.356 7.5 1],[310.444 4 1],[313.258 5 1],[316.066 10 1],[317.514 50 0],[318.983 5 1],[321.121 2.5 1],[325.68 30 1],[326.877 15 1],[328.263 15 1],[332.192 20 1],[332.311 20 1],[332.922 30 1],[335.21 30 1],[336.279 30 1],[337.41 12.5 1],[340.679 75 1],[341.963 10 1],[344.225 25 1],[345.512 20 1],[345.688 10 1],[348.032 10 1],[348.367 20 1],[348.611 10 1],[352.111 25 1],[355.219 25 1],[361.178 50 1],[361.757 25 1],[364.446 20 1],[367.926 10 1],[372.566 15 1],[379.722 20 1],[380.092 10 1],[390.567 10 1],[391.854 10 1],[393.149 15 1],[394.798 10 1],[396.922 20 1],[397.594 12.5 1],[398.177 10 1],[400.652 25 1],[401.169 10 1],[402.973 15 1],[404.717 20 1],[404.888 15 1],[407.348 7.5 1],[410.104 15 1],[412.732 35 1],[416.355 15 1],[416.977 50 1],[417.929 15 1],[421.131 12.5 1],[422.573 40 1],[424.647 15 1],[425.115 10 1],[426.111 50 1],[426.436 15 1],[427.343 30 1],[428.585 40 1],[432.09 20 1],[436.128 15 1],[436.4 75 1],[437.712 15 1],[438.51 37.5 1],[439.6 30 1],[447.863 85 1],[453.707 40 1],[455.778 50 1],[463.062 35 1],[464.112 50 1],[465.437 90 1],[468.691 100 1],[469.638 50 1],[470.653 50 1],[476.605 50 1],[477.156 35 1],[478.487 50 1],[482.714 50 1],[483.128 75 1],[484.29 75 1],[486.512 65 1],[486.624 100 1],[488.522 40 1],[490.444 40 1],[496.188 30 1],[500.082 30 1],[508.3 4 0],[514.87 3.5 0],[544.984 25 1],[548.795 25 1],[557.635 75 1],[564.926 75 1],[566.62 50 1],[570.812 100 1],[573.35 3.5 0],[575.585 75 1],[578.91 4 0],[593.615 25 1],[597.468 50 1],[627.35 4 0],[634.97 4 0],[636.713 25 1],[640.59 4 0],[645.67 3.5 0],[661.34 4 0],[664.858 5 1],[666.02 4 0],[669 4 0],[679 5 0],[683.76 10 0],[685.47 10 0],[701.606 5 1],[703.913 5 1],[719.11 7.5 0],[723.662 5 1],[726.35 10 0],[728.09 4 0],[728.926 5 1],[744.539 5 1],[746.098 6 1],[746.875 7.5 1],[748.126 5 1],[755.68 5 0],[768.861 3 1],[775.91 7.5 0],[781.879 4 1],[786.161 4 1],[792.169 7.5 1],[794.314 7.5 1],[795.034 5 1],[797.29 10 0],[805.615 3 1],[806.14 15 0],[808.25 5 0],[812.244 5 1],[813.039 4 1],[815.447 4 1],[818.644 10 1],[819.094 3 1],[825.15 5 0],[827.353 7.5 1],[827.66 5 0],[829.11 5 0],[835.58 7.5 0],[837.212 5 1],[846.98 3.5 0],[849.22 4 0],[850.08 4 0],[852.14 6 0],[853.568 5 1],[857.578 6 1],[860.463 5 1],[862.168 4 1],[863.21 3.5 0],[867.295 7.5 1],[870.109 6 0],[873.381 5 1],[875.818 102.5 0],[883.152 6 0],[885.115 9 0],[889.792 3 1],[900.437 40.5 0],[904.339 9 0],[919.68 6 0],[920.678 7.5 0],[920.764 8.5 0],[946.9 6 0],[972.274 2830 0],[978.554 92.5 0],[984.23 54.5 0],[986.892 266 0],[990.261 59 0],[995.63 344.5 0],[995.993 18.5 0],[997.713 162.5 0],[997.931 68 0],[998.585 22.5 0],[1005.141 2975 0],[1009.101 2048.5 0],[1009.957 52 0],[1010.605 139.5 0],[1011.808 190.5 0],[1015.106 148 0],[1030.056 198.5 0],[1032.305 102.5 0],[1049.357 372.5 0],[1050.986 98.5 0],[1091.834 940 0],[1100.78 149 0],[1108.956 5100 0],[1116.374 254 0],[1148.723 3310 0],[1197.896 140 0],[1256.624 94 0],[1258.919 194.5 0],[1280.55 80.5 0],[1310.418 200 0],[1324.775 790 0],[1331.663 241.5 0],[1403.709 108.5 0],[1407.253 72 0],[1433.574 217 0],[1441.746 110 0],[1451.351 525 0],[1455.468 64.5 0],[1545.245 740 0],[1554.623 1215 0],[1640.39 1880 0],[1730.3539 980 0],[1829.159 1390 0],[1877.7301 197 0],[1962.352 134.5 0],[2014.7539 119.5 0],[2104.373 510 0],[2160.25 232 0],[2179.9641 18.5 0],[2255.5289 37 0],[2275.566 24 0],[2329.4939 13.5 0],[2397.8699 8.5 0],[2405.9039 12.5 0],[2642.8619 6.5 0],[2653.917 19 0],[2655.374 7.5 0],[2717.926 3.5 0]}{ALLx13000x13000x100x0x0x0x0}{UVx13000x13000x75x0x0x0x0}{VISx100x10x100x0x0x0x0}{IVx5100x5100x10x0x0x0x0}% -\pgfspectra@elt@search{#1}{I}{[36.378 3 4],[38.074 3.6 4],[56.553 4.5 4],[60.186 0.5 3],[60.757 5 4],[61.246 0.6 3],[61.517 0.4 3],[65.422 0.4 3],[65.456 0.4 3],[65.58 0.2 1],[65.9 0.6 1],[66.398 0.8 1],[66.452 0.8 1],[66.506 0.8 1],[66.57 15 1],[66.681 0.6 2],[70.511 0.8 2],[71.955 100 1],[72.298 100 1],[78.464 0.7 2],[78.48 0.7 2],[79.552 0.8 2],[79.816 100 1],[83.41 120 1],[84.78 60 1],[86.597 0.5 2],[87.349 150 1],[87.594 100 1],[87.984 200 1],[88.188 150 1],[89.1 100 1],[89.317 100 1],[91.928 0.7 3],[92.038 0.5 2],[96.117 0.6 2],[100.057 120 1],[100.335 100 1],[101.858 400 1],[103.466 1000 1],[105.474 150 1],[106.634 200 1],[107.521 300 1],[107.858 0.6 2],[109.42 0.8 2],[110.5 500 1],[111.116 250 1],[111.722 150 1],[112.525 350 1],[113.15 200 1],[113.975 120 1],[113.98 1000 1],[115.467 150 1],[115.987 100 1],[116.056 1000 1],[116.648 2000 1],[116.705 150 1],[117.584 500 1],[117.865 1000 1],[118.734 1500 1],[119.085 1000 1],[119.529 1.5 0],[119.888 500 1],[120.022 700 1],[121.841 20 0],[122.089 2000 1],[122.405 60 0],[122.408 60 0],[122.889 50 0],[123.406 2000 1],[124.466 0.4 2],[125.134 60 0],[125.235 0.8 2],[125.915 250 0],[125.951 300 0],[126.127 80 0],[126.757 60 0],[126.76 60 0],[127.526 150 0],[128.94 300 0],[130.034 1000 0],[130.298 300 0],[130.693 0.5 2],[131.395 300 0],[131.754 300 0],[133.019 200 0],[133.652 2000 1],[135.51 500 0],[135.797 300 0],[136.097 500 0],[136.111 300 0],[136.771 250 0],[136.822 250 0],[138.323 400 0],[139.075 300 0],[139.29 200 0],[140.001 200 0],[142.549 800 0],[144.626 500 0],[145.318 500 0],[145.739 500 0],[145.747 500 0],[145.798 1000 0],[145.879 250 0],[145.915 400 0],[146.583 250 0],[148.592 100 0],[149.289 500 0],[150.704 500 0],[151.468 500 0],[151.805 1500 0],[152.645 250 0],[159.358 500 0],[161.76 500 0],[164.078 250 0],[170.207 1500 0],[178.276 1200 0],[179.909 500 0],[183.038 7500 0],[184.445 1500 0],[206.163 200 0],[222.443 0.1 2],[223.812 0.1 2],[224.93 0.5 3],[224.931 0.3 2],[230.938 0.2 2],[234.084 0.4 3],[234.085 0.3 2],[235.043 0.3 2],[235.346 0.2 2],[236.113 0.7 3],[236.774 0.4 2],[236.775 0.5 3],[237.145 0.2 2],[237.245 0.3 2],[237.245 0.6 3],[237.646 0.7 3],[237.647 0.4 2],[238.528 0.4 3],[238.711 0.8 3],[238.712 0.4 2],[239.2 0.6 3],[239.201 0.3 2],[240.305 0.4 3],[240.306 0.2 2],[240.363 0.2 2],[240.801 10 1],[241.485 0.2 2],[241.845 0.2 3],[241.849 0.2 2],[241.885 0.2 2],[241.918 10 1],[242.389 0.3 3],[242.391 0.2 2],[242.61 0.9 3],[242.612 0.5 2],[243.485 0.6 3],[243.488 0.3 2],[246.25 0.2 2],[246.668 0.3 3],[246.669 0.3 2],[246.696 0.3 3],[246.699 0.3 2],[247.535 0.8 3],[247.536 0.6 2],[248.551 0.4 3],[248.924 0.5 3],[248.927 0.4 2],[249.32 0.4 3],[249.321 0.2 2],[249.427 0.2 2],[249.474 10 1],[249.516 0.3 2],[249.607 0.2 2],[250.138 0.2 3],[250.141 0.3 2],[251.374 0.3 3],[251.682 0.2 2],[251.974 0.8 3],[251.975 0.6 2],[252.172 0.4 2],[252.172 0.6 3],[253.198 0.4 3],[253.199 0.3 2],[253.36 10 1],[253.427 20 1],[253.754 0.5 3],[253.756 0.2 2],[254.567 0.8 3],[254.571 0.7 2],[256.624 100 1],[258.279 200 1],[259.346 30 1],[264.077 0.4 2],[264.077 0.4 3],[264.211 0.4 2],[264.211 0.5 3],[265.223 0.8 3],[265.225 0.6 2],[268.898 20 1],[273.012 50 1],[276.515 2 1],[280.859 20 1],[281.845 0.3 3],[281.848 0.2 2],[283.944 0.2 2],[286.467 0.4 2],[286.468 0.6 3],[287.863 150 1],[288.515 0.4 2],[291.097 0.4 3],[291.098 0.3 2],[291.733 0.5 3],[291.735 0.3 2],[293.111 0.2 2],[299.387 100 1],[300.568 0.2 2],[306.917 0.4 3],[306.923 0.3 2],[307.875 500 1],[315.388 0.3 2],[316.103 20 1],[317.011 0.4 3],[317.014 0.3 2],[317.507 100 1],[318.164 0.4 3],[318.166 0.3 2],[321.012 0.4 3],[321.014 0.3 2],[321.348 0.6 3],[321.349 0.4 2],[322.49 0.6 3],[322.493 0.4 2],[330.047 0.2 2],[335.553 30 1],[342.499 25 1],[347.953 0.2 2],[349.741 30 1],[352.69 50 1],[354.69 0.4 3],[354.692 0.3 2],[361.381 0.3 2],[374.214 20 1],[375.44 0.2 2],[375.455 0.2 2],[396.316 0.3 2],[407.714 0.3 2],[410.223 20 0],[412.921 20 0],[413.415 10 0],[432.184 50 0],[445.286 30 1],[459.977 20 1],[463.245 30 1],[466.648 50 1],[467.553 100 1],[476.331 25 0],[486.232 100 0],[491.694 20 0],[498.692 100 1],[506.537 40 1],[511.929 1000 0],[514.973 20 1],[516.12 300 1],[517.619 30 1],[521.627 60 1],[522.897 50 1],[523.457 100 0],[524.571 300 1],[526.936 50 1],[529.978 40 1],[532.28 40 1],[533.822 1000 1],[534.515 500 1],[536.986 100 1],[540.542 80 1],[540.736 80 1],[542.706 60 0],[543.583 300 1],[543.8 100 1],[546.462 200 1],[549.15 80 1],[549.694 100 1],[550.472 100 1],[552.206 60 1],[559.852 60 1],[560.032 100 1],[561.289 150 1],[562.569 1000 1],[567.808 100 1],[569.091 200 1],[570.205 50 1],[571.053 400 1],[573.827 100 1],[576.072 100 1],[576.433 100 0],[577.483 50 1],[578.702 50 1],[589.403 200 0],[595.025 500 1],[598.486 30 0],[602.408 200 0],[606.893 50 1],[607.498 200 1],[608.243 100 0],[612.749 200 1],[619.188 80 0],[620.486 100 1],[621.31 50 0],[624.448 80 0],[625.749 90 1],[629.398 100 0],[631.313 50 0],[633.037 80 0],[633.35 40 0],[633.785 200 0],[633.944 100 0],[635.916 50 0],[656.649 100 0],[658.375 200 0],[658.527 100 0],[661.966 500 0],[666.111 50 0],[666.596 60 1],[669.729 50 0],[671.883 30 1],[673.203 40 0],[681.257 400 1],[695.878 100 1],[698.978 50 0],[708.521 20 1],[712.005 50 0],[712.205 120 0],[714.206 200 0],[716.479 100 0],[719.166 40 0],[722.73 70 0],[723.678 100 0],[723.784 50 0],[735.135 50 1],[740.206 500 0],[741.05 100 0],[741.648 50 0],[746.899 500 0],[749.052 50 0],[755.418 200 0],[755.665 50 0],[770.02 200 0],[779.898 50 1],[789.798 60 0],[796.948 50 0],[800.363 100 0],[804.374 9900 0],[806.57 30 0],[809.076 100 0],[816.938 80 0],[822.257 50 0],[824.005 400 0],[839.33 1000 0],[841.46 15 1],[848.611 100 0],[866.495 150 0],[870.08 50 0],[874.822 25 0],[885.324 100 0],[885.38 200 0],[885.75 300 0],[889.85 100 0],[896.469 40 0],[899.313 40 0],[902.24 500 0],[905.833 1500 0],[909.886 100 0],[911.391 1200 0],[912.803 60 0],[919.53 3 1],[922.774 60 0],[933.505 100 0],[942.671 400 0],[942.715 300 0],[948.033 1 1],[959.822 200 0],[964.961 200 0],[965.306 300 0],[973.173 500 0],[1000.305 50 0],[1013.116 75 0],[1023.882 100 0],[1037.52 40 0],[1039.174 40 0],[1040.549 0.6 1],[1046.654 500 0],[1108.468 0.1 1],[1123.656 40 0],[1155.846 35 0],[1177.834 32 0],[1199.686 45 0],[1203.369 30 0],[1230.458 15 0],[1314.916 6 0],[1395.827 14 0],[1428.702 20 0],[1446 10 0],[1503.257 22.5 0],[1552.865 10.5 0],[1603.733 15 0],[1827.5711 1.5 0],[1834.852 2 0],[1898.241 1.5 0],[1907.017 3.5 0],[1910.5119 11 0],[1937.002 5 0],[2064.8689 1 0],[2218.3029 22 0],[2222.6529 15 0],[2230.9211 3 0],[2442.082 3.2 0],[2736.542 1.2 0],[2757.3051 0.9 0],[3036.193 1 0],[3038.3881 0.8 0],[3429.573 1 0],[3451.3109 0.9 0],[4022.8539 0.3 0],[4163.3801 0.2 0]}{ALLx9900x9900x2000x0.8x0.9x5x0}{UVx7500x7500x2000x0.8x0.9x5x0}{VISx1000x1000x1000x0.3x0x0x0}{IVx9900x9900x15x0x0x0x0}% +\pgfspectra@elt@search{#1}{I}{[36.378 3 4],[38.074 3.6 4],[56.553 4.5 4],[60.186 0.5 3],[60.757 5 4],[61.246 0.6 3],[61.517 0.4 3],[65.422 0.4 3],[65.456 0.4 3],[65.58 0.2 1],[65.9 0.6 1],[66.398 0.8 1],[66.452 0.8 1],[66.506 0.8 1],[66.57 15 1],[66.681 0.6 2],[70.511 0.8 2],[71.955 100 1],[72.298 100 1],[78.464 0.7 2],[78.48 0.7 2],[79.552 0.8 2],[79.816 100 1],[83.41 120 1],[84.78 60 1],[86.597 0.5 2],[87.349 150 1],[87.594 100 1],[87.984 200 1],[88.188 150 1],[89.1 100 1],[89.317 100 1],[91.928 0.7 3],[92.038 0.5 2],[96.117 0.6 2],[100.057 120 1],[100.335 100 1],[101.858 400 1],[103.466 1000 1],[105.474 150 1],[106.634 200 1],[107.521 300 1],[107.858 0.6 2],[109.42 0.8 2],[110.5 500 1],[111.116 250 1],[111.722 150 1],[112.525 350 1],[113.15 200 1],[113.975 120 1],[113.98 1000 1],[115.467 150 1],[115.987 100 1],[116.056 1000 1],[116.648 2000 1],[116.705 150 1],[117.584 500 1],[117.865 1000 1],[118.734 1500 1],[119.085 1000 1],[119.529 1.5 0],[119.888 500 1],[120.022 700 1],[121.841 20 0],[122.089 2000 1],[122.405 60 0],[122.408 60 0],[122.889 50 0],[123.406 2000 1],[124.466 0.4 2],[125.134 60 0],[125.235 0.8 2],[125.915 250 0],[125.951 300 0],[126.127 80 0],[126.757 60 0],[126.76 60 0],[127.526 150 0],[128.94 300 0],[130.034 1000 0],[130.298 300 0],[130.693 0.5 2],[131.395 300 0],[131.754 300 0],[133.019 200 0],[133.652 2000 1],[135.51 500 0],[135.797 300 0],[136.097 500 0],[136.111 300 0],[136.771 250 0],[136.822 250 0],[138.323 400 0],[139.075 300 0],[139.29 200 0],[140.001 200 0],[142.549 800 0],[144.626 500 0],[145.318 500 0],[145.739 500 0],[145.747 500 0],[145.798 1000 0],[145.879 250 0],[145.915 400 0],[146.583 250 0],[148.592 100 0],[149.289 500 0],[150.704 500 0],[151.468 500 0],[151.805 1500 0],[152.645 250 0],[159.358 500 0],[161.76 500 0],[164.078 250 0],[170.207 1500 0],[178.276 1200 0],[179.909 500 0],[183.038 7500 0],[184.445 1500 0],[206.163 200 0],[222.443 0.1 2],[223.812 0.1 2],[224.93 0.5 3],[224.931 0.3 2],[230.938 0.2 2],[234.084 0.4 3],[234.085 0.3 2],[235.043 0.3 2],[235.346 0.2 2],[236.113 0.7 3],[236.774 0.4 2],[236.775 0.5 3],[237.145 0.2 2],[237.245 0.3 2],[237.245 0.6 3],[237.646 0.7 3],[237.647 0.4 2],[238.528 0.4 3],[238.711 0.8 3],[238.712 0.4 2],[239.2 0.6 3],[239.201 0.3 2],[240.305 0.4 3],[240.306 0.2 2],[240.363 0.2 2],[240.801 10 1],[241.485 0.2 2],[241.845 0.2 3],[241.849 0.2 2],[241.885 0.2 2],[241.918 10 1],[242.389 0.3 3],[242.391 0.2 2],[242.61 0.9 3],[242.612 0.5 2],[243.485 0.6 3],[243.488 0.3 2],[246.25 0.2 2],[246.668 0.3 3],[246.669 0.3 2],[246.696 0.3 3],[246.699 0.3 2],[247.535 0.8 3],[247.536 0.6 2],[248.551 0.4 3],[248.924 0.5 3],[248.927 0.4 2],[249.32 0.4 3],[249.321 0.2 2],[249.427 0.2 2],[249.474 10 1],[249.516 0.3 2],[249.607 0.2 2],[250.138 0.2 3],[250.141 0.3 2],[251.374 0.3 3],[251.682 0.2 2],[251.974 0.8 3],[251.975 0.6 2],[252.172 0.4 2],[252.172 0.6 3],[253.198 0.4 3],[253.199 0.3 2],[253.36 10 1],[253.427 20 1],[253.754 0.5 3],[253.756 0.2 2],[254.567 0.8 3],[254.571 0.7 2],[256.624 100 1],[258.279 200 1],[259.346 30 1],[264.077 0.4 2],[264.077 0.4 3],[264.211 0.4 2],[264.211 0.5 3],[265.223 0.8 3],[265.225 0.6 2],[268.898 20 1],[273.012 50 1],[276.515 2 1],[280.859 20 1],[281.845 0.3 3],[281.848 0.2 2],[283.944 0.2 2],[286.467 0.4 2],[286.468 0.6 3],[287.863 150 1],[288.515 0.4 2],[291.097 0.4 3],[291.098 0.3 2],[291.733 0.5 3],[291.735 0.3 2],[293.111 0.2 2],[299.387 100 1],[300.568 0.2 2],[306.917 0.4 3],[306.923 0.3 2],[307.875 500 1],[315.388 0.3 2],[316.103 20 1],[317.011 0.4 3],[317.014 0.3 2],[317.507 100 1],[318.164 0.4 3],[318.166 0.3 2],[321.012 0.4 3],[321.014 0.3 2],[321.348 0.6 3],[321.349 0.4 2],[322.49 0.6 3],[322.493 0.4 2],[330.047 0.2 2],[335.553 30 1],[342.499 25 1],[347.953 0.2 2],[349.741 30 1],[352.69 50 1],[354.69 0.4 3],[354.692 0.3 2],[361.381 0.3 2],[374.214 20 1],[375.44 0.2 2],[375.455 0.2 2],[396.316 0.3 2],[407.714 0.3 2],[410.223 20 0],[412.921 20 0],[413.415 10 0],[432.184 50 0],[445.286 30 1],[459.977 20 1],[463.245 30 1],[466.648 50 1],[467.553 100 1],[476.331 25 0],[486.232 100 0],[491.694 20 0],[498.692 100 1],[506.537 40 1],[511.929 1000 0],[514.973 20 1],[516.12 300 1],[517.619 30 1],[521.627 60 1],[522.897 50 1],[523.457 100 0],[524.571 300 1],[526.936 50 1],[529.978 40 1],[532.28 40 1],[533.822 1000 1],[534.515 500 1],[536.986 100 1],[540.542 80 1],[540.736 80 1],[542.706 60 0],[543.583 300 1],[543.8 100 1],[546.462 200 1],[549.15 80 1],[549.694 100 1],[550.472 100 1],[552.206 60 1],[559.852 60 1],[560.032 100 1],[561.289 150 1],[562.569 1000 1],[567.808 100 1],[569.091 200 1],[570.205 50 1],[571.053 400 1],[573.827 100 1],[576.072 100 1],[576.433 100 0],[577.483 50 1],[578.702 50 1],[589.403 200 0],[595.025 500 1],[598.486 30 0],[602.408 200 0],[606.893 50 1],[607.498 200 1],[608.243 100 0],[612.749 200 1],[619.188 80 0],[620.486 100 1],[621.31 50 0],[624.448 80 0],[625.749 90 1],[629.398 100 0],[631.313 50 0],[633.037 80 0],[633.35 40 0],[633.785 200 0],[633.944 100 0],[635.916 50 0],[656.649 100 0],[658.375 200 0],[658.527 100 0],[661.966 500 0],[666.111 50 0],[666.596 60 1],[669.729 50 0],[671.883 30 1],[673.203 40 0],[681.257 400 1],[695.878 100 1],[698.978 50 0],[708.521 20 1],[712.005 50 0],[712.205 120 0],[714.206 200 0],[716.479 100 0],[719.166 40 0],[722.73 70 0],[723.678 100 0],[723.784 50 0],[735.135 50 1],[740.206 500 0],[741.05 100 0],[741.648 50 0],[746.899 500 0],[749.052 50 0],[755.418 200 0],[755.665 50 0],[770.02 200 0],[779.898 50 1],[789.798 60 0],[796.948 50 0],[800.363 100 0],[804.374 9900 0],[806.57 30 0],[809.076 100 0],[816.938 80 0],[822.257 50 0],[824.005 400 0],[839.33 1000 0],[841.46 15 1],[848.611 100 0],[866.495 150 0],[870.08 50 0],[874.822 25 0],[885.324 100 0],[885.38 200 0],[885.75 300 0],[889.85 100 0],[896.469 40 0],[899.313 40 0],[902.24 500 0],[905.833 1500 0],[909.886 100 0],[911.391 1200 0],[912.803 60 0],[919.53 3 1],[922.774 60 0],[933.505 100 0],[942.671 400 0],[942.715 300 0],[948.033 1 1],[959.822 200 0],[964.961 200 0],[965.306 300 0],[973.173 500 0],[1000.305 50 0],[1013.116 75 0],[1023.882 100 0],[1037.52 40 0],[1039.174 40 0],[1040.549 0.6 1],[1046.654 500 0],[1108.468 0.1 1],[1123.656 40 0],[1155.846 35 0],[1177.834 32 0],[1199.686 45 0],[1203.369 30 0],[1230.458 15 0],[1314.916 6 0],[1395.827 14 0],[1428.702 20 0],[1446 10 0],[1503.257 22.5 0],[1552.865 10.5 0],[1603.733 15 0],[1827.5711 1.5 0],[1834.852 2 0],[1898.241 1.5 0],[1907.017 3.5 0],[1910.5119 11 0],[1937.002 5 0],[2064.8689 1 0],[2218.3029 22 0],[2222.6529 15 0],[2230.9211 3 0],[2442.082 3.2 0],[2736.542 1.2 0],[2757.3051 0.9 0],[3036.193 1 0],[3038.3881 0.8 0],[3429.573 1 0],[3451.3109 0.9 0]}{ALLx9900x9900x2000x0.8x0.9x5x0}{UVx7500x7500x2000x0.8x0.9x5x0}{VISx1000x1000x1000x0.3x0x0x0}{IVx9900x9900x15x0x0x0x0}%,[4022.8539 0.3 0],[4163.3801 0.2 0] \pgfspectra@elt@search{#1}{Xe}{[65.78 8 2],[66.01 8 2],[67.38 9 2],[67.4 9 2],[67.66 9 2],[69.4 10 2],[69.85 20 2],[70.51 12 2],[72.12 10 2],[73.1 15 2],[73.33 10 2],[74.041 350 1],[74.26 15 2],[75.6 10 2],[76.15 10 2],[76.91 10 2],[77.91 25 2],[79.29 15 2],[79.61 12 2],[80.2 15 2],[80.307 350 1],[82.32 25 2],[82.49 30 2],[85.3 25 2],[88.08 600 1],[88.554 350 1],[88.93 15 2],[89.4 20 2],[89.6 20 2],[92.587 600 1],[93.54 250 1],[96.55 10 2],[97.277 800 1],[97.668 700 1],[100.34 35 2],[101.77 35 2],[103.244 500 1],[103.768 700 1],[104.131 1100 1],[104.78 10 2],[104.827 1000 1],[105.192 1200 1],[106.64 12 2],[107.448 2000 1],[108.386 600 1],[110.043 1200 1],[113.03 30 2],[115.847 600 1],[116.963 250 1],[118.305 800 1],[119.204 250 0],[123.21 25 2],[124.476 600 1],[125.02 250 0],[129.559 1000 0],[146.961 600 0],[266.898 80 2],[271.733 100 2],[281.445 30 2],[281.591 40 2],[282.745 30 2],[284.765 40 2],[286.24 30 2],[286.473 200 1],[287.11 80 2],[287.124 60 2],[287.17 30 2],[289.522 150 1],[289.662 30 2],[290.66 50 2],[291.189 40 2],[291.236 80 2],[294.02 40 2],[294.52 60 2],[294.75 40 2],[294.81 40 2],[297.047 80 2],[297.932 400 1],[299.287 40 2],[300.425 30 2],[301.743 100 1],[302.381 100 2],[308.35 40 2],[309.11 50 2],[310.646 30 2],[312.887 300 1],[313.83 100 2],[315.082 80 2],[318.52 40 2],[324.286 100 2],[326.898 80 2],[328.782 30 2],[330.155 80 2],[333.16 40 2],[335.8 30 2],[336.672 200 1],[338.412 80 2],[340.007 2 0],[341.837 2 0],[342 2 0],[344.266 3 0],[344.42 60 2],[345.42 70 2],[345.87 100 2],[346.126 100 1],[346.822 40 2],[346.981 4 0],[347.236 4 0],[350.674 5 0],[352.283 80 2],[354.23 50 2],[354.986 10 0],[355.21 50 2],[355.404 10 0],[356.14 40 2],[357.97 100 2],[358.36 80 2],[359.54 100 2],[360.606 100 2],[360.7 40 2],[361.032 15 0],[361.306 8 0],[361.59 100 2],[362.31 40 2],[362.408 600 2],[363.306 6 0],[366.991 10 0],[367.667 50 2],[368.59 40 0],[369.349 40 0],[377.63 40 2],[378.102 300 2],[384.15 100 2],[387.78 200 2],[388.05 60 2],[390.791 100 1],[392.255 500 2],[395.059 300 2],[403.759 100 1],[405.007 200 2],[405.746 200 1],[406.04 60 2],[409.889 100 1],[410.91 100 2],[414.57 100 2],[415.804 200 1],[418.01 1000 1],[419.315 500 1],[420.848 300 1],[420.947 100 1],[421.372 300 1],[421.56 100 1],[422.3 300 1],[423.825 400 1],[424.538 500 1],[425.157 100 1],[428.59 30 2],[429.64 500 1],[431.051 500 1],[433.052 1000 1],[436.92 200 1],[437.378 100 1],[439.32 500 1],[439.577 500 1],[440.688 200 1],[441.607 150 1],[443.42 50 2],[444.813 500 1],[446.21 100 2],[446.219 1000 1],[448.086 500 1],[452.186 100 1],[456.91 100 2],[457.01 100 2],[464.14 100 2],[467.37 30 2],[468.357 60 2],[472.36 30 2],[473.4152 600 0],[475.73 100 2],[479.2619 150 0],[480.702 500 0],[482.971 400 0],[484.329 300 0],[486.95 40 2],[491.651 500 0],[492.3152 500 0],[497.171 200 1],[497.271 400 1],[498.877 300 1],[499.117 100 1],[502.828 200 0],[504.492 200 1],[508.062 1000 1],[512.242 300 1],[512.57 100 1],[517.882 100 1],[518.804 300 1],[519.137 400 1],[519.21 100 1],[523.9 60 2],[526.044 500 1],[526.195 500 1],[529.222 2000 1],[530.927 300 1],[531.387 1000 1],[533.933 2000 1],[536.32 200 1],[536.71 30 2],[536.807 200 1],[537.239 500 1],[539.28 100 0],[540.1 50 2],[541.915 3000 1],[543.896 800 1],[544.545 300 1],[545.045 200 1],[546.039 400 1],[547.261 1000 1],[549.486 100 1],[552.44 40 2],[552.553 200 1],[553.107 600 1],[556.662 100 0],[561.667 300 1],[565.938 300 1],[566.756 600 1],[567.091 150 1],[569.575 100 0],[569.961 200 1],[571.61 200 1],[572.691 500 1],[575.103 500 1],[575.865 300 1],[577.639 300 1],[581.596 100 1],[582.389 300 0],[582.48 150 0],[587.502 100 0],[589.329 300 1],[589.499 100 0],[590.513 200 1],[593.417 100 0],[594.553 500 1],[597.113 300 1],[597.646 2000 1],[600.892 200 1],[603.62 1000 1],[605.115 2000 1],[609.35 600 1],[609.759 1500 1],[610.143 400 1],[611.508 100 1],[614.645 100 1],[617.83 150 0],[617.966 120 0],[618.242 300 0],[619.407 500 1],[619.826 100 0],[620.597 60 2],[622.002 100 1],[622.17 25 2],[623.82 60 2],[625.905 60 2],[627.082 500 1],[627.754 400 1],[628.441 100 1],[628.601 100 0],[630.086 250 1],[631.806 500 0],[634.396 400 1],[635.635 600 1],[637.528 200 1],[639.799 100 1],[646.97 300 0],[647.284 150 0],[648.776 120 0],[649.872 100 0],[650.418 200 0],[651.283 300 1],[652.865 200 1],[653.316 100 0],[659.501 1000 1],[659.556 100 0],[659.725 400 1],[659.884 100 1],[666.892 150 0],[669.432 300 1],[672.801 200 0],[678.871 150 1],[679.037 100 1],[680.574 1000 1],[682.732 200 0],[687.211 100 0],[688.216 300 0],[691.022 80 1],[692.553 100 0],[694.211 800 1],[697.618 100 0],[699.088 2000 1],[708.215 150 1],[711.96 500 0],[714.75 50 1],[714.903 200 1],[716.483 500 1],[728.434 100 1],[730.18 200 1],[733.93 200 1],[738.6 100 0],[739.379 150 0],[754.845 300 1],[758.468 200 0],[761.857 80 1],[764.202 500 0],[764.391 100 0],[767.066 200 1],[778.704 60 1],[780.265 100 0],[788.132 100 0],[788.74 300 0],[796.734 500 0],[802.967 100 0],[805.726 200 0],[806.134 150 0],[810.198 100 0],[815.18 150 1],[817.102 100 0],[820.634 700 0],[823.1635 10000 0],[826.652 500 0],[828.0116 7000 0],[834.682 2000 0],[834.724 100 1],[840.919 2000 0],[851.519 50 1],[857.601 200 0],[860.423 50 1],[864.854 250 0],[869.22 100 0],[869.686 200 0],[871.619 50 1],[873.939 300 0],[875.82 100 0],[881.941 5000 0],[886.232 300 0],[890.873 200 0],[893.083 200 0],[895.225 1000 0],[898.105 100 0],[898.757 200 0],[904.545 400 0],[916.265 500 0],[916.752 100 0],[937.476 100 0],[951.338 200 0],[959.135 50 1],[968.532 150 0],[969.868 50 1],[971.816 100 0],[979.97 2000 0],[992.319 3000 0],[1083.837 100 0],[1174.201 90 0],[1223.524 375 0],[1225.776 100 0],[1259.02 300 0],[1262.3391 2500 0],[1354.415 250 0],[1365.7055 2000 0],[1414.2444 1250 0],[1424.096 800 0],[1436.499 375 0],[1466.081 140 0],[1473.2806 3000 0],[1509.972 100 0],[1541.8394 2500 0],[1555.713 150 0],[1597.954 250 0],[1603.99 100 0],[1605.328 1000 0],[1655.449 125 0],[1672.815 1500 0],[1732.577 1500 0],[1878.8131 350 0],[2018.7189 150 0],[2026.2242 3000 0],[2147.009 250 0],[2319.333 1250 0],[2327.9539 110 0],[2482.4711 1800 0],[2514.584 175 0],[2626.908 2000 0],[2651.0859 2500 0],[2838.1539 250 0],[2858.225 750 0],[2938.441 300 0],[2944.8061 150 0],[2964.958 100 0],[2981.3619 100 0],[3025.3141 600 0],[3047.5461 1500 0],[3050.4119 100 0],[3079.418 500 0],[3106.923 6000 0],[3133.601 125 0],[3160.791 550 0],[3229.308 100 0],[3273.926 1800 0],[3366.6691 3500 0],[3401.4672 150 0],[3433.527 450 0],[3474.4 170 0],[3507.025 5000 0],[3524.6922 110 0],[3620.9211 250 0],[3623.1738 150 0],[3650.8359 450 0],[3678.8828 850 0],[3868.598 140 0],[3873.782 175 0],[3893.9602 270 0],[3995.5141 120 0]}{ALLx10000x10000x3000x600x0x0x0}{UVx2000x1000x2000x600x0x0x0}{VISx3000x600x3000x500x0x0x0}{IVx10000x10000x150x0x0x0x0}% \pgfspectra@elt@search{#1}{Cs}{[55.691 15 2],[58.415 50 2],[58.44 10 2],[59.1044 5 1],[60.301 240 2],[60.7291 1 1],[60.785 120 2],[60.794 160 2],[61.2786 0.8 1],[61.401 2000 2],[62.115 300 2],[63.586 120 2],[63.767 60 2],[63.817 400 2],[63.9356 40 1],[65.7112 2 1],[65.794 5 2],[66.382 90 2],[66.46 90 2],[66.625 500 2],[66.8386 10 1],[67.306 360 2],[67.96 80 2],[68.755 160 2],[69.16 1000 2],[69.943 160 2],[70.34 30 3],[70.389 700 2],[71.025 200 2],[71.8138 300 1],[72.179 4000 2],[72.22 4000 2],[73.156 1000 2],[73.195 60 2],[73.666 200 2],[74.029 2400 2],[74.223 30 2],[74.994 200 2],[75.038 300 2],[75.518 300 2],[75.882 240 2],[75.99 1.2 2],[77.361 1.4 3],[78.773 60 2],[80.195 15 2],[80.8761 300 1],[81.3837 300 1],[81.402 40 2],[81.735 3 2],[82.034 160 2],[82.364 0.8 3],[82.48 30 3],[82.599 40 2],[83.039 1500 2],[83.739 20 2],[84.337 0.8 2],[84.792 50 2],[86.183 3 3],[87.484 40 3],[89.692 30 3],[90.127 700 1],[92.035 3000 2],[92.166 100 2],[92.302 20 3],[92.6657 800 1],[93.267 5 2],[98.614 40 3],[99.514 10 3],[105.479 5000 2],[106.891 30 3],[117.865 26 1],[119.155 16 1],[202.505 5 1],[203.515 12 1],[207.743 16 1],[208.005 16 1],[208.871 16 1],[209.197 16 1],[209.95 3 1],[211.265 5 1],[214.675 20 1],[217.96 26 1],[218.214 5 1],[218.947 26 1],[221.315 5 1],[222.051 20 1],[222.888 26 1],[225.458 50 1],[225.782 40 1],[225.835 5 1],[226.761 70 1],[227.383 70 1],[228.668 5 1],[230.771 5 1],[231.568 8 1],[232.107 26 1],[234.313 16 1],[235.444 26 1],[235.785 5 1],[236.481 26 1],[239.286 50 1],[241.489 16 1],[243.271 5 1],[244.324 5 1],[247.607 26 1],[248.041 8 1],[251.572 26 1],[252.366 3 1],[253.908 26 1],[253.917 5 1],[255.065 12 1],[255.117 26 1],[256.817 26 1],[256.869 50 1],[257.303 200 1],[257.454 26 1],[257.674 26 1],[259.009 26 1],[260.944 50 1],[261.627 26 1],[262.795 5 1],[263.714 16 1],[264.469 5 1],[264.807 26 1],[265.171 40 1],[266.024 5 1],[266.979 26 1],[267.117 3 1],[267.324 8 1],[268.66 26 1],[268.941 5 1],[270.119 3 1],[272.421 26 1],[273.007 5 1],[273.388 5 1],[274.823 50 1],[274.984 16 1],[275.781 12 1],[276.197 16 1],[276.61 5 1],[277.699 50 1],[278.824 26 1],[278.98 26 1],[279.332 5 1],[279.45 26 1],[279.941 26 1],[281.694 100 1],[282.027 5 1],[282.904 5 1],[282.942 5 1],[284.619 26 1],[285.242 16 1],[286.637 16 1],[288.119 50 1],[288.374 5 1],[289.975 16 1],[291.465 16 1],[293.109 100 1],[294.095 100 1],[294.225 16 1],[294.98 6 1],[296.838 4 1],[297.085 5 1],[300.127 20 1],[301.204 16 1],[302.037 3 1],[306.098 3 1],[306.66 20 1],[308.087 5 1],[309.231 20 1],[318.094 16 1],[326.592 160 1],[326.713 160 1],[327.163 100 1],[332.943 20 1],[336.856 160 1],[355.98 20 1],[356.511 20 1],[365.107 3 1],[368.01 3 1],[368.764 3 1],[369.948 20 1],[373.254 3 1],[373.434 20 1],[375.14 3 1],[378.542 70 1],[380.51 100 1],[387.016 3 1],[387.6143 30 0],[388.8608 16 0],[389.698 200 1],[390.693 70 1],[392.558 100 1],[395.95 70 1],[396.519 100 1],[397.8 30 1],[404.718 70 1],[405.396 40 1],[406.796 100 1],[406.877 100 1],[407.336 14 1],[411.929 12 1],[412.121 100 1],[413.2 20 1],[415.127 70 1],[415.861 70 1],[419.32 12 1],[421.313 100 1],[422.112 40 1],[423.219 100 1],[423.441 70 1],[424.197 20 1],[427.174 20 1],[427.71 400 1],[428.835 200 1],[429.2 40 1],[430.064 100 1],[430.794 10 1],[432.758 10 1],[433.024 70 1],[436.328 400 1],[437.302 100 1],[438.443 80 1],[438.876 20 1],[439.691 40 1],[439.95 70 1],[440.385 70 1],[440.525 200 1],[441.021 70 1],[442.405 20 1],[443.571 70 1],[444.4 20 1],[445.344 40 1],[445.768 40 1],[445.918 40 1],[449.366 20 1],[450.152 200 1],[450.671 40 1],[450.683 20 1],[451.55 20 1],[452.285 30 1],[452.672 200 1],[453.894 160 1],[455.5276 80 0],[456.698 30 1],[457.179 30 1],[459.3169 40 0],[460.376 500 1],[460.999 20 1],[461.613 30 1],[462.309 70 1],[464.651 100 1],[465.654 30 1],[467.028 70 1],[469.561 20 1],[470.179 100 1],[473.298 70 1],[473.966 70 1],[474.913 20 1],[476.362 100 1],[478.636 40 1],[483.016 160 1],[487.002 160 1],[495.284 160 1],[497.259 100 1],[504.38 160 1],[505.27 100 1],[505.987 100 1],[508.177 20 1],[509.66 80 1],[522.7 300 1],[524.937 160 1],[527.404 80 1],[530.661 70 1],[534.916 70 1],[537.097 160 1],[541.969 100 1],[546.5944 1 0],[550.2884 1 0],[556.302 200 1],[563.5212 2.2 0],[566.4018 6 0],[574.5724 1.6 0],[581.418 70 1],[583.116 100 1],[583.8835 1 0],[584.5141 6 0],[592.565 100 1],[601.049 16 0],[603.4089 6 0],[612.862 80 1],[621.31 24 0],[621.7599 3 0],[635.4555 10 0],[641.954 20 1],[643.1969 3 0],[647.2623 3 0],[649.553 40 1],[653.644 40 1],[658.602 6 0],[658.651 40 0],[662.866 7 0],[672.3284 40 0],[682.4652 20 0],[687.0455 20 0],[695.552 80 1],[697.3297 40 0],[698.3491 7 0],[722.8536 40 0],[727.99 12 0],[727.9957 40 0],[760.8903 30 0],[794.3882 60 0],[799.068 12 0],[801.5724 20 0],[805.335 12 0],[807.892 12 0],[807.9033 70 0],[852.1122 200 0],[876.1415 40 0],[894.346 120 0],[917.2322 70 0],[920.8538 20 0],[1002.4359 70 0],[1012.3414 20 0],[1012.3602 80 0],[1358.831 28 0],[1360.257 3 0],[1375.883 3 0],[1469.493 70 0],[1792.3619 2.4 0],[1792.4211 1.8 0],[1916.2529 5 0],[1916.3199 4 0],[2131.1461 10 0],[2131.2289 9 0],[2576.349 20 0],[2576.4699 18 0],[3942.1219 40 0],[3942.4078 36 0]}{ALLx5000x200x800x5000x40x0x0}{UVx5000x0x800x5000x40x0x0}{VISx500x80x500x0x0x0x0}{IVx200x200x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Ba}{[40.382 1 2],[40.712 0.4 2],[42.012 1.4 2],[42.384 0.8 2],[44.895 1.8 2],[45.696 1.6 2],[55.548 2.8 2],[58.757 2.8 2],[64.727 3.6 2],[65.336 1.8 2],[74.312 3 2],[79.489 8000 3],[92.374 10000 3],[109.741 2.4 2],[111.367 3 2],[111.601 2.2 2],[113.305 2.8 2],[115.176 2.4 2],[117.062 2.4 2],[120.729 2.6 2],[121.892 2.2 2],[122.455 2.4 2],[128.853 2.4 2],[129.918 2.2 2],[130.74 2.2 2],[130.887 2.4 2],[131.572 2.4 2],[133.401 2.4 2],[135.471 2.2 2],[136.953 2.2 2],[141.661 2.2 2],[147.885 2.4 2],[148.672 40 1],[150.401 80 1],[151.068 2.4 2],[151.422 2.4 2],[155.438 60 1],[156.561 2.4 2],[156.612 2.4 2],[157.273 40 1],[157.455 2.4 2],[159.68 2.4 2],[161.095 2.4 2],[161.578 2.4 2],[167.451 20 1],[169.437 80 1],[171.153 2.4 2],[186.174 2.4 2],[188.392 2.4 2],[190.415 20 1],[192.47 100 1],[197.476 2.2 2],[199.954 60 1],[200.13 2 2],[200.84 3 2],[202.245 2.6 2],[202.395 80 1],[203.884 2 2],[207.043 2.4 2],[207.168 2.4 2],[207.6 2 2],[208.135 2.4 2],[213.487 2 2],[215.637 3.2 2],[216.076 2 2],[221.47 100 1],[223.033 4 2],[224.561 160 1],[225.473 200 1],[228.068 6 2],[230.424 280 1],[232.351 7 2],[233.11 12 2],[233.527 400 1],[234.758 38 1],[247.673 5 2],[250.507 5 2],[251.228 8 2],[252.383 8 2],[252.851 12 1],[253.092 5 2],[255.954 10 2],[257.048 5 2],[259.664 1.6 0],[263.478 20 1],[268.189 8 2],[270.263 1.6 0],[274.578 6 2],[277.136 3.6 1],[278.528 3 0],[293.895 5 2],[296.005 5 2],[296.248 6 2],[301.422 4 2],[304.342 6 2],[307.158 20 0],[307.914 8 2],[310.392 6 2],[310.821 2 0],[311.922 6 2],[313.26 1.6 0],[313.572 1.6 0],[313.77 2 0],[315.27 6 2],[315.534 2 0],[315.567 2 0],[315.805 2.4 0],[315.854 2.4 0],[316.56 5 0],[317.369 3 0],[318.316 6 0],[318.396 3 0],[319.391 2 0],[319.517 5 2],[320.37 5 0],[322.163 6 0],[322.219 8 0],[323.504 5 2],[326.196 10 0],[326.234 12 0],[328.15 8 0],[328.165 5 2],[328.177 3 0],[328.679 4 2],[332.28 10 0],[335.68 16 0],[336.818 10 2],[336.968 6 2],[337.708 12 0],[337.739 4 0],[342.032 14 0],[342.101 5 0],[342.148 6 0],[346.374 8 0],[350.111 40 0],[352.497 16 0],[353.135 6 0],[354.466 16 0],[354.768 4 0],[355.245 20 1],[356.773 40 1],[357.628 20 1],[357.762 6 0],[357.967 16 0],[359.657 40 1],[363.064 8 0],[363.683 8 0],[364.918 5 2],[368.847 4 0],[373.575 80 1],[381.669 40 1],[384.28 40 1],[385.476 20 1],[388.933 4 0],[389.178 280 1],[389.265 4 0],[390.991 8 0],[391.473 100 1],[392.685 5 2],[393.572 10 0],[393.787 4 0],[393.967 40 1],[394.951 100 1],[399.306 5 2],[399.34 16 0],[399.566 6 0],[403.626 60 1],[405.371 3.6 2],[408.377 40 1],[408.486 6 0],[413.066 300 1],[413.243 4 0],[416.6 40 1],[421.604 100 1],[426.795 160 1],[428.31 20 0],[428.78 60 1],[429.76 40 1],[430.932 160 1],[432.3 4 0],[432.573 120 1],[432.674 40 1],[432.962 60 1],[435.033 16 0],[440.254 12 0],[440.523 80 1],[443.189 8 0],[448.898 12 0],[449.364 10 0],[450.592 8 0],[450.963 40 1],[452.317 12 0],[452.493 26 1],[455.403 13000 1],[457.385 8 0],[457.964 16 0],[459.975 6 0],[461.992 4 0],[462.833 5 0],[464.41 60 1],[467.362 6 0],[469.162 7 0],[469.744 3 2],[470.043 4 0],[470.894 160 1],[472.644 8 0],[484.346 160 1],[484.714 60 1],[485.084 40 1],[487.765 6 0],[489.997 80 1],[490.29 3 0],[493.409 4000 1],[494.735 1.6 0],[495.715 200 1],[499.781 60 1],[501.3 200 1],[504.955 2 2],[509.754 2 2],[510.225 2.4 2],[513.454 2 2],[515.994 4 0],[526.703 4 0],[536.135 160 1],[539.16 200 1],[542.105 40 1],[542.455 20 0],[542.879 40 1],[548.03 60 1],[551.905 40 0],[553.548 200 0],[562.04 4 0],[568.018 2 0],[577.762 80 0],[578.418 160 1],[580.023 20 0],[580.569 4 0],[582.628 30 0],[585.368 560 1],[590.764 3 0],[597.17 20 0],[598.125 160 1],[599.709 20 0],[599.8 2 2],[599.985 60 1],[601.947 20 0],[606.312 40 0],[610.199 2.6 2],[611.078 60 0],[613.583 80 1],[614.172 4000 1],[634.168 30 0],[637.711 2 2],[637.891 100 1],[638.376 2 2],[645.085 18 0],[648.291 30 0],[649.69 2400 1],[649.876 60 0],[652.617 1.6 2],[652.731 30 0],[659.533 600 0],[665.41 30 0],[667.527 300 0],[669.384 360 0],[676.962 200 1],[686.569 120 0],[686.785 60 0],[687.409 200 1],[705.994 1200 0],[709.549 1.6 2],[712.033 480 0],[719.524 120 0],[722.884 120 0],[728.03 600 0],[739.241 240 0],[741.753 60 0],[745.978 180 0],[748.808 120 0],[763.69 90 0],[764.291 120 0],[767.209 360 0],[778.048 240 0],[783.957 36 0],[790.575 300 0],[791.134 120 0],[821.024 180 0],[830.869 1.6 2],[855.997 360 0],[871.074 20 1],[873.771 20 1],[879.976 60 0],[886.098 60 0],[891.499 90 0],[921.969 60 0],[930.808 60 0],[932.458 60 0],[937.006 300 0],[945.592 60 0],[952.176 1.6 2],[958.937 90 0],[960.888 180 0],[964.572 60 0],[983.037 300 0],[1000.108 180 0],[1003.21 120 0],[1023.323 240 0],[1047.126 60 0],[1079.125 24 0],[1101.269 36 0],[1111.442 30 0],[1130.304 48 0],[1169.745 24 0],[1320.73 24 0],[1381.05 24 0],[1407.79 24 0],[1500.04 24 0],[2071.2 24 0],[2551.5699 30 0],[2922.39 30 0]}{ALLx13000x1200x13000x12x10000x0x0}{UVx10000x40x400x12x10000x0x0}{VISx13000x1200x13000x5x0x0x0}{IVx360x360x20x1.6x0x0x0}% @@ -115,7 +115,7 @@ \pgfspectra@elt@search{#1}{Pb}{[36.74 0.2 4],[37.253 0.2 4],[38.787 0.2 4],[39.438 0.2 4],[42.464 0.5 4],[43.103 0.3 4],[43.66 0.3 4],[43.847 0.2 4],[43.891 0.6 4],[45.345 0.4 4],[46.17 0.3 4],[47.536 0.8 3],[47.835 0.7 3],[49.62 0.3 4],[49.638 1 3],[49.994 1.2 3],[51.507 0.9 3],[52.978 1.4 3],[57.016 2 3],[57.39 0.8 3],[58.452 0.8 3],[64.85 1 3],[65.61 0.9 3],[69.442 0.4 4],[69.62 0.8 4],[70.373 2 4],[70.629 0.4 4],[70.766 0.6 4],[73.085 0.5 4],[74.946 1.2 4],[75.252 1 4],[75.58 1 4],[76.109 1 3],[76.276 0.6 4],[76.587 1 4],[76.745 1.8 4],[76.949 1.8 4],[77.142 1.4 4],[78.279 1.4 4],[78.705 1 4],[79.702 1.5 4],[79.98 0.5 4],[80.207 1.8 3],[80.282 1.2 3],[80.963 1.8 4],[81.232 0.5 4],[81.259 1 3],[81.41 0.8 4],[82.009 0.8 4],[82.207 0.8 3],[82.552 0.5 4],[82.741 1 3],[82.932 0.8 4],[83.26 1.2 3],[84.099 0.8 3],[84.288 0.8 3],[84.594 1.2 3],[84.604 0.2 1],[84.988 0.2 1],[85.198 0.5 4],[85.557 0.3 1],[85.764 1.8 3],[85.902 0.8 3],[86.233 1.6 3],[86.3 0.3 1],[86.397 2 4],[86.71 1 4],[87.044 1.4 3],[87.371 0.6 1],[87.796 0.2 1],[87.996 1.2 3],[88.035 0.7 3],[88.05 0.6 4],[88.39 1.8 4],[88.496 1.4 3],[88.499 1.4 3],[88.837 1.4 4],[88.968 0.8 1],[89.072 1.6 3],[89.44 1.4 4],[89.608 1.2 4],[89.63 0.3 1],[90.851 1.2 3],[91.509 0.8 4],[91.571 1.4 4],[91.79 1.2 3],[91.809 1.2 4],[92.028 1.2 4],[92.066 1.2 4],[92.212 1 3],[92.249 1.2 3],[92.452 0.7 3],[92.644 0.5 1],[92.764 1 3],[93.22 1.4 3],[93.7 0.8 3],[94.074 0.6 4],[94.62 0.8 4],[95.093 0.6 4],[95.285 0.7 3],[95.435 1.2 4],[95.495 0.4 4],[95.528 1 4],[95.876 0.2 1],[96.021 0.2 1],[96.101 0.1 2],[96.438 0.4 4],[96.536 0.3 1],[96.723 1 1],[97.256 0.9 1],[98.217 0.8 1],[98.671 1 1],[98.914 0.6 4],[99.589 1 1],[100.181 0.6 1],[100.542 0.8 4],[101.244 0.8 3],[101.661 1 1],[102.861 1.4 3],[103.05 0.3 2],[103.205 2 3],[104.124 1.6 3],[104.414 1.8 3],[104.89 1.2 2],[104.982 1 1],[105.077 1 1],[105.126 1 4],[105.653 1.5 3],[105.926 0.4 4],[106.066 1 1],[106.558 0.9 1],[106.92 0.4 2],[107.209 1.2 3],[107.47 0.3 2],[107.988 0.7 3],[108.081 1.8 3],[108.417 2 3],[108.886 1 4],[108.994 0.6 3],[109.652 0.9 4],[109.947 0.7 3],[110.394 1 1],[110.479 0.6 4],[110.843 1 1],[110.984 1 1],[111.53 0.6 3],[111.608 2 3],[111.867 0.4 2],[111.957 1 1],[112.133 0.4 4],[112.136 1 1],[113.314 1 1],[113.75 1 4],[113.784 1.8 3],[114.277 0.8 3],[114.493 1.4 3],[114.591 0.4 1],[115.236 0.4 4],[115.788 1.2 4],[116.7 0.4 2],[118.543 1.4 4],[118.995 2 3],[120.363 1 1],[123.12 1 1],[123.35 1.1 4],[124.847 1 4],[125.06 0.4 2],[126.69 0.1 2],[126.755 0.8 3],[129.082 0.8 3],[129.11 1 3],[131.305 2 3],[132.392 0.8 3],[133.165 1 1],[133.52 1 1],[134.306 1.2 3],[134.837 1 1],[138.894 1.6 3],[139.702 0.6 3],[140.026 1.8 3],[140.434 1 3],[143.396 1 1],[144.935 0.3 1],[151.076 0.7 3],[151.242 1 1],[153.571 1.4 3],[155.31 2 2],[161.01 0.1 2],[163.575 0.8 4],[167.153 1 1],[168.215 1 1],[171.123 0.4 2],[172.675 2 1],[174 0.2 0],[176.664 0.2 0],[179.467 0.2 0],[179.667 1 1],[179.839 0.8 3],[180.287 0.2 4],[181.297 0.5 0],[182.205 1 1],[184.3 0.2 4],[186.876 0.4 0],[188.867 0.2 4],[189.319 0.8 3],[189.702 0.2 4],[190.477 1 0],[191.433 0.2 4],[191.974 0.4 4],[192.1471 0.7 1],[195.796 0.5 4],[195.934 1.2 3],[197.244 0.4 0],[197.316 1.6 3],[197.788 0.2 0],[199.16 0.2 0],[199.231 0.2 0],[199.858 0.2 4],[199.883 1 4],[202.202 0.5 0],[204.258 1 3],[204.934 1.2 3],[205.088 0.5 0],[205.328 0.8 0],[207.845 0.8 4],[207.922 1.2 3],[211.1758 0.6 0],[211.5066 1 0],[214.255 1 4],[215.196 0.8 3],[215.401 1.5 3],[216.797 1 4],[217 50 0],[217.558 0.7 0],[217.746 1.2 3],[218.7888 0.7 0],[218.9603 0.8 0],[220.3534 1 1],[223.7425 2 0],[224.686 2 0],[224.689 2.5 0],[225.901 2 4],[227.666 1 4],[230.149 0.8 4],[233.2418 15 0],[235.953 1.6 3],[238.8797 18 0],[239.3792 55 0],[239.9597 14 0],[240.194 32 0],[241.1734 32 0],[241.761 1.6 3],[242.481 1.5 4],[244.3829 15 0],[244.6181 16 0],[247.6378 13 0],[252.669 0.8 1],[257.66 0.8 1],[257.726 8 0],[260.838 0.2 1],[261.3655 50 0],[261.4175 90 0],[262.8262 16 0],[263.4256 0.4 1],[265.7094 1 0],[266.3154 70 0],[269.7541 1 0],[280.1995 2500 0],[282.258 10 0],[282.3189 1400 0],[283.3053 3500 0],[284.0557 0.6 1],[286.424 0.4 3],[286.45 0.4 3],[287.3311 1400 0],[288.73 0.3 1],[291.4442 0.3 1],[294.743 0.2 1],[294.853 0.3 1],[296.646 1.5 0],[297.2991 1.5 0],[297.814 0.4 3],[298.0157 1.5 0],[298.6876 0.4 1],[301.639 1 1],[304.385 1 2],[305.256 0.4 3],[308.908 0.4 2],[310.274 0.4 2],[311.8894 15 0],[313.781 1 2],[317.65 1 2],[322.0528 60 0],[322.117 0.4 3],[322.9613 10 0],[324.0186 40 0],[324.284 0.5 2],[326.2355 20 0],[353.017 0.1 2],[357.2729 3500 0],[358.987 0.7 2],[363.9568 5000 0],[367.1491 2000 0],[368.3462 7000 0],[368.931 0.7 2],[370.602 0.3 2],[371.3982 1 1],[372.869 0.5 2],[373.9935 2500 0],[385.408 1.2 2],[395.192 0.8 2],[396.248 0.4 3],[401.9632 1500 0],[403.116 0.3 2],[404.98 0.4 3],[405.7807 9500 0],[406.2136 1400 0],[409.454 0.3 2],[411.076 0.5 1],[411.335 0.4 1],[412.811 0.2 2],[415.282 1 1],[415.7814 1 0],[416.8033 1000 0],[424.214 0.9 1],[424.492 2 1],[427.266 0.8 2],[429.382 0.7 1],[429.665 0.6 1],[434.0413 20 0],[435.274 1 1],[438.646 2 1],[449.615 1 3],[449.934 0.6 2],[453.46 1.6 3],[457.121 0.7 2],[457.9051 1 1],[458.227 1 1],[459.645 0.1 2],[460.54 0.8 3],[476.112 0.6 2],[479.859 0.4 2],[480.936 0.4 4],[482.686 0.1 2],[485.506 0.2 2],[500.5416 100 0],[500.6572 10 0],[504.258 5 1],[506.512 0.3 2],[507.058 1 1],[507.453 1 1],[507.635 1 0],[508.9484 5 0],[509.001 2 0],[510.7242 1 0],[511.164 1 1],[519.156 0.4 2],[520.1437 200 0],[536.764 1 1],[537.2099 1 1],[552.397 0.5 2],[554.425 1 1],[560.885 2 1],[569.2346 4 0],[577.941 0.3 2],[585.796 0.6 2],[589.5624 20 0],[591.454 0.2 3],[600.1862 200 0],[600.958 0.9 1],[601.1667 50 0],[604.117 0.8 1],[605.9356 50 0],[607.574 4 1],[608.1409 4 1],[611.052 5 0],[615.989 1 1],[623.5266 10 0],[665.099 0.5 4],[666.02 5 1],[675.32 0.4 4],[689.211 1 0],[712.894 0.5 0],[719.36 2 1],[722.8965 2000 0],[730.468 0.5 0],[733.015 0.8 0],[734.6676 1 0],[755.897 1 1],[763.256 1 1],[773.296 0.4 1],[780.9259 2 0],[781.797 0.5 0],[782.901 0.6 0],[789.6737 0.5 0],[815.691 0.2 1],[816.8001 1 0],[819.1886 0.6 0],[821.7711 0.5 0],[825.561 0.8 0],[827.269 4 0],[833.554 0.6 1],[839.568 1 1],[840.9384 2 0],[847.8492 1 0],[853.217 0.8 0],[854.495 0.7 1],[870.99 0.7 1],[871.939 0.5 1],[872.281 0.5 0],[885.7457 1 0],[905.082 1 1],[906.343 1 1],[924.528 0.2 1],[929.3476 0.8 0],[938.435 0.5 0],[938.589 0.5 0],[943.805 1.5 0],[960.4297 1.5 0],[960.873 0.6 0],[967.4351 1.5 0],[1029.0458 20 0],[1043.432 0.5 0],[1049.8965 10 0],[1064.9249 5 0],[1075.941 0.5 0],[1075.974 0.7 0],[1088.6688 1.5 0],[1096.953 4 0],[1105.922 0.6 0],[1133.308 0.3 0],[1147.949 0.2 1],[1148.876 0.2 0],[1162.791 0.5 1],[1256.137 0.1 0]}{ALLx9500x9500x5x2x2x2x0}{UVx7000x7000x2x2x2x2x0}{VISx9500x9500x5x1.2x1.6x0.5x0}{IVx20x20x1x0x0x0x0}% \pgfspectra@elt@search{#1}{Bi}{[35.577 1 4],[36.952 1 4],[42.07 6 3],[42.978 1 4],[43.12 6 3],[43.563 1 4],[48.839 2 4],[49.272 1 4],[56.362 3 4],[59.073 1 2],[67.076 5 2],[67.887 2 4],[68.688 6 4],[70.654 1 4],[73.071 5 4],[73.817 10 4],[77.516 4 2],[79.05 6 3],[79.06 6 3],[79.25 8 3],[80.365 6 2],[82.03 10 3],[82.29 9 3],[82.49 12 3],[84.986 6 4],[85.568 5 4],[86.445 15 4],[87.26 15 3],[87.68 8 3],[88.017 6 4],[91.67 9 3],[92.093 7 2],[92.39 12 3],[92.548 6 2],[92.981 6 4],[94.33 15 3],[96.76 9 3],[96.88 8 3],[98.98 8 3],[103.999 25 2],[104.576 50 2],[105.181 30 2],[105.888 15 1],[108.547 20 1],[109.92 10 1],[110.34 24 3],[112.88 7 3],[113.86 6 3],[113.901 20 2],[113.946 15 4],[113.98 6 3],[114.591 15 2],[114.97 7 3],[116.319 8 1],[116.706 8 1],[122.464 50 2],[122.543 10 1],[123.278 15 1],[124.105 10 1],[126.535 10 1],[128.373 15 1],[130.618 10 1],[131.7 60 3],[132.546 20 1],[132.684 40 2],[132.947 20 1],[134.612 60 2],[135.007 20 1],[137.261 25 1],[137.602 15 1],[139.392 20 1],[142.333 35 2],[142.352 35 2],[143.683 45 1],[144.794 25 1],[145.511 50 1],[146.1 60 2],[146.214 25 1],[148.693 35 1],[150.25 20 1],[152.057 40 1],[153.317 40 1],[153.677 30 1],[153.806 35 1],[156.367 20 1],[157.37 40 1],[159.179 60 1],[160.158 25 1],[160.64 60 2],[160.97 40 1],[161.138 40 1],[165.281 20 1],[169.15 20 2],[174.929 20 1],[177.711 80 1],[178.747 60 1],[179.193 70 1],[182.38 70 1],[183.432 20 2],[186.39 10 2],[190.241 100 1],[191 30 3],[191.212 10 2],[195.453 9000 0],[196.013 7000 0],[198.826 10 2],[198.935 25 1],[202.075 20 2],[202.115 20 2],[202.121 7000 0],[206.17 9000 0],[206.89 45 1],[207.322 10 2],[207.337 14 2],[209.3 30 3],[210.342 15 2],[211.026 4600 0],[213.363 2500 0],[214.34 15 1],[214.346 15 1],[218.69 60 1],[221.355 30 2],[221.4 40 1],[222.825 360 0],[223.061 1700 0],[227.658 340 0],[231.1 100 3],[232.6 100 3],[236.812 16 1],[236.825 12 1],[237.6 100 3],[240.088 190 0],[241.46 75 2],[243.76 10 2],[250.1 10 1],[251.569 25 0],[252.449 70 0],[254.45 20 1],[262.791 700 0],[262.9 100 3],[267.7 100 3],[269.3 12 1],[269.676 280 0],[271.33 20 1],[273.05 140 0],[276.7 100 3],[277.2 100 3],[278.052 360 0],[278.6 100 3],[280.342 15 1],[280.37 11 1],[280.53 12 1],[280.962 140 0],[284.2 100 3],[284.74 30 2],[285.56 80 2],[289.798 4000 0],[292.4 100 3],[293.3 100 3],[293.6 100 3],[293.67 15 1],[293.83 3200 0],[295.04 20 1],[296.34 12 1],[298.903 2800 0],[299.334 700 0],[301.2 100 3],[302.464 2400 0],[303.487 60 0],[304.2 100 3],[306.772 9000 0],[307.666 140 0],[311.5 35 2],[323.9 100 3],[339.721 550 0],[343.083 10 1],[343.123 12 1],[345.1 40 2],[347.38 40 2],[348.55 35 2],[351.085 500 0],[354.08 15 2],[359.611 380 0],[361.34 45 2],[364.3 100 3],[365.42 12 1],[368.2 100 3],[369.532 50 2],[369.568 50 2],[373.4 100 3],[379.25 70 1],[381.11 12 1],[381.58 20 1],[384.58 10 1],[386.39 30 1],[386.8 100 3],[407.91 40 1],[409.72 10 1],[412.153 140 0],[412.186 140 0],[422.46 12 2],[425.94 75 1],[427.2 25 1],[430.17 70 1],[432.78 25 2],[433.98 12 1],[434.05 25 1],[434.2 30 3],[437.94 12 1],[447.68 25 1],[456.084 30 2],[456.154 30 2],[470.53 60 1],[472.252 600 0],[473.03 30 1],[474.97 20 1],[479.74 40 2],[490.82 12 1],[491.66 10 1],[496.97 12 1],[499.36 20 1],[507.93 45 2],[509.16 10 1],[512.43 50 1],[514.43 60 1],[520.15 20 1],[520.92 75 1],[527.03 40 1],[534.7 30 3],[539.78 10 1],[555.235 10 0],[559.941 3 0],[565.52 20 1],[571.92 40 1],[574.255 6 0],[581.83 12 1],[586.02 20 1],[597.3 20 1],[605.91 15 1],[612.8 15 1],[613.482 6 0],[647.573 3 0],[647.624 3 0],[649.77 15 1],[657.72 10 1],[660.02 40 1],[662.34 12 2],[680.86 50 1],[699.112 4 0],[703.3 12 1],[703.615 2 0],[738.1 10 1],[738.1 10 2],[750.233 2 0],[755.1 12 2],[759.8 25 2],[763.7 10 1],[763.7 10 2],[775 10 1],[783.87 3 0],[784.033 2 0],[796.5 20 1],[800.8 40 2],[805 12 1],[807 50 2],[810 20 2],[832.8 15 1],[838.8 15 1],[853.2 30 1],[854.454 2 0],[857.974 1 0],[865.3 25 1],[867.1 15 2],[875.488 2 0],[876.154 3 0],[886.3 25 1],[890.781 2 0],[893.4 20 2],[965.704 2000 0],[982.778 40 0],[1010.45 20 0],[1013.88 15 0],[1030.06 20 0],[1053.619 20 0],[1107.244 50 0],[1155.16 15 0],[1171.037 1500 0],[1199.949 40 0],[1216.508 200 0],[1237.464 10 0],[1269.004 200 0],[1281.78 100 0],[1433.05 200 0],[1600.15 50 0],[2255.16 60 0]}{ALLx9000x9000x100x80x100x15x0}{UVx9000x9000x100x80x100x15x0}{VISx600x600x75x45x100x0x0}{IVx2000x2000x30x50x0x0x0}% \pgfspectra@elt@search{#1}{Po}{[213.902 250 0],[220.38 300 -1],[222.067 300 0],[222.213 200 0],[228.422 200 -1],[234.461 250 0],[242.172 250 0],[242.609 300 0],[245.008 1500 0],[248.394 700 0],[249.053 700 0],[250.218 200 -1],[253.495 300 0],[255.733 300 0],[255.801 1500 0],[256.231 400 -1],[257.88 300 -1],[258.764 400 0],[263.701 200 -1],[264.536 300 0],[266.333 700 -1],[267.167 200 0],[276.192 600 0],[280.026 400 0],[282.411 250 0],[286.601 300 0],[291.931 400 0],[295.892 600 0],[300.321 2500 0],[306.931 450 0],[311.595 200 -1],[318.902 400 0],[324.024 600 0],[328.638 250 0],[332.86 600 0],[348.979 300 -1],[349.365 200 -1],[358.833 400 -1],[367.136 200 -1],[386.193 500 0],[405.198 200 -1],[417.052 1200 0],[423.613 250 -1],[441.558 200 -1],[449.321 800 0],[461.144 350 0],[486.712 200 -1],[487.624 400 0],[494.681 450 -1],[532.323 350 0],[574.485 300 0],[796.262 600 0],[843.387 300 0],[861.826 500 0],[922.787 250 -1]}{ALLx2500x2500x0x0x0x0x700}{UVx2500x2500x0x0x0x0x700}{VISx1200x1200x0x0x0x0x450}{IVx600x600x0x0x0x0x250}% -\pgfspectra@elt@search{#1}{At}{[216.225 8 0],[224.401 10 0]}{ALLx10x10x0x0x0x0x0x0}{UVx10x10x0x0x0x0x0x0}{VISx0x0x0x0x0x0x0}{IVx0x0x0x0x0x0x0} +\pgfspectra@elt@search{#1}{At}{[216.225 8 0],[224.401 10 0]}{ALLx10x10x0x0x0x0x0x0}{UVx10x10x0x0x0x0x0x0}{VISx0x0x0x0x0x0x0}{IVx0x0x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Rn}{[351.46 5 0],[373.989 10 0],[375.365 20 0],[391.72 10 0],[394.172 10 0],[395.236 10 0],[422.606 10 0],[430.776 80 0],[433.578 7 0],[434.96 100 0],[443.505 40 0],[445.925 50 0],[450.848 50 0],[457.772 50 0],[460.938 50 0],[472.176 30 0],[572.258 6 0],[606.192 10 0],[620.075 6 0],[638.045 6 0],[655.749 10 0],[660.643 10 0],[662.723 15 0],[666.96 6 0],[670.428 8 0],[675.181 20 0],[680.679 6 0],[683.695 8 0],[683.757 8 0],[689.116 10 0],[699.89 10 0],[705.542 200 0],[726.811 100 0],[729.1 20 0],[732.098 6 0],[741.904 10 0],[745 300 0],[747.089 8 0],[748.313 8 0],[751.413 8 0],[751.692 8 0],[752.393 6 0],[759.755 6 0],[760.128 8 0],[765.748 10 0],[773.843 10 0],[774.664 20 0],[780.982 100 0],[804.9 20 0],[809.951 100 0],[817.384 6 0],[827.096 100 0],[831.451 8 0],[834.974 6 0],[838.105 10 0],[848.748 10 0],[849.489 10 0],[852.095 20 0],[860.007 100 0],[863.976 10 0],[867.583 15 0],[880.775 10 0],[932.702 50 0],[994.857 6 0],[1010.613 5 0]}{ALLx300x300x0x0x0x0x0}{UVx20x20x0x0x0x0x0}{VISx300x300x0x0x0x0x0}{IVx100x100x0x0x0x0x0}% \pgfspectra@elt@search{#1}{Ra}{[236.973 8 1],[246.055 8 1],[247.55 10 1],[258.661 8 1],[264.373 10 1],[270.896 20 1],[279.521 10 1],[281.376 30 1],[303.344 10 1],[310.18 5 0],[364.955 100 1],[381.442 200 1],[419.409 8 1],[424.472 8 1],[434.064 100 1],[443.627 20 1],[453.311 30 1],[464.129 8 0],[468.228 100 1],[469.928 8 0],[482.591 100 0],[485.607 10 0],[485.941 10 1],[492.753 10 1],[509.756 10 0],[520.593 10 0],[528.328 10 0],[532.029 10 0],[539.98 10 0],[540.023 20 0],[540.681 20 0],[548.213 8 0],[550.198 10 0],[555.357 10 0],[555.585 20 0],[561.666 10 0],[566.081 50 0],[581.363 20 1],[620.03 30 0],[633.69 10 0],[644.62 20 0],[648.732 20 0],[659.334 10 1],[671.932 10 1],[698.022 20 0],[711.85 20 0],[714.121 50 0],[722.516 20 0],[731.027 10 0],[783.812 20 0],[801.97 50 1],[817.731 6 0],[833.507 5 0],[993.221 5 0]}{ALLx200x100x200x0x0x0x0}{UVx100x5x100x0x0x0x0}{VISx200x100x200x0x0x0x0}{IVx50x20x50x0x0x0x0}% \pgfspectra@elt@search{#1}{Ac}{[206.2 20 3],[210 8 1],[250.212 30 3],[255.808 100 3],[262.644 1000 2],[268.29 50 2],[271.25 20 1],[272.623 10 1],[276.018 10 1],[278.156 10 1],[279.083 5 3],[279.39 50 3],[279.759 20 1],[280.676 20 1],[283.347 8 1],[284.716 150 1],[289.52 8 1],[289.682 30 1],[292.302 30 1],[295.255 2000 2],[299.417 200 1],[304.33 500 1],[306.936 200 1],[307.807 100 1],[308.604 100 1],[308.737 100 1],[311.283 200 1],[312.016 100 1],[315.309 500 1],[315.441 600 1],[316.481 200 1],[322.47 20 3],[323.059 300 1],[323.77 150 1],[326.091 500 1],[331.801 100 1],[338.353 200 1],[339.278 2000 2],[341.384 200 1],[341.777 500 1],[348.116 500 1],[348.759 3000 2],[348.953 200 1],[352.924 100 1],[353.463 100 1],[355.499 200 1],[356.559 1000 1],[369.488 100 1],[375.667 300 1],[379.982 200 1],[386.312 2000 1],[391.447 100 1],[406.16 400 1],[408.844 3000 1],[416.84 3000 1],[417.998 100 0],[418.312 20 0],[419.44 20 0],[420.969 300 1],[435.913 300 1],[438.453 20 0],[438.641 1000 1],[439.671 20 0],[441.309 2000 2],[446.273 20 0],[450.72 1000 1],[456.987 3000 2],[460.545 500 1],[471.658 10 0],[472.016 400 1],[481.222 300 1],[494.518 100 1],[495.823 100 1],[496.087 100 1],[519.321 8 2],[544.638 150 1],[573.205 300 1],[575.897 400 1],[591.085 1000 1],[616.475 600 1],[616.783 200 1],[624.283 400 1],[635.986 20 0],[669.127 20 0],[729.04 6 0],[786.61 6 0]}{ALLx3000x100x3000x3000x100x0x0}{UVx3000x0x1000x3000x100x0x0}{VISx3000x100x3000x3000x0x0x0}{IVx6x6x0x0x0x0x0}% diff --git a/graphics/pgf/contrib/pgf-spectra/pgf-spectra.sty b/graphics/pgf/contrib/pgf-spectra/pgf-spectra.sty index 308c9bcc78..2135d34667 100644 --- a/graphics/pgf/contrib/pgf-spectra/pgf-spectra.sty +++ b/graphics/pgf/contrib/pgf-spectra/pgf-spectra.sty @@ -7,9 +7,10 @@ % Hugo Gomes @ 21/02/2023 (v2.2.0) % Hugo Gomes @ 25/04/2023 (v3.0.0) % Hugo Gomes @ 27/04/2023 (v3.0.1) +% Hugo Gomes @ 07/07/2024 (v3.0.1a) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{pgf-spectra}[27/04/2023 pgf-spectra v3.0.1]% +\ProvidesPackage{pgf-spectra}[07/07/2024 pgf-spectra v3.0.1a]% \RequirePackage{tikz}% \DeclareOption{LSE}{\input{pgf-spectra.data.LSE.tex}\xdef\pgfspectra@DATASET{1}}% \DeclareOption{NIST}{\input{pgf-spectra.data.NIST.tex}\xdef\pgfspectra@DATASET{0}}% @@ -640,15 +641,15 @@ precision=1,unit={}% NEW v3.0.0 (for data library) \fi% }% \def\pgfspectra@utils@put@label{\ignorespaces% - \ifx\pgfspectra@elt@chemsym\undefined\def\pgfspectra@elt@chemsym{}\fi% + \ifx\pgfspectra@elt@chemsym\undefined\def\pgfspectra@elt@chemsym{}\else\fi% \pgfspectra@get@label@position% \ifnum\pgfspectra@begin>\pgfspectra@end% \ifcase\pgfspectra@label@position% %west \ifpgfspectra@drawaxis%\ifpgfspectra@axislabel% - \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2em,align=right] at (-2.5*\@pgfspectra@axis@height-\pgfspectra@width,0.5*\pgfspectra@height-1.25*\@pgfspectra@axis@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% + \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2.1em,align=right] at (-2.5*\@pgfspectra@axis@height-\pgfspectra@width,0.5*\pgfspectra@height-1.25*\@pgfspectra@axis@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% \else% - \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2em,align=right] at (-\pgfspectra@width,0.5*\pgfspectra@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% + \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2.1em,align=right] at (-\pgfspectra@width,0.5*\pgfspectra@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% \fi% \or%north west \ifpgfspectra@drawaxis% @@ -693,9 +694,9 @@ precision=1,unit={}% NEW v3.0.0 (for data library) \ifcase\pgfspectra@label@position% %west \ifpgfspectra@drawaxis% - \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2em,align=right] at (-2.5*\@pgfspectra@axis@height,0.5*\pgfspectra@height-1.25*\@pgfspectra@axis@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% + \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2.1em,align=right] at (-2.5*\@pgfspectra@axis@height,0.5*\pgfspectra@height-1.25*\@pgfspectra@axis@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% \else% - \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2em,align=right] at (0,0.5*\pgfspectra@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% + \node[\pgfspectra@labelfontcolor,font=\pgfspectra@labelfont,left,minimum width=2.1em,align=right] at (0,0.5*\pgfspectra@height) {\pgfspectra@labelbtext\pgfspectra@elt@chemsym\pgfspectra@labelatext};% \fi% \or%north west \ifpgfspectra@drawaxis% diff --git a/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.pdf b/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.pdf Binary files differindex e003e00f80..a627994bbf 100644 --- a/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.pdf +++ b/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.pdf diff --git a/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.tex b/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.tex index 1661670404..4ffb5d4c87 100644 --- a/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.tex +++ b/graphics/pgf/contrib/pgf-spectra/pgf-spectraManual.tex @@ -20,12 +20,12 @@ \setlength{\parindent}{0pt} \setlength{\oddsidemargin}{0pt} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\def\version{3.0.1}% +\def\version{3.0.1a}% \def\inversion#1{#1}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[pdfstartview={ },colorlinks=true, linkcolor=black!50!green, citecolor=gray, urlcolor=teal, hyperindex, plainpages=false,bookmarksopenlevel=1,bookmarksopen=true]{hyperref}% \hypersetup{%Start options on pdf -pdftitle = {Manual for pgf-spectra (v\inversion{3.0.1})},% +pdftitle = {Manual for pgf-spectra (v\inversion{3.0.1a})},% pdfsubject = {Emission and absorption lines of the elements},% pdfkeywords = {Draw the spectrum of elements in a simple way via pgf/TikZ environment. It's possible to draw a desired spectrum, continuous or discrete.},% pdfauthor = {\textcopyright Hugo Gomes},% @@ -80,7 +80,7 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, \end{titlepage} \newpage% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pagestyle{empty}% +\pagestyle{empty}\enlargethispage{\baselineskip}% \pdfbookmark[1]{Table of contents}{pdfContents}% \tableofcontents% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -97,6 +97,18 @@ pdfproducer = {pdfeTeX-1.\the\pdftexversion\pdftexrevision}, \vfill\vfill\vfill\newpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{What's new} +\vspace{-32pt}\ \subsection*{}{\normalfont\large\bfseries\raisebox{1.25pt}{$\mathbf{\blacktriangleright}$}\ In version 3.0.1a}% +\addcontentsline{toc}{subsection}{In version 3.0.1a}% +\begin{itemize} +\item Removed lines data outside the range $10\,nm$ -- $4000\,nm$ (H, He, Be, C, Si, Kr, Sn, I) in LSE data file, which generate a package warning, e.g. +«\texttt{Package pgf-spectra Warning: invalid wavelength (4051.1602nm). The wavelength must be lesser or\\ equal to 4000nm (NIR)... on input line 27}». +\item Fixed chemical symbol label width producing incorrect alignment on consecutive lines for the spectrum of some elements, e.g. +\\ \makebox[\linewidth][s]{\hrulefill} +\\ \txtspecstyle[axis,begin=400,end=700,axis step=20,axis ticks=9,\\ axis color=lightgray,axis font color=black,label,width=.88\string\textwidth,height=0.7cm] +\\ \bs{noindent}\bs{pgfspectra}\lp\red{element=Cl}\rp +\\ \bs{noindent}\bs{pgfspectra}\lp\red{element=Rn}\rp +\\ \makebox[\linewidth][s]{\hrulefill} +\end{itemize} \vspace{-32pt}\ \subsection*{}{\normalfont\large\bfseries\raisebox{1.25pt}{$\mathbf{\blacktriangleright}$}\ In version 3.0.1}% \addcontentsline{toc}{subsection}{In version 3.0.1}% \begin{itemize} @@ -242,7 +254,7 @@ with the following specific keys% \pgfspectraplotshade[options]{name} \\ [10pt]According to the information on the page the listed lines are based on "Line Spectra of the Ele\-ments", Joseph Reader and Charles H. Corliss CRC Handbook of Chemistry and Physics. This book refers that «The table contains the outstanding spectral lines of neutral ($I$) and singly ionized ($II$) atoms of the elements from hydrogen through plutonium ($Z=1-94$); selected strong lines from doubly ionized ($III$), triply ionized ($IV$), and quadruply ionized ($V$) atoms are also included.» \\ [6pt]\makebox[66pt][s]{}\begin{minipage}{\linewidth-66pt}\color{black!70}\small Note: pst-spectra documentation refers "\textit{Line Spectra of the Elements from the Astronomical Data Center of NASA}" as the source material, but I'm assuming the original source is "\textit{Line Spectra of the Ele\-ments}"\textit{, Joseph Reader and Charles H. Corliss CRC Handbook of Chemistry and Physics}, obtained from \href{http://cdsarc.u-strasbg.fr/viz-bin/Cat?VI/16}{http://cdsarc.u-strasbg.fr/viz-bin/Cat?VI/16}.\end{minipage} \\ [12pt]\tikz{\node[text width=\linewidth-4mm,draw=purple,rounded corners=2pt,fill=black!10!purple!10,inner sep=2mm,text justified] {To use this data set load the package \pack{} with the option \verb|LSE| (acronym to Line Spectra of the Elements):% - \\ [6pt]\large\color{purple}\verb|\usepackage[LSE]{pgf-spectra}|\\ [6pt]\small\color{orange}\hfill Number of lines provided: 46065 (see file pgf-spectraDataLSE.pdf)};} + \\ [6pt]\large\color{purple}\verb|\usepackage[LSE]{pgf-spectra}|\\ [6pt]\small\color{orange}\hfill Number of lines provided: 46031 (see file pgf-spectraDataLSE.pdf)};} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Data based on NIST} \tikz{\node[text width=\linewidth-4mm,draw=teal,rounded corners=2pt,fill=black!10,inner sep=2mm,text centered] {This set was obtained from \href{https://physics.nist.gov/PhysRefData/Handbook/Tables/findinglist.htm}{https://physics.nist.gov/PhysRefData/Handbook/Tables/findinglist.htm}};} @@ -2318,7 +2330,7 @@ colorbar horizontal,colormap access=map] \\ \header \\ [-1pt]\linhaimpar{\hyperlink{optionlib:backcolor}{back color}}{background color of the table header, of the \textit{element(s)} column, of the table border lines and of the lines between rows}{color}{black!10}{any named color or user defined color}% \\ [-1pt]\linhapar{\hyperlink{optionlib:databackcolor}{data back color}}{the background color of each data row}{color}{white}{any named color or user defined color}% -\\ [-1pt]\linhaimpar{\hyperlink{optionlib:elementscolumnwidth}{elements column width}}{the width of the \textit{element(s)} column}{length}{2.5em}{up to maximum \TeX\ dimension (16384pt)}% +\\ [-1pt]\linhaimpar{\hyperlink{optionlib:elementscolumnwidth}{elements column\vskip0pt width}}{the width of the \textit{element(s)} column}{length}{2.5em}{up to maximum \TeX\ dimension (16384pt)}% \\ [-1pt]\linhapar{\hyperlink{optionlib:textcolor}{text color}}{the color of all text in the table}{color}{black}{any named color or user defined color}% \\ [-1pt]\linhaimpar{\hyperlink{optionlib:title}{title}}{the title in the table header}{text}{<REDSHIFTED>\\ SPECTRAL LINES OF ELEMENT(S) \ldots}{}% \\ [-1pt]\linhapar{\hyperlink{optionlib:width}{width}}{the total width of the table}{length}{\textbackslash linewidth}{up to maximum \TeX\ dimension (16384pt)}% diff --git a/graphics/pgf/contrib/pgfgantt/README b/graphics/pgf/contrib/pgfgantt/README index b46f25054c..017c065fc6 100644 --- a/graphics/pgf/contrib/pgfgantt/README +++ b/graphics/pgf/contrib/pgfgantt/README @@ -1,19 +1,22 @@ -The pgfgantt package v5.0 +The pgfgantt package v5.0a ------------------------------------------------------------------------------ This package is released under the LaTeX Project Public License v1.3c or later -(see http://www.latex-project.org/lppl.txt). +(see https://www.latex-project.org/lppl.txt). The pgfgantt package provides the ganttchart environment, which draws a Gantt chart within a TikZ picture. The user may add various -elements to the chart, for example, titles, bars, groups, milestones and different -links between these elements. The appearance of the chart elements +elements to the chart, for example, titles, bars, groups, milestones and +different links between these elements. The appearance of the chart elements is highly customizable, and even new chart elements may be defined. -The package makes use of pgf/TikZ (http://tug.ctan.org/pkg/pgf). +The package requires pgf/TikZ (https://ctan.org/pkg/pgf). Installation: Run pgfgantt.ins through LaTeX and follow the instructions. +This package is unmaintained. If you want to volunteer to take over +the maintenance, contact me at https://wolfgang.esser-skala.at/contact/ . + -- -Wolfgang Skala -10th January 2018 +Wolfgang Esser-Skala +2024-06-19 diff --git a/graphics/pgf/contrib/pgfgantt/pgfgantt-doc.pdf b/graphics/pgf/contrib/pgfgantt/pgfgantt-doc.pdf Binary files differnew file mode 100644 index 0000000000..62c09d84c7 --- /dev/null +++ b/graphics/pgf/contrib/pgfgantt/pgfgantt-doc.pdf diff --git a/graphics/pgf/contrib/pgfgantt/pgfgantt.dtx b/graphics/pgf/contrib/pgfgantt/pgfgantt.dtx index 7bb4d52138..e734668f59 100644 --- a/graphics/pgf/contrib/pgfgantt/pgfgantt.dtx +++ b/graphics/pgf/contrib/pgfgantt/pgfgantt.dtx @@ -1,19 +1,19 @@ % \iffalse meta-comment % -% Copyright (C) 2018 by Wolfgang Skala +% Copyright (C) 2024 by Wolfgang Esser-Skala % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % of this license or (at your option) any later version. % The latest version of this license is in -% http://www.latex-project.org/lppl.txt +% https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2008/05/04 or later. % % \fi % % \iffalse -%<pgfgantt>\ProvidesPackage{pgfgantt}[2018/01/10 v5.0 Draw Gantt diagrams with TikZ] +%<pgfgantt>\ProvidesPackage{pgfgantt}[2024/06/19 v5.0a Draw Gantt diagrams with TikZ] %<pgfgantt>\NeedsTeXFormat{LaTeX2e}[1999/12/01] % %<*driver> @@ -181,30 +181,10 @@ \ignorespaces} \let\endoption\endmacro \let\endintmacro\endmacro -\renewenvironment{theglossary}{\glossary@prologue\GlossaryParms\let\item\@idxitem\ignorespaces}{} \makeatother \AtBeginDocument{\lstMakeShortInline|} -\begingroup - \makeatletter - \def\x\begingroup#1\@nil{% - \endgroup - \def\DoNotIndex{% - \begingroup - \@makeother\#% - \@makeother\$% - \@makeother\%% - \@makeother\^% - \@makeother\_% - \@makeother\~% - \@makeother\ % - \@makeother\&% - #1% - }% - }% -\expandafter\x\DoNotIndex\@nil - \usepackage[ hyperfootnotes=false, bookmarksnumbered,% @@ -237,27 +217,13 @@ \def\TikZ{Ti\textit{k}Z} \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} -\def\GlossaryParms{% - \def\pfill##1{} - \parindent 0pt - \parskip 0pt plus 1pt - \small\raggedright - \def\@idxitem{\par\hangindent 30pt}% - \def\subitem{\@idxitem\hspace*{15pt}}% - \def\subsubitem{\@idxitem\hspace*{25pt}}% - \def\indexspace{\par\vspace{10pt plus 2pt minus 3pt}}% -} - \usepackage{pgfgantt} \usetikzlibrary{shadows,shadings,decorations.pathmorphing,shapes.misc} \EnableCrossrefs \CodelineIndex -\RecordChanges \IndexPrologue{\clearpage\section{Index}\markboth{Index}{Index}Bold numbers refer to the page where the corresponding entry is described; italic numbers refer to the code line of the definition; upright numbers refer to the code lines where the entry is used.} -\GlossaryPrologue{\clearpage\section{Change History}\markboth{Change history}{Change history}} - \setkomafont{title}{\rmfamily\bfseries} \addtokomafont{sectioning}{\rmfamily} @@ -270,34 +236,15 @@ %</driver> % \fi % -% \CheckSum{2245} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% % \GetFileInfo{pgfgantt.sty} % % \DoNotIndex{\@auxout,\@empty,\@firstoftwo,\@ifundefined,\@namedef,\@nameuse,\@tempa,\@tempb,\@tempc,\@tempcnta,\@tempcntb,\@tempdima,\advance,\anchor,\backgroundpath,\begin,\begingroup,\bfseries,\breakforeach,\clip,\csname,\def,\divide,\draw,\edef,\else,\end,\endcsname,\endgroup,\expandafter,\fi,\foreach,\global,\i,\ifcase,\ifdate,\ifdim,\ifnum,\ifx,\inheritanchor,\inheritanchorborder,\inheritbackgroundpath,\inheritsavedanchors,\itshape,\kernel@ifnextchar,\let,\multiply,\newcommand,\newcount,\newenvironment,\newif,\node,\normalcolor,\normalfont,\normalsize,\northeast,\outernortheast,\PackageError,\PackageWarning,\path,\pgf@process,\pgf@x,\pgf@y,\pgf@xa,\pgf@xb,\pgf@xc,\pgf@ya,\pgf@yb,\pgf@yc,\pgfcalendar,\pgfcalendarbeginjulian,\pgfcalendarcurrentday,\pgfcalendarcurrentjulian,\pgfcalendarcurrentmonth,\pgfcalendarcurrentweekday,\pgfcalendarcurrentyear,\pgfcalendardatetojulian,\pgfcalendarendiso,\pgfcalendarifdateday,\pgfcalendarifdatemonth,\pgfcalendarifdateyear,\pgfcalendarjuliantodate,\pgfcalendarmatchestrue,\pgfdeclareshape,\pgfextractx,\pgfkeys,\pgfkeyscurrentname,\pgfkeyssetvalue,\pgfkeysvalueof,\pgfmathparse,\pgfmathprintnumber,\pgfmathresult,\pgfmathsetlength,\pgfmathsetmacro,\pgfpathclose,\pgfpathlineto,\pgfpathmoveto,\pgfpoint,\pgfpointadd,\pgfpointanchor,\pgfpointdiff,\pgfpointscale,\pgfqkeys,\protected@write,\relax,\RequirePackage,\savedanchor,\scriptsize,\setcounter,\small,\southwest,\stepcounter,\string,\strut,\t,\the,\tikz@align@newline,\usetikzlibrary,\value,\x,\xdef} % -% +% % \title{Drawing Gantt Charts in \LaTeX\\with \TikZ} % \subtitle{The \texttt{pgfgantt} Package} -% \author{Wolfgang Skala\thanks{Department of Biosciences, University of Salzburg, Austria; \texttt{Wolfgang.Skala@sbg.ac.at}}} -% \date{\fileversion\\\filedate} +% \author{\texorpdfstring{Wolfgang Esser-Skala\thanks{Computational Systems Biology Group, Department of Biosciences and Medical Biology, University of Salzburg, Austria; \texttt{Wolfgang.Esser-Skala@plus.ac.at}}}{Wolfgang Esser-Skala}} +% \date{\fileversion\\\filedate} % \maketitle % % \begin{abstract} @@ -305,72 +252,13 @@ % \end{abstract} % % \clearpage\tableofcontents -% \changes{v5.0}{2018/01/10}{\cs{gantttitlecalendar} now recognizes the \texttt{decade} key.} -% \changes{v5.0}{2018/01/10}{Key \texttt{compress calendar} has been replaced by \texttt{time slot unit} to allow an additional level of compression (year).} -% \changes{v5.0}{2018/01/10}{The command \cs{ganttvrule} allows to draw general vertical rules (similar to the today rule). The keys \texttt{vrule}, \texttt{vrule offset}, \texttt{vrule label font} and \texttt{vrule label text} configure those rules.} -% \changes{v5.0}{2018/01/10}{The key \texttt{expand chart} was added, which specifies that a chart should expand horizontally to a given dimension.} -% \changes{v5.0}{2018/01/10}{The key \texttt{title label text} was added to allow fine-tuning of title label formatting.} -% \changes{v5.0}{2018/01/10}{Made \pack{pgfgantt} robust to \pack{amsgen}'s redefinition of \cs{@ifstar}.} -% \changes{v4.0}{2013/06/01}{The key \texttt{link label anchor} was renamed to \texttt{link label node}.} -% \changes{v4.0}{2013/06/01}{\cs{newganttchartelement} defines completely new chart elements.} -% \changes{v4.0}{2013/06/01}{The key \texttt{progress label anchor} was replaced by \texttt{bar}/\texttt{group}/\texttt{milestone progress label node}.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{bar}/\texttt{group}/\texttt{milestone progress label anchor} were added.} -% \changes{v4.0}{2013/06/01}{The key \texttt{progress label font} was replaced by the keys \texttt{bar}/\texttt{group}/\texttt{milestone progress label font}.} -% \changes{v4.0}{2013/06/01}{The key \texttt{incomplete} was removed.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{group right}/\texttt{left peak} and \texttt{group peaks} were replaced by \texttt{group right}/\texttt{left peak tip position}, \texttt{group peaks tip position}, \texttt{group right}/\texttt{left peak width}, \texttt{group peaks width}, \texttt{group right}/\texttt{left peak height} and \texttt{group peaks height}.} -% \changes{v4.0}{2013/06/01}{Chart elements are now nodes, so the corresponding styles must specify a node shape.} -% \changes{v4.0}{2013/06/01}{The key \texttt{time slot modifier} was renamed to \texttt{chart element start border}.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{bar}/\texttt{group}/\texttt{milestone label inline anchor} were renamed to \texttt{bar}/\texttt{group}/\texttt{milestone inline label node}.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{bar}/\texttt{group}/\texttt{milestone label shape anchor} were renamed to \texttt{bar}/\texttt{group}/\texttt{milestone inline label anchor}.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{bar}/\texttt{group}/\texttt{milestone label anchor} were renamed to \texttt{bar}/\texttt{group}/\texttt{milestone label node}.} -% \changes{v4.0}{2013/06/01}{The key \texttt{title label anchor} was renamed to \texttt{title label node}.} -% \changes{v4.0}{2013/06/01}{\cs{gantttitlecalendar} prints a title calendar.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{calendar week text} and \texttt{compress calendar} were added.} -% \changes{v4.0}{2013/06/01}{The key \texttt{newline shortcut} determines whether the shortcut for line breaks is defined in the chart. In this case, \cs{ganttalignnewline} allows line breaks in the node text.} -% \changes{v4.0}{2013/06/01}{The keys \texttt{today offset}, \texttt{today label font} and \texttt{today label node} were added.} -% \changes{v4.0}{2013/06/01}{The key \texttt{today} accepts a time slot specifier.} -% \changes{v4.0}{2013/06/01}{The canvas is now a node with shape \texttt{rectangle} by default.} -% \changes{v4.0}{2013/06/01}{\cs{newgantttimeslotformat} allows the user to define custom time slot formats.} -% \changes{v4.0}{2013/06/01}{The key \texttt{time slot format/start date} specifies the internal date representation of digit 1 in the \texttt{simple} time slot format.} -% \changes{v4.0}{2013/06/01}{The key \texttt{time slot format/base century} provides the century for autocompletion of two-digit years.} -% \changes{v4.0}{2013/06/01}{The key \texttt{time slot format} changes the format of time slot specifiers.} -% \changes{v4.0}{2013/06/01}{The \texttt{ganttchart} environment now requires two mandatory arguments.} -% -% \changes{v3.0}{2012/01/25}{\cs{setganttlinklabel} specifies the label for all links of a certain type. The \texttt{link label} key locally overrides any label set by this command.} -% \changes{v3.0}{2012/01/25}{The \texttt{chart element} shape supports four additional anchors (\texttt{on left}, \texttt{on top}, \texttt{on right} and \texttt{on bottom}).} -% \changes{v3.0}{2012/01/25}{\cs{@gtt@get} has been renamed to \cs{ganttvalueof} to provide a convenient access for link type authors.} -% \changes{v3.0}{2012/01/25}{\cs{@gtt@keydef} and \cs{@gtt@stylekeydef} have been rewritten to support \texttt{pgfkey}'s abilities to store key values.} -% \changes{v3.0}{2012/01/25}{New auxiliary macros for \cs{newganttlinkstyle}: \cs{xLeft}, \cs{xRight}, \cs{yUpper}, \cs{yLower}, \cs{ganttsetstartanchor}, \cs{ganttsetendanchor} and \cs{ganttlinklabel}.} -% \changes{v3.0}{2012/01/25}{Completely rewrote the code for links (again). Definition of new link types is now possible (via \cs{newganttlinktype} and \cs{newganttlinktypealias}).} -% \changes{v3.0}{2012/01/25}{The \texttt{bar/group/milestone label shape anchor} keys allow for a fine-tuned placement of chart element labels.} -% \changes{v3.0}{2012/01/25}{All style keys (\texttt{canvas}, \texttt{bar} etc.) only support the common \TikZ\ style key syntax.} -% \changes{v2.1}{2011/11/10}{The \texttt{inline} key moves labels close to their respective chart elements.} -% \changes{v2.1}{2011/11/10}{Added three keys (\texttt{bar/group/milestone label inline anchor}) for placing inline labels.} -% \changes{v2.1}{2011/11/10}{The \texttt{ganttchart} environment may be used outside a \texttt{tikzpicture}.} -% \changes{v2.0}{2011/10/10}{The syntax of \cs{ganttlink} was completely changed. The command now takes one optional and \textit{two} mandatory arguments. The latter specify the name of the chart elements to be linked. Consequently, the keys \texttt{b-b}, \texttt{b-m}, \texttt{m-b} and \texttt{m-m} were removed. The keys \texttt{s-s}, \texttt{s-f}, \texttt{f-s} and \texttt{f-f} are now values for the \texttt{link type} key.} -% \changes{v2.0}{2011/10/10}{The optional argument of \cs{ganttnewline} now also accepts a style.} -% \changes{v2.0}{2011/10/10}{Removed the \texttt{hgrid shift} and \texttt{last line height} keys.} -% \changes{v2.0}{2011/10/10}{Removed the \texttt{vgrid lines list} key, as its behaviour can be simulated by an appropriate \meta{style list} for \texttt{vgrid}.} -% \changes{v2.0}{2011/10/10}{Added style lists for the horizontal and vertical grid.} -% \changes{v2.0}{2011/10/10}{Removed the \texttt{vgrid style} key.} -% \changes{v2.0}{2011/10/10}{Completely rewrote the calculation of coordinates.} -% \changes{v2.0}{2011/10/10}{The \texttt{x unit}, \texttt{y unit title} and \texttt{y unit chart} keys specify the width of time slots and the height of title or chart lines, respectively. Thus, one can draw titles whose height differs from the rest of the chart. Furthermore, the $x$- and $y$-dimensions of the chart are independent of the dimensions of the surrounding \texttt{tikzpicture}.} -% \changes{v1.1}{2011/04/18}{\texttt{link tolerance} decides whether a five- or a three-part link is drawn.} -% \changes{v1.1}{2011/04/18}{\texttt{milestone label text} configures the text of a milestone label.} -% \changes{v1.1}{2011/04/18}{\texttt{bar label text} configures the text of a bar label.} -% \changes{v1.1}{2011/04/18}{The \texttt{time slot modifier} key has been added. If set to zero, all $x$-coordinates are interpreted as given, without regarding them as time slots.} -% \changes{v1.1}{2011/04/18}{The \texttt{vgrid lines list} key determines the number of vertical grid lines drawn.} -% \changes{v1.1}{2011/04/18}{The introduction clarifies what I mean by ``a current \textsc{pgf} installation''.} -% \changes{v1.1}{2011/04/18}{\texttt{group label text} configures the text of a group label.} -% \changes{v1.0}{2011/03/01}{Initial release} -% % % \clearpage\section{Introduction} % -% The \pack{pgfgantt} package allows you to draw Gantt charts in \LaTeX. Thus, you can describe simple project schedules without having to include images produced by external programs. Similar to Martin Kumm's \pack{gantt} package\footnote{\url{http://www.martin-kumm.de/tex_gantt_package.php}} (which inspired \pack{pgfgantt}'s fundamental aspects), \pack{pgfgantt} bases upon \textsc{pgf} and its \TikZ\ frontend\footnote{\url{http://ctan.org/tex-archive/graphics/pgf/}}. Besides, it provides a comprehensive (and portable) alternative to \pack{pst-gantt}\footnote{\url{http://ctan.org/tex-archive/graphics/pstricks/contrib/pst-gantt/}}. +% The \pack{pgfgantt} package allows you to draw Gantt charts in \LaTeX. Thus, you can describe simple project schedules without having to include images produced by external programs. Similar to Martin Kumm's \pack{gantt} package\footnote{\url{https://www.martin-kumm.de/tex_gantt_package.php}} (which inspired \pack{pgfgantt}'s fundamental aspects), \pack{pgfgantt} bases upon \textsc{pgf} and its \TikZ\ frontend\footnote{\url{https://ctan.org/pkg/pgf/}}. Besides, it provides a comprehensive (and portable) alternative to \pack{pst-gantt}\footnote{\url{https://ctan.org/pkg/pst-gantt/}}. % % \paragraph{Requirements} \pack{pgfgantt} requires a \textit{current} \textsc{pgf} installation. Note that the version number must at least be 2.10, dated October 25th, 2010. Furthermore, \pack{pgfgantt}~\fileversion\ and above is not fully downwards compatible. -% +% % \paragraph{Suggestions} Please report any suggestions and improvements at the project's GitHub page (\url{https://github.com/skafdasschaf/latex-pgfgantt}). % % \paragraph{Acknowledgements} I would like to thank the following people for their ideas concerning new features: @@ -425,7 +313,7 @@ % \end{ganttchart} % \end{center} % -% +% % \subsection{Specifying Keys} % % \textit{Keys} (sometimes called \textit{options}) modify the output from \pack{pgfgantt}'s commands. You may specify a key in two ways: (1) Pass it to the optional argument present in each command, e.\,g. @@ -439,7 +327,7 @@ % Since \pack{pgfgantt} uses the \pack{pgfkeys} package for key management, all its keys reside in the |/pgfgantt/| path. However, if you set your keys by one of the methods explained above, this path is automatically prepended to each key. % % \subsection{The Canvas} -% +% % Let us have a look at the basic anatomy of a Gantt chart and define some common terms. Each \textit{chart} consists of several \textit{lines}, which may contain one or more \textit{title elements} (at the top) or \textit{chart elements} (such as bars, groups and milestones). From left to right, the chart is divided into an integer number of \textit{time slots} that represent the basic $x$-unit. % % The \DescribeEnv{ganttchart}|ganttchart| environment draws a single Gantt chart: @@ -449,7 +337,7 @@ % \end{ganttchart} % \end{texcode} % The environment has one optional argument, which specifies the \meta{options} for the chart, and two mandatory arguments, which indicate the start and end time slot specifier. Although you will often put a |ganttchart| into a |tikzpicture| environment, you may actually use this environment on its own. \pack{pgfgantt} checks whether a chart is surrounded by a |tikzpicture| and adds this environment if necessary. -% +% % \begin{key}{time slot format}{\meta{format}}{simple} % Sets the \meta{format} of time slot specifiers. A \textbf{time slot specifier} (abbreviated ``tss'') denotes a certain time slot along the horizontal axis. \pack{pgfgantt} defines a range of formats: % \begin{itemize} @@ -469,23 +357,23 @@ % \textit{Examples:} \texttt{2013-03-14}, \texttt{13/03/14}, \texttt{2013.3.14} % \end{itemize} % \end{key} -% +% % \noindent Two subkeys of \opt{time slot format} let you configure \pack{pgfgantt}'s behavior regarding automatic completion of abbreviated dates: -% +% % \begin{key}{time slot format/base century}{\meta{year}}{2000} % Sets the century for auto-completion of two-digit years (used by the time slot formats \texttt{little-endian}, \texttt{middle-endian} and \texttt{big-endian}). Consequently, default settings convert a year like \texttt{13} to \texttt{2013}. % \end{key} -% +% % \begin{key}{time slot format/start date}{\meta{ISO-standard date}}{2000-01-01} % Numbers denoting time slots in the \texttt{simple} format are internally converted to a date, where \texttt{1} is converted to \meta{ISO-standard date}, \texttt{2} to $\meta{ISO-standard date} + 1$ etc. % \end{key} -% +% % \bigskip\noindent Advanced users may add their own time slot \DescribeMacro{\newgantttimeslotformat}formats: % \begin{texcode} % \newgantttimeslotformat`\marg{name}\marg{converter code}' % \end{texcode} % Defines a new time slot format called \meta{name}. The \meta{converter code} must convert the time slot specifier stored in |#1| to its corresponding Julian day number (see section~57 of the \TikZ\ manual) and assign this number to the count register |#2|. The \meta{converter code} is executed within a \TeX\ group, so you may use temporary macros like |\@tempa|, counts like |\@tempcnta| etc. -% +% % For example, we would like to create a format called \texttt{stardate}, where dates are given as ``\meta{year}\texttt{.}\meta{day of year}''. Thus, we will enter 24th February 2259 as ``\texttt{2259.55}''. To this end, we write the following code: % \par\bigskip\noindent % \begin{texcode}[numbers=left] @@ -498,10 +386,10 @@ % \advance#2 by-1\relax% % \advance#2 by\stardateday\relax% % } -% +% % \begin{ganttchart}[ % hgrid, -% vgrid, +% vgrid, % time slot format=stardate % ]{2259.55}{2259.67} % \gantttitlecalendar{year, month=name, day} \\ @@ -517,18 +405,18 @@ % \advance#2 by-1\relax% % \advance#2 by\stardateday\relax% % } -% +% % \begin{ganttchart}[ % hgrid, -% vgrid, +% vgrid, % time slot format=stardate % ]{2259.55}{2259.67} % \gantttitlecalendar{year, month=name, day} \\ % \end{ganttchart} % \end{center} -% +% % \noindent The macro |\decomposestardate| (lines 2--4) has two delimited arguments: The first one is delimited by a period and the second one by |\relax|. The call in line 5 decomposes the tss stored in |#1| and saves the day in |\stardateday| and the year in |\stardateyear|. |\pgfcalendardatetojulian| (section~57.1.1 of the \TikZ\ manual) calculates the Julian date of the first day of |\stardateyear| and stores it in |#2| (line 6). We then subtract 1 from |#2| (line 7) and add the |\stardateday| (line 8). -% +% % \begin{key}[./style=]{canvas}{\meta{style}}{shape=rectangle, draw, fill=white} % The \opt{canvas} key changes the appearance of the canvas. \meta{style} is a list of \TikZ\ keys suitable for the \meta{options} of a \TikZ\ node (such as |shape=rectangle|, |fill| or |draw|; see chapter~16 of the \TikZ\ manual). By default, the canvas is a white rectangle with a black frame. % \par\bigskip\noindent @@ -617,9 +505,9 @@ % \opt{hgrid} draws a horizontal grid which starts immediately below the last title element. The key can be specified in four different ways: Firstly, \opt{hgrid}|=false| eliminates the horizontal grid. You may omit this declaration, since it is the default. Secondly, both \opt{hgrid} and \opt{hgrid}|=true| activate the horizontal grid, which is then drawn in the default style |dotted|. Finally, \opt{hgrid}|=|\meta{style list} draws the horizontal grid in the given \meta{style list} (see below). % % \opt{hgrid style} changes the style of single horizontal grid lines that are drawn with |\ganttnewline[grid]| (see section~\ref{ssc:LineBreaks}). -% +% % The \opt{vgrid} key governs the vertical grid; otherwise, use it exactly like \opt{hgrid}. -% +% % \textit{Style lists} allow you to draw the grid lines in different styles. Each style list consists of several \textit{style list items} separated by a comma. A style list item has the general syntax |*{|\meta{n}|}{|\meta{style}|}| and orders the package to repeat the \meta{style} \meta{n}-times. (This syntax is reminiscent of column specifications in a |tabular| environment.) Thus, the list |*2{red}, *1{green}, *{10}{blue, dashed}| instructs \pack{pgfgantt} to draw first two red vertical grid lines, then a green one and finally ten dashed blue lines. If any grid lines remain to be drawn at the end of the list, the package starts again at the beginning of the list. % \par\bigskip\noindent % \begin{texcode} @@ -642,7 +530,7 @@ % \ganttbar{}{9}{20} % \end{ganttchart} % \end{center} -% +% % In most situations, you can omit the multiplier |*1|. Hence, the following style lists are equal:\\ % |{*1{red}, *1{blue, dashed}}|\\ % |{{red}, {blue, dashed}}|\\ @@ -653,7 +541,7 @@ % \begin{minipage}[t]{.45\textwidth} % \begin{texcode} % % wrong code -% +% % \begin{ganttchart}[ % hgrid=true, % vgrid={{red, dotted}} @@ -667,7 +555,7 @@ % \begin{minipage}[t]{.45\textwidth} % \begin{texcode} % % correct code -% +% % \begin{ganttchart}[ % hgrid=true, % vgrid={*1{red, dotted}} @@ -717,7 +605,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}{today}{\meta{tss}}{none} % \keyline{today offset}{\meta{number}}{1} % \keyline[/.style=]{today rule}{\meta{style}}{dashed, line width=1pt} @@ -787,13 +675,13 @@ % \end{ganttchart} % \end{center} % \end{key} -% -% +% +% % \subsection{Line Breaks between Chart Elements} % \label{ssc:LineBreaks} % % \pack{pgfgantt} does not automatically begin a new line after finishing a \DescribeMacro{\ganttnewline}chart element. Instead, you must insert an explicit line break with |\ganttnewline|. -% +% % \begin{key}{newline shortcut}{\meta{boolean}}{true} % If true, \DescribeMacro{\\}|\\| is defined as a shortcut for |\ganttnewline| within a |ganttchart| environment, so that the syntax is reminiscent of \LaTeX's |tabular| enviroment. % \par\bigskip\noindent @@ -868,7 +756,7 @@ % }{1}{3} % \end{ganttchart} % \end{center} -% +% % Even if you prefer a canvas without a horizontal grid, you may nevertheless want to separate certain lines by a grid rule. For this purpose, specify the optional argument |[grid]| for |\ganttnewline| (or |\\|), which draws a grid rule in \opt{hgrid style} between the current and the new line. Alternatively, directly give the desired style as optional argument. % \par\bigskip\noindent % \begin{texcode} @@ -921,7 +809,7 @@ % \gantttitlelist`\oarg{options}\marg{pgffor list}\marg{length of each element}' % \end{texcode} % This macro generates one title element for each element of the \meta{pgffor list}. The second mandatory argument specifies the \meta{length of each element}. Refer to section~56 of the \TikZ\ manual for the detailed syntax for the \meta{pgffor list}. -% +% % A simple application is to draw twelve title elements that contain the numbers from 1 to 12. The \meta{pgffor list} is |1,...,12|. % \par\bigskip\noindent % \begin{texcode} @@ -942,9 +830,9 @@ % \begin{texcode} % \gantttitle{1}{1} \gantttitle{2}{1} `\dots' \gantttitle{12}{1} \\ % \end{texcode} -% +% % As an advanced example, we will draw seven title elements containing the names of the weekdays (``Mon'' to ``Sun''). To this end, we introduce an additional key: -% +% % \begin{key}{title list options}{\meta{pgffor options}}{var=\string\x, evaluate=\string\x} % Changes the \meta{pgffor options} of the |\foreach| command called by |\gantttitlelist| (see section~56 of the \TikZ\ manual). The macro that yields the labels to be printed by |\gantttitlelist| must be called |\x|. % \par\bigskip\noindent\shorthandoff{"} @@ -971,7 +859,7 @@ % \end{ganttchart} % \end{center}\shorthandon{"} % \end{key} -% +% % \bigskip While you actually may build any chart title with the two commands described previously, \DescribeMacro{\gantttitlecalendar}|\gantttitlecalendar| saves a lot of time when you wish to create elaborate calendars: % \begin{texcode} % \gantttitlecalendar`\oarg{options}\marg{calendar lines}' @@ -999,7 +887,7 @@ % \bottomrule % \end{tabular} % \end{center} -% +% % The \meta{number} for the \texttt{week} line type is the number of the first week in the calendar. % \par\bigskip\noindent % \begin{texcode} @@ -1024,16 +912,16 @@ % \ganttbar{}{2013-01-14}{2013-01-17} % \end{ganttchart}\hspace*{-51.4pt} % \end{center} -% +% % You can easily add new output formats for \texttt{month} and \texttt{weekday}. The predefined ones use the macros described in section~57.1.3 of the \TikZ\ manual. For example, |weekday=name| calls |\pgfcalendarweekdayname|. Thus, new macros called |\pgfcalendarmonth|\textcolor{RoyalBlue}{\meta{output format}} or |\pgfcalendarweekday|\textcolor{RoyalBlue}{\meta{output format}} will provide additional \meta{output format}s for |month| and |weekday|, respectively. -% +% % A weekday output format called |letter|, which displays a weekday as single letter, might be implemented as follows: % \par\bigskip\noindent % \begin{texcode} % \def\pgfcalendarweekdayletter#1{% % \ifcase#1M\or T\or W\or T\or F\or S\or S\fi% % } -% +% % \begin{ganttchart}[ % hgrid, % vgrid, @@ -1050,7 +938,7 @@ % \def\pgfcalendarweekdayletter#1{% % \ifcase#1M\or T\or W\or T\or F\or S\or S\fi% % } -% +% % \begin{ganttchart}[ % hgrid, % vgrid, @@ -1063,7 +951,7 @@ % } % \end{ganttchart} % \end{center} -% +% % \begin{key}{calendar week text}{\meta{format}}{Week\string~\string\currentweek} % Changes the text displayed in a week title element. In \meta{format}, four additional macros are available: \DescribeMacro{\currentweek}|\currentweek| is the current week number; \DescribeMacro{\startyear}|\startyear|, \DescribeMacro{\startmonth}|\startmonth| and \DescribeMacro{\startday}|\startday| expand to the year, month and day of the current week's Monday. % \par\bigskip\noindent @@ -1100,7 +988,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}{time slot unit}{\texttt{day}\space\textbar\space\texttt{month}\space\textbar\space\texttt{year}}{day} % By default, one \textit{calendar day} is one time slot wide. With \opt{time slot unit}\texttt{=month}, one \textit{month} corresponds to one time slot. Consequently, in such calendars only |year| and |month| are sensible line types for |\gantttitlecalendar|, and the time slot format \texttt{isodate-yearmonth} is especially suited. % \par\bigskip\noindent @@ -1226,7 +1114,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}{title left shift}{\meta{factor}}{0} % \keyline{title right shift}{\meta{factor}}{0} % \keyline{title top shift}{\meta{factor}}{0} @@ -1394,7 +1282,7 @@ % % % \subsection{Predefined Chart Elements} -% +% % \pack{pgfgantt} predefines three chart elements: % \begin{enumerate} % \item \DescribeMacro{\ganttbar}\textit{Bars} indicate the duration of a task or one of its parts. @@ -1411,7 +1299,7 @@ % \end{texcode} % \end{enumerate} % Each of these macros draws a \meta{label}ed chart element from the \meta{start tss} to the \meta{end tss} (or at the given \meta{tss} in case of |\ganttmilestone|). -% +% % \par\bigskip\noindent % \begin{texcode} % \begin{ganttchart}[vgrid, hgrid]{1}{12} @@ -1443,7 +1331,7 @@ % \begin{minipage}[t]{.49\textwidth} % \begin{texcode} % % Short version -% +% % \begin{ganttchart}[ % vgrid, % hgrid @@ -1459,7 +1347,7 @@ % \begin{minipage}[t]{.47\textwidth} % \begin{texcode} % % Long version -% +% % \begin{ganttchart}[ % vgrid, % hgrid @@ -1475,7 +1363,7 @@ % \end{ganttchart} % \end{texcode} % \end{minipage} -% +% % \begin{center} % \begin{ganttchart}[ % vgrid, @@ -1488,7 +1376,7 @@ % \ganttlinkedbar{Task 3}{7}{11} % \end{ganttchart} % \end{center} -% +% % \begin{key}{chart element start border}{\texttt{left}\space\textbar\space\texttt{right}}{left} % Determines which border of the start time slot a chart element touches. \texttt{left} is the behavior usually expected, while \texttt{right} strictly interprets the start time slot as an $x$-coordinate. % \par\bigskip\noindent @@ -1511,10 +1399,10 @@ % \end{ganttchart} % \end{center} % \end{key} -% -% +% +% % \subsubsection{Options: Chart Element Appearance} -% +% % The following options are similar for all predefined (and user-defined) chart elements: % % \begin{key}[/.style=]{bar}{\meta{style}}{shape=ganttbar, inner sep=0pt, draw, fill=white} @@ -1558,9 +1446,9 @@ % \end{center} % \end{key} % -% +% % \subsubsection{Options: Label Formatting} -% +% % \begin{key}{bar label text}{\meta{text}}{\string\strut\#1} % \keyline{group label text}{\meta{text}}{\string\strut\#1} % \keyline{milestone label text}{\meta{text}}{\string\strut\#1} @@ -1611,7 +1499,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}{inline}{\meta{boolean}}{false} % \keyline{bar inline label anchor}{\meta{anchor}}{center} % \keyline{group inline label anchor}{\meta{anchor}}{center} @@ -1650,10 +1538,10 @@ % \end{ganttchart} % \end{center} % \end{key} -% -% +% +% % \subsubsection{Options: Chart Element Positioning} -% +% % \begin{key}{bar left shift}{\meta{factor}}{0} % \keyline{bar right shift}{\meta{factor}}{0} % \keyline{bar top shift}{\meta{factor}}{.3} @@ -1667,7 +1555,7 @@ % \keyline{milestone top shift}{\meta{factor}}{.3} % \keyline{milestone height}{\meta{factor}}{.4} % Shift the coordinates of a chart element's borders (\opt{\dots\ shift}) and change its height (\opt{\dots\ height}). -% +% % \begin{center} % \begin{tikzpicture}[x=.5cm, y=1cm] % \begin{ganttchart}[vgrid, hgrid]{1}{8} @@ -1701,7 +1589,7 @@ % \draw[-latex,teal] (8,-4.2) node[right] {End time slot (6)} -- (6,-3.8); % \end{tikzpicture} % \end{center} -% +% % The three following figures illustrate the distances modified by these keys. The first figure shows a Gantt chart with a bar, two lines and one time slot. % \begin{center} % \begin{tikzpicture}[x=8cm, y=2cm] @@ -1809,7 +1697,7 @@ % -- (.4,-.85); % \end{tikzpicture} % \end{center} -% +% % \begin{key}{group right peak tip position}{\meta{fraction}}{0.5} % \keyline{group right peak width}{\meta{factor}}{0.4} % \keyline{group right peak height}{\meta{factor}}{0.1} @@ -1820,7 +1708,7 @@ % \keyline{group peaks width}{\meta{factor}}{\textrm{(none)}} % \keyline{group peaks height}{\meta{factor}}{\textrm{(none)}} % Change the appearance of the peaks at both ends of a group. By default, both the left and right peak are 0.4~units wide and 0.1~units high, their tips lie between the peak sides. The \opt{group peaks \dots} keys set the dimensions for both peaks simultaneously. The figure below exemplifies the keys that apply to the left peak. -% +% % \begin{center} % \begin{tikzpicture}[x=8cm, y=2cm] % \small @@ -1845,7 +1733,7 @@ % \end{tikzpicture} % \end{center} % \end{key} -% +% % For example, you might devise the following layout: Bars are small and rounded; they do not touch the borders of their start and end time slots. Groups stay within the start and end time slot, and the peaks are more acute. % \par\bigskip\noindent % \begin{texcode} @@ -1887,12 +1775,12 @@ % \end{ganttchart} % \end{center} % \end{key} -% -% +% +% % \subsubsection{Options: Progress} -% +% % The \textit{progress} of a chart element illustrates the extent to which this element has been completed. -% +% % \begin{key}{progress}{\texttt{none}\space\textbar\space\texttt{today}\space\textbar\space\meta{number}}{none} % Indicates that a chart element is \meta{number} percent complete. The value \texttt{none} turns progress calculations off. % \par\bigskip\noindent @@ -1950,7 +1838,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}[/.style=]{bar incomplete}{\meta{style}}{/pgfgantt/bar, fill=black!25} % \keyline[/.style=]{group incomplete}{\meta{style}}{/pgfgantt/group, fill=black!25} % \keyline[/.style=]{milestone incomplete}{\meta{style}}{/pgfgantt/milestone, fill=black!25} @@ -1993,7 +1881,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}{progress label text}{\meta{text}}{\string\pgfmathprintnumber[precision=0, verbatim]\{\#1\}\string\% complete} % \keyline{bar progress label anchor}{\meta{anchor}}{east} % \keyline{bar progress label font}{\meta{font commands}}{\string\scriptsize} @@ -2047,16 +1935,16 @@ % \end{ganttchart} % \end{center} % \end{key} -% -% +% +% % \subsubsection{New Node Shapes} % \label{sss:NewNodeShapes} -% +% % \pack{pgfgantt} defines three new node shapes: -% +% % \bigskip\noindent % (1) The \texttt{ganttbar} node shape derives from shape \texttt{rectangle} (section~48.2 of the \TikZ\ manual). It provides four additional anchors: \texttt{on top}, \texttt{on bottom}, \texttt{on left} and \texttt{on right}. The \meta{fraction} set by the following keys indicates a position between the left and right (for \texttt{on top} and \texttt{on bottom}) or upper and lower border (for \texttt{on left} and \texttt{on right}), similarly to the \opt{/tikz/pos} key. -% +% % \begin{key}{on top fraction}{\meta{fraction}}{0.5} % \keyline{on bottom fraction}{\meta{fraction}}{0.5} % \keyline{on left fraction}{\meta{fraction}}{0.5} @@ -2097,7 +1985,7 @@ % \end{tikzpicture} % \end{center} % \end{key} -% +% % \bigskip\noindent % (2) The \texttt{ganttgroup} node shape also derives from shape \texttt{rectangle}. It provides the additional anchors \texttt{on top}, \texttt{on bottom}, \texttt{on left}, \texttt{on right} (same as above), \texttt{left peak} and \texttt{right peak}. % \begin{center} @@ -2138,7 +2026,7 @@ % node [\placement] {\scriptsize\texttt{(s.\anchor)}}; % \end{tikzpicture} % \end{center} -% +% % \bigskip\noindent % (3) The \texttt{ganttmilestone} node shape derives from shape \texttt{diamond} (section~48.3 of the \TikZ\ manual), but does not consider any aspect ratio. It provides the additional anchors \texttt{on top}, \texttt{on bottom}, \texttt{on left} and \texttt{on right} (same as above). % \begin{center} @@ -2172,19 +2060,19 @@ % node [\placement] {\scriptsize\texttt{(s.\anchor)}}; % \end{tikzpicture} % \end{center} -% -% +% +% % \subsection{Defining Custom Chart Elements} -% +% % You may define completely new chart elements with % \begin{texcode} % \newganttchartelement`\marg{name}\marg{new default key values}' % \newganttchartelement*`\marg{name}\marg{new default key values}' % \end{texcode} % \DescribeMacro{\newganttchartelement}|\newganttchartelement| (unstarred) defines a new chart element |\gantt|\textcolor{RoyalBlue}{\meta{name}} and the corresponding |\ganttlinked|\textcolor{RoyalBlue}{\meta{name}}. These chart element macros take one optional argument \meta{options} and \textit{three} mandatory arguments \meta{label}, \meta{start tss} and \meta{end tss} (like |\ganttbar|). -% +% % Chart element macros defined by the starred form, \DescribeMacro{\newganttchartelement*}|\newganttchartelement*|, take the same single optional argument, but \textit{two} mandatory arguments \meta{label} and \meta{tss} (like |\ganttmilestone|). -% +% % For each new chart element, |\newganttchartelement| also introduces a set of nine value-storing keys and five style keys and assigns default values to them: % \begin{center} % \begin{tabular}{l >{\ttfamily}l} @@ -2212,13 +2100,13 @@ % \end{tabular}\hspace*{-120pt} % \end{center} % Consequently, a new chart element will look like the standard |\ganttbar| unless you introduce some \meta{new default key values}. -% +% % Let us define a new chart element called ``foobar'', which is basically a fancy-colored and -shaped bar: % \par\bigskip\noindent % \begin{texcode} % \definecolor{foobarblue}{RGB}{0,153,255} % \definecolor{foobaryellow}{RGB}{234,187,0} -% +% % \newganttchartelement{foobar}{ % foobar/.style={ % shape=rounded rectangle, @@ -2237,7 +2125,7 @@ % foobar left shift=-.1, % foobar right shift=.1 % } -% +% % \begin{ganttchart}[ % vgrid, % progress=today, @@ -2253,7 +2141,7 @@ % \begin{center} % \definecolor{foobarblue}{RGB}{0,153,255} % \definecolor{foobaryellow}{RGB}{234,187,0} -% +% % \newganttchartelement{foobar}{ % foobar/.style={ % shape=rounded rectangle, @@ -2272,7 +2160,7 @@ % foobar left shift=-.1, % foobar right shift=.1 % } -% +% % \begin{ganttchart}[ % vgrid, % progress=today, @@ -2285,7 +2173,7 @@ % \ganttlinkedfoobar{Foobar 3}{9}{12} % \end{ganttchart} % \end{center} -% +% % % \subsection{Links} % \label{ssc:Links} @@ -2294,7 +2182,7 @@ % \begin{texcode} % \ganttlink`\oarg{options}\marg{start element name}\marg{end element name}' % \end{texcode} -% +% % \begin{key}{name}{\meta{name}}{\textrm{(empty)}} % The \DescribeMacro{\ganttlink}|\ganttlink| macro connects two elements, which are specified by their \meta{name}s. By default, chart elements are named automatically: The first one receives the name \texttt{elem0}, the second one is called \texttt{elem1} and so on. However, the \opt{name} key allows you to assign a name to each chart element. % \par\bigskip\noindent @@ -2348,7 +2236,7 @@ % \end{ganttchart} % \end{center} % \end{key} -% +% % \begin{key}[/.style=]{link}{\meta{style}}{-latex, rounded corners=1pt} % Sets the appearance of the link. % \par\bigskip\noindent @@ -2490,7 +2378,7 @@ % \DescribeMacro{\newganttlinktype}It defines a new link \meta{type} which is drawn by the given \meta{TikZ code}. When you write this code, you do not have to know the final absolute coordinates of each link type instance. On the contrary, several commands that are only available in the second argument of |\newganttlinktype| help you to design generic link types: % \begin{itemize} % \item First, you have to choose the border points of the chart elements the link will connect. For this purpose, \DescribeMacro{\ganttsetstartanchor}|\ganttsetstartanchor{|\meta{anchor}|}| and \DescribeMacro{\ganttsetendanchor}|\ganttsetendanchor{|\meta{anchor}|}| select an \meta{anchor} of the start and end element, respectively. See the figures in section~\ref{sss:NewNodeShapes} for possible \meta{anchor}s of the default chart element shapes. You may specify a certain \meta{fraction} for anchors like \texttt{on top} by |\ganttsetstartanchor{on top=|\meta{fraction}|}|. -% +% % \pack{pgfgantt} sets the default anchors to |\ganttsetstartanchor{east}| and |\ganttsetendanchor{west}|, so you even may omit these two commands. % \item The two macro pairs \DescribeMacro{\xLeft}|\xLeft|/\DescribeMacro{\yUpper}|\yUpper| and \DescribeMacro{\xRight}|\xRight|/\DescribeMacro{\yLower}|\yLower| provide the $x$- and $y$-coordinates of the link start and end points, respectively. % \begin{center}\makeatletter @@ -2509,7 +2397,7 @@ % \end{itemize} % \end{enumerate} % \end{key} -% +% % \begin{texcode} % \newganttlinktypealias`\marg{new type}\marg{existing type}' % \end{texcode} @@ -2524,7 +2412,7 @@ % \newganttlinktypealias{sta-to-sta}{s-s} % \newganttlinktypealias{fin-to-fin}{f-f} % \setganttlinklabel{fin-to-fin}{f2f} -% +% % \begin{ganttchart}[vgrid, hgrid]{1}{12} % \gantttitle{Title}{12} \\ % \ganttbar{Task 1}{2}{3} \\ @@ -2538,7 +2426,7 @@ % \newganttlinktypealias{sta-to-sta}{s-s} % \newganttlinktypealias{fin-to-fin}{f-f} % \setganttlinklabel{fin-to-fin}{f2f} -% +% % \begin{ganttchart}[vgrid, hgrid]{1}{12} % \gantttitle{Title}{12} \\ % \ganttbar{Task 1}{2}{3} \\ @@ -2552,7 +2440,7 @@ % \par\bigskip\noindent % \begin{texcode} % \usetikzlibrary{decorations.pathmorphing} -% +% % \newganttlinktype{zigzag}{ % \ganttsetstartanchor{on right=1} % \ganttsetendanchor{on left=0} @@ -2560,7 +2448,7 @@ % (\xLeft, \yUpper) -- % (\xRight, \yLower); % } -% +% % \begin{ganttchart}[vgrid, hgrid]{1}{12} % \gantttitle{Title}{12} \\ % \ganttbar{Task 1}{2}{3} \\ @@ -2612,7 +2500,7 @@ % (\xRight, \yLower); % } % \setganttlinklabel{drur}{a fancy link} -% +% % \begin{ganttchart}[ % vgrid, % hgrid, @@ -2648,7 +2536,7 @@ % (\xRight, \yLower); % } % \setganttlinklabel{drur}{a fancy link} -% +% % \begin{ganttchart}[ % vgrid, % hgrid, @@ -2663,7 +2551,7 @@ % \end{ganttchart} % \end{center} % (Please remove the comments if you copy the code above -- they will confuse \TikZ\ and generate tons of errors.) -% +% % \begin{key}{link label}{\meta{label}}{\textrm{(empty)}} % \keyline{link label font}{\meta{font commands}}{\string\scriptsize\string\itshape} % \keyline[/.style=]{link label node}{\meta{options}}{anchor=west, font=\string\ganttvalueof\{link label font\}} @@ -2812,9 +2700,9 @@ % \ganttlink[link mid=.159]{pp}{T2A} % \end{ganttchart} % \end{center} -% +% % \bigskip -% The second example demonstrates that \pack{pgfgantt} is really flexible: Even an appearance quite different from the standard layout is possible. (More precisely, the code below tries to reproduce the Gantt chart from the English Wikipedia site, see \url{http://en.wikipedia.org/wiki/Gantt_chart}.) +% The second example demonstrates that \pack{pgfgantt} is really flexible: Even an appearance quite different from the standard layout is possible. (More precisely, the code below tries to reproduce the Gantt chart from the English Wikipedia site, see \url{https://en.wikipedia.org/wiki/Gantt_chart}.) % \par\bigskip\noindent % \begin{texcode} % \definecolor{barblue}{RGB}{153,204,254} @@ -2967,8 +2855,8 @@ % \end{ganttchart} % \end{center} % -% -% \StopEventually{\PrintIndex\PrintChanges} +% +% \StopEventually{\PrintIndex} % \lstDeleteShortInline| % \MakeShortVerb{\|} % \clearpage\section{Implementation} @@ -3050,7 +2938,7 @@ % % % \subsection{The Horizontal and Vertical Grid} -% +% % \begin{intmacro}{\gtt@currentline} % \begin{intmacro}{\gtt@lasttitleline} % \begin{intmacro}{\gtt@currgrid} @@ -3202,7 +3090,7 @@ % % % \subsection{Time Slot Formats} -% +% % \begin{intmacro}{\gtt@smugglecount} % |\gtt@smugglecount|\marg{count} smuggles the local value of a count register over the end of a \TeX\ group. % \begin{macrocode} @@ -3390,11 +3278,11 @@ % \end{macrocode} % \end{intmacro} % \end{option} -% -% +% +% % \subsection{The Main Environment} % \label{ssc:ImplMain} -% +% % \begin{option}{x unit} % \begin{option}{y unit title} % \begin{option}{y unit chart} @@ -4222,10 +4110,10 @@ } % \end{macrocode} -% -% +% +% % \subsection{Chart Elements} -% +% % \begin{option}{progress} % \begin{intmacro}{\gtt@progress} % \begin{option}{progress label text} @@ -4606,7 +4494,7 @@ % \end{option} % \end{macro} % \end{macro} -% \clearpage +% \clearpage % \begin{macro}{\ganttgroup} % \begin{macro}{\ganttlinkedgroup} % \begin{option}{group} @@ -4772,10 +4660,10 @@ % \end{option} % \end{macro} % \end{macro} -% -% +% +% % \subsection{Node Shapes} -% +% % \begin{option}{on top fraction} % \begin{option}{on bottom fraction} % \begin{option}{on left fraction} @@ -5067,11 +4955,11 @@ } % \end{macrocode} -% +% % % \subsection{Links} % \label{ssc:ImplLinks} -% +% % \begin{option}{link} % \begin{option}{link type} % \begin{option}{link label} @@ -5302,7 +5190,7 @@ % \end{macrocode} % \end{intmacro} % \begin{intmacro}{\@gtt@link@anchor} -% We need the following keys for setting the start and end anchor of a link: Whenever a key |/pgfgantt/link anchor/|\meta{anchor} is undefined, \pack{pgfgantt} stores \meta{anchor} in |\@gtt@link@anchor|. +% We need the following keys for setting the start and end anchor of a link: Whenever a key |/pgfgantt/link anchor/|\meta{anchor} is undefined, \pack{pgfgantt} stores \meta{anchor} in |\@gtt@link@anchor|. % \begin{macrocode} \ganttset{% link anchor/.unknown/.code={% diff --git a/graphics/pgf/contrib/pgfgantt/pgfgantt.ins b/graphics/pgf/contrib/pgfgantt/pgfgantt.ins index 6e4aa0dd2b..2c6c6a4c03 100644 --- a/graphics/pgf/contrib/pgfgantt/pgfgantt.ins +++ b/graphics/pgf/contrib/pgfgantt/pgfgantt.ins @@ -1,6 +1,6 @@ %% pgfgantt.ins %% -%% Copyright (C) 2083 by Wolfgang Skala +%% Copyright (C) 2024 by Wolfgang Esser-Skala %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -10,9 +10,7 @@ %% and version 1.3c or later is part of all distributions of LaTeX %% version 2008/05/04 or later. %% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is Wolfgang Skala. +%% This work has the LPPL maintenance status `unmaintained'. %% %% This work consists of the files pgfgantt.dtx and pgfgantt.ins %% and the derived file pgfgantt.sty. @@ -24,7 +22,7 @@ \preamble -Copyright (C) 2018 by Wolfgang Skala +Copyright (C) 2024 by Wolfgang Esser-Skala This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c @@ -51,11 +49,10 @@ version 2008/05/04 or later. \Msg{*} \Msg{* pdflatex pgfgantt.dtx} \Msg{* makeindex -s gind.ist -o pgfgantt.ind pgfgantt.idx} -\Msg{* makeindex -s gglo.ist -o pgfgantt.gls pgfgantt.glo} \Msg{* pdflatex pgfgantt.dtx (2x)} \Msg{*} \Msg{* Happy TeXing!} \Msg{*} \Msg{****************************************************} -\endbatchfile
\ No newline at end of file +\endbatchfile diff --git a/graphics/pgf/contrib/pgfgantt/pgfgantt.pdf b/graphics/pgf/contrib/pgfgantt/pgfgantt.pdf Binary files differdeleted file mode 100644 index 5536734a4c..0000000000 --- a/graphics/pgf/contrib/pgfgantt/pgfgantt.pdf +++ /dev/null diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/DEPENDS.txt b/graphics/pgf/contrib/pgfplotsthemebeamer/DEPENDS.txt new file mode 100644 index 0000000000..1c4fa2d593 --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/DEPENDS.txt @@ -0,0 +1,3 @@ +hard beamer +hard tools +hard pgfplots
\ No newline at end of file diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/README.md b/graphics/pgf/contrib/pgfplotsthemebeamer/README.md new file mode 100644 index 0000000000..47c815caaf --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/README.md @@ -0,0 +1,39 @@ +# pgfplotsthemebeamer + +[![License](https://img.shields.io/github/license/samcarter/pgfplotsthemebeamer.svg?color=blue)](http://www.latex-project.org/lppl.txt) +[![GitHub tag](https://img.shields.io/github/tag/samcarter/pgfplotsthemebeamer.svg?label=current%20version&color=blue)](https://github.com/samcarter/pgfplotsthemebeamer/releases/latest) +[![CTAN](https://img.shields.io/ctan/v/pgfplotsthemebeamer.svg?color=blue)](https://ctan.org/pkg/pgfplotsthemebeamer) + +A package for using colours from the current beamer theme in pgfplots diagrams. + +This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt . + +The project repository, including a bug tracker, can be found at https://github.com/samcarter/pgfplotsthemebeamer/issues . + +### Usage + +```latex +\documentclass{beamer} + +\usetheme{moloch}% just as an example for a colour theme +\usepackage{pgfplotsthemebeamer} + +\begin{document} + +\begin{frame}[plain] +\centering +\begin{tikzpicture} + \begin{axis}[ + beamercolors + ] + \addplot {x}; \addplot {x-1}; \addplot {x-2}; + \addplot {x-3}; \addplot {x-4}; \addplot {x-5}; + \addplot {x-6}; \addplot {x-7}; \addplot {x-8}; + \end{axis} +\end{tikzpicture} +\end{frame} + +\end{document} +``` + +For more details, please consult the [package documentation](https://github.com/samcarter/pgfplotsthemebeamer/blob/main/DOCUMENTATION.pdf). diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc-settings.sty b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc-settings.sty new file mode 100644 index 0000000000..cd57229fcf --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc-settings.sty @@ -0,0 +1,200 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Personal helper theme for package documentations +% Copyright samcarter +% +% This file may be distributed and/or modified +% under the LaTeX Project Public License 1.3c or later +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Usage: +% ln ~/Life/latex/beamertheme-sam/themesam.sty package-doc-settings.sty +% \usepackage[ +% themecolor=samdblue +% ]{\jobname-settings} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Colours +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{xcolor} +\definecolor{samyellow}{RGB}{246,193,65} +\definecolor{samorange}{RGB}{241,147,45}% pgfplotsthemebeamer +\definecolor{samred}{RGB}{191,26,46}% TikZbricks +\definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots +\definecolor{samviolet}{RGB}{136,46,114}% TikZlings +\definecolor{samlila}{RGB}{101,67,159}% Rainbow beamer theme +\definecolor{samdblue}{RGB}{0,51,134}% beamer theme +\definecolor{samlblue}{RGB}{22,89,155}% TikZducks +\definecolor{samteal}{RGB}{25,143,157}% Tcolorbox beamer theme +\definecolor{samlgreen}{RGB}{68,170,153}% Jigsaw +\definecolor{samdgreen}{RGB}{78,178,125} +\definecolor{samlgray}{RGB}{160,160,185} +\definecolor{samdgray}{RGB}{60,60,85} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Package options +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{xkeyval} +\DeclareOptionX{themecolor}[samdblue]{\colorlet{themecolor}{#1}} +\DeclareOptionX{listingcolor}[samlblue]{\colorlet{listingcolor}{#1}} +\ExecuteOptionsX{themecolor,listingcolor} +\ProcessOptionsX + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Packages +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{beamer}{}{% + \RequirePackage[english]{babel} + \RequirePackage[paper=a4paper,margin=2.9cm]{geometry} + \RequirePackage{scrlayer-scrpage} + \let\hrulefillx\hrulefill + \RequirePackage[bitstream-charter]{mathdesign} + \let\hrulefill\hrulefillx + \RequirePackage[hang,flushmargin,bottom]{footmisc} + \RequirePackage{footnotehyper} + \makesavenoteenv{tcolorbox} + \RequirePackage[all]{nowidow} + \RequirePackage[colorlinks=true,breaklinks=true,allcolors=themecolor,hyperfootnotes=false]{hyperref} +} +\RequirePackage[T1]{fontenc} +\RequirePackage{xspace} +\RequirePackage{inconsolata}% mono font with bold, but italic is missing +% \RequirePackage[scale=0.85]{cascadia-code} +% \AddToHook{cmd/ttfamily/before}{\fontseries{sl}} +\RequirePackage{iexec} +\usepackage{synthslant}% to fake slented comments in inconsolata + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Listings +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[ + cachedir=$TMPDIR/minted/ +]{minted} + +% smuggling custom pygmentize style in cache folder +% (a real pygmentise style would need installtion in some python folder) +\begin{filecontents*}[noheader,overwrite]{./sam.pygstyle} +\makeatletter +\def\PYG@reset{\let\PYG@it=\relax \let\PYG@bf=\relax% + \let\PYG@ul=\relax \let\PYG@tc=\relax% + \let\PYG@bc=\relax \let\PYG@ff=\relax} +\def\PYG@tok#1{\csname PYG@tok@#1\endcsname} +\def\PYG@toks#1+{\ifx\relax#1\empty\else% + \PYG@tok{#1}\expandafter\PYG@toks\fi} +\def\PYG@do#1{\PYG@bc{\PYG@tc{\PYG@ul{% + \PYG@it{\PYG@bf{\PYG@ff{#1}}}}}}} +\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+\PYG@do{#2}} + +% optional arguments +\expandafter\def\csname PYG@tok@na\endcsname{\def\PYG@tc##1{\textcolor{black}{##1}}} + +% macros +\expandafter\def\csname PYG@tok@k\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} +% curly brakets +\expandafter\def\csname PYG@tok@nb\endcsname{\def\PYG@tc##1{\textcolor{listingcolor}{\bfseries ##1}}} + +% comments (italics won't work with the inconsolata font) +\expandafter\def\csname PYG@tok@c\endcsname{\def\PYG@tc##1{\textcolor{gray}{\textsynthslant{##1}}}} + +\def\PYGZbs{\char`\\} +\def\PYGZus{\char`\_} +\def\PYGZob{\char`\{} +\def\PYGZcb{\char`\}} +\def\PYGZca{\char`\^} +\def\PYGZam{\char`\&} +\def\PYGZlt{\char`\<} +\def\PYGZgt{\char`\>} +\def\PYGZsh{\char`\#} +\def\PYGZpc{\char`\%} +\def\PYGZdl{\char`\$} +\def\PYGZhy{\char`\-} +\def\PYGZsq{\char`\'} +\def\PYGZdq{\char`\"} +\def\PYGZti{\char`\~} +% for compatibility with earlier versions +\def\PYGZat{@} +\def\PYGZlb{[} +\def\PYGZrb{]} +\makeatother +\end{filecontents*} + +\iexec{mkdir -p $TMPDIR/minted && mv sam.pygstyle $TMPDIR/minted/.} + +\usemintedstyle{sam} +\setminted{ + breaksymbolleft={}, + tabsize=2, + breaklines=true, +} +\newminted[samcode]{latex}{} +\newmintinline[saminline]{latex}{} + +% use non-bold and all coloured for inline code in articles +\ifdefined\insertaspectratio\else + \patchcmd{\minted@inputpyg@inline}{\minted@input}{\color{listingcolor}\renewcommand\textcolor[3][]{##3}\renewcommand\bfseries{}\minted@input}{}{} +\fi + +\RequirePackage[most]{tcolorbox} +\tcbuselibrary{minted} +\tcbset{% + colframe=themecolor, + fonttitle=\bfseries, + sidebyside, + center lower, + righthand width=5.7cm, + bottom=2pt, + top=2pt, + left=3pt, + right=3pt, + sidebyside gap=10pt, + lower separated=false, + listing engine=minted, + minted language=latex, + colback=themecolor!10, + sharp corners, + boxrule=0pt, + before title={\strut} +} + +% avoid page breaks right in front of the tcolorbox +\@ifclassloaded{beamer}{}{ + \tcbuselibrary{hooks} + \tcbset{before pre={\nopagebreak[4]}} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% document settings +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifclassloaded{scrartcl}{% + \KOMAoptions{parskip=half} + \addtokomafont{sectioning}{\color{themecolor}} + \addtokomafont{date}{\normalsize} + \addtokomafont{author}{\normalsize} + \setlength{\footnotemargin}{0.7em} +}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Custom macros +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\providecommand*{\CTAN}{\textsc{CTAN}\xspace} +\providecommand*{\TikZ}{Ti\emph{k}Z\xspace} +\providecommand*{\miktex}{MiK\TeX\xspace} +\providecommand*{\texlive}{\TeX{}Live\xspace} +\providecommand*{\tikzbrick}{Ti\emph{k}Zbrick\xspace} +\providecommand*{\tikzducks}{Ti\emph{k}Zducks\xspace} +\providecommand*{\tikzlings}{Ti\emph{k}Zlings\xspace} +\providecommand*{\tikzmarmots}{Ti\emph{k}Zmarmots\xspace} +\providecommand*{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
\ No newline at end of file diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.pdf b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.pdf Binary files differnew file mode 100644 index 0000000000..a312a05245 --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.pdf diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.tex b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.tex new file mode 100644 index 0000000000..3beb6c99b6 --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer-doc.tex @@ -0,0 +1,119 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Documentation for the pgfplotsthemebeamer package +% Using colours from the current beamer theme in pgfplots +% Maintained by samcarter +% +% Project repository and bug tracker: +% https://github.com/samcarter/pgfplotstheme-beamer +% +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% !TeX program = txs:///arara +% arara: latexmk: { +% arara: --> engine: pdflatex, +% arara: --> options: [ +% arara: --> '-shell-escape', +% arara: --> '-synctex=1', +% arara: --> '-interaction=nonstopmode', +% arara: --> ] +% arara: --> } +\documentclass{scrartcl} + +% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{The pgfplotsthemebeamer package} +\subtitle{Using colours from the current beamer theme in pgfplots} +\author{% + \texorpdfstring{ + \texttt{samcarter}\\ + \url{https://github.com/samcarter/pgfplotsthemebeamer}\\ + \url{https://ctan.org/pkg/pgfplotsthemebeamer} + }{samcarter}} +\date{Version v0.2 \textendash{} 2024/08/02} + +\usepackage[ + themecolor=samorange +]{\jobname-settings} + +% customisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\prefix}{./include} +\tcbset{ + compilable listing/.style={listing file={\prefix/\jobname-listing-\thetcblistingcount.tex}}, + run pdflatex/.style={run@system@command={cd\space \prefix;\space pdflatex}{\jobname-listing-\thetcblistingcount.tex}},% +} + +\begin{document} +\maketitle + +\section{Introduction} +\label{intro} + +Beamer themes often use carefully composed colour schemes. The \saminline|pgfplotsthemebeamer| package allows to reuse these colours in diagrams created with \saminline|pfgplots|. This ensures a consistent colour scheme throughout the presentation and avoids unsightly colour clashes. + +The package is included in \TeX{}Live +%and MiK\TeX\ +and available from \textsc{CTAN} (\url{https://www.ctan.org/pkg/pgfplotsthemebeamer}). +The development version of this package is located at \url{https://github.com/samcarter/pgfplotsthemebeamer}. If you have any problems, ideas or other feedback, please make constructive use of the issue tracker. + +Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright} \texttt{samcarter}. Permission is granted to copy, distribute and\slash or modify this software under the terms of the LaTeX project public licence, version 1.3c or later \url{http://www.latex-project.org/lppl.txt}. + +\section{Usage} + +The basic usage is fairly simple. After loading the \saminline|pgfplotsthemebeamer| package, plots can use the \saminline|beamercolor| option to use the colours from the current beamer theme in the diagram: +\begin{tcolorbox}[title={Usage}] +\begin{samcode} +\usepackage{pgfplotsthemebeamer} + +\begin{axis}[ + beamercolors +] +... +\end{axis} +\end{samcode} +\end{tcolorbox} +The graphs will be coloured in the beamer colours \saminline|structure|, \saminline|alerted text| and \saminline|example text|. In most beamer themes, these three colours form an easily distinguishable set of colours. + +Users who would like to use the \saminline|beamercolors| scheme for all \saminline|pgfplots| diagrams in the presentation, can load the package with the \saminline|all| option, which will make this colour scheme the default. +\begin{tcolorbox}[title={Usage}] +\begin{samcode} +\usepackage[all]{pgfplotsthemebeamer} +\end{samcode} +\end{tcolorbox} + +\section{Full example} +\begin{tcblisting}{ + listing only, + freeze pdf, + compilable listing, + run pdflatex, + title={Basic example}, + righthand width=0pt +} +\documentclass{beamer} + +\usetheme{moloch}% just as an example for a colour theme +\usepackage{pgfplotsthemebeamer} + +\begin{document} + +\begin{frame}[plain] +\centering +\begin{tikzpicture} + \begin{axis}[ + beamercolors + ] + \addplot {x}; \addplot {x-1}; \addplot {x-2}; \addplot {x-3}; \addplot {x-4}; \addplot {x-5}; \addplot {x-6}; \addplot {x-7}; \addplot {x-8}; + \end{axis} +\end{tikzpicture} +\end{frame} + +\end{document} +\end{tcblisting} +\vfill +\centering +\setlength{\fboxsep}{0pt}% +\fbox{\includegraphics[width=.75\textwidth]{pgfplotsthemebeamer-doc-listing-1.pdf}}% + +\end{document} diff --git a/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer.sty b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer.sty new file mode 100644 index 0000000000..23006e89c5 --- /dev/null +++ b/graphics/pgf/contrib/pgfplotsthemebeamer/pgfplotsthemebeamer.sty @@ -0,0 +1,37 @@ +% !TeX root = ./testing/test.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The pgfplotsthemebeamer package +% Using colours from the current beamer theme in pgfplots +% Maintained by samcarter +% +% Project repository and bug tracker: +% https://github.com/samcarter/pgfplotstheme-beamer +% +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{pgfplotsthemebeamer}[2024/08/02 version v0.2 PGFplots colours based the colours of the current beamer theme] + +% error if used with a class other than beamer +\IfClassLoadedF{beamer}{% + \PackageError{pgfplotsthemebeamer}{This pgfplots theme needs to be used in conjunction with the beamer class}{} +} + +% setting up colours +\RequirePackage{pgfplots} +\pgfplotsset{ + beamercolors/.style={ + cycle multi list={ + mark=*\\mark=x\\mark=square*\\mark=o\\mark=+\\mark=square\\\nextlist + structure.fg\\alerted text.fg\\example text.fg\\ + } + } +} + +% making beamercolors default if package is loaded with `all` option +\DeclareOption{all}{ + \pgfplotsset{beamercolors} +} +\ProcessOptions\relax diff --git a/graphics/pgf/contrib/polyomino/README.md b/graphics/pgf/contrib/polyomino/README.md new file mode 100644 index 0000000000..7f3c8023ad --- /dev/null +++ b/graphics/pgf/contrib/polyomino/README.md @@ -0,0 +1,25 @@ +# `polyomino` + +## Polyominoes using Ti*k*Z and LaTeX3 + +Version 1.0 (2024/08/01) + +This package is based on the package [Ti*k*Z](https://ctan.org/pkg/pgf) and can be used to draw polyominoes. It is possible to define custom styles, pics and grids. + +%% README.md +%% Copyright 2024 Matthias Floré +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Matthias Floré. +% +% This work consists of the files polyomino.pdf, polyomino.sty, +% polyomino.tex and README.md.
\ No newline at end of file diff --git a/graphics/pgf/contrib/polyomino/polyomino.pdf b/graphics/pgf/contrib/polyomino/polyomino.pdf Binary files differnew file mode 100644 index 0000000000..597c00c4db --- /dev/null +++ b/graphics/pgf/contrib/polyomino/polyomino.pdf diff --git a/graphics/pgf/contrib/polyomino/polyomino.sty b/graphics/pgf/contrib/polyomino/polyomino.sty new file mode 100644 index 0000000000..7a85590118 --- /dev/null +++ b/graphics/pgf/contrib/polyomino/polyomino.sty @@ -0,0 +1,286 @@ +%% polyomino.sty +%% Copyright 2024 Matthias Floré +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Matthias Floré. +% +% This work consists of the files polyomino.pdf, polyomino.sty, +% polyomino.tex and README.md. +\NeedsTeXFormat{LaTeX2e} +\RequirePackage{tikz} +\ProvidesExplPackage{polyomino}{2024/08/01}{1.0}{Polyominoes using TikZ and LaTeX3} + +%%> \subsection{Variables and variants} + +\bool_new:N \l__polyomino_grid_bool +\bool_new:N \l__polyomino_pic_bool + +\int_new:N \l__polyomino_col_int +\int_new:N \l__polyomino_dir_int +\int_new:N \l__polyomino_max_int +\int_new:N \l__polyomino_row_int +\int_new:N \l__polyomino_x_int +\int_new:N \l__polyomino_y_int + +\seq_new:N \l__polyomino_add_seq +\seq_new:N \l__polyomino_cols_seq + +\tl_new:N \l__polyomino_path_tl +\tl_new:N \l__polyomino_pic_tl + +\cs_generate_variant:Nn \tl_map_inline:nn { en } + +%%> \subsection{Pgfkeys} + +\pgfkeys + { + / polyomino /. is~family , + / polyomino /. search~also = / polyomino / p_2 , + / polyomino , + at /. initial = { ( 0 , 0 ) } , + empty~cell /. initial = . , + grid /. code = \bool_set:Nn \l__polyomino_grid_bool { \cs:w c_#1_bool \cs_end: } , + grid /. default = true , + grid = false , + grid~style /. style = { grid_style /. style = {#1} } , + grid_style /. style = {} , + row~sep /. initial = { , } , + } + +\pgfkeys + {%a separate key family so that the second argument of the key p only accepts keys which apply to a separate polyomino + / polyomino / p_2 /. is~family , + / polyomino / p_2 , + connected /. code = \bool_set_false:N \l__polyomino_pic_bool , + connected /. value~forbidden , + discrete /. code = \bool_set_true:N \l__polyomino_pic_bool , + discrete /. value~forbidden , + p /. style~2~args = { #1__style /. style = {#2} } ,%2 underscores to avoid the same name as for example the key style_style + pic /. code = + { + \bool_set_true:N \l__polyomino_pic_bool + \tl_set:Nn \l__polyomino_pic_tl {#1} + } , + style /. style = { style_style /. style = {#1} } , + style_style /. style = {} , + } + +%%> \subsection{The command \textbackslash polyomino} + +\NewDocumentCommand \polyomino { O {} m } + { + {%note the double braces {{...}} so that the contents is in a group and in particular, \pgfkeys is applied locally + \pgfkeys { / polyomino , #1 } + \int_zero:N \l__polyomino_col_int + \int_set:Nn \l__polyomino_row_int { 1 } + \seq_clear:N \l__polyomino_cols_seq + \tl_map_inline:en {#2} + %it is convenient that this ignores spaces in #2 + %e argument specifier for the case that #2 is given by a command or contains a command + { + \tl_if_eq:neTF {##1} { \pgfkeysvalueof { / polyomino / row~sep } } + { + \seq_put_right:NV \l__polyomino_cols_seq \l__polyomino_col_int + \int_incr:N \l__polyomino_row_int + \int_zero:N \l__polyomino_col_int + } + { + \int_incr:N \l__polyomino_col_int + \tl_clear_new:c { l__polyomino_\int_use:N \l__polyomino_row_int _\int_use:N \l__polyomino_col_int _tl } + \tl_if_eq:neF {##1} { \pgfkeysvalueof { / polyomino / empty~cell } } + { \tl_set:cn { l__polyomino_\int_use:N \l__polyomino_row_int _\int_use:N \l__polyomino_col_int _tl } {##1} } + \tl_gclear_new:c { g__polyomino_\int_use:N \l__polyomino_row_int _\int_use:N \l__polyomino_col_int _tl } + } + } + \seq_put_right:NV \l__polyomino_cols_seq \l__polyomino_col_int + \int_set:Nn \l__polyomino_max_int { \fp_eval:n { max ( \seq_use:Nn \l__polyomino_cols_seq { , } ) } } + \seq_map_indexed_inline:Nn \l__polyomino_cols_seq + { + \tl_clear_new:c { l__polyomino_##1_0_tl } + \int_step_inline:nnn { ##2 + 1 } { \l__polyomino_max_int + 1 } + { \tl_clear_new:c { l__polyomino_##1_####1_tl } } + } + \int_step_inline:nnn { 0 } { \l__polyomino_max_int + 1 } + { + \tl_clear_new:c { l__polyomino_0_##1_tl } + \tl_clear_new:c { l__polyomino_\int_eval:n { \l__polyomino_row_int + 1 }_##1_tl } + } + \pgfkeys + { + / tikz , + shift /. expanded = { \pgfkeysvalueof { / polyomino / at } } , + shift = { ( 0 , \seq_count:N \l__polyomino_cols_seq ) } + } + \seq_map_indexed_inline:Nn \l__polyomino_cols_seq + { + \int_step_inline:nn {##2} + { + \tl_if_empty:cF { l__polyomino_##1_####1_tl } + { + {%note the double braces {{...}} so that \pgfkeys is applied locally + \pgfkeys { / polyomino / p_2 , \cs:w l__polyomino_##1_####1_tl \cs_end: __style } + \bool_if:NTF \l__polyomino_pic_bool + { \pic [ / polyomino / p_2 / style_style ] at ( ####1 - 0.5 , 0.5 - ##1 ) { code = { \l__polyomino_pic_tl } } ; } + { + \seq_clear:N \l__polyomino_add_seq + \tl_if_eq:ccF { l__polyomino_##1_####1_tl } { l__polyomino_##1_\int_eval:n { ####1 - 1 }_tl } + { + \tl_if_empty:cT { g__polyomino_##1_####1_tl } + { + \int_set:Nn \l__polyomino_dir_int { 1 } + \int_set:Nn \l__polyomino_col_int {####1} + \int_set:Nn \l__polyomino_row_int {##1} + \int_set:Nn \l__polyomino_x_int {####1} + \int_set:Nn \l__polyomino_y_int { 1 - ##1 } + \tl_build_begin:N \l__polyomino_path_tl + \fp_do_until:nn { ####1 - 1 = \l__polyomino_x_int && 1 - ##1 = \l__polyomino_y_int } + { + %concerning \tl_build_put_right:Ne \l__polyomino_path_tl, + %for example (0,0)--(0,1)--(0,2) results in a larger file size than (0,0)--(0,2) + \tl_if_eq:ccTF + { l__polyomino_##1_####1_tl } + { + l__polyomino + _\int_eval:n + { \l__polyomino_row_int + \clist_item:nn { 0 , 1 , 0 , -1 } { \l__polyomino_dir_int } } + _\int_eval:n + { \l__polyomino_col_int + \clist_item:nn { 1 , 0 , -1 , 0 } { \l__polyomino_dir_int } } + _tl + } + { + \tl_if_eq:ccTF + { l__polyomino_##1_####1_tl } + { + l__polyomino + _\int_eval:n + { \l__polyomino_row_int + \clist_item:nn { -1 , 1 , 1 , -1 } { \l__polyomino_dir_int } } + _\int_eval:n + { \l__polyomino_col_int + \clist_item:nn { 1 , 1 , -1 , -1 } { \l__polyomino_dir_int } } + _tl + } + { + \tl_build_put_right:Ne \l__polyomino_path_tl + { -- ( \int_use:N \l__polyomino_x_int , \int_use:N \l__polyomino_y_int ) } + \int_add:Nn \l__polyomino_row_int + { \clist_item:nn { -1 , 1 , 1 , -1 } { \l__polyomino_dir_int } } + \int_add:Nn \l__polyomino_col_int + { \clist_item:nn { 1 , 1 , -1 , -1 } { \l__polyomino_dir_int } } + \int_compare:nNnTF { \l__polyomino_dir_int } = { 1 } + { \int_set:Nn \l__polyomino_dir_int { 4 } } + { \int_decr:N \l__polyomino_dir_int } + } + { + \int_add:Nn \l__polyomino_row_int + { \clist_item:nn { 0 , 1 , 0 , -1 } { \l__polyomino_dir_int } } + \int_add:Nn \l__polyomino_col_int + { \clist_item:nn { 1 , 0 , -1 , 0 } { \l__polyomino_dir_int } } + } + \tl_if_empty:cTF + { g__polyomino_\int_use:N \l__polyomino_row_int _\int_use:N \l__polyomino_col_int _tl } + { + \seq_put_right:Ne \l__polyomino_add_seq + { \int_use:N \l__polyomino_row_int _\int_use:N \l__polyomino_col_int } + } + { + \bool_set_true:N \l__polyomino_pic_bool + \int_set:Nn \l__polyomino_x_int { ####1 - 1 } + \int_set:Nn \l__polyomino_y_int { 1 - ##1 } + } + } + { + \tl_build_put_right:Ne \l__polyomino_path_tl + { -- ( \int_use:N \l__polyomino_x_int , \int_use:N \l__polyomino_y_int ) } + \int_compare:nNnTF { \l__polyomino_dir_int } = { 4 } + { \int_set:Nn \l__polyomino_dir_int { 1 } } + { \int_incr:N \l__polyomino_dir_int } + } + \bool_if:NF \l__polyomino_pic_bool + { + \int_add:Nn \l__polyomino_x_int { \clist_item:nn { 1 , 0 , -1 , 0 } { \l__polyomino_dir_int } } + \int_add:Nn \l__polyomino_y_int { \clist_item:nn { 0 , -1 , 0 , 1 } { \l__polyomino_dir_int } } + } + } + \tl_build_end:N \l__polyomino_path_tl + \bool_if:NF \l__polyomino_pic_bool + { \fill [ / polyomino / p_2 / style_style ] ( ####1 - 1 , 1 - ##1 ) \l__polyomino_path_tl -- cycle ; } + } + } + \tl_gset:cn { g__polyomino_##1_####1_tl } { c } + \seq_map_inline:Nn \l__polyomino_add_seq + { \tl_gset:cn { g__polyomino_########1_tl } { c } } + } + } + } + } + } + \bool_if:NT \l__polyomino_grid_bool + { + \int_step_inline:nn { \seq_count:N \l__polyomino_cols_seq - 1 } + { + \int_zero:N \l__polyomino_col_int + \int_zero:N \l__polyomino_x_int + \int_set:Nn \l__polyomino_y_int + { \int_min:nn { \seq_item:Nn \l__polyomino_cols_seq {##1} } { \seq_item:Nn \l__polyomino_cols_seq { ##1 + 1 } } } + \int_while_do:nNnn { \l__polyomino_x_int } < { \l__polyomino_y_int } + { + \bool_do_while:nn + { + \tl_if_eq_p:cc + { l__polyomino_##1_\int_use:N \l__polyomino_x_int _tl } + { l__polyomino_\int_eval:n { ##1 + 1 }_\int_use:N \l__polyomino_x_int _tl } + && + ! \tl_if_empty_p:c { g__polyomino_##1_\int_use:N \l__polyomino_x_int _tl } + && + \int_compare_p:nNn { \l__polyomino_x_int } < { \l__polyomino_y_int + 1 } + } + { \int_incr:N \l__polyomino_x_int } + \int_compare:nNnT { \l__polyomino_x_int } > { \l__polyomino_col_int + 1 } + { + \draw [ / polyomino / grid_style ] + ( \int_use:N \l__polyomino_col_int , -##1 ) -- ( \int_use:N \l__polyomino_x_int - 1 , -##1 ) ; + } + \int_set_eq:NN \l__polyomino_col_int \l__polyomino_x_int + } + } + \int_set:Nn \l__polyomino_x_int { \seq_count:N \l__polyomino_cols_seq } + \int_step_inline:nn { \l__polyomino_max_int - 1 } + { + \int_zero:N \l__polyomino_row_int + \int_zero:N \l__polyomino_y_int + \int_while_do:nNnn { \l__polyomino_y_int } < { \l__polyomino_x_int } + { + \bool_do_while:nn + { + \tl_if_eq_p:cc + { l__polyomino_\int_use:N \l__polyomino_y_int _##1_tl } + { l__polyomino_\int_use:N \l__polyomino_y_int _\int_eval:n { ##1 + 1 }_tl } + && + ! \tl_if_empty_p:c { g__polyomino_\int_use:N \l__polyomino_y_int _##1_tl } + && + \int_compare_p:nNn { \l__polyomino_y_int } < { \l__polyomino_x_int + 1 } + && + \int_compare_p:nNn {##1} < { \seq_item:Nn \l__polyomino_cols_seq { \l__polyomino_y_int } + 0 } + } + { \int_incr:N \l__polyomino_y_int } + \int_compare:nNnT { \l__polyomino_y_int } > { \l__polyomino_row_int + 1 } + { + \draw [ / polyomino / grid_style ] + ( ##1 , -\int_use:N \l__polyomino_row_int ) -- ( ##1 , 1 - \int_use:N \l__polyomino_y_int ) ; + } + \int_set_eq:NN \l__polyomino_row_int \l__polyomino_y_int + } + } + } + } + } + +\endinput
\ No newline at end of file diff --git a/graphics/pgf/contrib/polyomino/polyomino.tex b/graphics/pgf/contrib/polyomino/polyomino.tex new file mode 100644 index 0000000000..c512cec895 --- /dev/null +++ b/graphics/pgf/contrib/polyomino/polyomino.tex @@ -0,0 +1,278 @@ +%% polyomino.tex +%% Copyright 2024 Matthias Floré +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Matthias Floré. +% +% This work consists of the files polyomino.pdf, polyomino.sty, +% polyomino.tex and README.md. +\documentclass[a4paper,english,dvipsnames]{ltxdoc} +\usepackage[english]{babel} +\usepackage{graphicx} +\usepackage[a4paper,left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry} +\usepackage{parskip} +\usepackage{iftex} +\ifluatex +\else +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\fi +\usepackage{mathtools} +\usepackage{amssymb} +\allowdisplaybreaks +\usepackage{pdflscape} +\usepackage{polyomino} +\input{pgfmanual-en-macros.tex} +\usepackage{codehigh} +\usepackage{fancyhdr} +\pagestyle{fancy} +\renewcommand{\headrulewidth}{0pt} +\fancyhead{} +\ExplSyntaxOn +\NewExpandableDocumentCommand \repeatnumber {} + { \prg_replicate:nn { \thepage } { * } } +\ExplSyntaxOff +\fancyfoot[C]{\IfRefUndefinedExpandable{Thesourcecode}{}{\begin{tikzpicture}[scale=0.9] +\polyomino[ + grid, + p={*}{style={teal,draw=black}} +]{\repeatnumber} +\end{tikzpicture}}} +\usepackage[nottoc]{tocbibind} +\usepackage{imakeidx} +\makeindex[program=makeindex,columns=2,intoc=true] +\indexsetup{othercode={\thispagestyle{fancy}}} +\AtEndPreamble{\hypersetup{% +linktoc=all, +pdfstartview=FitH, +colorlinks=true, +linkcolor=Mahogany, +citecolor=ForestGreen, +urlcolor=MidnightBlue, +bookmarksnumbered=true, +pdftitle={The polyomino package}, +pdfauthor={Matthias Floré}, +pdfsubject={Manual}, +pdfkeywords={polyomino}}} +\setcounter{tocdepth}{2} +\setcounter{secnumdepth}{2} +\title{The \texttt{polyomino} package\\[12pt]\large Polyominoes using \tikzname{} and \LaTeX3} +\author{Matthias Floré} +\date{Version 1.0 (2024/08/01)}%\\[12pt] +\begin{document} +\maketitle +\thispagestyle{fancy} +\begin{abstract} +\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw polyominoes. It is possible to define custom styles, pics and grids.% This is the manual for version . +\end{abstract} +\tableofcontents +\section{Usage} +The package |polyomino| can be used by putting the following in the preamble. +\begin{codeexample}[code only] +\usepackage{polyomino} +\end{codeexample} +The package |polyomino| loads the package |tikz|. +\section{The command \textbackslash polyomino} +\begin{command}{\polyomino\opt{\oarg{options}}\marg{polyomino specification}} +This command can be placed inside a |tikzpicture| environment. The \meta{polyomino specification} is a token list. Spaces in this list are ignored. With the initial settings, a |,| starts a new row. Otherwise each element in this list corresponds to a cell. An element can consist of multiple characters by surrounding it with braces. The \meta{options} can be given with the keys described in Section \ref{Keys}. +\begin{codeexample}[width=8cm] +\pgfkeys{ + /polyomino, + p={F}{style={blue,draw=black,ultra thick}}, + p={I}{style={brown,draw=black,ultra thick}}, + p={L}{style={cyan,draw=black,ultra thick}}, + p={N}{style={gray,draw=black,ultra thick}}, + p={P}{style={lime,draw=black,ultra thick}}, + p={T}{style={magenta,draw=black,ultra thick}}, + p={U}{style={olive,draw=black,ultra thick}}, + p={V}{style={orange,draw=black,ultra thick}}, + p={W}{style={pink,draw=black,ultra thick}}, + p={X}{style={purple,draw=black,ultra thick}}, + p={Y}{style={red,draw=black,ultra thick}}, + p={Z}{style={teal,draw=black,ultra thick}} +} +\begin{tikzpicture} +\polyomino[ + grid +]{ + UUUVVV, + UXUZZV, + XXXFZV, + IXFFZZ, + ILLFFT, + ILNTTT, + ILNWWT, + ILNNWW, + PPPNYW, + PPYYYY +} +\end{tikzpicture} +\end{codeexample} +The algorithm constructs the border of each polyomino. It does not consider holes determined by empty cells. Although it does detect a cell inside a polyomino which has a different style. This is illustrated in the example below. +\begin{codeexample}[width=10cm] +\begin{tikzpicture}[scale=0.8] +\polyomino[ + p={a}{style={gray,draw=black,thick}} +]{ + aaaaa, + a.a.a, + aaaaa +} +\polyomino[ + at={(0,-4)}, + p={a}{style={gray,draw=black,thick}}, + p={*}{style={white,draw=black,thick}} +]{ + aaaaa, + a*a*a, + aaaaa +} +\end{tikzpicture} +\end{codeexample} +\end{command} +\section{Keys}\label{Keys} +The keys in this Section can be given as \meta{options} to the command |\polyomino|. + +There are two key families: |/polyomino| and |/polyomino/p_2|. The key family |/polyomino| is intended for usage in documents whereas |/polyomino/p_2| is not. In the key family |/polyomino|, also keys from the key family |/polyomino/p_2| will be looked up. The second argument from the key |p| only accepts keys from the key family |/polyomino/p_2|. +\begin{key}{/polyomino/at=\marg{point} (initially (0,0))} +This key defines the bottom left coordinate of the polyomino. +\end{key} +\begin{key}{/polyomino/p\_2/connected} +This key sets the |pic| type (which is activated by the key |pic|) to false. This is the initial setting. +\end{key} +\begin{key}{/polyomino/p\_2/discrete} +This key sets the |pic| type (which is activated by the key |pic|) to true. +\end{key} +\begin{key}{/polyomino/empty cell=\marg{token list} (initially .)} +A cell corresponding to the \meta{token list} in the \meta{polyomino specification} will be left empty. + +A cell corresponding to the empty token list will always be left empty. +\end{key} +\begin{key}{/polyomino/grid=\opt{\meta{boolean}} (default true, initially false)} +If true then a grid is drawn. The grid does not apply to borders of polyominoes. The style of this grid is determined by the key |grid style|. A grid does not apply to a cell with a |pic|. +\end{key} +\begin{stylekey}{/polyomino/grid style=\marg{options} (initially \normalfont empty)} +This key determines the style of the grid. +\begin{codeexample}[width=6.5cm] +\begin{tikzpicture}[rotate=90] +\polyomino[ + grid, + grid style={gray,dash pattern=on 3mm off 4mm on 3mm off 0mm}, + p={L}{style={darkgray,draw=black}}, + p={P}{style={green,draw=black}}, + p={T}{style={violet,draw=black}}, + p={V}{style={yellow,draw=black}} +]{ + LTVVV, + LTTTV, + LTPPV, + LLPPP +} +\end{tikzpicture} +\end{codeexample} +\end{stylekey} +\begin{stylekey}{/polyomino/p\_2/p=\marg{name}\marg{options} (initially \normalfont empty)} +This key determines the style of the polyomino with \meta{name} in the \meta{polyomino specification}. + +The \meta{options} only accept keys from the key family |/polyomino/p_2|. + +In the example below, the polyominoes have the same shape but are differentiated by using different names. +\begin{codeexample}[width=10cm] +\begin{tikzpicture} +\pgfkeys{ + /polyomino, + p={a}{}, + p={b}{}, + style={fill=none,draw} +} +\def\example{ + aa, + ab, + ab, + bb +} +\polyomino{\example} +\polyomino[ + at={(2,0)} +]{\example} +\end{tikzpicture} +\end{codeexample} +\end{stylekey} +\begin{key}{/polyomino/p\_2/pic=\marg{code}} +The \meta{code} defines the |pic| which is used for each cell of the polyomino. + +A grid does not apply to a cell with a |pic|. +\begin{codeexample}[width=7cm] +\begin{tikzpicture} +\polyomino[ + empty cell=*, + grid, + p={a}{style={red,draw=black}}, + p={b}{style={blue,draw=black}}, + p={c}{style={orange,draw=black}}, + p={circle}{pic={\fill[green] (0,0) circle[radius=0.4];}}, + row sep=; +]{ + {} * * b {} c ; + a a b b {circle} c ; + {circle} a a b c c +} +\end{tikzpicture} +\end{codeexample} +\begin{codeexample}[width=5cm] +\begin{tikzpicture} +\polyomino[ + p={circle}{ + pic={\path[pic actions] (0,0) circle[radius=0.45];}, + style={right color=cyan,left color=red,draw,dashed} + }, + p={L}{ + pic={ + \fill[yellow!80!black] (-0.5,-0.5) rectangle +(1,1); + \fill[yellow!50,rounded corners] (-0.4,-0.4) rectangle +(0.8,0.8); + } + }, + p={square}{ + pic={\path[pic actions] (-0.45,-0.45) rectangle +(0.9,0.9);}, + style={fill=magenta,draw,rounded corners} + } +]{ + L {circle} {square} {square} , + L {circle} {circle} {square} , + L L {circle} {circle} +} +\end{tikzpicture} +\end{codeexample} +\end{key} +\begin{key}{/polyomino/row sep=\marg{token list} (initially ,)} +The \meta{token list} in the \meta{polyomino specification} will start a new row. +\end{key} +\begin{stylekey}{/polyomino/p\_2/style=\marg{options} (initially \normalfont empty)} +This key determines the style of the polyomino. +\end{stylekey} +\begin{thebibliography}{9} +\bibitem{TtTaPGFp} +Till Tantau, +\emph{The \tikzname{} and {\upshape\pgfname} Packages}, +Manual for version 3.1.10, +\url{https://ctan.org/pkg/pgf}, +2023. +\end{thebibliography} +\printindex +\newgeometry{left=2.25cm,right=2.25cm,top=2.25cm,bottom=2.25cm} +\pagestyle{plain} +\appendix +\begin{landscape} +\section{The source code}\label{Thesourcecode} +\dochighinput[language=latex/latex3]{polyomino.sty} +\end{landscape} +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.pdf Binary files differnew file mode 100644 index 0000000000..029671719e --- /dev/null +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.pdf diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.tex b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.tex new file mode 100644 index 0000000000..d89c17bff4 --- /dev/null +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-en.tex @@ -0,0 +1,1692 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') + +\documentclass[11pt,a4paper]{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[english]{tkz-grapheur} +\usepackage{amsmath} +\usepackage{fancyvrb} +\usepackage{fancyhdr} +\usepackage{hyperref} +\usepackage{nicefrac} +\usepackage{fontawesome5} +\usepackage{tcolorbox} +\tcbuselibrary{skins,minted} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\lfoot{\sffamily\small [tkz-grapheur]} +\rfoot{\sffamily\small - \thepage{} -} +\usepackage{hologo} +\providecommand\tikzlogo{Ti\textit{k}Z} +\providecommand\TeXLive{\TeX{}Live\xspace} +\providecommand\PSTricks{\textsf{PSTricks}\xspace} +\let\pstricks\PSTricks +\let\TikZ\tikzlogo + +\urlstyle{same} +\hypersetup{pdfborder=0 0 0} +\usepackage[margin=2cm]{geometry} +\setlength{\parindent}{0pt} +\def\TPversion{0.1.6} +\def\TPdate{13/07/2024} +\usepackage{soul} +\usepackage{codehigh} +\usepackage{tabularray} +\sethlcolor{lightgray!25} +\NewDocumentCommand\MontreCode{ m }{% + \hl{\vphantom{\texttt{pf}}\texttt{#1}}% +} +\usepackage[english]{babel} + +\renewcommand{\footnoterule}{\vfill\kern -3pt \hrule width 0.4\columnwidth \kern 2.6pt} + +\begin{document} + +\pagestyle{fancy} + +\thispagestyle{empty} + +\begin{center} + \begin{minipage}{0.88\linewidth} + \begin{tcolorbox}[colframe=yellow,colback=yellow!15] + \begin{center} + \begin{tabular}{c} + {\Huge \texttt{tkz-grapheur [en]}}\\ + \\ + {\LARGE A grapher, based}\\ + \\ + {\LARGE on \textsf{\TikZ} and \textsf{xint}.}\\ + \\ + {\small \texttt{Version \TPversion{} -- \TPdate}} + \end{tabular} + \end{center} + \end{tcolorbox} +\end{minipage} +\end{center} + +\begin{center} + \begin{tabular}{c} + \texttt{Cédric Pierquet}\\ + {\ttfamily c pierquet -- at -- outlook . fr}\\ + \texttt{\url{https://forge.apps.education.fr/pierquetcedric/package-latex-tkz-grapheur}} \\ +\end{tabular} +\end{center} + +\hrule + +\vfill + +\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5,halign=center] +\begin{GraphTikz}[x=0.85cm,y=0.35cm,Xmin=0,Xmax=10,Ymin=0,Ymax=16] + %préparation de la fenêtre + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{0,1,...,10}{0,2,...,16} + %déf des fonctions avec nom courbe + nom fonction + expression + \DefineCurve[Name=cf]<f>{3*x-6} + \DefineCurve[Name=cg]<g>{-(x-6)^2+12} + %antécédents et intersection + \FindIntersections[Disp=false,Name=K]{cf}{cg} + \FindCounterimage[DispLine,Color=orange,Name=I]{cg}{8} + \FindCounterimage[Disp=false,Name=J]{cg}{0} + %intégrale sous une courbe, avec intersection + \DrawIntegral% + [Colors=blue/purple,Bounds=nodes,Style=hatch,Hatch=bricks]% + {g(x)}% + {(I-2)}{(J-2)} + %intégrale entre les deux courbes + \DrawIntegral[Bounds=nodes,Type=fct/fct]{f(x)}[g(x)]{(K-1)}{(K-2)} + %tracé des courbes et des points + \DrawCurve[Color=red]{f(x)} + \DrawCurve[Color=teal]{g(x)} + \MarkPts<\small>{(K-1)/below right/L,(K-2)/above left/M}% + \MarkPts[violet]<\small>{(I-1)/above left/D,(I-2)/above right/E}% + %essai de tangente + \DrawTangent[Colors=pink!75!black/yellow,OffsetL=2,OffsetR=2,DispPt]{g}{5} + %essai d'image + \DrawRanges[Colors=cyan]{g}{7,7.25,7.5} + %surimpression des axes + \DrawAxisGrids[Grads=false,Grid=false,Enlarge=2.5mm]{0,1,...,10}{0,2,...,16} +\end{GraphTikz} +\end{tcolorbox} + +\vspace*{5mm} + +\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5,halign=center] +\begin{GraphTikz}% + [x=3.5cm,y=4cm, + Xmin=0,Xmax=3.5,Xgrid=pi/12,Xgrids=pi/24, + Ymin=-1.05,Ymax=1.05,Ygrid=0.2,Ygrids=0.05] + %préparation de la fenêtre + \DrawAxisGrids[Grads=false,Enlarge=2.5mm,Format=ntrig/nsqrt]% + {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi} + {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2} + %rajouter des valeurs + \AddXvalues{0.25,1.4,3.3}{\num{0.25},\num{1.4},\num{3.3}} + %fonction trigo (déf + tracé) + \DefineCurve[Name=ccos,Start=0,End=pi]<fcos>{cos(x)} + \DefineCurve[Name=csin,Start=0,End=pi]<fsin>{sin(x)} + %intégrale + \FindIntersections[Disp=false,Name=JKL]{ccos}{csin} + %\DefinirPts{FIN/pi/0} + \DrawIntegral% + [Bounds=node/abs,Type=fct/fct,Colors=cyan/cyan!50]% + {fsin(x)}[fcos(x)]% + {(JKL-1)}{pi} + %tracé des courbes + \DrawCurve[Color=red,Start=0,End=pi]{fcos(x)} + \DrawCurve[Color=olive,Start=0,End=pi]{fsin(x)} + %antécédent(s) + \DrawCounterimage[Color=blue/teal!50!black,Lines]{ccos}{-0.25} + \DrawCounterimage[Colors=red/magenta!50!black,Lines]{csin}{0.5} + \DrawCounterimage[Colors=orange/orange!50!black,Lines]{csin}{sqrt(2)/2} + \DrawCounterimage[Colors=green!50!black/green,Lines]{csin}{sqrt(3)/2} + %surimpression axes + \DrawAxisGrids[Grid=false,Enlarge=2.5mm,Format=ntrig/nsqrt]% + {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi} + {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2} +\end{GraphTikz} +\end{tcolorbox} + +\vfill + +\hfill{\footnotesize\textit{\ttfamily To my Dad.}} + +\vspace*{5mm} + +\pagebreak + +\phantomsection + +\hypertarget{matoc}{} + +\tableofcontents + +\vspace*{5mm} + +\hrule + +\vspace*{5mm} + +\pagebreak + +\section{Introduction} + +\subsection{Description and general ideas} + +With this modest package, far from the capabilities offered by the excellent packages \MontreCode{tkz-*}\footnote{for example tkz-base \url{https://ctan.org/pkg/tkz-base} and tkz- fct \url{https://ctan.org/pkg/tkz-fct}.} (by Alain Matthes) or \MontreCode{tzplot}\footnote{CTAN: \url{https://ctan.org/pkg/ tzplot}.} (by In-Sung Cho), it is possible to work on function graphs, in \TikZ\ language, in an \textit{intuitive} and \textit{explicit} way. + +\smallskip + +Concerning the overall operation: + +\smallskip + +\begin{itemize} + \item particular styles for the objects used have been defined, but they can be modified locally; + \item the name of the commands is in \textit{operational} form, so that the construction of the graphic elements has an almost \textit{algorithmic} form. +\end{itemize} + +\subsection{Overall operation} + +To schematize, it \textit{is enough}: + +\smallskip + +\begin{itemize} + \item to declare the parameters of the graphics window (\textbf{units in cm !}); + \item to display grid/axes/graduations; + \item to declare functions or interpolation curves; + \item to possibly declare particular points; + \item to place a point scatter. +\end{itemize} + +\smallskip + +It will then be possible: + +\begin{itemize} + \item to draw curves; + \item to graphically determine images or backgrounds; + \item to add elements of derivation (tangents) or integration (domain); + \item to draw a linear fit line or the curve of another fit. +\end{itemize} + +\subsection{Packages used, and package options} + +The package uses: + +\smallskip + +\begin{itemize} + \item \MontreCode{tikz}, with the libraries \MontreCode{calc,intersections,patterns,patterns.meta,bbox}; + \item \MontreCode{simplekv}, \MontreCode{xintexpr}, \MontreCode{xstring}, \MontreCode{listofitems}; + \item \MontreCode{xint-regression}\footnote{CTAN: \url{https://ctan.org/pkg/xint-regression}.} (for regressions, switchable via \MontreCode{[noxintreg]}). +\end{itemize} + +\smallskip + +The package also loads \MontreCode{siunitx} with the classic options, but it is possible not to load it using the \MontreCode{[nosiunitx]} option. + +\smallskip + +The package also loads the \TikZ\ \MontreCode{babel} library, but it is possible not to load it using the \MontreCode{[notikzbabel]} option. + +\smallskip + +The different options are obviously cumulative. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%loading by default, with french setup of siunitx +\usepackage{tkz-grapheur} +%loading by default, with normal setup of siunitx +\usepackage[english]{tkz-grapheur} + +%loading without sinuitx, to be loaded manually +\usepackage[nosiunitx]{tkz-grapheur} + +%loading without tikz.babel +\usepackage[notikzbabel]{tkz-grapheur} +\end{tcblisting} + +Also note that certain commands can use packages like \MontreCode{nicefrac}, which will therefore have to be loaded if necessary. + +\smallskip + +Concerning the \textit{calculations} and \textit{plots} part, the \MontreCode{xint} package takes care of it. + +\subsection{Warnings} + +It is possible, due to the (multiple) calculations carried out internally, that the compilation time may be a little \textit{long}. + +\smallskip + +The precision of the (determination) results seems to be around $10^{-4}$, which should normally guarantee \textit{satisfactory} plots and readings. It is still advisable to be cautious about the results obtained and those expected. + +\subsection{Introductory example} + +For example, we can start from the following example to \textit{illustrate} the flow of the commands for this package. The commands and syntax will be detailed in the following sections! + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\begin{GraphTikz}% + [x=7.5cm,y=7.5cm,Xmin=0,Xmax=1.001,Xgrid=0.1,Xgrids=0.02, + Ymin=0,Ymax=1.001,Ygrid=0.1,Ygrids=0.02] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]% + {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1} + {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1} + \DefineCurve[Name=cf,Start=0,End=1]<f>{x*exp(x-1)} + \DefineCurve[Name=delta,Start=0,End=1]<D>{x} + \DrawIntegral[Type=fct/fct]{f(x)}[D(x)]{0}{1} + \DrawCurve[Color=red]{f(x)} + \DrawCurve[Color=teal]{D(x)} + \DrawRanges[Colors=blue/cyan,Lines]{f}{0.8,0.9} + \DrawCounterimage[Colors=green!50!black/olive,Lines]{cf}{0.5} +\end{GraphTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,text only} + \begin{GraphTikz}% + [x=7.5cm,y=7.5cm,Xmin=0,Xmax=1.001,Xgrid=0.1,Xgrids=0.02, + Ymin=0,Ymax=1.001,Ygrid=0.1,Ygrids=0.02] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]% + {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1} + {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1} + \DefineCurve[Name=cf,Start=0,End=1]<f>{x*exp(x-1)} + \DefineCurve[Name=delta,Start=0,End=1]<D>{x} + \DrawIntegral[Type=fct/fct]{f(x)}[D(x)]{0}{1} + \DrawCurve[Color=red]{f(x)} + \DrawCurve[Color=teal]{D(x)} + \DrawRanges[Colors=blue/cyan,Lines]{f}{0.8,0.9} + \DrawCounterimage[Colors=green!50!black/olive,Lines]{cf}{0.5} + \end{GraphTikz} +\end{tcblisting} + +\newpage + +\section{Basic Styles and Environment Creation} + +\subsection{Basic Styles} + +The styles used for plots are given below. + +\smallskip + +For \textit{simplicity} purposes, only the color of the elements can be configured, but if the user wishes, he can redefine the proposed styles. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%parameters declared and stored (usable in the environment a posteriori) +\tikzset{ + Xmin/.store in=\pflxmin,Xmin/.default=-3,Xmin=-3, + Xmax/.store in=\pflxmax,Xmax/.default=3,Xmax=3, + Ymin/.store in=\pflymin,Ymin/.default=-3,Ymin=-3, + Ymax/.store in=\pflymax,Ymax/.default=3,Ymax=3, + Origx/.store in=\pflOx,Origx/.default=0,Origx=0, + Origy/.store in=\pflOy,Origy/.default=0,Origy=0, + Xgrid/.store in=\pflgrillex,Xgrid/.default=1,Xgrid=1, + Xgrids/.store in=\pflgrillexs,Xgrids/.default=0.5,Xgrids=0.5, + Ygrid/.store in=\pflgrilley,Ygrid/.default=1,Ygrid=1, + Ygrids/.store in=\pflgrilleys,Ygrids/.default=0.5,Ygrids=0.5 +} +\end{tcblisting} + +We therefore find: + +\smallskip + +\begin{itemize} + \item the origin of the mark (\MontreCode{Origx}/\MontreCode{Origy}); + \item the extreme values of the axes (\MontreCode{Xmin}/\MontreCode{Xmax}/\MontreCode{Ymin}/\MontreCode{Ymax}); + \item the parameters of the main and secondary grids (\MontreCode{Xgrid}/\MontreCode{Xgrids}/\MontreCode{Ygrid}/\MontreCode{Ygrids}). +\end{itemize} + +\smallskip + +Concerning the styles of \textit{objects}, they are given below. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\tikzset{tkzgrphnode/.style={}} +\tikzset{tkzgrphpoint/.style={line width=0.95pt}} +\tikzset{tkzgrphpointc/.style={radius=1.75pt}} +\tikzset{tkzgrphscatter/.style={radius=1.75pt}} +\tikzset{tkzgrphframe/.style={line width=0.8pt,gray}} +\tikzset{tkzgrphcurve/.style={line width=1.05pt}} +\tikzset{tkzgrphline/.style={line width=0.8pt}} +\tikzset{tkzgrpharrowl/.style={<-,>=latex}} +\tikzset{tkzgrpharrowr/.style={->,>=latex}} +\tikzset{tkzgrpharrowlr/.style={<->,>=latex}} +\tikzset{tkzgrphcounterimage/.style={line width=0.9pt,densely dashed}} +\tikzset{tkzgrphrange/.style={line width=0.9pt,densely dashed,->,>=latex}} +\tikzset{tkzgrphgridp/.style={thin,lightgray}} +\tikzset{tkzgrphgrids/.style={very thin,lightgray}} +\tikzset{tkzgrphaxes/.style={line width=0.8pt,->,>=latex}} +\end{tcblisting} + +The idea is therefore to be able to redefine styles globally or locally, and possibly add elements, using \mintinline{latex}|mystyle/.append style={...}|. + +\subsection{Creating the environment}\label{creaenvt} + +The proposed environment is based on \TikZ, so that any \textit{classic} command linked to \TikZ\ can be used alongside the package commands! + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\begin{GraphTikz}[tikz options]<keys> + %code(s) +\end{GraphTikz} +\end{tcblisting} + +The \MontreCode{[tikz options]} are the \textit{classic} options that can be passed to a \TikZ\ environment, as well as the \textsf{axes/grids/window} keys presented previously. + +\smallskip + +The specific (and optional) \MontreCode{<keys>} are: + +\smallskip + +\begin{itemize} + \item \MontreCode{ThickGrad}: size of the axis graduations (\MontreCode{3pt} for 3pt \textit{above} and 3pt \textit{below}); + \item \MontreCode{Frame}: boolean (\MontreCode{false} by default) to display a frame which delimits the graphic window (excluding possible graduations). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz} + [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrid=20,Xgrids=10, + Origy=250,Ymin=250,Ymax=400,Ygrid=25,Ygrids=5] + <Frame> +\end{GraphTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + <Frame> +\end{GraphTikz} +\end{tcblisting} + +It will obviously be more meaningful with the added graphic elements! + +\pagebreak + +\subsection{Grids and axes}\label{creaaxesgr} + +The first command \textit{useful} will allow you to create the grids, axes and graduations. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawAxisGrids[keys]{gradX}{gradY} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Grid}: boolean (\MontreCode{true} by default) to display the grids (for a single grid, simply set the identical parameters for \MontreCode{Xgrid}/\MontreCode{Xgrids} or \MontreCode {Ygrid}/\MontreCode{Ygrids}); + \item \MontreCode{Enlarge}: addition at the end of the axes (\MontreCode{0} by default); + \item \MontreCode{Grads}: boolean (\MontreCode{true} by default) for graduations; + \item \MontreCode{Font}: global font for graduations {\MontreCode{empty} by default}; + \item \MontreCode{Format}: special formatting (see below) of the axis values. +\end{itemize} + +\smallskip + +Concerning the \MontreCode{Format} key, it allows you to specify a specific setting for the axis values. + +\smallskip + +It can be given in the form \MontreCode{fmt} for combined formatting, or in the form \MontreCode{fmtX/fmtY} to differentiate the formatting. + +\smallskip + +The possible options are: + +\smallskip + +\begin{itemize} + \item \MontreCode{num}: format with \textsf{siunitx}; + \item \MontreCode{year}: format in year; + \item \MontreCode{frac}: format as fraction \textsf{frac}; + \item \MontreCode{dfrac}: format as fraction \textsf{dfrac}; + \item \MontreCode{nfrac}: format as fraction \textsf{nicefrac};\hfill (to load!) + \item \MontreCode{trig}: format in trig with \textsf{frac}; + \item \MontreCode{dtrig}: format in trig with \textsf{dfrac}; + \item \MontreCode{ntrig}: format in trig with \textsf{nfrac}; + \item \MontreCode{sqrt}: format in root with \textsf{frac}; + \item \MontreCode{dsqrt}: format in root with \textsf{dfrac}; + \item \MontreCode{nsqrt}: format in root with \textsf{nicefrac}. +\end{itemize} + +\smallskip + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz} + [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrid=20,Xgrids=10, + Origy=250,Ymin=250,Ymax=400,Ygrid=25,Ygrids=5] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{0,10,...,160}{250,275,...,400} +\end{GraphTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} +\end{GraphTikz} +\end{tcblisting} + +Note that there are the Boolean keys \MontreCode{[Behind]} (without the graduations) and \MontreCode{[Above]} (without the grid) to display the axes in \textit{under/over}-printing mode in the case of integrals for example. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=2.75cm,y=3cm, + Xmin=0,Xmax=3.5,Xgrid=pi/12,Xgrids=pi/24, + Ymin=-1.05,Ymax=1.05,Ygrid=0.2,Ygrids=0.05] + \DrawAxisGrids[Enlarge=2.5mm,Format=dtrig/nsqrt,Font=\footnotesize]% + {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi} + {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2} +\end{GraphTikz} +\end{tcblisting} + +In the case where the formatting does not give satisfactory result(s), it is possible to use a generic command for placing the graduations. + +\subsection{Adding values manually}\label{additionvals} + +It is also possible to use a specific command to place values on the axes, independently of an \textit{automated} formatting system. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +in the environment +\AddXvalues[keys]{grads}{formatted values} +\AddYvalues[keys]{grads}{formatted values} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Font}: global font for graduations {\MontreCode{empty} by default}; + \item \MontreCode{Lines}: boolean to add the tick marks {\MontreCode{true} by default}. +\end{itemize} + +\smallskip + +The mandatory arguments correspond to the x-coordinates (in \TikZ\ language) and to the labels (in \LaTeX\ language) of the graduations. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=2.75cm,y=3cm, + Xmin=0,Xmax=3.5,Xgrid=pi/12,Xgrids=pi/24, + Ymin=-1.05,Ymax=1.05,Ygrid=0.2,Ygrids=0.05] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{}{} + \AddXvalues + {0.15,0.6,pi/2,2.8284} + {\num{0.15},$\frac35$,$\displaystyle\frac{\pi}{2}$,$\sqrt{8}$} + \AddYvalues + {-1,0.175,0.3,sqrt(3)/2} + {\num{-1},\num{0.175},$\nicefrac{3}{10}$,$\frac{\sqrt{3}}{2}$} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\section{Specific definition commands} + +\subsection{Draw a line}\label{tracstraight} + +The idea is to propose a command to draw a line (or an asymptote), from: + +\begin{itemize} + \item of two points (or nodes); + \item of a point (or node) and the slope. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawLine[keys]{point or node}{point or node or slope} +\DrawAsymptote[keys]{x value} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: possible name of the plot (for reuse); + \item \MontreCode{Slope}: boolean to specify that the slope is used (\MontreCode{false} by default); + \item \MontreCode{Start}: start of the plot (\MontreCode{\textbackslash pflxmin} by default); + \item \MontreCode{End}: end of the plot (\MontreCode{\textbackslash pflxmax} by default); + \item \MontreCode{Color}: color of the trace (\MontreCode{black} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \DefinePts[Mark,Color=gray]{A/-4/3,B/2/0,C/0/-1} + \DrawLine[Color=red]{(-2,-1)}{(2,4)} + \DrawLine[Color=blue,Start=-5,End=3]{(A)}{(B)} + \DrawLine[Color=olive,Slope]{(C)}{0.25} + \DrawAsymptote[Color=brown]{-6} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Define a function, draw the curve of a function}\label{deftracfct} + +The idea is to define a function, for later reuse. This command \textit{creates} the function, without tracing it, because in certain cases elements will have to be traced beforehand. + +\smallskip + +There is also a command to plot the curve of a previously defined function. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DefineCurve[keys]<fct name>{xint formula} +\DrawCurve[keys]{xint formula} +\end{tcblisting} + +The optional \MontreCode{[keys]} for definition or tracing are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Start}: lower bound of the definition set (\MontreCode{\textbackslash pflxmin} by default); + \item \MontreCode{End}: lower bound of the definition set (\MontreCode{\textbackslash pflxmax} by default); + \item \MontreCode{Name}: name of the curve (important for the rest!); + \item \MontreCode{Color}: color of the trace (\MontreCode{black} by default); + \item \MontreCode{Step}: plot step (it is determined \textit{automatically} at the start but can be modified); + \item \MontreCode{Trace}: boolean to also trace the curve (\MontreCode{false} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + %definition of the function + drawing of the curve + \DefineCurve[Name=cf,Start=5,End=19]<f>{-2*x+3+24*log(2*x)} + \DrawCurve[Color=red,Start=5,End=19]{f(x)} + %or in a single command if "sufficient" + %\DefineCurve[Name=cf,Start=5,End=19,Trace]<f>{-2*x+3+24*log(2*x)} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Define/draw an interpolation curve (simple)}\label{deftracinterpo} + +It is also possible to define a curve via support points, therefore a simple interpolation curve. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DefineInterpoCurve[keys]{list of support points} +\DrawInterpoCurve[keys]{list of support points} +\end{tcblisting} + +The optional \MontreCode{[keys]} for definition or tracing are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: name of the interpolation curve (important for the rest!); + \item \MontreCode{Color}: color of the trace (\MontreCode{black} by default); + \item \MontreCode{Tension}: setting the \textit{tension} of the interpolation plot (\MontreCode{0.5} by default); + \item \MontreCode{Trace}: boolean to also trace the curve (\MontreCode{false} by default). +\end{itemize} + +The mandatory argument allows you to specify the list of support points in the form \MontreCode{(x1,y1)(x2,y2)...}. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + %simple interpolation curves (with diff tension) + \DefineInterpoCurve[Name=interpotest,Color=blue,Trace]% + {(-6,4)(-2,-2)(3,3.5)} + \DefineInterpoCurve[Name=interpotest,Color=red,Trace,Tension=1]% + {(-6,4)(-2,-2)(3,3.5)} +\end{GraphTikz} +\end{tcblisting} + +\newpage + +\subsection{Define/draw an interpolation curve (Hermite)}\label{deftracfctspline} + +It is also possible to define a curve via support points, therefore an interpolation curve with derivative control. + +\smallskip + +Some operations require different techniques depending on the type of function used, a \textsf{Boolean} key \MontreCode{Spline} will allow the code to adapt its calculations depending on the object used. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DefineSplineCurve[keys]{list of support points}[\macronomspline] +\DrawSplineCurve[keys]{list of support points}[\macronomspline] +\end{tcblisting} + +The optional \MontreCode{[keys]} for definition or tracing are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: name of the interpolation curve (important for the rest!); + \item \MontreCode{Coeffs}: modify (see the \textsf{ProfLycee}\footnote{CTAN documentation: \url{https://ctan.org/pkg/proflycee}} the \textit{coefficients} of the spline; + \item \MontreCode{Color}: color of the trace (\MontreCode{black} by default); + \item \MontreCode{Trace}: boolean to also trace the curve (\MontreCode{false} by default). +\end{itemize} + +The mandatory argument allows you to specify the list of support points in the form \MontreCode{x1/y1/f'1§x2/y2/f'2§...} with: + +\begin{itemize} + \item \MontreCode{xi/yi} the coordinates of the point; + \item \MontreCode{f'i} the derivative at the support point. +\end{itemize} + +\smallskip + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + %definition of the list of spline support points + \def\LISTETEST{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5} + %definition and plot of the cubic spline + \DefineSplineCurve[Name=splinetest,Trace,Color=olive]{\LISTETEST} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Define points as nodes}\label{defpts} + +The second idea is to work with \TikZ nodes, which could be useful for tangent plots, representations of integrals$\ldots$ + +\smallskip + +It is also possible to define nodes for \textit{image} points. + +\smallskip + +Certain commands (explained later) allow you to determine particular points of curves in the form of nodes, so it seems interesting to be able to define them directly. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%by coordinates +\DefinePts[keys]{Name1/x1/y1,Name2/x2/y2,...} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Mark}: boolean to mark points (\MontreCode{false} by default); + \item \MontreCode{Color}: color of the points, if \MontreCode{Mark=true} (\MontreCode{black} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%as image +\DefineRange[keys]{object}{abscissa} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: node name (\MontreCode{empty} by default); + \item \MontreCode{Spline}: boolean to specify that a spline is used (\MontreCode{false} by default). +\end{itemize} + +The first mandatory argument is the \textit{object} considered (name of the curve for the spline, function otherwise); the second is the abscissa of the point considered. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + %definition of the function + drawing of the curve + \DefineFunction[Name=cf,Start=5,End=19,Trace,Color=red]<f>{-2*x+3+24*log(2*x)} + %manual nodes + \DefinePts[Mark,Color=brown]{A/7/42,B/16/49} + %imagenode + \DefineRange[Name=IMGf]{f}{14} + \MarkPts*[Style=x,Color=blue]{(IMGf)} %see next section ;-) +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Mark Points}\label{markpts} + +The idea is to offer something to score points with a particular style. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\MarkPts(*)[keys]<font>{list} +\end{tcblisting} + +The \textit{starred} version scores the points without the \textit{names}, while the \textit{unstarred} version displays them: + +\begin{itemize} + \item in the case of the \textit{starred} version, the list should be given in the form \MontreCode{(ptA),(ptB),...}; + \item otherwise, the list should be given in the form \MontreCode{(ptA)/poslabelA/labelA,...}. +\end{itemize} + +\smallskip + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Color}: color (\MontreCode{black} by default); + \item \MontreCode{Style}: style of marks (\MontreCode{o} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}[x=1.5cm,y=1.5cm,Ymin=-2] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \DefinePts{A/1.75,-1.25}\MarkPts[Color=pink]{(A)/below/A} %round (default) + \MarkPts[Color=teal]{(1,1)/below/M} + \MarkPts[Color=red,Style=x]{(1.25,1)/below/$A$} %cross + \MarkPts[Color=orange,Style=+]<\small\sffamily>{(1.5,1)/below/K} %plus + \MarkPts[Color=blue,Style=c]{(1.75,1)/below/P} %square + \MarkPts[Color=gray,Style=d]{(2,1)/below/P} %diamond + \MarkPts*[Color=orange/yellow]{(2,2),(2.5,2.25)} %two-tone round + \MarkPts*[Style=+,Color=red]{(1,2)} + \MarkPts*[Style=x,Color=blue]{(2.25,1)} + \MarkPts*[Style=c,Color=magenta]{(-2,-1)} + \MarkPts[Color=red,Style=x]{(-1,1)/below/$A$,(-2,2)/below left/$B$} +\end{GraphTikz} +\end{tcblisting} + +Note that it is also possible to modify the size of the \MontreCode{o/x/+/c} marks via the \MontreCode{[keys]}: + +\begin{itemize} + \item \MontreCode{Sizex=...} (\MontreCode{2pt} by default) for points \textit{cross}; + \item \MontreCode{Sizeo=...} (\MontreCode{1.75pt} by default) for the points \textit{circle}; + \item \MontreCode{Sizec=...} (\MontreCode{2pt} by default) for the \textit{square} points. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}[x=1cm,y=1cm,Xmin=0,Ymin=0] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \MarkPts[Color=red,Style=x,Size=3.5pt]{(1.25,1.25)/below/$A$} + \MarkPts[Color=teal,Size=2.5pt]{(2,2)/right/$A$} + \MarkPts*[Color=orange,Style=c,Size=4pt]{(0.5,2.5)} +\end{GraphTikz} +\end{tcblisting} + +\subsection{Retrieve node coordinates}\label{recupcoordo} + +It is also possible, with a view to reusing coordinates, to recover the coordinates of a node (defined or determined). + +\smallskip + +The calculations are carried out by floating according to the (re)calculated units, the values are therefore approximated ! + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\GetXcoord{node}[\macrox] +\GetYcoord{node}[\macroy] +\GetXYcoord{node}[\macrox][\macroy] +\end{tcblisting} + +\subsection{Place text}\label{placetxt} + +Note that a text placement command is available. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawTxt[keys]{(node or coordinates)}{text} +\end{tcblisting} + +The available \MontreCode{[keys]} are: + +\begin{itemize} + \item \MontreCode{Font=...} (\MontreCode{\textbackslash normalsize\textbackslash normalfont} by default) for the font; + \item \MontreCode{Color=...} (\MontreCode{black} by default) for the color; + \item \MontreCode{Position=...} (\MontreCode{empty} by default) for the position of the text relative to the coordinates. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}[x=1cm,y=1cm,Xmin=0,Xmax=5,Ymin=0,Ymax=1] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \DrawTxt[Color=red,Font=\LARGE,Position=right]{(1.5,0.5)}{curve $C_1$} +\end{GraphTikz} +\end{tcblisting} + +\section{Specific commands for using curves} + +\subsection{Image placement}\label{images} + +It is possible to place points (images) on a curve, with possible construction lines. + +The function/curve used must have been declared previously for this command to work. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawRanges[keys]{function or curve}{list of abscissa} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Lines}: boolean to display construction traits (\MontreCode{false} by default); + \item \MontreCode{Colors}: color of the points/lines, in the form \MontreCode{Couleurs} or \MontreCode{ColPoint/ColLines}; + \item \MontreCode{Spline}: boolean to specify that the curve used is defined as a \textsf{spline} (\MontreCode{false} by default). +\end{itemize} + +\smallskip + +The first mandatory argument allows you to specify: + +\smallskip + +\begin{itemize} + \item the name of the curve in the case \MontreCode{Spline=true}; + \item the name of the function otherwise. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + %definition of the function + drawing of the curve + \DefineCurve[Name=cf,Start=5,End=19,Trace,Color=red]<f>{-2*x+3+24*log(2*x)} + %images + \DrawRanges[Lines,Colors=teal/blue]{f}{6,7,8,9,10} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Antecedent determination}\label{defanteced} + +It is possible to graphically determine the antecedents of a given reality. + +The function/curve used must have been declared previously for this command to work. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\FindCounterimage[keys]{curve}{k} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: base of the name of the \textbf{nodes} intersection (\MontreCode{S} by default, which will give \textsf{S-1}, \textsf{S-2}, etc); + \item \MontreCode{Disp}: boolean to display the points (\MontreCode{true} by default); + \item \MontreCode{Color}: color of the points (\MontreCode{black} by default); + \item \MontreCode{DispLine}: boolean to display the horizontal line (\MontreCode{false} by default). +\end{itemize} + +\smallskip + +The first mandatory argument allows you to specify the \textbf{name} of the curve. + +\smallskip + +The second mandatory argument allows you to specify the value to reach. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + %definition of the function + drawing of the curve + \DefineCurve[Name=cf,Start=5,End=19,Trace,Color=red]<f>{-2*x+3+24*log(2*x)} + %history + \FindCounterimage[Color=teal,DispLine,Disp]{cf}{53} + %the two antecedents are at nodes (S-1) and (S-2) +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Antecedent construction}\label{tracanteced} + +It is possible to graphically construct the antecedents. + +The function/curve used must have been declared previously for this command to work. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawCounterimage[keys]{curve}{k} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Colors}: color of the points/lines, in the form \MontreCode{Color} or \MontreCode{ColPoint/ColLines}; + \item \MontreCode{Name}: name \textit{possible} for the intersection points linked to the antecedents (\MontreCode{empty} by default); + \item \MontreCode{Lines}: boolean to display construction traits (\MontreCode{false} by default). +\end{itemize} + +\smallskip + +The first mandatory argument allows you to specify the \textbf{name} of the curve. + +\smallskip + +The second mandatory argument allows you to specify the value to reach. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + %definition of the function + drawing of the curve + \DefineCurve[Name=cf,Start=5,End=19,Trace,Color=red]<f>{-2*x+3+24*log(2*x)} + %history + \DrawCounterimage[Colors=teal/cyan,Lines,Name=PO]{cf}{53} + \GetXcoord{(PO-1)}[\premsol] + \GetXcoord{(PO-2)}[\deuxsol] +\end{GraphTikz} + +Graphically, the antecedents of 53 are (approximately): + +\begin{itemize} + \item \num{\premsol} + \item \num{\deuxsol} +\end{itemize} +\end{tcblisting} + +\pagebreak + +\subsection{Intersections of two curves}\label{intersect} + +It is also possible to determine (in the form of nodes) the possible points of intersection of two previously defined curves. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\FindIntersections[keys]{curve1}{curve2} +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Name}: base of the name of the \textbf{nodes} intersection (\MontreCode{S} by default, which will give \textsf{S-1}, \textsf{S-2}, etc); + \item \MontreCode{Disp}: boolean to display the points (\MontreCode{true} by default); + \item \MontreCode{Color}: color of the points (\MontreCode{black} by default). +\end{itemize} + +\smallskip + +The first mandatory argument allows you to specify the \textbf{name} of the first curve. + +\smallskip + +The first mandatory argument allows you to specify the \textbf{name} of the second curve. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + \DefineCurve[Name=cf,Start=5,End=19,Trace,Color=red]<f>{-2*x+3+24*log(2*x)} + \DefineCurve[Name=cg,Start=5,End=19,Trace,Color=blue]<g>{0.25*(x-12)^2+46} + %intersections, named (TT-1) and (TT-2) + \FindIntersections[Name=TT,Color=darkgray,Display,Lines]{cf}{cg} + %recovery of intersection points + \GetXYcoord{(TT-1)}[\alphaA][\betaA] + \GetXYcoord{(TT-2)}[\alphaB][\betaB] +\end{GraphTikz}\\ +The solutions of $f(x)=g(x)$ are $\alpha \approx \num{\alphaA}$ and +$\beta \approx \num{\alphaB}$.\\ +The points of intersection of the curves of $f$ and $g$ are therefore +$(\RoundNb[2]{\alphaA};\RoundNb[2]{\betaA})$ and +$(\RoundNb[2]{\alphaB};\RoundNb[2]{\betaB})$. +\end{tcblisting} + +\pagebreak + +\subsection{Extrema}\label{maximum}\label{minimum} + +The idea (still \textit{experimental}) is to offer commands to extract the extrema of a curve defined by the package. + +The command creates the corresponding node, and it is therefore possible to retrieve its coordinates for later use. + +\smallskip + +It is possible, by specifying it, to work on the different curves managed by the package (function, interpolation, spline). + +For singular curves, it is possible that the results are not quite those expected\ldots + +\smallskip + +{\small\faBomb} For the moment, the \textit{limitations} are: + +\begin{itemize} + \item no management of multiple extrema (only the first will be processed)\ldots + \item no management of extrema at the boundaries of the route\ldots + \item no automatic recovery of curve definition parameters\ldots + \item compilation time may be longer\ldots +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\FindMax[keys]{object}[node created] +\FindMin[keys]{object}[node created] +\end{tcblisting} + +The optional \MontreCode{[keys]} available are: + +\smallskip + +\begin{itemize} + \item \MontreCode{Method}: method, among \MontreCode{function/interpo/spline} for calculations (\MontreCode{function} by default); + \item \MontreCode{Start}: start of the plot (\MontreCode{\textbackslash pflxmin} by default); + \item \MontreCode{End}: end of the plot (\MontreCode{\textbackslash pflxmax} by default); + \item \MontreCode{Step}: not in the plot if \MontreCode{function} (it is determined \textit{automatically} at the start but can be modified); + \item \MontreCode{Coeffs}: modify the \textit{coefficients} of the spline if \MontreCode{spline}; + \item \MontreCode{Tension}: setting the \textit{tension} of the interpolation plot if \MontreCode{interpo}(\MontreCode{0.5} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}[x=1cm,y=1cm,Xmin=-1,Xmax=5,Ymin=-1,Ymax=3] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \DefineCurve[Name=cf,Start=0.35,End=4.2,Trace]% + <f>{0.6*cos(4.5*(x-4)+2.1)-1.2*sin(x-4)+0.1*x+0.2} + \FindMax[Start=0.35,End=4.2]{f}[cf-max] + \FindMax[Start=3,End=4]{f}[cf-maxlocal] + \FindMin[Start=1,End=2]{f}[cf-minlocal] + \MarkPts*[Color=red,Lines]{(cf-max)} + \MarkPts*[Color=blue,Lines]{(cf-maxlocal)} + \MarkPts*[Color=olive,Lines]{(cf-minlocal)} + \GetXYcoord{(cf-max)}[\MyMaxX][\MyMaxY] +\end{GraphTikz}\\ +The maximum is $M\approx\RoundNb{\MyMaxY}$, reached in $x\approx\RoundNb{\MyMaxX}$ +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}[x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineInterpoCurve[Name=interpotest,Color=red,Trace,Tension=1]% + {(-6,4)(-2,-2)(3,3.5)} + \FindMin[Method=interpo,Tension=1]{(-6,4)(-2,-2)(3,3.5)}[interpo-min] + \MarkPts*[Color=blue]{(interpo-min)} + \GetXYcoord{(interpo-min)}[\MinInterpoX][\MinInterpoY] +\end{GraphTikz}\\ +The minimum is $M\approx\RoundNb[3]{\MinInterpoY}$, reached at $x\approx\RoundNb[3]{\MinInterpoX}$ +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=1.2cm,y=1.6cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=3,Ygrid=0.5,Ygrids=0.25] + \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} + \def\LISTETEST{-6/2/0§-1/-2/0§2/1/0§3.5/0/-1} + \DefineSplineCurve[Name=splinetest,Trace]{\LISTETEST} + \FindMin[Method=spline]{\LISTETEST}[spline-min] + \MarkPts*[Color=red]{(spline-min)} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Integrals (improved version)}\label{integr} + +We can also work with integrals. + +In this case it is preferable to highlight the domain \textbf{before} the plots, to avoid overprinting in relation to the curves/points. + +\smallskip + +It is possible to : + +\begin{itemize} + \item represent an integral \textbf{under} a defined curve; + \item represent an integral \textbf{between} two curves; + \item the integration limits can be x-coordinates and/or nodes. +\end{itemize} + +\smallskip + +{\small\faBomb} Given the differences in processing between formula curves, simple interpolation curves or cubic interpolation curves, the arguments and keys may differ depending on the configuration! + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawIntegral[keys]<specific options>{object1}[object2]{A}{B} +\end{tcblisting} + +The optional \MontreCode{[keys]} for definition or tracing are: + +\begin{itemize} + \item \MontreCode{Colors} =: colors of the filling, in the form \MontreCode{Col} or \MontreCode{ColBorder/ColBg} (\MontreCode{gray} by default); + \item \MontreCode{Style}: type of filling, among \MontreCode{fill}/\MontreCode{hatch} (\MontreCode{fill} by default); + \item \MontreCode{Opacity}: opacity (\MontreCode{0.5} by default) of the filling; + \item \MontreCode{Hatch}: style (\MontreCode{north west lines} by default) of the hatch filling; + \item \MontreCode{Type}: type of integral among + \begin{itemize} + \item \MontreCode{fct} (default) for an integral under a curve defined by a formula; + \item \MontreCode{spl} for an integral under a curve defined by a cubic spline; + \item \MontreCode{itp} for an integral under a curve defined by interpolation ; + \item \MontreCode{fct/fct} for an integral between two curves defined by a formula; + \item \MontreCode{fct/spl} for an integral between a curve (above) defined by a formula and a curve (below) defined by a spline cubic; + \item etc. + \end{itemize} + \item \MontreCode{Step}: steps (calculated by default otherwise) for the plot; + \item \MontreCode{Junction}: junction of segments (\MontreCode{bevel} by default); + \item \MontreCode{Bounds}: type of terminals among: + \begin{itemize} + \item \MontreCode{abs} for the limits given by the abscissa; + \item \MontreCode{nodes} for the limits given by the nodes; + \item \MontreCode{abs/node} for the limits given by abscissa and node; + \item \MontreCode{node/abs} for the limits given by node and abscissa; + \end{itemize} + \item \MontreCode{Border}: boolean (\MontreCode{true} by default) to display the side lines,% + \item \MontreCode{SplineName}: macro (important!) of the spline generated previously for a higher version spline; + \item \MontreCode{SplineNameB}: macro (important!) of the spline generated previously for a lower version spline; + \item \MontreCode{InterpoName}: name (important!) of the interpolation curve generated previously, in higher version; + \item \MontreCode{InterpoBName}: name (important!) of the interpolation curve generated previously, in lower version; + \item \MontreCode{Tension}: Tension for the interpolation curve generated previously, in higher version; + \item \MontreCode{TensionB}: Tension of the interpolation curve generated previously, in lower version. +\end{itemize} + +\smallskip + +The first required argument is the spline function or curve or list of interpolation points. + +\smallskip + +The next optional argument is the spline function or curve or list of interpolation points. + +\smallskip + +The last two mandatory arguments are the limits of the integral, given in a form consistent with the key \MontreCode{Bounds}. + +\pagebreak + +In the case of curves defined by \textit{points}, it is necessary to work on intervals on which the first curve is \textbf{above} the second. + +It will undoubtedly be interesting to work with \textit{intersections} in this case. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.6cm,y=0.06cm, + Xmin=0,Xmax=21,Xgrid=1,Xgrids=0.5, + Ymin=0,Ymax=155,Ygrid=10,Ygrids=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{}{} + \DefineCurve[Name=cf,Start=1,End=20,Color=red]<f>{80*x*exp(-0.2*x)} + \DrawIntegral + [Bounds=abs,Colors=blue/cyan!50]% + {f(x)}{3}{12} + \DrawCurve[Color=red,Start=1,End=20]{f(x)} + \DrawAxisGrids% + [Grid=false,Enlarge=2.5mm,Font=\small]{0,1,...,20}{0,10,...,150} +\end{GraphTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=1.2cm,y=1.6cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=3,Ygrid=0.5,Ygrids=0.25] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{}{} + \def\LISTETEST{-6/2/0§-1/-2/0§2/1/0§3.5/0/-1} + \DefineSplineCurve[Name=splinetest]{\LISTETEST} + \DrawIntegral[Type=spl,Style=hatch,Colors=purple]{splinetest}{-5.75}{-4.75} + \DrawIntegral[Type=spl,Colors=blue]{splinetest}{-2}{-1} + \DrawIntegral[Type=spl,Colors=orange]{splinetest}{1}{3} + \DrawSplineCurve[Color=olive]{\LISTETEST} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm] + {-7,-6,...,4}% + {-3,-2.5,...,3} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +\subsection{Tangents}\label{tgte} + +The idea of this command is to draw the tangent to a previously defined curve, specifying: + +\begin{itemize} + \item the point (abscissa or node) at which we wish to work; + \item possibly the direction (in the case of a discontinuity or a terminal); + \item possibly the step ($h$) of the calculation; + \item the \textit{lateral spacings} to draw the tangent. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawTangent[keys]{function or curve}{point}<line options> +\end{tcblisting} + +The optional \MontreCode{[keys]} for definition or tracing are: + +\begin{itemize} + \item \MontreCode{Colors} =: colors of the plots, in the form \MontreCode{Col} or \MontreCode{ColLine/ColPoint} (\MontreCode{black} by default); + \item \MontreCode{OffsetL} =: left horizontal spacing to start the trace (\MontreCode{1} by default); + \item \MontreCode{OffsetR} =: left horizontal spacing to start the trace (\MontreCode{1} by default); + \item \MontreCode{DispPt}: boolean to display the support point (\MontreCode{false} by default); + \item \MontreCode{Spline}: boolean to specify that a spline is used (\MontreCode{false} by default); + \item \MontreCode{h}: delta $h$ used for calculations (\MontreCode{0.01} by default); + \item \MontreCode{Direction}: allows you to specify the \textit{direction} of the tangent, among \MontreCode{lr}/\MontreCode{l}/\MontreCode{r} (\MontreCode{lr} by default); + \item \MontreCode{Node}: boolean to specify that a node is used (\MontreCode{false} by default). +\end{itemize} + +\smallskip + +The first required argument is the spline function or curve (if applicable). + +\smallskip + +The last mandatory argument is the work point (abscissa version or node following the key \MontreCode{Node}). + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, + Ymin=40,Ymax=56,Ygrid=2,Ygrids=1,Origy=40] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{4,5,...,20}{40,42,...,56} + \DefineCurve[Name=cf,Start=5,End=19,Color=red,Trace]<f>{-2*x+3+24*log(2*x)} + \FindCounterimage[Color=teal,Name=JKL,Disp=false]{cf}{53} + %tangent + \DrawTangent% + [Colors=cyan/gray,OffsetL=2.5,OffsetR=2.5,Node,DispPt]{f}{(JKL-1)} +\end{GraphTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \def\LISTETEST{-6/4/-0.5§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5} + \DefineSplineCurve[Name=splinetest,Trace,Color=olive]{\LISTETEST} + \DrawTangent[Colors=red,Spline,DispPt]{splinetest}{1} + \DrawTangent% + [Colors=blue,Spline,OffsetL=1.5,OffsetR=1.5,DispPt]{splinetest}{-3}% + <tkzgrpharrowlr> + \DrawTangent[Direction=l,Colors=orange,Spline,OffsetL=1.5,DispPt]{splinetest}{3} + \DrawTangent[Direction=r,Colors=purple,Spline,OffsetR=1.5,DispPt]{splinetest}{-6} +\end{GraphTikz} +\end{tcblisting} + +\pagebreak + +%\section{Specific commands for density functions} +% +%\subsection{Normal distribution}\label{normal distribution} +% +%The idea is to provide something to work with standard deviation. +% +%\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +% %in the GraphiqueTikz environment +% \DefineNormalDistribution[keys]<fct name>{mu}{sigma} +% \TraceNormalDistribution[keys]{fct(x)} +%\end{tcblisting} +% +%The optional \MontreCode{[keys]} available are: +% +%\smallskip +% +%\begin{itemize} +% \item \MontreCode{Name}: name of the plot (\MontreCode{Gaussian} by default); +% \item \MontreCode{Trace}: boolean to trace the curve (\MontreCode{false} by default); +% \item \MontreCode{Couleur}: color of the trace, if requested (\MontreCode{black} by default); +% \item \MontreCode{Debut}: lower bound of the definition set (\MontreCode{\textbackslash pflxmin} by default); +% \item \MontreCode{End}: lower bound of the definition set (\MontreCode{\textbackslash pflxmax} by default); +% \item \MontreCode{Pas}: plot step (it is determined \textit{automatically} at the start but can be modified). +%\end{itemize} +% +%Note that the vertical axis must be adapted according to the parameters of the normal law. +% +%\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +% \begin{GraphTikz}% +% [x=1.25cm,y=15cm,Origx=5,Xmin=5,Xmax=15,Ymin=0,Ymax=0.3, +% Ygrid=0.1,Ygrids=0.05] +% \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} +% \DefineNormalDistribution[Name=Gaussian]<phi>{10}{1.5} +% \TracerIntegral +% [Terminals=abs, Colors=blue/cyan!50]% +% {phi(x)}{7}{13} +% \TraceNormalLaw[Color=purple,Start=5,End=15]{phi(x)} +% \end{GraphTikz} +%\end{tcblisting} +% +%\pagebreak +% +%\subsection{Chi-square law}\label{loikhideux} +% +%The idea is to provide something to work with normal laws. +% +%\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +% %in the GraphiqueTikz environment +% \DefineKhiTwoLaw[keys]<fct name>{k} +% \TraceLawKhiTwo[keys]{fct(x)} +%\end{tcblisting} +% +%The optional \MontreCode{[keys]} available are: +% +%\smallskip +% +%\begin{itemize} +% \item \MontreCode{Name}: name of the plot (\MontreCode{Gaussian} by default); +% \item \MontreCode{Trace}: boolean to trace the curve (\MontreCode{false} by default); +% \item \MontreCode{Couleur}: color of the trace, if requested (\MontreCode{black} by default); +% \item \MontreCode{Debut}: lower bound of the definition set (\MontreCode{\textbackslash pflxmin} by default); +% \item \MontreCode{End}: lower bound of the definition set (\MontreCode{\textbackslash pflxmax} by default); +% \item \MontreCode{Pas}: plot step (it is determined \textit{automatically} at the start but can be modified). +%\end{itemize} +% +%Note that the vertical axis must be adapted according to the parameter of the chi-square law. +% +%\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +% \begin{GraphTikz}[ +% x=1.5cm,y=7.5cm, +% Xmin=0,Xmax=8,Xgrid=1,Xgrids=0.5, +% Ymin=0,Ymax=0.5,Ygrid=0.1,Ygrids=0.05 +% ] +% \DrawAxisGrids[Enlarge=2.5mm]{auto}{auto} +% \DefineKhiTwoLaw[Color=red,Start=0.25,Trace]<phiA>{1} +% \DefineKhiTwoLaw[Color=blue,Trace]<phiB>{2} +% \DefineLawKhiDeux[Color=orange,Trace]<phiC>{3} +% \DefineKhiTwoLaw[Color=purple,Trace]<phiD>{4} +% \DefineKhiTwoLaw[Color=yellow,Trace]<phiE>{5} +% \DefineKhiTwoLaw[Color=teal,Trace]<phiF>{6} +% \end{GraphTikz} +%\end{tcblisting} + +\pagebreak + +\section{Commands specific to two-variable statistics} + +\subsection{The point scatter}\label{scatter} + +In addition to commands linked to functions, it is also possible to represent double statistical series. + +\smallskip + +The following paragraph shows that adding a key allows you to add the linear adjustment line. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\DrawScatter[keys]{ListX}{ListY} +\end{tcblisting} + +The optional \MontreCode{[key]} is: + +\smallskip + +\begin{itemize} + \item \MontreCode{ColorScatter}: color of the cloud points (\MontreCode{black} by default). +\end{itemize} + +\smallskip + +The mandatory arguments allow you to specify: + +\smallskip + +\begin{itemize} + \item the list of x; + \item the list of y. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrid=20,Xgrids=10, + Origy=250,Ymin=250,Ymax=400,Ygrid=25,Ygrids=5] + %window preparation + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{0,10,...,160}{250,275,...,400} + %A cloud of dots + \DrawScatter[Style=x,ColorScatter=red]{0,50,100,140}{275,290,315,350} +\end{GraphTikz} +\end{tcblisting} + +\subsection{The regression line}\label{reglin} + +The linear regression line (obtained by the least squares method) can easily be added, using the key \MontreCode{DrawLine}. + +\smallskip + +In this case, new keys are available: + +\smallskip + +\begin{itemize} + \item \MontreCode{ColorLine}: color of the line (\MontreCode{black} by default); + \item \MontreCode{Rounds}: precision of coefficients (\MontreCode{empty} by default); + \item \MontreCode{Start}: initial abscissa of the plot (\MontreCode{\textbackslash pflxmin} by default); + \item \MontreCode{End}: terminal abscissa of the plot (\MontreCode{\textbackslash pflxmax} by default); + \item \MontreCode{Name}: name of the line, for later use (\MontreCode{reglin} by default). +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrid=20,Xgrids=10, + Origy=250,Ymin=250,Ymax=400,Ygrid=25,Ygrids=5] + \DrawAxisGrids[Enlarge=2.5mm,Font=\small]{0,10,...,160}{250,275,...,400} + %cloud and right + \DrawScatter% + [ColorScatter=red,ColorLine=brown,DrawLine]% + {0,50,100,140}{275,290,315,350} + %picture + \DrawRanges[Colors=cyan/magenta,Lines]{d}{120} + %history + \DrawCounterimage[Style=x,Colors=blue/green!50!black,Lines]{reglin}{300} +\end{GraphTikz} +\end{tcblisting} + +\subsection{Other regressions}\label{regressions} + +In partnership with the \MontreCode{xint-regression} package, loaded by the package (but \textit{can be deactivated} via the \MontreCode{[noxintreg]} option), it is possible to work on other types of regression: + +\begin{itemize} + \item linear \fbox{$ax+b$}; + \item quadratic \fbox{$ax^2+bx+c$}; + \item cubic \fbox{$ax^3+bx^2+cx+d$}; + \item power \fbox{$ax^b$}; + \item exponential \fbox{$ab^x$} or \fbox{$e^{ax+b}$} or \fbox{$b e^{ax}$} or \fbox{$C + be^{ax} $}; + \item logarithmic \fbox{$a+b\ln(x)$}; + \item hyperbolic \fbox{$a+\displaystyle\frac{b}{x}$}. +\end{itemize} + +The command, similar to that of defining a curve, is: + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\DrawRegression[keys]<name fct>{type}<rounded>{listex}{listey} +\end{tcblisting} + +The \MontreCode{[keys]} available are, classically: + +\begin{itemize} + \item \MontreCode{Start}: lower bound of the definition set (\MontreCode{\textbackslash pflxmin} by default); + \item \MontreCode{End}: lower bound of the definition set (\MontreCode{\textbackslash pflxmax} by default); + \item \MontreCode{Name}: name of the curve (important for the rest!); + \item \MontreCode{Color}: color of the trace (\MontreCode{black} by default); + \item \MontreCode{Step}: plot step (it is determined \textit{automatically} at the start but can be modified). +\end{itemize} + +\pagebreak + +The second argument, optional and between \MontreCode{<...>}, allows you to name the regression function. + +The third argument, mandatory and between \MontreCode{\{...\}} allows you to choose the type of regression, among: + +\begin{itemize} + \item \MontreCode{lin}: linear \fbox{$ax+b$}; + \item \MontreCode{quad}: quadratic \fbox{$ax^2+bx+c$}; + \item \MontreCode{cub}: cubic \fbox{$ax^3+bx^2+cx+d$}; + \item \MontreCode{pow}: power \fbox{$ax^b$}; + \item \MontreCode{expab}: exponential \fbox{$ab^x$} + \item \MontreCode{hyp}: hyperbolic \fbox{$a+\displaystyle\frac{b}{x}$}; + \item \MontreCode{log}: logarithmic \fbox{$a+b\ln(x)$}; + \item \MontreCode{exp}: exponential \fbox{$e^{ax+b}$}; + \item \MontreCode{expalt}: exponential \fbox{$be^{ax}$}; + \item \MontreCode{expoff=C}: exponential \fbox{$C + be^{ax}$}. +\end{itemize} + +The fourth argument, optional and between \MontreCode{<...>}, allows you to specify the rounding(s) for the coefficients of the regression function. + +The last two arguments are the lists of values of X and Y. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\def\LISTEXX{0,50,100,140}\def\LISTEYY{275,290,315,350}% +ListX := \LISTEXX\\ +ListY := \LISTEYY + +\begin{GraphTikz} + [x=0.05cm,y=0.04cm,Xmin=0,Xmax=160,Xgrid=20,Xgrids=10, + Origy=250,Ymin=250,Ymax=400,Ygrid=25,Ygrids=5] + %window preparation + \DrawAxisGrids[Enlarge=2.5mm,Font=\footnotesize]{auto}{auto} + %A cloud of dots + \DrawScatter[Style=o,ColorScatter=red]{\LISTEXX}{\LISTEYY} + %adjustment expoffset + \DrawRegression[Color=blue,Name=adjust]<adjust>{expoff=250}{\LISTEXX}{\LISTEYY} + %holdings + \DrawRanges[Colors=cyan/magenta,Lines]{adjust}{80} + \DrawCounterimage[Style=x,Colors=blue/green!50!black,Lines]{adjust}{325} +\end{GraphTikz} + +\xintexpoffreg[offset=250,round=3/1]{\LISTEXX}{\LISTEYY}% +We obtain $y=250+\num{\expregoffb}\text{e}^{\num{\expregoffa}x}$ +\end{tcblisting} + +\newpage + +\section{Auxiliary commands} + +\subsection{Intro} + +In addition to purely \textit{graphic} commands, some auxiliary commands are available: + +\begin{itemize} + \item a to format a number with a given precision; + \item one for working on random numbers, with constraints. +\end{itemize} + +\subsection{Formatted rounding}\label{round number} + +The \MontreCode{\textbackslash RoundNb} command allows you to format, using the \MontreCode{siunitx} package, a number (or a calculation), with a given precision. This can be \textit{useful} for formatting results obtained using coordinate retrieval commands, for example. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\RoundNb[precision]{xint calculation} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\RoundNb{1/3}\\ +\RoundNb{16.1}\\ +\RoundNb[3]{log(10)}\\ +\end{tcblisting} + +\subsection{Random number under constraints}\label{nbalea} + +The idea of this second command is to be able to determine a random number: + +\begin{itemize} + \item integer or decimal; + \item under constraints (between two fixed values). +\end{itemize} + +This can allow, for example, to work on curves with \textit{random} points, but respecting certain constraints. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +\PickRandomNb(*)[precision (def 0)]{lower limit}{upper limit}[\macro] +\end{tcblisting} + +The star version takes the constraints in strict form ($\text{lower bound} < \text{macro} < \text{upper bound}$) while the normal version takes the constraints in broad form ($\text{lower bound) } \leq \text{macro} \leq \text{upper bound}$). + +\smallskip + +Note that the \textit{terminals} can be existing \textit{macros}! + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +%a number (2 digits after the decimal point) between 0.75 and 0.95 +%a number (2 digits after the decimal point) between 0.05 and 0.25 +%a number (2 decimal places) between 0.55 and \YrandMax +%a number (2 decimal places) between \YrandMin and 0.45 +\PickRandomNb[2]{0.75}{0.95}[\YrandMax]% +\PickRandomNb[2]{0.05}{0.25}[\YrandMin]% +\PickRandomNb*[2]{0.55}{\YrandMax}[\YrandA]% +\PickRandomNb*[2]{\YrandMin}{0.45}[\YrandB]% +%verification +\num{\YrandMax} \& \num{\YrandMin} \& \num{\YrandA} \& \num{\YrandB} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +%a number (2 digits after the decimal point) between 0.75 and 0.95 +%a number (2 digits after the decimal point) between 0.05 and 0.25 +%a number (2 decimal places) between 0.55 and \YrandMax +%a number (2 decimal places) between \YrandMin and 0.45 +\PickRandomNb[2]{0.75}{0.95}[\YrandMax]% +\PickRandomNb[2]{0.05}{0.25}[\YrandMin]% +\PickRandomNb*[2]{0.55}{\YrandMax}[\YrandA]% +\PickRandomNb*[2]{\YrandMin}{0.45}[\YrandB]% +%verification +\num{\YrandMax} \& \num{\YrandMin} \& \num{\YrandA} \& \num{\YrandB} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +%the curve is designed so that there are 3 antecedents +\PickRandomNb[2]{0.75}{0.95}[\YrandMax]% +\PickRandomNb[2]{0.05}{0.25}[\YrandMin]% +\PickRandomNb*[2]{0.55}{\YrandMax}[\YrandA]% +\PickRandomNb*[2]{\YrandMin}{0.45}[\YrandB]% + +\begin{GraphTikz} + [x=0.075cm,y=7.5cm,Xmin=0,Xmax=150,Xgrid=10,Xgrids=5, + Ymin=0,Ymax=1,Ygrid=0.1,Ygrids=0.05] + \DrawAxisGrids[Last,Enlarge=2.5mm]{auto}{auto} + \DefineInterpoCurve[Color=red,Trace,Name=functiontest,Tension=0.75] + {(0,\YrandA)(40,\YrandMin)(90,\YrandMax)(140,\YrandB)} + \FindCounterimage[Disp=false,Name=ANTECED]{functiontest}{0.5} + \DrawCounterimage[Colors=blue/teal,Lines]{functiontest}{0.5} + \GetXcoord{(ANTECED-1)}[\Aalpha] + \GetXcoord{(ANTECED-2)}[\Bbeta] + \GetXcoord + {(ANTECED-3)}[\Cgamma] +\end{GraphTikz} + +The solutions of $f(x)=\num{0.5}$ are, by graphic reading: +$\begin{cases} + \alpha \approx \RoundNb[0]{\Aalpha} \\ + \beta \approx \RoundNb[0]{\Bbeta} \\ + \gamma \approx \RoundNb[0]{\Cgamma} +\end{cases}$. +\end{tcblisting} + +\subsection{Monte-Carle method} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%in the GraphiqueTikz environment +\SimulateMonteCarlo[keys]<function>}{number of points}[\nbptsmcok][\nbptsmcko] +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=10cm,y=10cm,Xmin=0,Xmax=1,Xgrid=0.1,Xgrids=0.05, + Ymin=0,Ymax=1,Ygrid=0.1,Ygrids=0.05] + \DrawAxisGrids[Enlarge=2.5mm,Last]{auto}{auto} + \DefineCurve[Trace,Color=teal,Step=0.001]<f>{sqrt(1-x^2)} + \SimulateMonteCarlo<f>{5000} +\end{GraphTikz} + +There is \textcolor{blue}{\num{\nbptsmcok}} blue points, +there is \textcolor{red}{\num{\nbptsmcko}} red points. + +And $\frac{\num{\nbptsmcok}}{\num{\nbptsmc}} +\approx \RoundNb[4]{\nbptsmcok/\nbptsmc}$ +et $\frac{\pi}{4} \approx \RoundNb[4]{pi/4}$. +\end{tcblisting} + +\pagebreak + +\section{History} + +\begin{quote} +\begin{verbatim} +0.1.6 : Vertical asymptote + [in french doc] commands for integrals +0.1.5 : Initial version [en] +\end{verbatim} +\end{quote} + +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf Binary files differindex 83fcc4e4f5..ba330fa444 100644 --- a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex index 1a79a83cf8..99d8414cd0 100644 --- a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex @@ -29,8 +29,8 @@ \hypersetup{pdfborder=0 0 0} \usepackage[margin=2cm]{geometry} \setlength{\parindent}{0pt} -\def\TPversion{0.1.4} -\def\TPdate{15/06/2024} +\def\TPversion{0.1.6} +\def\TPdate{13/07/2024} \usepackage{soul} \usepackage{codehigh} \usepackage{tabularray} @@ -39,7 +39,7 @@ \hl{\vphantom{\texttt{pf}}\texttt{#1}}% } \usepackage[french]{babel} - +\sisetup{group-minimum-digits=4} \renewcommand{\footnoterule}{\vfill\kern -3pt \hrule width 0.4\columnwidth \kern 2.6pt} \begin{document} @@ -209,7 +209,8 @@ Il sera ensuite possible : \item de tracer des courbes ; \item de déterminer graphiquement des images ou des antécédents ; \item de rajouter des éléments de dérivation (tangentes) ou d'intégration (domaine) ; - \item de tracer une droite d'ajustement linéaire ou la courbe d'un autre ajustement. + \item de tracer une droite d'ajustement linéaire ou la courbe d'un autre ajustement ; + \item \dots \end{itemize} \subsection{Packages utilisés, et options du package} @@ -332,10 +333,11 @@ Concernant les styles des \textit{objets}, ils sont donnés ci-dessous. \tikzset{pflgrilles/.style={very thin,lightgray}} \tikzset{pflaxes/.style={line width=0.8pt,->,>=latex}} -%style des points (courbe / nuage /labels) +%style des points (courbe / nuage /labels /montecarlo) \tikzset{pflpoint/.style={line width=0.95pt}} \tikzset{pflpointc/.style={radius=1.75pt}} \tikzset{pflpointnuage/.style={radius=1.75pt}} +\tikzset{pflpointmc/.style={radius=0.875pt}} \tikzset{pflnoeud/.style={}} %pour les inner sep par exemple :-) %style des courbes @@ -403,7 +405,7 @@ La première commande \textit{utile} va permettre de créer les grilles, les axe \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} %dans l'environnement GraphiqueTikz -\TracerAxesGrille[clés]{gradX}{gradY} +\TracerAxesGrilles[clés]{gradX}{gradY} \end{tcblisting} Les \MontreCode{[clés]}, optionnelles, disponibles sont : @@ -544,9 +546,12 @@ L'idée est de proposer une commande pour tracer une droite, à partir : \item d'un point (ou nœud) et de la pente. \end{itemize} +Il existe également une commande pour une asymptote verticale. + \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} %dans l'environnement GraphiqueTikz \TracerDroite[clés]{point ou nœud}{point ou noeud ou pente} +\TracerAsymptote[clés]{abscisse} \end{tcblisting} Les \MontreCode{[clés]}, optionnelles, disponibles sont : @@ -569,6 +574,7 @@ Les \MontreCode{[clés]}, optionnelles, disponibles sont : \TracerDroite[Couleur=red]{(-2,-1)}{(2,4)} \TracerDroite[Couleur=blue,Debut=-5,Fin=3]{(A)}{(B)} \TracerDroite[Couleur=olive,Pente]{(C)}{0.25} + \TracerAsymptote[Couleur=brown]{-6} \end{GraphiqueTikz} \end{tcblisting} @@ -607,10 +613,11 @@ Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponi Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40] \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56} %définition de la fonction + tracé de la courbe - \DefinirCourbe[Nom=cf,Debut=5,Fin=19]<f>{-2*x+3+24*log(2*x)} + %la fonction ln a été créée pour xint ! + \DefinirCourbe[Nom=cf,Debut=5,Fin=19]<f>{-2*x+3+24*ln(2*x)} \TracerCourbe[Couleur=red,Debut=5,Fin=19]{f(x)} %ou en une seule commande si "suffisant" - %\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace]<f>{-2*x+3+24*log(2*x)} + %\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace]<f>{-2*x+3+24*ln(2*x)} \end{GraphiqueTikz} \end{tcblisting} @@ -706,10 +713,14 @@ La seconde idée est de travailler avec des nœuds \TikZ, qui pourront être uti \smallskip +Il est également possible de définir des nœuds pour des points \textit{image}. + +\smallskip + Certaines commandes (explicités ultérieurement) permettent de déterminer des points particuliers des courbes sous forme de nœuds, donc il semble intéressant de pouvoir en définir directement. \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} -%dans l'environnement GraphiqueTikz +%par les coordonnées \DefinirPts[clés]{Nom1/x1/y1,Nom2/x2/y2,...} \end{tcblisting} @@ -722,6 +733,22 @@ Les \MontreCode{[clés]}, optionnelles, disponibles sont : \item \MontreCode{Couleur} : couleur des points, si \MontreCode{Aff=true} (\MontreCode{black} par défaut). \end{itemize} +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%sous forme d'image +\DefinirImage[clés]{objet}{abscisse} +\end{tcblisting} + +Les \MontreCode{[clés]}, optionnelles, disponibles sont : + +\smallskip + +\begin{itemize} + \item \MontreCode{Nom} : nom du nœud (\MontreCode{vide} par défaut) ; + \item \MontreCode{Spline} : booléen pour spécifier qu'un spline est utilisé (\MontreCode{false} par défaut). +\end{itemize} + +Le premier argument obligatoire est l'\textit{objet} considéré (nom de la courbe pour le spline, fonction sinon) ; le second est l'abscisse du point considéré. + \begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} \begin{GraphiqueTikz}% [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4, @@ -731,6 +758,9 @@ Les \MontreCode{[clés]}, optionnelles, disponibles sont : \DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)} %nœuds manuels \DefinirPts[Aff,Couleur=brown]{A/7/42,B/16/49} + %nœud image + \DefinirImage[Nom=IMGf]{f}{14} + \MarquerPts*[Style=x,Couleur=blue]{(IMGf)} \end{GraphiqueTikz} \end{tcblisting} @@ -1391,6 +1421,132 @@ Les \MontreCode{[clés]}, optionnelles, disponibles sont : \pagebreak +\section{Commandes spécifiques des méthodes intégrales} + +\subsection{Méthodes géométriques}\label{methodesintergrales} + +L'idée est de proposer plusieurs méthodes graphiques pour illustrer graphiquement une intégrale, via : + +\begin{itemize} + \item une méthode des rectangles (Gauche, Droite ou Milieu) ; + \item la méthode des trapèzes. +\end{itemize} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%dans l'environnement GraphiqueTikz +\RepresenterMethodeIntegrale[clés]<fonction>{a}{b} +\end{tcblisting} + +Les \MontreCode{Clés} disponibles sont : + +\begin{itemize} + \item \MontreCode{Couleur} : couleur des tracés, \MontreCode{red} par défaut ; + \item \MontreCode{NbSubDiv} : nombre de subdivisions, \MontreCode{10} par défaut ; + \item \MontreCode{Methode} : méthode géométrique utilisée, parmi parmi \MontreCode{RectanglesGauche / RectanglesDroite / RectanglesMilieu / Trapezes} pour spécifier la méthode utilisée, \MontreCode{RectanglesGauche} par défaut ; + \item \MontreCode{Remplir} : booléen, \MontreCode{true} par défaut, pour remplir les éléments graphiques ; + \item \MontreCode{CouleurRemplissage} : couleur de remplissage, définie par rapport à la couleur principale par défaut ; + \item \MontreCode{Opacite} : opacité, \MontreCode{0.25} par défaut, du remplissage. +\end{itemize} + +\smallskip + +Le deuxième argument, optionnel et entre \MontreCode{<...>}, correspond à la fonction \textbf{précédemment définie} ! + +\smallskip + +Les deux derniers arguments, obligatoires, correspondent aux bornes de l'intégrale. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphiqueTikz} + [x=0.66cm,y=0.033cm,Xmin=0,Xmax=21,Xgrille=2,Xgrilles=1, + Ymin=0,Ymax=160,Ygrille=20,Ygrilles=10] + \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto} + \DefinirCourbe[Couleur=red,Nom=cf,Debut=1,Fin=20,Trace]<f>{80*x*exp(-0.2*x)} + \RepresenterMethodeIntegrale[Couleur=teal]<f>{5}{15} +\end{GraphiqueTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphiqueTikz} + [x=0.66cm,y=0.033cm,Xmin=0,Xmax=21,Xgrille=2,Xgrilles=1, + Ymin=0,Ymax=160,Ygrille=20,Ygrilles=10] + \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto} + \DefinirCourbe[Couleur=red,Nom=cf,Debut=1,Fin=20,Trace]<f>{80*x*exp(-0.2*x)} + \RepresenterMethodeIntegrale + [Methode=RectanglesDroite,Couleur=orange,NbSubDiv=7]<f>{1}{10} +\end{GraphiqueTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphiqueTikz} + [x=0.66cm,y=0.033cm,Xmin=0,Xmax=21,Xgrille=2,Xgrilles=1, + Ymin=0,Ymax=160,Ygrille=20,Ygrilles=10] + \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto} + \DefinirCourbe[Couleur=red,Nom=cf,Debut=1,Fin=20,Trace]<f>{80*x*exp(-0.2*x)} + \RepresenterMethodeIntegrale + [Methode=RectanglesMilieu,Couleur=yellow,NbSubDiv=25]<f>{1}{20} +\end{GraphiqueTikz} +\end{tcblisting} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphiqueTikz} + [x=0.66cm,y=0.033cm,Xmin=0,Xmax=21,Xgrille=2,Xgrilles=1, + Ymin=0,Ymax=160,Ygrille=20,Ygrilles=10] + \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto} + \DefinirCourbe[Couleur=red,Nom=cf,Debut=1,Fin=20,Trace]<f>{80*x*exp(-0.2*x)} + \RepresenterMethodeIntegrale + [Methode=Trapezes,Couleur=pink,Remplir=false]<f>{1}{20} +\end{GraphiqueTikz} +\end{tcblisting} + +\subsection{Méthode de Monte-Carlo}\label{montecarlo} + +L'idée est de proposer une commande pour simuler un calcul intégral via la méthode de Monte-Carlo. + +Le code se charge de simuler les \textit{tirages}, et les résultats peuvent être stockés dans des macros. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only} +%dans l'environnement GraphiqueTikz +\SimulerMonteCarlo[clés]<fonction>{nb essais}[\nbptsmcok][\nbptsmcko] +\end{tcblisting} + +Les \MontreCode{Clés} disponibles sont : + +\begin{itemize} + \item \MontreCode{Couleurs} : couleurs des points, \MontreCode{blue/red} par défaut ; + \item \MontreCode{BornesX} : bornes \textit{horizontales} pour la simulation, valant \MontreCode{\textbackslash pflxmin,\textbackslash pflxmax} par défaut ; + \item \MontreCode{BornesY} : bornes \textit{verticales} pour la simulation, valant \MontreCode{\textbackslash pflymin,\textbackslash pflymax} par défaut. +\end{itemize} + +Le deuxième argument, optionnel et entre \MontreCode{<...>}, est la fonction \textbf{précédemment définie} à utiliser. + +\smallskip + +Les deux derniers arguments, optionnels et entre \MontreCode{[...]}, sont les macros dans lesquelles sont stockées les résultats de la simulation. Ces macros sont \MontreCode{\textbackslash nbptsmcok} et \MontreCode{\textbackslash nbptsmcko} par défaut. + +À noter que la macro \MontreCode{\textbackslash nbptsmc} permet de récupérer le nombre de points utilisés. + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +%avec \sisetup{group-minimum-digits=4} pour le formatage des "milliers" + +\begin{GraphiqueTikz}% + [x=10cm,y=10cm,Xmin=0,Xmax=1,Xgrille=0.1,Xgrilles=0.05, + Ymin=0,Ymax=1,Ygrille=0.1,Ygrilles=0.05] + \TracerAxesGrilles[Elargir=2.5mm,Dernier]{auto}{auto} + \DefinirCourbe[Trace,Couleur=teal,Pas=0.001]<f>{sqrt(1-x^2)} + \SimulerMonteCarlo<f>{5000} +\end{GraphiqueTikz} + +Le nombre de points bleus est de \textcolor{blue}{\num{\nbptsmcok}}, +le nombre de points rouges est de \textcolor{red}{\num{\nbptsmcko}}. + +La proportion de points bleus est de $\frac{\num{\nbptsmcok}}{\num{\nbptsmc}} +\approx \ArrondirNum[4]{\nbptsmcok/\nbptsmc}$ +et $\frac{\pi}{4} \approx \ArrondirNum[4]{pi/4}$. +\end{tcblisting} + +\pagebreak + \section{Commandes spécifiques des statistiques à deux variables} \subsection{Le nuage de points}\label{nuage} @@ -1743,7 +1899,9 @@ Les commandes disponibles sont : \lstcmd{def spline~~~~~}{\DefinirCourbeSpline}{deftracfctspline} \lstcmd{tracé spline~~~}{\TracerCourbeSpline}{deftracfctspline} \lstcmd{tracé droite~~~}{\TracerDroite}{tracdroite} + \lstcmd{asymptote vert~}{\TracerAsymptote}{tracdroite} \lstcmd{def points~~~~~}{\DefinirPts}{defpts} + \lstcmd{def image~~~~~~}{\DefinirImage}{defpts} \lstcmd{marq pts~~~~~~~}{\MarquerPts}{markpts} \lstcmd{placer txt~~~~~}{\PlacerTexte}{placetxt} \lstcmd{récup absc~~~~~}{\RecupererAbscisse}{recupcoordo} @@ -1756,6 +1914,8 @@ Les commandes disponibles sont : \lstcmd{maximum~~~~~~~~}{\TrouverMaximum}{maximum} \lstcmd{minimum~~~~~~~~}{\TrouverMinimum}{minimum} \lstcmd{intégrale~~~~~~}{\TracerIntegrale}{integr} + \lstcmd{méthodes int~~~}{\RepresenterMethodeIntegrale}{methodesintergrales} + \lstcmd{Monte-Carlo~~~~}{\SimulerMonteCarlo}{montecarlo} \lstcmd{tangente~~~~~~~}{\TracerTangente}{tgte} \lstcmd{loi normale~~~~}{\DefinirLoiNormale}{loinormale} \lstcmd{loi normale~~~~}{\TracerLoiNormale}{loinormale} @@ -1773,6 +1933,8 @@ Les commandes disponibles sont : \begin{quote} \begin{verbatim} +0.1.6 : Asymptote verticale + Méthodes intégrales (géom + Monte Carlo) +0.1.5 : Correction d'un bug sur les rajouts de valeurs + Nœud pour une image + [en] version ! 0.1.4 : Placement de texte 0.1.3 : Ajout de régressions avec le package xint-regression 0.1.2 : Droites + Extremums diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.pdf Binary files differnew file mode 100644 index 0000000000..917caaab19 --- /dev/null +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.pdf diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.tex b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.tex new file mode 100644 index 0000000000..068ba103eb --- /dev/null +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-examples-integrals.tex @@ -0,0 +1,251 @@ +% !TeX TXS-program:compile = txs:///arara +% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} + +\documentclass[a4paper,english,11pt]{article} +\usepackage[margin=1cm,includefoot]{geometry} +\usepackage[english]{tkz-grapheur} +\usepackage{tcolorbox} +\tcbuselibrary{skins,minted} +\usepackage{babel} + +\begin{document} + +\part*{Integrals examples} + +\section{Below cruve, by default} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Behind,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=ch]<h>{0.25*(x+2)^2+1} + \DrawIntegral% + [Colors=blue/cyan,Style=fill]% + {h(x)} %formula + {-5.25}{1.5} + \DrawCurve[Color=red]{h(x)} + \DrawAxisGrids[Above,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Behind interpolation curve} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstInterpol{(-6,4)(-2,-2)(3,3.5)}[\interpoA] + \DefineInterpoCurve[Name=interpotest,Tension=1.05]{\interpoA} + \DrawIntegral% + [NameInterpo=interpotest,Colors=blue/cyan,Style=fill,Type=itp,Tension=1.05]% + {\interpoA} %pointsinterpo + {-5.25}{1.5} + \DrawInterpoCurve[Color=red,Tension=1.05]{\interpoA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Behind cubic spline} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA] + \DefineSplineCurve[Name=splinetest]{\lstsplineA}<\SplineTeal> + \DrawIntegral% + [NameSpline=\SplineTeal,Type=spl,Colors=blue/purple,Style=hatch]% + {splinetest} %namesplinecurve + {-5}{2} + \DrawSplineCurve[Color=teal]{\lstsplineA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between curves} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=ch]<h>{0.25*(x+2)^2-1} + \DefineCurve[Name=ck]<k>{-0.25*x+1} + \FindIntersections[Name=ITSC,Disp=false]{ch}{ck} + \DrawIntegral% + [Colors=olive/pink,Style=fill,Type=fct/fct,Bounds=node/abs]% + {h(x)}[k(x)] %formules + {(ITSC-1)}{1.5} + \DrawCurve[Color=red]{h(x)} + \DrawCurve[Color=blue]{k(x)} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between splines} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA] + \DefineLstSpline{-6/-2/3§-2/4/0§3/-1/0}[\lstsplineB] + \DefineSplineCurve[Name=splinetestolive]{\lstsplineA}<\SplineOlive> + \DefineSplineCurve[Name=splinetestteal]{\lstsplineB}<\SplineTeal> + \FindIntersections[Name=ITT,Disp=false]{splinetestteal}{splinetestolive} + \DrawIntegral% + [NameSpline=\SplineTeal,NameSplineB=\SplineOlive,Type=spl/spl,Colors=blue/purple,Bounds=nodes]% + {splinetestolive} %Namecourbespline + [splinetestteal] %Namecourbespline + {(ITT-1)}{(ITT-2)} + \DrawSplineCurve[Color=teal]{\lstsplineA} + \DrawSplineCurve[Color=olive]{\lstsplineB} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between interpolations} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstInterpol{(-6,4)(-2,-2)(3,3.5)}[\interpoA] + \DefineInterpoCurve[Name=interpotest]{\interpoA} + \DefineLstInterpol{(-6,-2)(-1,4)(3,0)}[\interpoB] + \DefineInterpoCurve[Name=interpotesta]{\interpoB} + \DrawIntegral% + [NameInterpo=interpotesta,NameInterpoB=interpotest,Type=itp/itp,Colors=olive/pink]% + {\interpoB} %pointsinterpo + [\interpoA] %pointsinterpo + {-2}{1} + \DrawInterpoCurve[Color=red]{\interpoA} + \DrawInterpoCurve[Color=blue]{\interpoB} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Betweend function and spline} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=ch]<h>{-0.25*(x+2)^2+3.5} + \DefineLstSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA] + \DefineSplineCurve[Name=splineblue]{\lstsplineA}<\Splineblue> + \DrawIntegral% + [NameSplineB=\Splineblue,Type=fct/spl,Colors=olive/pink]% + {h(x)} %formule + [splineblue] %Namecourbespline + {-3}{0} + \DrawCurve[Color=red]{h(x)} + \DrawSplineCurve[Color=blue]{\lstsplineA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between spline and function} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=ch]<h>{0.25*(x+2)^2-2} + \DefineLstSpline{-6/4/2§-5/-2/-2§-4/0/2§-2/2/0§1/-2/-2§3/3.5/-0.5}[\lstsplineA] + \DefineSplineCurve[Name=splineblue]{\lstsplineA}<\Splineblue> + \DrawIntegral% + [NameSpline=\Splineblue,Type=spl/fct,Colors=olive/pink]% + {splineblue} %Namecourbespline + [h(x)] %formule + {-3}{-1} + \DrawCurve[Color=red]{h(x)} + \DrawSplineCurve[Color=blue]{\lstsplineA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between function and interpo} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=cm]<m>{-0.25*(x+2)^2+4} + \DefineLstInterpol{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB] + \DefineInterpoCurve[Name=interpotestb]{\interpoB} + \DrawIntegral% + [NameInterpoB=interpotestb,Type=fct/itp,Colors=olive/pink]% + {m(x)} %formule + [\interpoB] %pointsinterpo + {-4}{1} + \DrawCurve[Color=red]{m(x)} + \DrawInterpoCurve[Color=blue]{\interpoB} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between interpo and function} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineCurve[Name=courbeQ]<q>{0.25*(x+2)^2-2.5} + \DefineLstInterpol{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2)}[\interpoA] + \DefineInterpoCurve[Name=interpotest]{\interpoA} + \FindIntersections[Name=FGH,Disp]{interpotest}{courbeQ} + \DrawIntegral% + [NameInterpo=interpotest,Type=itp/fct,Colors=olive/pink,Bounds=nodes]% + {\interpoA} %pointsinterpo + [q(x)] %formule + {(FGH-1)}{(FGH-2)} + \DrawCurve[Color=red]{q(x)} + \DrawInterpoCurve[Color=blue]{\interpoA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between spline and interpo} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstSpline{-6/-2/2§-3/4/0§3/-2/0}[\lstsplineA] + \DefineSplineCurve[Name=splinered]{\lstsplineA}<\Splinered> + \DefineLstInterpol{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB] + \DefineInterpoCurve[Name=interpotestb]{\interpoB} + \DrawIntegral% + [NameInterpoB=interpotestb,NameSpline=\Splinered,Type=spl/itp,Colors=olive/pink]% + {splinered} %Namecourbespline + [\interpoB] %pointsinterpo + {-4}{-2} + \DrawSplineCurve[Color=red]{\lstsplineA} + \DrawInterpoCurve[Color=blue]{\interpoB} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\section{Between interpo and spline} + +\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5} +\begin{GraphTikz}% + [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5] + \DrawAxisGrids[Grads=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} + \DefineLstSpline{-6/4/-2§-3/-2.25/0§3/3/0}[\lstsplineB] + \DefineSplineCurve[Name=splineblue]{\lstsplineB}<\Splineblue> + \DefineLstInterpol{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2.5)}[\interpoA] + \DefineInterpoCurve[Name=interpotest]{\interpoA} + \FindIntersections[Name=UIO,Disp]{interpotest}{splineblue} + \DrawIntegral% + [NameInterpo=interpotest,NameSplineB=\Splineblue,Type=itp/spl,Colors=olive/pink,Bounds=nodes]% + {\interpoA} %pointsinterpo + [splineblue] %Namecourbespline + {(UIO-1)}{(UIO-2)} + \DrawSplineCurve[Color=blue]{\lstsplineB} + \DrawInterpoCurve[Color=red]{\interpoA} + \DrawAxisGrids[Grid=false,Enlarge=2.5mm]{-7,-6,...,4}{-3,-2,...,5} +\end{GraphTikz} +\end{tcblisting} + +\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf Binary files differindex 5e0354c490..985d09c617 100644 --- a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf +++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf diff --git a/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty b/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty index 7fc03cde3c..ce321f6d4b 100644 --- a/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty +++ b/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty @@ -2,22 +2,33 @@ % licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{tkz-grapheur}[2024/06/15 0.1.4.Des outils en TikZ pour travailler comme avec un grapheur] +\ProvidesPackage{tkz-grapheur}[2024/07/13 0.1.6.Des outils en TikZ pour travailler comme avec un grapheur] %====HISTORIQUE +% v 0.1.6 Asymptote verticale + Monte Carlo + Méthode intégrales (rectangles, etc) +% v 0.1.5 Correction d'un bug avec les valeurs manuelles + Nœud pour une image + [en] version ! % v 0.1.4 Ajout des placements de textes % v 0.1.3 Régressions, avec xintreg (désactivable) % v 0.1.2 Max/Min + Droites % v 0.1.1 Densité loi normale + khi deux + Améliorations diverses % v 0.1.0 Version initiale [fr] -%====OPTION +%====OPTIONS \newif\if@loadsiunitx \@loadsiunitxtrue \DeclareOption{nonsiunitx}{\@loadsiunitxfalse}% +\DeclareOption{nosiunitx}{\@loadsiunitxfalse}% + \newif\if@loadtikzbabel \@loadtikzbabeltrue \DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}% +\DeclareOption{notikzbabel}{\@loadtikzbabelfalse}% + \newif\if@loadxintreg \@loadxintregtrue \DeclareOption{nonxintreg}{\@loadxintregfalse}% +\DeclareOption{noxintreg}{\@loadxintregfalse}% + +\newif\if@lngenglish \@lngenglishfalse +\DeclareOption{english}{\@lngenglishtrue}% + \DeclareOption*{} \ProcessOptions\relax @@ -33,10 +44,14 @@ \RequirePackage{xint-regression} \fi -%====SIUNITX +%====SIUNITX + [en] \if@loadsiunitx \RequirePackage{siunitx} - \sisetup{locale=FR,output-decimal-marker={,},mode=match,propagate-math-font=true,reset-math-version=false,reset-text-family=false,reset-text-series=false,reset-text-shape=false,text-family-to-math=true,text-series-to-math=true} + \if@lngenglish + \sisetup{mode=match,propagate-math-font=true,reset-math-version=false,reset-text-family=false,reset-text-series=false,reset-text-shape=false,text-family-to-math=true,text-series-to-math=true} + \else + \sisetup{locale=FR,output-decimal-marker={,},mode=match,propagate-math-font=true,reset-math-version=false,reset-text-family=false,reset-text-series=false,reset-text-shape=false,text-family-to-math=true,text-series-to-math=true,group-minimum-digits=4} + \fi \fi %====TIKZ.BABEL @@ -44,6 +59,10 @@ \usetikzlibrary{babel} \fi +%++++++++++++++++++++++++++ +%+++++++++FRANÇAIS+++++++++ +%++++++++++++++++++++++++++ + %====COMMANDE POUR NB DECIMAL ALEA ENTRE BORNES \NewDocumentCommand\ChoisirNbAlea{ s O{0} m m O{\monbnalea} }{% \def\tmpborneinf{\xinteval{floor(#3)}}%inf=\tmpborneinf\par% @@ -88,6 +107,7 @@ %====STYLES DE BASE \tikzset{pflnoeud/.style={}} \tikzset{pflpoint/.style={line width=0.95pt}} +\tikzset{pflpointmc/.style={radius=0.875pt}} \tikzset{pflpointc/.style={radius=1.75pt}} \tikzset{pflpointnuage/.style={radius=1.75pt}} \tikzset{pflcadre/.style={line width=0.8pt,gray}} @@ -134,6 +154,9 @@ %====CONSTANTE PI pour xint, à voir si incompatibilité... \xintdefvar pi:=3.141592653589793238462643; +%====focntion ln, en langage xint +\xintdeffloatfunc ln(x) := log(x); + %===COMMANDE INTERNE POUR FORMATER EN FRACTIONS \NewDocumentCommand\FormatterFraction{ s O{} m }{% %*=moins sur le numérateur @@ -680,7 +703,7 @@ \ifboolKV[GraphiqueTikzAxes]{Traits}{\foreach \y in {#2}{\draw[pfltrait] ([xshift=\pflthickgrad]{\pflOx},{\y})--++({-2*\pflthickgrad},0) ;}}{}% \readlist*\LstValY{#2}% \readlist*\LstValFmtY{#3}% - \foreach \i in {1,...,\LstValXlen}{% + \foreach \i in {1,...,\LstValYlen}{% \itemtomacro\LstValY[\i]\mavaly% \itemtomacro\LstValFmtY[\i]\mavalfmty% \draw ([xshift=-\pflthickgrad]{\pflOx},{\mavaly}) node[pflnoeud,left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\mavalfmty} ; @@ -991,6 +1014,103 @@ \end{scope} } +%====MONTE CARLO +\defKV[graphiquetikzmontecarlo]{% + Couleurs=\def\graphtikzmccols{#1},% + BornesX=\def\graphtikzmcxbornes{#1},% + BornesY=\def\graphtikzmcybornes{#1} +} + +\setKVdefault[graphiquetikzmontecarlo]{% + Couleurs={blue/red},% + BornesX={\pflxmin,\pflxmax},% + BornesY={\pflymin,\pflymax} +} + +\NewDocumentCommand\SimulerMonteCarlo{ O{} D<>{f} m O{\nbptsmcok} O{\nbptsmcko} }{% + \restoreKV[graphiquetikzmontecarlo]% + \setKV[graphiquetikzmontecarlo]{#1}% + \StrCut{\graphtikzmccols}{/}{\tmpMCcolOK}{\tmpMCcolKO}% + \StrCut{\graphtikzmcxbornes}{,}{\tmpMCxmin}{\tmpMCxmax}% + \StrCut{\graphtikzmcybornes}{,}{\tmpMCymin}{\tmpMCymax}% + \xdef#4{0}% + \xdef#5{0}% + \xdef\nbptsmc{#3}% + \foreach \i in {1,...,#3}{% + \xdef\tmpMCrandX{\xintfloateval{random()*((\tmpMCxmax)-(\tmpMCxmin))+(\tmpMCxmin)}}% + \xdef\tmpMCrandY{\xintfloateval{random()*((\tmpMCymax)-(\tmpMCymin))+(\tmpMCymin)}}% + \xdef\tmpMCrandfX{\xintfloateval{#2(\tmpMCrandX)}}% + \xintifboolexpr{ \tmpMCrandfX > \tmpMCrandY }% + {% + \xdef#4{\xinteval{#4+1}}% + \filldraw[\tmpMCcolOK] (\tmpMCrandX,\tmpMCrandY) circle[pflpointmc] ; + }% + {% + \xdef#5{\xinteval{#5+1}}% + \filldraw[\tmpMCcolKO] (\tmpMCrandX,\tmpMCrandY) circle[pflpointmc] ; + }% + }% +} + +%====MÉTHODES INTÉGRALES + +\defKV[graphiquetikzintegr]{% + Couleur=\def\graphtikzintgrcol{#1},% + CouleurRemplissage=\def\graphtikzintgrcolrempl{#1},% + NbSubDiv=\def\graphtikzintgrnb{#1},% + Methode=\def\graphtikzintgrtype{#1},% + Opacite=\def\graphtikzintgropac{#1} +} + +\setKVdefault[graphiquetikzintegr]{% + Couleur=red,% + NbSubDiv=10,% + Methode=RectanglesGauche,% + Remplir=true,% + CouleurRemplissage={\graphtikzintgrcol!25},% + Opacite=0.25 +} + +\NewDocumentCommand\RepresenterMethodeIntegrale{ O{} D<>{f} m m }{%opts+nom_fct+a+b + \useKVdefault[graphiquetikzintegr]% + \setKV[graphiquetikzintegr]{#1}% + \ifboolKV[graphiquetikzintegr]{Remplir}% + {% + \tikzset{pflfigureintegr/.style={pfltrait,\graphtikzintgrcol,fill=\graphtikzintgrcolrempl,fill opacity=\graphtikzintgropac}}% + }% + {% + \tikzset{pflfigureintegr/.style={pfltrait,\graphtikzintgrcol}}% + }% + \tikzset{figureintegr/.style={pfltrait,\graphtikzintgrcol,fill=\graphtikzintgrcolrempl,fill opacity=\graphtikzintgropac}}% + \def\TmpH{(#4-#3)/\graphtikzintgrnb} + %rectangles gauches + \IfEq{\graphtikzintgrtype}{RectanglesGauche}% + {% + \foreach \i in {0,...,\inteval{\graphtikzintgrnb-1}}% + \draw[pflfigureintegr] ({#3+\i*\TmpH},{0}) rectangle++ ({\TmpH},{\xintfloateval{#2(#3+\i*\TmpH)}}) ; + }% + {}% + \IfEq{\graphtikzintgrtype}{RectanglesDroite}% + {% + \foreach \i in {0,...,\inteval{\graphtikzintgrnb-1}}% + \draw[pflfigureintegr] ({#3+\i*\TmpH},{0}) rectangle++ ({\TmpH},{\xintfloateval{#2(#3+(\i+1)*\TmpH)}}) ; + }% + {}% + \IfEq{\graphtikzintgrtype}{RectanglesMilieu}% + {% + \foreach \i in {0,...,\inteval{\graphtikzintgrnb-1}}% + \draw[pflfigureintegr] ({#3+\i*\TmpH},{0}) rectangle++ ({\TmpH},{\xintfloateval{#2(#3+(\i+0.5)*\TmpH)}}) ; + }% + {}% + \IfEq{\graphtikzintgrtype}{Trapezes}% + {% + \foreach \i in {0,...,\inteval{\graphtikzintgrnb-1}}% + \draw[pflfigureintegr] ({#3+\i*\TmpH},{0}) -- ({#3+\i*\TmpH},{\xintfloateval{#2(#3+\i*\TmpH)}}) -- ({#3+(\i+1)*\TmpH},{\xintfloateval{#2(#3+(\i+1)*\TmpH)}}) -- ({#3+(\i+1)*\TmpH},{0}) -- cycle ; + }% + {}% +} + + %====INTÉGRALES %v2 avec modification de la clé [Type=...] ? \defKV[GraphiqueTikzIntegr]{% @@ -1517,18 +1637,32 @@ %===IMAGES & ANTÉCÉDENTS \defKV[GraphiqueTikzImg]{ Couleurs=\def\pflimgcolors{#1},% - Nom=\def\pflantecednoms{#1}%,% - %Style=\xdef\pflantecedstyle{#1} + Nom=\def\pflantecednoms{#1}% } \setKVdefault[GraphiqueTikzImg]{ - Couleurs=black, - Traits=false, + Couleurs=black,% + Traits=false,% Spline=false,% Nom={},% Style=o } +\NewDocumentCommand\DefinirImage{ O{} m m }{% + \useKVdefault[GraphiqueTikzImg]% + \setKV[GraphiqueTikzImg]{#1}% + \ifboolKV[GraphiqueTikzImg]{Spline}% + {% + \path[draw=none,pflcourbe,name path=tmpimage] ({#3},{\pflymin})--({#3},{\pflymax}) ; + \path[name intersections={of=#2 and tmpimage,name=ZZZZ}] ; + \coordinate (\pflantecednoms) at (ZZZZ-1) ; + }% + {% + \xdef\tmpresimg{\xintfloateval{#2(#3)}}% + \coordinate (\pflantecednoms) at ({#3},{\tmpresimg}) ; + }% +} + \NewDocumentCommand\PlacerImages{ O{} m m }{% \useKVdefault[GraphiqueTikzImg]% \setKV[GraphiqueTikzImg]{#1}% @@ -1564,7 +1698,7 @@ \MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{({\i},{\tmpresimg})} %\filldraw[\pflimgcolorpt] ({\i},{\tmpresimg}) circle[radius=2pt] ; }% - } + }% } \NewDocumentCommand\PlacerAntecedents{ O{} m m }{%avec le nom de la courbe... @@ -1926,6 +2060,16 @@ \end{scope} } +%====asymptote +\NewDocumentCommand\TracerAsymptote{ O{} m D<>{} }{% + \restoreKV[GraphiquetikzDroite]% + \setKV[GraphiquetikzDroite]{#1}% + %tracé + \draw[pfltrait,{\useKV[GraphiquetikzDroite]{Couleur}},#3] ({#2},{\pflymin})--({#2},{\pflymax}) ; +} + + +%====MinMax \defKV[GraphiqueTikzMinMax]{% Pas=\def\pflminmaxstep{#1},% Methode=\def\pflminmaxmethode{#1},% @@ -2033,4 +2177,2045 @@ \draw #2 node[pflnoeud,font=\pflnodefonte,text=\pflnodecol,\pfnodepos] {#3} ; } +%++++++++++++++++++++++++++ +%++++++++++ENGLISH+++++++++ +%++++++++++++++++++++++++++ + +%====COMMANDE POUR NB DECIMAL ALEA ENTRE BORNES +\NewDocumentCommand\PickRandomNb{ s O{0} m m O{\mmyrandomnb} }{% + \def\tmpborneinf{\xinteval{floor(#3)}}%inf=\tmpborneinf\par% + \def\tmpbornesup{\xinteval{ceil(#4)}}%sup=\tmpbornesup\par% + \xintifboolexpr{#2 == 0}% + {% + \xdef#5{\fpeval{randint(\tmpborneinf,\tmpbornesup)}}% + }% + {% + \def\tmptest{0}% + \whiledo{\tmptest=0}{% + \xintifboolexpr{(\tmpbornesup-\tmpborneinf) == 1}% + {% + \xdef\tmpresalea{\fpeval{\tmpborneinf+round(rand(),#2)}}% + }% + {% + \xdef\tmpresalea{\fpeval{round(randint(\tmpborneinf,\tmpbornesup)+rand(),#2)}}% + }% + %essai=\tmpresalea\par + \IfBooleanTF{#1}% + {% + \xintifboolexpr{\tmpresalea < #4 'and' \tmpresalea > #3 }{\def\tmptest{1}}{\def\tmptest{0}}% + }% + {% + \xintifboolexpr{\tmpresalea <= #4 'and' \tmpresalea >= #3 }{\def\tmptest{1}}{\def\tmptest{0}}% + }% + }% + \xdef#5{\tmpresalea}% + %res=% + }% +} + +%====PATCH NUM +\@ifundefined{RoundNb}% + {% + \NewDocumentCommand\RoundNb{ O{2} m}{\num{\xintfloateval{round(#2,#1)}}\relax}% + }% + {% + \RenewDocumentCommand\RoundNb{ O{2} m}{\num{\xintfloateval{round(#2,#1)}}\relax}% + }% + +%====STYLES DE BASE +\tikzset{tkzgrphnode/.style={}} +\tikzset{tkzgrphpoint/.style={line width=0.95pt}} +\tikzset{tkzgrphpointc/.style={radius=1.75pt}} +\tikzset{tkzgrphpointmc/.style={radius=0.875pt}} +\tikzset{tkzgrphscatter/.style={radius=1.75pt}} +\tikzset{tkzgrphframe/.style={line width=0.8pt,gray}} +\tikzset{tkzgrphcurve/.style={line width=1.05pt}} +\tikzset{tkzgrphline/.style={line width=0.8pt}} +\tikzset{tkzgrpharrowl/.style={<-,>=latex}} +\tikzset{tkzgrpharrowr/.style={->,>=latex}} +\tikzset{tkzgrpharrowlr/.style={<->,>=latex}} +\tikzset{tkzgrphcounterimage/.style={line width=0.9pt,densely dashed}} +\tikzset{tkzgrphrange/.style={line width=0.9pt,densely dashed,->,>=latex}} +\tikzset{tkzgrphgridp/.style={thin,lightgray}} +\tikzset{tkzgrphgrids/.style={very thin,lightgray}} +\tikzset{tkzgrphaxes/.style={line width=0.8pt,->,>=latex}} +\tikzset{ + Xgrid/.store in=\pflgrillex,Xgrid/.default=1,Xgrid=1, + Xgrids/.store in=\pflgrillexs,Xgrids/.default=0.5,Xgrids=0.5, + Ygrid/.store in=\pflgrilley,Ygrid/.default=1,Ygrid=1, + Ygrids/.store in=\pflgrilleys,Ygrids/.default=0.5,Ygrids=0.5 +} +\tikzset{% + pics/tkzgraphcross/.style args={#1/#2}{ + code={ + \draw[tkzgrphpoint,rotate=#2] (-#1,0) -- (#1,0); + \draw[tkzgrphpoint,rotate=#2] (0,-#1) -- (0, #1); + } + }, + pics/tkzgraphcross/.default={2pt/45} +} +\tikzset{% + pics/tkzgraphsquare/.style args={#1/#2}{ + code={ + \filldraw[draw=none,tkzgrphpoint,rotate=#2] (-#1,-#1) rectangle (#1,#1) ; + } + }, + pics/tkzgraphsquare/.default={2pt/0} +} + +%===COMMANDE INTERNE POUR FORMATER EN FRACTIONS +\NewDocumentCommand\FormatFraction{ s O{} m }{% + %*=moins sur le numérateur + %2=argument.optionnel[d/t/dec=...] + %3=argument mandataire {calcul ou fraction} + \def\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B + \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît + {%si oui := fraction + \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur + \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur + \ifblank{#2}% + {% + \IfBooleanTF{#1}% + {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}% + {% + \ifthenelse{\numerateur < 0}% + {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}% + {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}% + }% + }% + {}%si l'argument optionnel est vide + \IfStrEq{#2}{d}% + {% + \IfBooleanTF{#1}% + {\ensuremath{\displaystyle\frac{\num{\numerateur}}{\num{\denominateur}}}}% + {% + \ifthenelse{\numerateur < 0}% + {\ensuremath{-\displaystyle\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}% + {\ensuremath{\displaystyle\frac{\num{\numerateur}}{\num{\denominateur}}}}% + }% + }% + {}%si l'argument optionnel est vide + \IfStrEq{#2}{t}% + {% + \IfBooleanTF{#1}% + {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}% + {% + \ifthenelse{\numerateur < 0}% + {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}% + {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}% + }% + }% + {}%si l'argument optionnel est vide + \IfStrEq{#2}{n}% + {% + \ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}% + }% + {}%si l'argument optionnel est vide + }{%si non := entier + \num{\calculargument}%on affiche l'entier, avec le package siunitx + }% +} + +%affichage d'un label en radians +\NewDocumentCommand\FormatTrig{ O{t} m }{%étoilée en dfrac + \IfStrEq{#2}{0}%cas où l'argument vaut 0 + {\def\restmp{0}}% + {% + \StrDel{#2}{*}[\restmpsansmoins]% + \StrSubstitute{\restmpsansmoins}{pi}{\pi}[\restmppi]% + \IfSubStr{#2}{/}% + {% + \StrCut{\restmppi}{/}\tmpnum\tmpdenom% + \IfSubStr{\tmpnum}{-}% + {% + \StrDel{\tmpnum}{-}[\restmppinum]% + \IfStrEqCase{#1}{% + {t}{\def\restmp{-\frac{\restmppinum}{\tmpdenom}}}% + {d}{\def\restmp{-\displaystyle\frac{\restmppinum}{\tmpdenom}}}% + {n}{\def\restmp{\nicefrac{-\restmppinum}{\tmpdenom}}}% + }% + }% + {% + \IfStrEqCase{#1}{% + {t}{\def\restmp{\frac{\tmpnum}{\tmpdenom}}}% + {d}{\def\restmp{\displaystyle\frac{\tmpnum}{\tmpdenom}}}% + {n}{\def\restmp{\nicefrac{\tmpnum}{\tmpdenom}}}% + }% + }% + }% + {% + \def\restmp{\restmppi}% + }% + }% + \ensuremath{\restmp}% +} + +%====FORMATAGE DES RACINES SIMPLES +\NewDocumentCommand\FormatSqrt{ O{t} m }{% + \IfStrEq{#2}{0}%cas où l'argument vaut 0 + {\ensuremath{0}}% + {% + \IfSubStr{#2}{sqrt}% + {% + \StrDel{#2}{*}[\tmpargbrut]% + \StrBetween[1,1]{\tmpargbrut}{sqrt(}{)}[\tmpargnumrac]% + \StrBefore{\tmpargbrut}{sqrt}[\tmparavantrac]% + \IfStrEqCase{\tmparavantrac}{ + {}{\xdef\tmparavantrac{}}% + {-}{\xdef\tmparavantrac{-}}% + }[\xdef\tmparavantrac{\num{\tmparavantrac}}]% + \IfSubStr{\tmpargbrut}{/}% + {% + \StrBehind{\tmpargbrut}{/}[\tmpargdenomrac]% + \IfStrEqCase{#1}{% + {d}{% + \ensuremath{\displaystyle\frac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}% + }% + {t}{% + \ensuremath{\frac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}% + }% + {n}{% + \ensuremath{\nicefrac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}% + }% + }% + }% + {% + \ensuremath{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}% + }% + }% + {% + \FormatFraction[#1]{#2}% + }% + }% +} + +%====COMMANDE INTERNE DE CONVERSION +\ExplSyntaxOn + \NewDocumentCommand\ConvertPtToCm{ m } { \dim_to_decimal_in_unit:nn { #1 } { 1 cm } } +\ExplSyntaxOff + +%====RECUPERER COORDONNEES NOEUD +\NewDocumentCommand\GetXcoord{ m O{\myxcoord} }{% + \path #1; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef#2{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% +} +\NewDocumentCommand\GetYcoord{ m O{\myycoord} }{% + \path #1; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef#2{\xintfloateval{(\ConvertPtToCm{\macroy})/(\pflyunit)}}% +} + +\NewDocumentCommand\GetXYcoord{ m O{\myxcoord} O{\myycoord} }{% + \GetXcoord{#1}[#2]% + \GetYcoord{#1}[#3]% +} + +%===UNITÉS +\newcommand\DistBetweenNodes[3][\MyTmpDist]{% + \pgfpointdiff{\pgfpointanchor{#2}{center}} + {\pgfpointanchor{#3}{center}} + % no need to use a new dimen + \pgf@xa=\pgf@x + \pgf@ya=\pgf@y + % to convert from pt to cm + \pgfmathparse{veclen(\pgf@xa,\pgf@ya)/28.45274} + \global\let#1\pgfmathresult %macro globale +} + +\newcommand\TikZUnits{ + \coordinate (@0) at (0,0) ; + \coordinate (@X) at (1,0) ; + \coordinate (@Y) at (0,1) ; + \DistBetweenNodes[\pflxunit]{@0}{@X} + \DistBetweenNodes[\pflyunit]{@0}{@Y} +} + +%====ENVIRONNEMENT +\defKV[GraphicTikz]{% + GradThick=\def\pflthickgrad{#1} +} +\setKVdefault[GraphicTikz]{% + Frame=false,% + GradThick=3pt +} + +\NewDocumentEnvironment{GraphTikz}{ O{} D<>{} }% +%1 = options tikz, classiques +%2 = clés spécifiques +{% + \restoreKV[GraphicTikz]% + \setKV[GraphicTikz]{#2}% + %l'environnement + \begin{tikzpicture}[#1]% + %unités x/y pour des calculs de coordonnées + \TikZUnits + %noeuds + \coordinate (bbxTop) at (current bounding box.north) ; + \coordinate (bbxBottom) at (current bounding box.south) ; + \ifboolKV[GraphicTikz]{Frame}{\draw[tkzgrphframe] ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ;}{}% + %back to normal +}% +{% + \end{tikzpicture}% +} + +%====AXES +\defKV[GraphicTikzAxis]{ + Format=\def\pflformataxes{#1} +} +\setKVdefault[GraphicTikzAxis]{% + Grid=true,% + Enlarge=0,% + Grads=true,% + Origin=false,% + Font={},% + Format=num,% + Lines=true,% + Last=false,% + Behind=false,% + Above=false +} + +\NewDocumentCommand\FormatXaxisValues{ m m }{% + \IfStrEqCase{#1}{% + {num}{\num{#2}}% + {year}{#2}% + {frac}{\FormatFrac{#2}}% + {dfrac}{\FormatFrac[d]{#2}}% + {nfrac}{\FormatFrac[n]{#2}}% + {trig}{\FormatTrig{#2}}% + {dtrig}{\FormatTrig[d]{#2}}% + {ntrig}{\FormatTrig[n]{#2}}% + {sqrt}{\FormatSqrt{#2}}% + {dsqrt}{\FormatSqrt[d]{#2}}% + {nsqrt}{\FormatSqrt[n]{#2}}% + }[#2]% +} + +\NewDocumentCommand\FormatYaxisValues{ m m }{% + \IfStrEqCase{#1}{% + {num}{\num{#2}}% + {year}{#2}% + {frac}{\FormatSqrt{#2}}% + {dfrac}{\FormatFrac[d]{#2}}% + {nfrac}{\FormatFrac[n]{#2}}% + {trig}{\FormatTrig{#2}}% + {dtrig}{\FormatTrig[d]{#2}}% + {ntrig}{\FormatTrig[n]{#2}}% + {sqrt}{\FormatSqrt{#2}}% + {dsqrt}{\FormatSqrt[d]{#2}}% + {nsqrt}{\FormatSqrt[n]{#2}}% + }[#2]% +} + +\NewDocumentCommand\DrawAxisGrids{ s O{} m D<>{#3} m D<>{#5} }{% + \restoreKV[GraphicTikzAxis]% + \setKV[GraphicTikzAxis]{#2}% + %cas particuliers sous/sur impression + \ifboolKV[GraphicTikzAxis]{Behind}% + {% + \setKV[GraphicTikzAxis]{Grads=false} + }% + {}% + \ifboolKV[GraphicTikzAxis]{Above}% + {% + \setKV[GraphicTikzAxis]{Grid=false} + }% + {}% + %suite + \IfSubStr{\pflformataxes}{/}% + {% + \StrCut{\pflformataxes}{/}{\pflformataxex}{\pflformataxey}% + }% + {% + \xdef\pflformataxex{\pflformataxes}\xdef\pflformataxey{\pflformataxes}% + }% + \ifboolKV[GraphicTikzAxis]{Grid}% + {% + \draw[tkzgrphgrids,xstep=\pflgrillexs,ystep=\pflgrilleys] ({\pflxmin},{\pflymin}) grid ({\pflxmax},{\pflymax}); + \draw[tkzgrphgridp,xstep=\pflgrillex,ystep=\pflgrilley] ({\pflxmin},{\pflymin}) grid ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzAxis]{Last}% + {% + \draw[tkzgrphgridp] ({\pflxmin},{\pflymax})--({\pflxmax},{\pflymax}) ; + \draw[tkzgrphgridp] ({\pflxmax},{\pflymin})--({\pflxmax},{\pflymax}) ; + }% + {}% + }% + {}% + \draw[tkzgrphaxes] ({\pflxmin},{\pflOy}) -- ([xshift={\useKV[GraphicTikzAxis]{Enlarge}}]{\pflxmax},{\pflOy}) ; + \draw[tkzgrphaxes] ({\pflOx},{\pflymin}) -- ([yshift={\useKV[GraphicTikzAxis]{Enlarge}}]{\pflOx},{\pflymax}) ; + \IfEq{#3}{auto}% + {% + \xdef\tmprangexvalues{\xintfloateval{seq(i,i=\pflxmin..[\pflgrillex]..\pflxmax)}}\StrDel{\tmprangexvalues}{ }[\tmprangexvalues]% + \xdef\pflformataxex{num}% + }% + {% + \xdef\tmprangexvalues{#3}% + }% + \IfEq{#5}{auto}% + {% + \xdef\tmprangeyvalues{\xintfloateval{seq(i,i=\pflymin..[\pflgrilley]..\pflymax)}}\StrDel{\tmprangeyvalues}{ }[\tmprangeyvalues]% + \xdef\pflformataxey{num}% + }% + {% + \xdef\tmprangeyvalues{#5}% + }% + \foreach \x in \tmprangexvalues {\draw[tkzgrphline] ([yshift=\pflthickgrad]{\x},{\pflOy})--++(0,{-2*\pflthickgrad}) ;} + \foreach \y in \tmprangeyvalues {\draw[tkzgrphline] ([xshift=\pflthickgrad]{\pflOx},{\y})--++({-2*\pflthickgrad},0) ;} + \ifboolKV[GraphicTikzAxis]{Grads}% + {% + %origine + \ifboolKV[GraphicTikzAxis]{Origin}% + {% + \draw ({\pflOx},{\pflOy}) node[tkzgrphnode,below left,font={\useKV[GraphicTikzAxis]{Font}}] {\FormatXaxisValues{\pflformataxex}{\pflOx}} ; + %\draw (\pflOx,\pflOy) node[below left,font={\useKV[GraphicTikzAxis]{Font}}] {\ifboolKV[GraphicTikzAxis]{Num}{\num{\pflOx}}{\pflOx}} ; + }% + {}% + %graduations x, sauf si auto... + \foreach \x in \tmprangexvalues {% + \IfBooleanTF{#1}% + {% + \xintifboolexpr{\x == \pflOx}{}{\draw ([yshift=-\pflthickgrad]{\x},{\pflOy}) node[tkzgrphnode,below,font={\useKV[GraphicTikzAxis]{Font}}] {\FormatXaxisValues{\pflformataxex}{\x}} ;} + %\xintifboolexpr{\x == \pflOx}{}{\draw ([yshift=-\pflthickgrad]\x,\pflOy) node[below,font={\useKV[GraphicTikzAxis]{Font}}] {\ifboolKV[GraphicTikzAxis]{Num}{\num{\x}}{\x}} ;} + }% + {% + \draw ([yshift=-\pflthickgrad]{\x},{\pflOy}) node[tkzgrphnode,below,font={\useKV[GraphicTikzAxis]{Font}}] {\FormatXaxisValues{\pflformataxex}{\x}} ; + %\draw ([yshift=-\pflthickgrad]\x,\pflOy) node[below,font={\useKV[GraphicTikzAxis]{Font}}] {\ifboolKV[GraphicTikzAxis]{Num}{\num{\x}}{\x}} ; + }% + }% + \foreach \y in \tmprangeyvalues {% + \IfBooleanTF{#1}% + {% + \xintifboolexpr{\y == \pflOy}{}{\draw ([xshift=-\pflthickgrad]{\pflOx},{\y}) node[tkzgrphnode,left,font={\useKV[GraphicTikzAxis]{Font}}] {\FormatYaxisValues{\pflformataxey}{\y}} ;} + %\xintifboolexpr{\y == \pflOy}{}{\draw ([xshift=-\pflthickgrad]\pflOx,\y) node[left,font={\useKV[GraphicTikzAxis]{Font}}] {\ifboolKV[GraphicTikzAxis]{Num}{\num{\y}}{\y}} ;} + }% + {% + \draw ([xshift=-\pflthickgrad]{\pflOx},{\y}) node[tkzgrphnode,left,font={\useKV[GraphicTikzAxis]{Font}}] {\FormatYaxisValues{\pflformataxey}{\y}} ; + %\draw ([xshift=-\pflthickgrad]\pflOx,\y) node[left,font={\useKV[GraphicTikzAxis]{Font}}] {\ifboolKV[GraphicTikzAxis]{Num}{\num{\y}}{\y}} ; + }% + }% + }% + {}% +} + +%===DEFINIR POINTS +\setKVdefault[GraphicTikzDefPoints]{Color=black,Mark=false,Style=o} + +\NewDocumentCommand\DefinePts{ O{} m }{% + \restoreKV[GraphicTikzDefPoints]% + \setKV[GraphicTikzDefPoints]{#1}% + \foreach \tmpnamept/\tmpxpt/\tmpypt in {#2}{% + \coordinate (\tmpnamept) at ({\tmpxpt},{\tmpypt}) ; + \ifboolKV[GraphicTikzDefPoints]{Mark}% + {% + \MarkPts*[Style={\useKV[GraphicTikzDefPoints]{Style}},Color={\useKV[GraphicTikzDefPoints]{Color}}]{(\tmpnamept)} + %\filldraw[{\useKV[GraphicTikzDefPoints]{Color}}] (\tmpnamept) circle[tkzgrphpointc] ; + }% + {}% + } +} + +\defKV[GraphicTikzMarkPoints]{% + Color=\def\pflcouleurpoints{#1},% + Style=\def\pflstylepoints{#1} +} +\setKVdefault[GraphicTikzMarkPoints]{% + Color=black,% + Sizec=2pt,% + Sizex=2pt,% + Sizeo=1.75pt,% + Style=o,% + Lines=false +} +\NewDocumentCommand\MarkPts{ s O{} D<>{\normalfont\normalsize} m }{% + %étoilée = sans label + %2=clés + %3=points + \restoreKV[GraphicTikzMarkPoints]% + \setKV[GraphicTikzMarkPoints]{#2}% + \IfBooleanTF{#1}% + {% + \IfStrEq{\pflstylepoints}{x}% + {% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphcross={\useKV[GraphicTikzMarkPoints]{Sizex}}/45} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{+}% + {% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphcross={\useKV[GraphicTikzMarkPoints]{Sizex}}/90} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{c}% + {% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[draw=none,fill={\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphsquare={\useKV[GraphicTikzMarkPoints]{Sizec}}/0} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{d}% + {% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[draw=none,fill={\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphsquare={\useKV[GraphicTikzMarkPoints]{Sizeo}}/45} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{o}% + {% + \IfSubStr{\pflcouleurpoints}{/}% + {% + \StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[tkzgrphline,fill=\pflcouleurpointsB,draw=\pflcouleurpointsA] \Point circle[radius={\useKV[GraphicTikzMarkPoints]{Sizeo}}] ; + }% + }% + {% + \foreach \Point in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphicTikzMarkPoints]{Sizeo}}] ; + }% + }% + }% + {}% + }% + {%avec label + \IfStrEq{\pflstylepoints}{x}% + {% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphcross={\useKV[GraphicTikzMarkPoints]{Sizex}}/45} node[tkzgrphnode,\Pos,font=#3] {\Label} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{+}% + {% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphcross={\useKV[GraphicTikzMarkPoints]{Sizex}}/90} node[tkzgrphnode,\Pos,font=#3] {\Label} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{c}% + {% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[draw=none,fill={\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphsquare={\useKV[GraphicTikzMarkPoints]{Sizec}}/0} node[tkzgrphnode,\Pos,{\useKV[GraphicTikzMarkPoints]{Color}},font=#3] {\Label} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{d}% + {% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[draw=none,fill={\useKV[GraphicTikzMarkPoints]{Color}}] \Point pic{tkzgraphsquare={\useKV[GraphicTikzMarkPoints]{Sizeo}}/45} node[tkzgrphnode,\Pos,{\useKV[GraphicTikzMarkPoints]{Color}},font=#3] {\Label} ; + }% + }% + {}% + \IfStrEq{\pflstylepoints}{o}% + {% + \IfSubStr{\pflcouleurpoints}{/}% + {% + \StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \draw[tkzgrphline,\pflcouleurpointsA,fill=\pflcouleurpointsB] \Point circle[radius={\useKV[GraphicTikzMarkPoints]{Sizeo}}] node[tkzgrphnode,\Pos,font=#3] {\Label} ; + }% + }% + {% + \foreach \Point/\Pos/\Label in {#4} {% + \ifboolKV[GraphicTikzMarkPoints]{Lines}% + {% + \draw[{\useKV[GraphicTikzMarkPoints]{Color}},tkzgrphcounterimage] let \p1 = \Point in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphicTikzMarkPoints]{Sizeo}}] node[tkzgrphnode,\Pos,font=#3] {\Label} ; + }% + }% + }% + {}% + }% +} + +%===AJOUTER DES VALEURS MANUELLEMENT +\NewDocumentCommand\AddXvalues{ O{} m m }{% + \restoreKV[GraphicTikzAxis]% + \setKV[GraphicTikzAxis]{#1}% + \ifboolKV[GraphicTikzAxis]{Lines}{\foreach \x in {#2}{\draw[tkzgrphline] ([yshift=\pflthickgrad]{\x},{\pflOy})--++(0,{-2*\pflthickgrad}) ;}}{}% + \readlist*\LstValX{#2}% + \readlist*\LstValFmtX{#3}% + \foreach \i in {1,...,\LstValXlen}{% + \itemtomacro\LstValX[\i]\mavalx% + \itemtomacro\LstValFmtX[\i]\mavalfmtx% + \draw ([yshift=-\pflthickgrad]{\mavalx},{\pflOy}) node[tkzgrphnode,below,font={\useKV[GraphicTikzAxis]{Font}}] {\mavalfmtx} ; + }% +} + +\NewDocumentCommand\AddYvalues{ O{} m m }{% + \restoreKV[GraphicTikzAxis]% + \setKV[GraphicTikzAxis]{#1}% + \ifboolKV[GraphicTikzAxis]{Lines}{\foreach \y in {#2}{\draw[tkzgrphline] ([xshift=\pflthickgrad]{\pflOx},{\y})--++({-2*\pflthickgrad},0) ;}}{}% + \readlist*\LstValY{#2}% + \readlist*\LstValFmtY{#3}% + \foreach \i in {1,...,\LstValYlen}{% + \itemtomacro\LstValY[\i]\mavaly% + \itemtomacro\LstValFmtY[\i]\mavalfmty% + \draw ([xshift=-\pflthickgrad]{\pflOx},{\mavaly}) node[tkzgrphnode,left,font={\useKV[GraphicTikzAxis]{Font}}] {\mavalfmty} ; + }% +} + +%====FONCTIONS ET COURBES 'classique + interpo + spline' +\defKV[GraphicTikzCourbe]{% + Step=\def\pflstepcurve{#1},% + Name=\def\pflnamecurve{#1} +} +\setKVdefault[GraphicTikzCourbe]{% + Color=black,% + Start={\pflxmin},% + End={\pflxmax},% + Step={},% + Clip=true,% + Name={},% + Trace=false,% + Tension=0.5 +} + +\NewDocumentCommand\DefineFunction{ O{} D<>{f} m }{%old version + \restoreKV[GraphicTikzCourbe]% + \setKV[GraphicTikzCourbe]{#1}% + \xintdeffloatfunc #2(x) := #3 ; + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphicTikzCourbe]{End})-(\useKV[GraphicTikzCourbe]{Start}))/100}}% + }% + {}% + \ifboolKV[GraphicTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzCourbe]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + {% + \path[draw=none,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + \ifboolKV[GraphicTikzCourbe]{Clip}{\end{scope}}{} +} + +\NewDocumentCommand\DefineCurve{ O{} D<>{f} m }{% + \restoreKV[GraphicTikzCourbe]% + \setKV[GraphicTikzCourbe]{#1}% + \xintdeffloatfunc #2(x) := #3 ; + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphicTikzCourbe]{End})-(\useKV[GraphicTikzCourbe]{Start}))/100}}% + }% + {}% + \ifboolKV[GraphicTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzCourbe]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + {% + \path[draw=none,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + \ifboolKV[GraphicTikzCourbe]{Clip}{\end{scope}}{} +} + +\NewDocumentCommand\DrawCurve{ O{} D<>{} m }{% + \restoreKV[GraphicTikzCourbe]% + \setKV[GraphicTikzCourbe]{#1}% + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphicTikzCourbe]{End})-(\useKV[GraphicTikzCourbe]{Start}))/100}}% + }% + {}% + \ifboolKV[GraphicTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{} + \IfEq{\pflnamecurve}{}% + {% + \draw[tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}}] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#3),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#3),x={\useKV[GraphicTikzCourbe]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzCourbe]{End}},{\useKV[GraphicTikzCourbe]{End}}) + \relax + }; + }% + \ifboolKV[GraphicTikzCourbe]{Clip}{\end{scope}}{} +} + +\NewDocumentCommand\DefineLstInterpol{ m O{\myinterpolist} }{% + \def#2{#1}% +} + +\NewDocumentCommand\DefineInterpoCurve{ O{} m }{% + \restoreKV[GraphicTikzCourbe]% + \setKV[GraphicTikzCourbe]{#1}% + \begin{scope} + \ifboolKV[GraphicTikzCourbe]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth,tension={\useKV[GraphicTikzCourbe]{Tension}}] coordinates {#2}; + }% + {% + \path[draw=none,tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}},name path global=\pflnamecurve] plot[smooth,tension={\useKV[GraphicTikzCourbe]{Tension}}] coordinates {#2}; + }% + \end{scope} +} + +\NewDocumentCommand\DrawInterpoCurve{ O{} m }{% + %2=liste + \restoreKV[GraphicTikzCourbe]% + \setKV[GraphicTikzCourbe]{#1}% + \begin{scope} + \draw[tkzgrphcurve,{\useKV[GraphicTikzCourbe]{Color}}] plot [smooth,tension={\useKV[GraphicTikzCourbe]{Tension}}] coordinates {#2} ; + \end{scope} +} + +\NewDocumentCommand\DefineLstSpline{ m O{\mysplinelst} }{% + \def#2{#1}% +} + +\newcommand\tkzextractcoeff[2]{%1=liste,2=numero + \setsepchar{§}% + \readlist*\lcoeffs{#1} + \ifnum \lcoeffslen=1 + \def\COEFFA{#1} + \def\COEFFB{#1} + \else + \itemtomacro\lcoeffs[#2]\COEFF + \IfSubStr{\COEFF}{/}% + {\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}% + {\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}} + \fi +} + +\defKV[GraphicTikzSpline]{% + Name=\def\pflsplinename{#1},% + Coeffs=\def\pflsplinecoeffs{#1} +} + +\setKVdefault[GraphicTikzSpline]{% + Name=spline,% + Color=black,% + Coeffs=3,% + Trace=false +} + +\NewDocumentCommand\GenerateSpline{ m m O{\myspline} }{% + %1=liste + \setsepchar[.]{§./}% + \readlist*\SPLlistepoints{#1}% + %les données + \def\tmpsplinenumdeb{1} + \def\tmpsplinenumfin{\SPLlistepointslen}% + \tkzextractcoeff{#2}{\tmpsplinenumdeb}% + %nb de calculs + \def\SPLnbsplines{\inteval{\tmpsplinenumfin-1}}% + %extraction des coordonnées + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xa% + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\ya% + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimea% + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xb% + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\yb% + \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimeb% + \xdef#3{(\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb)}% + \foreach \i in {\tmpsplinenumdeb,...,\SPLnbsplines}{% + %extraction des coeffs de compensation + \tkzextractcoeff{#2}{\i}% + \def\j{\inteval{\i+1}}% + \itemtomacro\SPLlistepoints[\i,1]\xa% + \itemtomacro\SPLlistepoints[\i,2]\ya% + \itemtomacro\SPLlistepoints[\i,3]\fprimea% + \itemtomacro\SPLlistepoints[\j,1]\xb% + \itemtomacro\SPLlistepoints[\j,2]\yb% + \itemtomacro\SPLlistepoints[\j,3]\fprimeb% + \xdef#3{#3 ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb)}% + }% +} + +\NewDocumentCommand\DefineSplineCurve{ O{} m D<>{\myspline} }{% + %1=liste + \restoreKV[GraphicTikzSpline]% + \setKV[GraphicTikzSpline]{#1}% + \GenerateSpline{#2}{\pflsplinecoeffs}[#3]% + \begin{scope} + \ifboolKV[GraphicTikzSpline]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzSpline]{Color}},name path global=\pflsplinename] #3 ; + }% + {% + \path[draw=none,tkzgrphcurve,name path global=\pflsplinename] #3 ; + }% + \end{scope} +} + +\NewDocumentCommand\DefineSpline{ O{} m D<>{\myspline} }{%old version + %1=liste + \restoreKV[GraphicTikzSpline]% + \setKV[GraphicTikzSpline]{#1}% + \GenerateSpline{#2}{\pflsplinecoeffs}[#3]% + \begin{scope} + \ifboolKV[GraphicTikzSpline]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzSpline]{Color}},name path global=\pflsplinename] #3 ; + }% + {% + \path[draw=none,tkzgrphcurve,name path global=\pflsplinename] #3 ; + }% + \end{scope} +} + +\NewDocumentCommand\DrawSplineCurve{ O{} m D<>{\myspline} }{% + %1=liste + \restoreKV[GraphicTikzSpline]% + \setKV[GraphicTikzSpline]{#1}% + \GenerateSpline{#2}{\pflsplinecoeffs}[#3]% + \begin{scope} + \draw[tkzgrphcurve,{\useKV[GraphicTikzSpline]{Color}}] #3 ; + \end{scope} +} + +\NewDocumentCommand\DrawSpline{ O{} m D<>{\myspline} }{%old version + %1=liste + \restoreKV[GraphicTikzSpline]% + \setKV[GraphicTikzSpline]{#1}% + \GenerateSpline{#2}{\pflsplinecoeffs}[#3]% + \begin{scope} + \draw[tkzgrphcurve,{\useKV[GraphicTikzSpline]{Color}}] #3 ; + \end{scope} +} + +%===INTERSECTION & ANTÉCÉDENTS +\defKV[GraphicTikzIntersect]{% + Name=\def\pflintercurves{#1} +} +\setKVdefault[GraphicTikzIntersect]{% + Name=S, + Disp=true, + Color=black, + DispLine=false,% + Lines=false,% + Style=o +} + +\NewDocumentCommand\FindIntersections{ O{} m m D<>{\myt} }{% + \restoreKV[GraphicTikzIntersect]% + \setKV[GraphicTikzIntersect]{#1}% + \path[name intersections={of=#2 and #3,name=\pflintercurves,total=\t}] \pgfextra{\xdef#4{\t}}; + \ifboolKV[GraphicTikzIntersect]{Disp}% + {% + \xintifboolexpr{#4 == 0}{}% + {% + \foreach \i in {1,...,#4}{% + \ifboolKV[GraphicTikzIntersect]{Lines}% + {% + \draw[tkzgrphrange,{\useKV[GraphicTikzIntersect]{Color}}]let \p1 = (\pflintercurves-\i) in (\pflintercurves-\i) -- ({\x1},{\pflOy}) ; + }% + {}% + \MarkPts*[Style={\useKV[GraphicTikzIntersect]{Style}},Color={\useKV[GraphicTikzIntersect]{Color}}]{(\pflintercurves-\i)} + %\filldraw[{\useKV[GraphicTikzIntersect]{Color}}] (\pflintercurves-\i) circle[tkzgrphpointc] ; + } + }% + }% + {}% +} + +\NewDocumentCommand\FindCounterimage{ O{} m m D<>{\myantec} }{% + \restoreKV[GraphicTikzIntersect]% + \setKV[GraphicTikzIntersect]{#1}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzIntersect]{DispLine}% + {% + \path[draw,{\useKV[GraphicTikzIntersect]{Color}},tkzgrphcurve,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ; + }% + {% + \path[draw=none,tkzgrphcurve,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ; + }% + \path[name intersections={of=#2 and tmpanteced,name=\pflintercurves,total=\t}] \pgfextra{\xdef#4{\t}}; + \ifboolKV[GraphicTikzIntersect]{Disp}% + {% + \xintifboolexpr{#4 == 0}{}% + {% + \foreach \i in {1,...,#4}{% + \MarkPts*[Style={\useKV[GraphicTikzIntersect]{Style}},Color={\useKV[GraphicTikzIntersect]{Color}}]{(\pflintercurves-\i)} + %\filldraw[{\useKV[GraphicTikzIntersect]{Color}}] (\pflintercurves-\i) circle[tkzgrphpointc] ; + } + }% + }% + {}% + \end{scope} +} + +%====INTÉGRALES +%v2 avec modification de la clé [Type=...] ? +\defKV[GraphicTikzIntegr]{% + Colors=\def\pfldomtikzcolors{#1},% + Style=\def\pfldomtikzstyle{#1},% + Opacity=\def\pfldomtikzopac{#1},% + Hatch=\def\pfldomtikzhatch{#1},% + Type=\def\pfldomtikztype{#1},% + Step=\def\pflstepcurve{#1},% + Bounds=\def\pflintbornes{#1},% + Junction=\def\pfldomtikzjoin{#1},% + NameInterpo=\def\pfldomtikznameinterpo{#1},% + NameInterpoB=\def\pfldomtikznameinterpob{#1},% + NameSpline=\def\pfldomtikznamespline{#1},% + NameSplineB=\def\pfldomtikznamesplineb{#1} +} +\setKVdefault[GraphicTikzIntegr]{% + Colors=gray,% + Style=fill,% + Opacity=0.5,% + Hatch={north west lines},% + Type=fct,% + Step={},% + Junction=bevel,% + Bounds=abs,% + Border=true,% + Spline=false,% + SplineB=false,% + NameInterpo={\myinterpo},% + NameInterpoB={\myinterpoB},% + NameSpline={\myspline},% + NameSplineB={\myplineB},% + Tension=0.5,% + TensionB=0.5 +} + +\NewDocumentCommand\DrawIntegral{ O{} D<>{} m O{0} m m }{% + %1 = clés + %2 = options particulières tikz + %3 = fonction, en tikz + %4 = fonction n°2 éventuelle + %de #5 à #6 + \restoreKV[GraphicTikzIntegr]% revenir au valeurs par défaut + \setKV[GraphicTikzIntegr]{#1}% lit les arguments optionnels + %les couleurs + \IfSubStr{\pfldomtikzcolors}{/}% + {% + \StrCut{\pfldomtikzcolors}{/}{\pfldomtikzcolorbord}{\pfldomtikzcolorfond} + }% + {% + \xdef\pfldomtikzcolorbord{\pfldomtikzcolors}\xdef\pfldomtikzcolorfond{\pfldomtikzcolors} + }% + \ifboolKV[GraphicTikzIntegr]{Border}% + {% + \tikzset{integralebordtikzstyle/.style={draw=\pfldomtikzcolorbord}} + }% + {% + \tikzset{integralebordtikzstyle/.style={draw=none}} + }% + \IfStrEq{\pfldomtikzstyle}{hatch}% + {% + \tikzset{integraletikzstyle/.style={tkzgrphline,pattern=\pfldomtikzhatch,pattern color=\pfldomtikzcolorfond,line join=\pfldomtikzjoin}} + }% + {}% + \IfStrEq{\pfldomtikzstyle}{fill}% + {% + \tikzset{integraletikzstyle/.style={tkzgrphline,fill=\pfldomtikzcolorfond,fill opacity=\pfldomtikzopac,line join=\pfldomtikzjoin}} + }% + {}% + %extraction des infos x/y + \IfStrEqCase{\pflintbornes}{% + {abs}% + {% + \xdef\absnoeudA{#5}% + \xdef\absnoeudB{#6}% + }% + {nodes}% + {% + \path #5; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\absnoeudA{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \path #6; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\absnoeudB{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + }% + {abs/node}% + {% + \xdef\absnoeudA{#5}% + \path #6; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\absnoeudB{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + }% + {node/abs}% + {% + \path #5; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\absnoeudA{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \xdef\absnoeudB{#6}% + }% + }% + %suite avec les nbs points + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflstepcurve{\xintfloateval{((\absnoeudB)-(\absnoeudA))/100}}% + }% + {}% + %TRACÉSen fonction des types de courbes + \IfStrEq{\pfldomtikztype}{fct}% + {%OK + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflOy}) -- cycle ; + \end{scope} + }% + {}% + \IfStrEq{\pfldomtikztype}{spl}%avec 3=courbe spline + clé [Spline] à utiliser ! + {%OK + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflOy}) -- cycle ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=#3 and tmpintbornea,name=YYY}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\pflOy})-- (YYY-1) ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=#3 and tmpintborneb,name=ZZZ}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{itp}%avec 3=courbe interpo + {%OK + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflOy}) -- cycle ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYY}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\pflOy})-- (YYY-1) ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZ}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{fct/fct}%avec #3=formule et #4=formule + {% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[integraletikzstyle,integralebordtikzstyle,#2] plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudB..[-(\pflstepcurve)]..\absnoeudA,\absnoeudA)\relax} -- cycle ; + \end{scope} + }% + {}% + \IfStrEq{\pfldomtikztype}{spl/spl}%avec #3=cbe spline + #4=cbe splineB + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ; + \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=#3 and tmpintbornea,name=YYYA}] ; + \path[name intersections={of=#4 and tmpintbornea,name=ZZZA}] ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=#3 and tmpintborneb,name=YYYB}] ; + \path[name intersections={of=#4 and tmpintborneb,name=ZZZB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYA-1)-- (ZZZA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYB-1)-- (ZZZB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{itp/itp}%avec #3=cbe interpo + #4=cbe interpoB + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ; + \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYA}] ; + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZA}] ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYB}] ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYA-1)-- (ZZZA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYB-1)-- (ZZZB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{fct/spl}%avec #3=formule + #4=spline + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ; + \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and #4,name=ZZZA}] ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintborneb and #4,name=ZZZB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{spl/fct}%avec #3=spline + #4=fct + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ; + \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and #3,name=ZZZA}] ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintborneb and #3,name=ZZZB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{fct/itp}%avec #3=formule + #4=liste interpo + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ; + \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZAA}] ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZAB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZAA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZAB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{itp/fct}% + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ; + \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ; + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ; + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=ZZZAA}] ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZAB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZAA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZAB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{itp/spl}% + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ; + \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYKAA}] ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYKBB}] ; + \path[name intersections={of=tmpintbornea and #4,name=ZZZKAA}] ; + \path[name intersections={of=tmpintborneb and #4,name=ZZZKBB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYKAA-1)-- (ZZZKAA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYKBB-1)-- (ZZZKBB-1) ; + }% + {}% + \IfStrEq{\pfldomtikztype}{spl/itp}% + {% + \begin{scope} + \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphicTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ; + \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ; + \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ; + \end{scope} + \path[draw=none,tkzgrphcurve,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf + \path[draw=none,tkzgrphcurve,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup + \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=YYYKAA}] ; + \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=YYYKBB}] ; + \path[name intersections={of=tmpintbornea and #3,name=ZZZKAA}] ; + \path[name intersections={of=tmpintborneb and #3,name=ZZZKBB}] ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYKAA-1)-- (ZZZKAA-1) ; + \draw[\pfldomtikzcolorbord,tkzgrphline] (YYYKBB-1)-- (ZZZKBB-1) ; + }% + {}% +} + +\NewDocumentCommand\DrawPts{ s O{black} D<>{\normalfont\normalsize} m }{% + \IfBooleanTF{#1}% + {% + \foreach \Point in {#4}{% + \filldraw[#2] \Point circle[tkzgrphpointc] ; + } + }% + {% + \foreach \Point/\Pos/\Label in {#4}{% + \filldraw[#2] \Point circle[tkzgrphpointc] node[tkzgrphnode,\Pos,font=#3] {\Label} ; + } + }% +} + +% %====STATS À 2 VARIABLES +\defKV[GraphicTikzRegLin]{% + Rounds=\def\pflarrondisreglin{#1}, + Name=\def\pflnamereglin{#1}, + NameParab=\def\pflnameregquad{#1}, + Start=\def\pflreglinmin{#1}, + End=\def\pflreglinmax{#1} +} +\setKVdefault[GraphicTikzRegLin]{ + ColorScatter=black, + ColorLine=black, + ColorParab=black, + Rounds={}, + Start={\pflxmin}, + End={\pflxmax}, + Name=reglin,% + NameParab=quadreg,% + DrawLine=false,% + DrawParab=false,% + Style=o +} + +\NewDocumentCommand\DrawScatter{ O{} D<>{d} m m }{% + \useKVdefault[GraphicTikzRegLin]% + \setKV[GraphicTikzRegLin]{#1}% on paramètres les nouvelles clés et on les simplifie + %listes des données + \def\xliste{#3} + \def\yliste{#4} + \readlist*\LX{\xliste} + \readlist*\LY{\yliste} + %taille des listes + \def\LNB{\inteval{\LXlen}} + %nuage + \foreach \i in {1,...,\LXlen}{% + \itemtomacro\LX[\i]\tmpmavalx% + \itemtomacro\LY[\i]\tmpmavaly% + \MarkPts*[Style={\useKV[GraphicTikzRegLin]{Style}},Color={\useKV[GraphicTikzRegLin]{ColorScatter}}]{(\tmpmavalx,\tmpmavaly)}% + } + %droite de régression + \ifboolKV[GraphicTikzRegLin]{DrawLine}% + {% + %somme des LX et des LY OK + \xdef\LXSomme{0} + \xdef\LYSomme{0} + \foreach \i in {1,2,...,\LNB}{ + \xdef\LXSomme{\xintfloateval{\LXSomme+\LX[\i]}} + } + \foreach \i in {1,2,...,\LNB}{ + \xdef\LYSomme{\xintfloateval{\LYSomme+\LY[\i]}} + } + %moyenne des LX et des LY OK + \xdef\LXmoy{\xintfloateval{\LXSomme/\LNB}} + \xdef\LYmoy{\xintfloateval{\LYSomme/\LNB}} + %variance des LX et des LY OK + \xdef\LXvar{0} + \foreach \i in {1,2,...,\LNB}{ + \xdef\LXvar{\xintfloateval{\LXvar+(\LX[\i]-\LXmoy)*(\LX[\i]-\LXmoy)}} + } + \xdef\LXvar{\xintfloateval{\LXvar/\LNB}} + \xdef\LYvar{0} + \foreach \i in {1,2,...,\LNB}{ + \xdef\LYvar{\xintfloateval{\LYvar+(\LY[\i]-\LYmoy)*(\LY[\i]-\LYmoy)}} + } + \xdef\LYvar{\xintfloateval{\LYvar/\LNB}} + %covariance des XY OK + \xdef\LXYvar{0} + \foreach \i in {1,2,...,\LNB}{ + \xdef\LXYvar{\xintfloateval{\LXYvar+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}} + } + \xdef\LXYvar{\xintfloateval{\LXYvar/\LNB}} + %COEFFS OK + \IfStrEq{\pflarrondisreglin}{}% + {% + \xdef\tmpcoeffreglina{\xintfloateval{\LXYvar/\LXvar}} + \xdef\tmpcoeffreglinb{\xintfloateval{\LYmoy-\tmpcoeffreglina*\LXmoy}} + }% + {% + \IfSubStr{\pflarrondisreglin}{/}% + {% + \StrCut{\pflarrondisreglin}{/}{\pflarrondisreglina}{\pflarrondisreglinb} + }% + {% + \xdef\pflarrondisreglina{\pflarrondisreglin}\xdef\pflarrondisreglinb{\pflarrondisreglin} + }% + \xdef\tmpcoeffreglina{\xintfloateval{round(\LXYvar/\LXvar,\pflarrondisreglina)}} + \xdef\tmpcoeffreglinb{\xintfloateval{round(\LYmoy-\tmpcoeffreglina*\LXmoy,\pflarrondisreglinb)}} + }% + \xintdeffloatfunc #2(x) := (\tmpcoeffreglina)*x+(\tmpcoeffreglinb) ; + %tracé + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[tkzgrphcurve,{\useKV[GraphicTikzRegLin]{ColorLine}},name path global=\pflnamereglin,samples=2,domain=\pflreglinmin:\pflreglinmax] plot (\x,{\tmpcoeffreglina*\x+\tmpcoeffreglinb}) ; + \end{scope} + }% + {}% + \ifboolKV[GraphicTikzRegLin]{DrawParab}% + {% + %somme importantes + \xdef\LXSomme{0}% + \xdef\LXCSomme{0}% + \xdef\LYSomme{0}% + \xdef\LXXSomme{0}% + \xdef\LXYSomme{0}% + \xdef\LXXCSomme{0}% + \xdef\LXCXCSomme{0}% + \xdef\LXCYSomme{0}% + %calculs + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXSomme{\xintfloateval{\LXSomme+\LX[\i]}}% + \xdef\LXCSomme{\xintfloateval{\LXCSomme+(\LX[\i])^2}}% + }% + \foreach \i in {1,2,...,\LNB}{% + \xdef\LYSomme{\xintfloateval{\LYSomme+\LY[\i]}}% + }% + \xdef\LXmoy{\xintfloateval{\LXSomme/\LNB}}% + \xdef\LYmoy{\xintfloateval{\LYSomme/\LNB}}% + \xdef\LXCmoy{\xintfloateval{\LXCSomme/\LNB}}% + %calculs suites + \foreach \i in {1,2,...,\LNB}{% + \xdef\LXXSomme{\xintfloateval{\LXXSomme+(\LX[\i]-\LXmoy)^2}}% + \xdef\LXYSomme{\xintfloateval{\LXYSomme+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}% + \xdef\LXXCSomme{\xintfloateval{\LXXCSomme+(\LX[\i]-\LXmoy)*((\LX[\i])*(\LX[\i])-\LXCmoy)}}% + \xdef\LXCXCSomme{\xintfloateval{\LXCXCSomme+((\LX[\i])^2-\LXCmoy)^2}}% + \xdef\LXCYSomme{\xintfloateval{\LXCYSomme+((\LX[\i])^2-\LXCmoy)*(\LY[\i]-\LYmoy)}}% + }% + %COEFFS OK + \IfStrEq{\pflarrondisreglin}{}% + {% + \xdef\tmpcoeffregquadb{\xintfloateval{(\LXYSomme*\LXCXCSomme-\LXCYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}} + \xdef\tmpcoeffregquada{\xintfloateval{(\LXCYSomme*\LXXSomme-\LXYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2)}} + \xdef\tmpcoeffregquadc{\xintfloateval{\LYmoy-\tmpcoeffregquadb*\LXmoy-\tmpcoeffregquada*\LXCmoy}} + }% + {% + \xdef\tmpcoeffregquadb{\xintfloateval{round((\LXYSomme*\LXCXCSomme-\LXCYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2),\pflarrondisreglin)}} + \xdef\tmpcoeffregquada{\xintfloateval{round((\LXCYSomme*\LXXSomme-\LXYSomme*\LXXCSomme)/(\LXXSomme*\LXCXCSomme-(\LXXCSomme)^2),\pflarrondisreglin)}} + \xdef\tmpcoeffregquadc{\xintfloateval{round(\LYmoy-\tmpcoeffregquadb*\LXmoy-\tmpcoeffregquada*\LXCmoy,\pflarrondisreglin)}} + }% + \xintdeffloatfunc #2(x) := (\tmpcoeffregquada)*x^2+(\tmpcoeffregquadb)*x+\tmpcoeffregquadc ; + %tracé + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[tkzgrphcurve,{\useKV[GraphicTikzRegLin]{ColorParab}},name path global=\pflnameregquad,samples=250,domain=\pflreglinmin:\pflreglinmax] plot (\x,{\tmpcoeffregquada*(\x)^2+\tmpcoeffregquadb*\x+\tmpcoeffregquadc}) ; + \end{scope} + }% + {}% +} + +\if@loadxintreg +%régressions alternatives +\NewDocumentCommand\DrawRegression{ O{} D<>{curvajust} m D<>{} m m }{% + %1=options de tracés + %2=nom courbe + %3=type + %4=arrondis + %5=liste X + %6=liste Y + \IfStrEq{#3}{lin}% + {% + \xintlinreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\linrega*x+\linregb}% + }% + {}% + \IfStrEq{#3}{quad}% + {% + \xintquadreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\quadrega*x^2+\quadregb*x+\quadregc}% + }% + {}% + \IfStrEq{#3}{pow}% + {% + \xintpowreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\powrega*x^(\powregb)}% + }% + {}% + \IfStrEq{#3}{expab}% + {% + \xintexpabreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\expabrega*(\expabregb)^x}% + }% + {}% + \IfStrEq{#3}{hyp}% + {% + \xinthypreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\hyprega+(\hypregb)/x}% + }% + {}% + \IfStrEq{#3}{log}% + {% + \xintlogreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\logrega+(\logregb)*log(x)}% + }% + {}% + \IfStrEq{#3}{exp}% + {% + \xintexpreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{exp(\exprega*x+\expregb)}% + }% + {}% + \IfStrEq{#3}{expalt}% + {% + \xintexpreg[Alt,round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\expregb*exp(\exprega*x)}% + }% + {}% + \IfStrEq{#3}{cub}% + {% + \xintcubreg[round={#4}]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\cubrega*x^3+\cubregb*x^2+\cubregc*x+\cubregd}% + }% + {}% + \IfSubStr{#3}{expoff}% + {% + \StrBehind{#3}{=}[\expoffset]% + \xintexpoffreg[round={#4},offset=\expoffset]{#5}{#6}% + \DefineFunction[#1,Trace]<#2>{\expoffset+\expregoffb*exp(\expregoffa*x)}% + }% + {}% +} +\fi + +%===IMAGES & ANTÉCÉDENTS +\defKV[GraphicTikzImg]{ + Colors=\def\pflimgcolors{#1},% + Name=\def\pflantecednoms{#1}% +} + +\setKVdefault[GraphicTikzImg]{ + Colors=black,% + Lines=false,% + Spline=false,% + Name={},% + Style=o +} + +\NewDocumentCommand\DefineRange{ O{} m m }{% + \useKVdefault[GraphicTikzImg]% + \setKV[GraphicTikzImg]{#1}% + \ifboolKV[GraphicTikzImg]{Spline}% + {% + \path[draw=none,tkzgrphcurve,name path=tmpimage] ({#3},{\pflymin})--({#3},{\pflymax}) ; + \path[name intersections={of=#2 and tmpimage,name=ZZZZ}] ; + \coordinate (\pflantecednoms) at (ZZZZ-1) ; + }% + {% + \xdef\tmpresimg{\xintfloateval{#2(#3)}}% + \coordinate (\pflantecednoms) at ({#3},{\tmpresimg}) ; + }% +} + +\NewDocumentCommand\DrawRanges{ O{} m m }{% + \useKVdefault[GraphicTikzImg]% + \setKV[GraphicTikzImg]{#1}% + \IfSubStr{\pflimgcolors}{/}% + {% + \StrCut{\pflimgcolors}{/}{\pflimgcolorpt}{\pflimgcolorline} + }% + {% + \xdef\pflimgcolorpt{\pflimgcolors}\xdef\pflimgcolorline{\pflimgcolors} + }% + \ifboolKV[GraphicTikzImg]{Spline}% + {% + \foreach \i in {#3}{% + \path[draw=none,tkzgrphcurve,name path=tmpimage] ({\i},{\pflymin})--({\i},{\pflymax}) ; + \path[name intersections={of=#2 and tmpimage,name=ZZ}] ; + \ifboolKV[GraphicTikzImg]{Lines}% + {% + \draw[\pflimgcolorline,tkzgrphrange] let \p1 = (ZZ-1) in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ; + }% + {}% + \MarkPts*[Style={\useKV[GraphicTikzImg]{Style}},Color=\pflimgcolorpt]{(ZZ-1)} + %\filldraw[\pflimgcolorpt] (ZZ-1) circle[radius=2pt] ; + } + }% + {% + \foreach \i in {#3}{% + \xdef\tmpresimg{\xintfloateval{#2(\i)}}% + \ifboolKV[GraphicTikzImg]{Lines}% + {% + \draw[\pflimgcolorline,tkzgrphrange] ({\i},{\pflOy}) |- ({\pflOx},{\tmpresimg}) ; + }% + {}% + \MarkPts*[Style={\useKV[GraphicTikzImg]{Style}},Color=\pflimgcolorpt]{({\i},{\tmpresimg})} + %\filldraw[\pflimgcolorpt] ({\i},{\tmpresimg}) circle[radius=2pt] ; + }% + }% +} + +\NewDocumentCommand\DrawCounterimage{ O{} m m }{%avec le nom de la courbe... + \useKVdefault[GraphicTikzImg]% + \setKV[GraphicTikzImg]{#1}% + \xdef\pflstepcurve{\xintfloateval{0.1*\pflgrillexs}} + \IfSubStr{\pflimgcolors}{/}% + {% + \StrCut{\pflimgcolors}{/}{\pflimgcolorpt}{\pflimgcolorline}% + }% + {% + \xdef\pflimgcolorpt{\pflimgcolors}\xdef\pflimgcolorline{\pflimgcolors}% + }% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \path[draw=none,tkzgrphcurve,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ; + \path[name intersections={of=#2 and tmpanteced,name=ZZ,total=\t}] \pgfextra{\xdef\tmptotanteced{\t}}; + \xintifboolexpr{\tmptotanteced == 0}{}% + {% + \ifboolKV[GraphicTikzImg]{Lines}% + {% + \draw[\pflimgcolorline,tkzgrphcounterimage] ({\pflxmin},{#3})--({\pflxmax},{#3}) ; + }% + {}% + \foreach \i in {1,...,\tmptotanteced}{% + \IfStrEq{\pflantecednoms}{}% + {}% + {% + \coordinate (\pflantecednoms-\i) at (ZZ-\i) ; + }% + \ifboolKV[GraphicTikzImg]{Lines}% + {% + \draw[\pflimgcolorline,tkzgrphrange] let \p1 = (ZZ-\i) in (ZZ-\i) -- ({\x1},{\pflOy}) ; + }% + {}% + \MarkPts*[Style={\useKV[GraphicTikzImg]{Style}},Color=\pflimgcolorpt]{(ZZ-\i)} + %\filldraw[\pflimgcolorpt] (ZZ-\i) circle[radius=2pt] ; + }% + }% + \end{scope} +} + +%===NOMBRE DÉRIVÉ ET TANGENTE (EXPÉRIEMENTAL) +\NewDocumentCommand\CalcDerivate{ s m m m }{%*=gauche+nomfct+abspt+h + \IfBooleanTF{#1}% + {% + \xdef\TmpResNbDeriv{\xintfloateval{(#2(#3)-#2(#3-#4))/(#4)}}% + }% + {% + \xdef\TmpResNbDeriv{\xintfloateval{(#2(#3+#4)-#2(#3))/(#4)}}% + }% +} + +\defKV[GraphicTikzTgte]{% + Colors=\def\pfltgttikzcolors{#1},% + OffsetL=\def\pfltgttikzkl{#1},% + OffsetR=\def\pfltgttikzkr{#1},% + h=\def\pfltgttikzh{#1},% + Direction=\def\pfltgttikzsens{#1},% + Delta=\def\tmptgtedelta{#1} +} +\setKVdefault[GraphicTikzTgte]{% + Colors=black,% + OffsetL=1,% + OffsetR=1,% + DispPt=false,% + Spline=false,% + h=0.1,% + Direction=lr,% + Node=false,% + Delta=0.01,% + Style=o +} + +\NewDocumentCommand\DrawTangent{ O{} m m D<>{} }{% + \restoreKV[GraphicTikzTgte]% + \setKV[GraphicTikzTgte]{#1}% + %en fonction de la gestion de l'abscisse + \ifboolKV[GraphicTikzTgte]{Node}% + {% + \path #3; + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\pfltgttikzx{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + }% + {% + \xdef\pfltgttikzx{#3}% + }% + %parties communes + \IfSubStr{\pfltgttikzcolors}{/}% + {% + \StrCut{\pfltgttikzcolors}{/}{\pfltgttikzline}{\pfltgttikzpoint} + }% + {% + \xdef\pfltgttikzline{\pfltgttikzcolors}\xdef\pfltgttikzpoint{\pfltgttikzcolors} + }% + \xdef\tmptgtdeb{\xintfloateval{\pfltgttikzx-(\pfltgttikzkl)}}% + \xdef\tmptgtfin{\xintfloateval{\pfltgttikzx+(\pfltgttikzkr)}}% + %suivant le type de courbe + \ifboolKV[GraphicTikzTgte]{Spline}% + {% + \path[name path=tmpimage] ({\pfltgttikzx},{\pflymin})--({\pfltgttikzx},{\pflymax}) ; + \path[name intersections={of=#2 and tmpimage,name=TANp}] ; + \IfStrEq{\pfltgttikzsens}{lr}% + {% + \path[name path=L-vline] ({\pfltgttikzx-\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx-\tmptgtedelta},{\pflymax}) ; + \path[name path=R-vline] ({\pfltgttikzx+\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx+\tmptgtedelta},{\pflymax}) ; + %\coordinate (LXcoor) at ($(TANp-1)+({-\tmptgtedelta},0)$) ; + %\coordinate (RXcoor) at ($(TANp-1)+({\tmptgtedelta},0)$) ; + }% + {}% + \IfStrEq{\pfltgttikzsens}{l}% + {% + \path[name path=L-vline] ({\pfltgttikzx-\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx-\tmptgtedelta},{\pflymax}) ; + \path[name path=R-vline] ({\pfltgttikzx},{\pflymin}) -- ({\pfltgttikzx},{\pflymax}) ; + %\coordinate (LXcoor) at ($(TANp-1)+({-\tmptgtedelta},0)$) ; + %\coordinate (RXcoor) at (TANp-1) ; + \def\tmptgtfin{\pfltgttikzx}% + }% + {}% + \IfStrEq{\pfltgttikzsens}{r}% + {% + \path[name path=L-vline] ({\pfltgttikzx},{\pflymin}) -- ({\pfltgttikzx},{\pflymax}) ; + \path[name path=R-vline] ({\pfltgttikzx+\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx+\tmptgtedelta},{\pflymax}) ; + \def\tmptgtdeb{\pfltgttikzx}% + }% + {}% + \path[name intersections={of=#2 and L-vline,name=LXcut}] ; + \path[name intersections={of=#2 and R-vline,name=RXcut}] ; + \coordinate (tzXproj) at ($(LXcut-1)!(TANp-1)!(RXcut-1)$) ; % projection + \coordinate (LLpoint) at ($(LXcut-1)+(TANp-1)-(tzXproj)$) ; % move + \coordinate (RRpoint) at ($(RXcut-1)+(TANp-1)-(tzXproj)$) ; % move + \path (LLpoint); + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\tzTANLLX{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \xdef\tzTANLLY{\xintfloateval{(\ConvertPtToCm{\macroy})/(\pflyunit)}}% + \path (RRpoint); + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\tzTANRRX{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \xdef\tzTANRRY{\xintfloateval{(\ConvertPtToCm{\macroy})/(\pflyunit)}}% + \def\tztangentLFn{(\tzTANRRY-\tzTANLLY)/(\tzTANRRX-\tzTANLLX)*(\x-\tzTANLLX)+\tzTANLLY}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ; + \draw[tkzgrphline,\pfltgttikzline,domain=\tmptgtdeb:\tmptgtfin,samples=2,#4] plot (\x,{\tztangentLFn}) ; + \end{scope} + }% + {% + \IfStrEq{\pfltgttikzsens}{l}% + {% + \CalcDerivate*{#2}{\pfltgttikzx}{\pfltgttikzh}% + }% + {% + \CalcDerivate{#2}{\pfltgttikzx}{\pfltgttikzh}% + }% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ; + \draw[tkzgrphline,\pfltgttikzline,#4] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,\TmpResNbDeriv*(x-(\pfltgttikzx))+#2(\pfltgttikzx)),x=\tmptgtdeb,\tmptgtfin) + \relax + }; + \end{scope} + }% + \ifboolKV[GraphicTikzTgte]{DispPt}% + {% + \ifboolKV[GraphicTikzTgte]{Spline}% + {% + \MarkPts*[Style={\useKV[GraphicTikzTgte]{Style}},Color=\pfltgttikzpoint]{(TANp-1)} + %\filldraw[] (TANp-1) circle[tkzgrphpointc] ; + }% + {% + \xdef\tmpimgtgt{\xintfloateval{#2(\pfltgttikzx)}}% + \MarkPts*[Style={\useKV[GraphicTikzTgte]{Style}},Color=\pfltgttikzpoint]{({\pfltgttikzx},\tmpimgtgt)} + %\filldraw[\pfltgttikzpoint] ({\pfltgttikzx},\tmpimgtgt) circle[tkzgrphpointc] ; + }% + }% + {}% +} + +%====loi normale +\defKV[GraphicTikzGaussienne]{% + Step=\def\pflgaussstep{#1},% + Name=\def\pflgaussname{#1} +} + +\setKVdefault[GraphicTikzGaussienne]{% + Name=gaussian,% + Color=black,% + Trace=false,% + Step={},% + Start={\pflxmin},% + End={\pflxmax} +} + +\NewDocumentCommand\DefineStandartDeviation{ O{} D<>{phi} m m }{% + %1=options + %2=mu + %3=sigma + \restoreKV[GraphicTikzGaussienne]% + \setKV[GraphicTikzGaussienne]{#1}% + \xintdeffloatfunc #2(x) := 1/((#4)*sqrt(2*pi))*exp(-0.5*((x-(#3))/(#4))^2) ;% + \IfStrEq{\pflgaussstep}{}% + {% + \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphicTikzGaussienne]{End})-(\useKV[GraphicTikzGaussienne]{Start}))/100}}% + }% + {}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzGaussienne]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzGaussienne]{Color}},name path global=\pflgaussname] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + }% + {% + \path[draw=none,tkzgrphcurve,name path global=\pflgaussname] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + }% + \end{scope} +} + +\NewDocumentCommand\DrawStandartDeviation{ O{} m }{% + %1=options + %2=mu + %3=sigma + \restoreKV[GraphicTikzGaussienne]% + \setKV[GraphicTikzGaussienne]{#1}% + \IfStrEq{\pflgaussstep}{}% + {% + \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphicTikzGaussienne]{End})-(\useKV[GraphicTikzGaussienne]{Start}))/100}}% + }% + {}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[tkzgrphcurve,{\useKV[GraphicTikzGaussienne]{Color}}] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + \end{scope} +} + +\NewDocumentCommand\DefineKhiSquared{ O{} D<>{khi} m }{% + %1=options + %2=mu + %3=sigma + \restoreKV[GraphicTikzGaussienne]% + \setKV[GraphicTikzGaussienne]{#1}% + \xintdeffloatfunc #2(x) := (x<0)?{0}{(1/(2^((#3)/2)*pflgamma((#3)/2)))*x^((#3)/2-1)*exp(-x/2)}; + \IfStrEq{\pflgaussstep}{}% + {% + \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphicTikzGaussienne]{End})-(\useKV[GraphicTikzGaussienne]{Start}))/100}}% + }% + {}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \ifboolKV[GraphicTikzGaussienne]{Trace}% + {% + \path[draw,tkzgrphcurve,{\useKV[GraphicTikzGaussienne]{Color}},name path global=\pflgaussname] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + }% + {% + \path[draw=none,tkzgrphcurve,name path global=\pflgaussname] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + }% + \end{scope} +} + +\NewDocumentCommand\DrawKhiSquared{ O{} m }{% + %1=options + %2=mu + %3=sigma + \restoreKV[GraphicTikzGaussienne]% + \setKV[GraphicTikzGaussienne]{#1}% + \IfStrEq{\pflgaussstep}{}% + {% + \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphicTikzGaussienne]{End})-(\useKV[GraphicTikzGaussienne]{Start}))/100}}% + }% + {}% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}); + \draw[tkzgrphcurve,{\useKV[GraphicTikzGaussienne]{Color}}] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2),x={\useKV[GraphicTikzGaussienne]{Start}}..[\pflgaussstep]..{\useKV[GraphicTikzGaussienne]{End}},{\useKV[GraphicTikzGaussienne]{End}}) + \relax + } ; + \end{scope} +} + +%====droite +\defKV[GraphicTikzLine]{% + Name=\def\pfldroitename{#1} +} + +\setKVdefault[GraphicTikzLine]{% + Slope=false,% + Color=black,% + Start={\pflxmin},% + End={\pflxmax},% + Name={} +} + +\NewDocumentCommand\DrawLine{ O{} m m D<>{} }{% + \restoreKV[GraphicTikzLine]% + \setKV[GraphicTikzLine]{#1}% + %1er point + \path #2;% + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\pfldtetikzxA{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \xdef\pfldtetikzyA{\xintfloateval{(\ConvertPtToCm{\macroy})/(\pflyunit)}}% + %2ème point si besoin + \ifboolKV[GraphicTikzLine]{Slope}% + {% + \xdef\pfldtepente{\xintfloateval{#3}}% + }% + {% + \path #3;% + \pgfgetlastxy{\macrox}{\macroy}% + \xdef\pfldtetikzxB{\xintfloateval{(\ConvertPtToCm{\macrox})/(\pflxunit)}}% + \xdef\pfldtetikzyB{\xintfloateval{(\ConvertPtToCm{\macroy})/(\pflyunit)}}% + \xdef\pfldtepente{\xintfloateval{(\pfldtetikzyB-\pfldtetikzyA)/(\pfldtetikzxB-\pfldtetikzxA)}}% + }% + \begin{scope} + \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ; + \xintifboolexpr{\pfldtetikzxA == \pfldtetikzxB}% + {% + \IfEq{\pfldroitename}{}% + {% + \draw[tkzgrphline,{\useKV[GraphicTikzLine]{Color}},#4] (\pfldtetikzxA,\pflymin) -- (\pfldtetikzxA,\pflymax) ; + }% + {% + \draw[tkzgrphline,{\useKV[GraphicTikzLine]{Color}},#4,name path global=\pfldroitename] (\pfldtetikzxA,\pflymin) -- (\pfldtetikzxA,\pflymax) ; + }% + }% + {% + \IfEq{\pfldroitename}{}% + {% + \draw[tkzgrphline,{\useKV[GraphicTikzLine]{Color}},domain={\useKV[GraphicTikzLine]{Start}}:{\useKV[GraphicTikzLine]{End}},samples=2,#4] plot (\x,{\pfldtepente*(\x-\pfldtetikzxA)+\pfldtetikzyA}) ; + }% + {% + \draw[tkzgrphline,{\useKV[GraphicTikzLine]{Color}},domain={\useKV[GraphicTikzLine]{Start}}:{\useKV[GraphicTikzLine]{End}},samples=2,name path global=\pfldroitename,#4] plot (\x,{\pfldtepente*(\x-\pfldtetikzxA)+\pfldtetikzyA}) ; + }% + }% + \end{scope} +} + +%====asymptote +\NewDocumentCommand\DrawAsymptote{ O{} m D<>{} }{% + \restoreKV[GraphicTikzLine]% + \setKV[GraphicTikzLine]{#1}% + %tracé + \draw[tkzgrphline,{\useKV[GraphicTikzLine]{Color}},#3] ({#2},{\pflymin})--({#2},{\pflymax}) ; +} + +%====minmax +\defKV[GraphicTikzMinMax]{% + Pas=\def\pflminmaxstep{#1},% + Method=\def\pflminmaxmethode{#1},% + Coeffs=\def\pflminmaxcoeffs{#1} +} +\setKVdefault[GraphicTikzMinMax]{% + Start={\pflxmin},% + End={\pflxmax},% + Pas={},% + Tension=0.5,% + Method=function,% + Coeffs=3 +} + +\NewDocumentCommand\FindMax{ O{} m O{c-max} }{% + %1=clés + %2=paramètres en fonction de [Methode] + \restoreKV[GraphicTikzMinMax]% + \setKV[GraphicTikzMinMax]{#1}% + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflminmaxstep{\xintfloateval{((\useKV[GraphicTikzMinMax]{End})-(\useKV[GraphicTikzMinMax]{Start}))/100}}% + }% + {}% + \begin{scope}[bezier bounding box,local bounding box=bbtmpmax] + \IfStrEq{\pflminmaxmethode}{function}% + {% + \path[draw=none,name path=curvetmpmax] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzMinMax]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzMinMax]{End}},{\useKV[GraphicTikzMinMax]{End}}) + \relax + }; + }% + {}% + \IfStrEq{\pflminmaxmethode}{interpo}% + {% + \path[draw=none,name path=curvetmpmax] plot[smooth,tension={\useKV[GraphicTikzMinMax]{Tension}}] coordinates {#2}; + }% + {}% + \IfStrEq{\pflminmaxmethode}{spline}% + {% + \GenerateSpline{#2}{\pflminmaxcoeffs}[\tmpsplineminmax]% + \path[draw=none,name path=curvetmpmax] \tmpsplineminmax ; + }% + {}% + %retour + \path[name path=tmpmax] ([yshift=-0.25\pgflinewidth]bbtmpmax.north east) -- ([yshift=-0.25\pgflinewidth]bbtmpmax.north west) ; + \path[name intersections={of=curvetmpmax and tmpmax,name=#3}] ; + \coordinate (#3) at ($0.5*(#3-1)+0.5*(#3-2)+(0,0.25\pgflinewidth)$) ; + \end{scope} +} + +\NewDocumentCommand\FindMin{ O{} m O{c-min} }{% + %1=clés + %2=paramètres en fonction de [Methode] + \restoreKV[GraphicTikzMinMax]% + \setKV[GraphicTikzMinMax]{#1}% + \IfStrEq{\pflstepcurve}{}% + {% + \xdef\pflminmaxstep{\xintfloateval{((\useKV[GraphicTikzMinMax]{End})-(\useKV[GraphicTikzMinMax]{Start}))/100}}% + }% + {}% + \begin{scope}[bezier bounding box,local bounding box=bbtmpmin] + \IfStrEq{\pflminmaxmethode}{function}% + {% + \path[draw=none,name path=curvetmpmin] plot[smooth] coordinates {% + \xintthecoords\xintfloatexpr + seq((x,#2(x)),x={\useKV[GraphicTikzMinMax]{Start}}..[\pflstepcurve]..{\useKV[GraphicTikzMinMax]{End}},{\useKV[GraphicTikzMinMax]{End}}) + \relax + }; + }% + {}% + \IfStrEq{\pflminmaxmethode}{interpo}% + {% + \path[draw=none,name path=curvetmpmin] plot[smooth,tension={\useKV[GraphicTikzMinMax]{Tension}}] coordinates {#2}; + }% + {}% + \IfStrEq{\pflminmaxmethode}{spline}% + {% + \GenerateSpline{#2}{\pflminmaxcoeffs}[\tmpsplineminmax]% + \path[draw=none,name path=curvetmpmin] \tmpsplineminmax ; + }% + {}% + %retour + \path[name path=tmpmin] ([yshift=0.25\pgflinewidth]bbtmpmin.south east) -- ([yshift=0.25\pgflinewidth]bbtmpmin.south west) ; + \path[name intersections={of=curvetmpmin and tmpmin,name=#3}] ; + \coordinate (#3) at ($0.5*(#3-1)+0.5*(#3-2)+(0,-0.25\pgflinewidth)$) ; + \end{scope} +} + +%====TEXTES +\defKV[GraphicTikzNode]{% + Color=\def\pflnodecol{#1},% + Font=\def\pflnodefonte{#1},% + Position=\def\pfnodepos{#1} +} +\setKVdefault[GraphicTikzNode]{% + Color=black,% + Start={\normalfont\normalsize},% + Position={} +} +\NewDocumentCommand\DrawTxt{ O{} m m }{% + \restoreKV[GraphicTikzNode]% + \setKV[GraphicTikzNode]{#1}% + \draw #2 node[tkzgrphnode,font=\pflnodefonte,text=\pflnodecol,\pfnodepos] {#3} ; +} + +%====MONTE CARLO +\defKV[GraphicTikzmontecarlo]{% + Colors=\def\graphtikzmccols{#1},% + BoundsX=\def\graphtikzmcxbornes{#1},% + BoundsY=\def\graphtikzmcybornes{#1} +} + +\setKVdefault[GraphicTikzmontecarlo]{% + Colors={blue/red},% + BoundsX={\pflxmin,\pflxmax},% + BoundsY={\pflymin,\pflymax} +} + +\NewDocumentCommand\SimulateMonteCarlo{ O{} D<>{f} m O{\nbptsmcok} O{\nbptsmcko} }{% + \restoreKV[GraphicTikzmontecarlo]% + \setKV[GraphicTikzmontecarlo]{#1}% + \StrCut{\graphtikzmccols}{/}{\tmpMCcolOK}{\tmpMCcolKO}% + \StrCut{\graphtikzmcxbornes}{,}{\tmpMCxmin}{\tmpMCxmax}% + \StrCut{\graphtikzmcybornes}{,}{\tmpMCymin}{\tmpMCymax}% + \xdef#4{0}% + \xdef#5{0}% + \xdef\nbptsmc{#3}% + \foreach \i in {1,...,#3}{% + \xdef\tmpMCrandX{\xintfloateval{random()*((\tmpMCxmax)-(\tmpMCxmin))+(\tmpMCxmin)}}% + \xdef\tmpMCrandY{\xintfloateval{random()*((\tmpMCymax)-(\tmpMCymin))+(\tmpMCymin)}}% + \xdef\tmpMCrandfX{\xintfloateval{#2(\tmpMCrandX)}}% + \xintifboolexpr{ \tmpMCrandfX > \tmpMCrandY }% + {% + \xdef#4{\xinteval{#4+1}}% + \filldraw[\tmpMCcolOK] (\tmpMCrandX,\tmpMCrandY) circle[tkzgrphpointmc] ; + }% + {% + \xdef#5{\xinteval{#5+1}}% + \filldraw[\tmpMCcolKO] (\tmpMCrandX,\tmpMCrandY) circle[tkzgrphpointmc] ; + }% + }% +} + \endinput
\ No newline at end of file diff --git a/graphics/pgf/contrib/wheelchart/README.md b/graphics/pgf/contrib/wheelchart/README.md index ec414f3440..df9f81a74d 100644 --- a/graphics/pgf/contrib/wheelchart/README.md +++ b/graphics/pgf/contrib/wheelchart/README.md @@ -2,9 +2,11 @@ ## Diagrams with circular or other shapes using Ti*k*Z and LaTeX3 -Version 3.0 (2024/03/08) +Version 4.0 (2024/07/28) -This package is based on the package [Ti*k*Z](https://ctan.org/pkg/pgf) and can be used to draw various kinds of diagrams such as a bar chart, doughnut chart, infographic, pie chart, ring chart, square chart, sunburst chart, waffle chart and wheel chart with Ti*k*Z. It provides several options to customize the diagrams. It is also possible to specify a plot for the shape of the chart. Furthermore a legend can be added and the table of contents can be displayed as one of these diagrams. +This package is based on the package [Ti*k*Z](https://ctan.org/pkg/pgf) and can be used to draw various kinds of diagrams such as bar charts, doughnut charts, infographics, pie charts, ring charts, square charts, sunburst charts, waffle charts and wheel charts. + +It provides several options to customize the diagrams. It is also possible to specify a plot for the shape of the chart. Furthermore a legend can be added and the table of contents can be displayed as one of these diagrams. %% README.md %% Copyright 2022-2024 Matthias Floré diff --git a/graphics/pgf/contrib/wheelchart/wheelchart.pdf b/graphics/pgf/contrib/wheelchart/wheelchart.pdf Binary files differindex 2cfa0dd1be..808551f33c 100644 --- a/graphics/pgf/contrib/wheelchart/wheelchart.pdf +++ b/graphics/pgf/contrib/wheelchart/wheelchart.pdf diff --git a/graphics/pgf/contrib/wheelchart/wheelchart.sty b/graphics/pgf/contrib/wheelchart/wheelchart.sty index e2c8543976..21e232b099 100644 --- a/graphics/pgf/contrib/wheelchart/wheelchart.sty +++ b/graphics/pgf/contrib/wheelchart/wheelchart.sty @@ -18,7 +18,7 @@ \NeedsTeXFormat{LaTeX2e} \RequirePackage{tikz} \usetikzlibrary{calc} -\ProvidesExplPackage{wheelchart}{2024/03/08}{3.0}{Diagrams with circular or other shapes using TikZ and LaTeX3} +\ProvidesExplPackage{wheelchart}{2024/07/28}{4.0}{Diagrams with circular or other shapes using TikZ and LaTeX3} %%> \subsection{Variables} @@ -59,6 +59,8 @@ \fp_const:Nn \c__wheelchart_arc_data_end_factor_left_fp { 1 } \fp_const:Nn \c__wheelchart_arc_data_end_factor_right_fp { 0 } \fp_new:N \l__wheelchart_arc_data_line_sep_factor_fp +\fp_new:N \l__wheelchart_arc_data_lines_pos_fp +\fp_new:N \l__wheelchart_arc_data_lines_shift_fp \fp_new:N \l__wheelchart_arc_data_pos_fp \fp_new:N \l__wheelchart_arc_data_radius_plot_false_fp \fp_new:N \l__wheelchart_arc_data_sep_fp @@ -168,6 +170,9 @@ \int_new:N \l__wheelchart_lines_ext_top_dir_int \int_new:N \l__wheelchart_max_list_items_int +\regex_const:Nn \c__wheelchart_braces_regex { \{(.+)\} } +\regex_const:Nn \c__wheelchart_key_braces_regex { [\w\s]+\{(.+)\} } + \seq_new:N \l__wheelchart_arc_data_seq \seq_new:N \l__wheelchart_discrete_coefficients_first_seq \seq_new:N \l__wheelchart_discrete_coefficients_second_seq @@ -180,8 +185,8 @@ { sign ( \l__wheelchart_arc_data_dir_fp ) * ( - \cs:w c__wheelchart_arc_data_start_factor_\l__wheelchart_arc_data_align_tl _fp\cs_end: - + \cs:w c__wheelchart_arc_data_end_factor_\l__wheelchart_arc_data_align_tl _fp\cs_end: + \cs:w c__wheelchart_arc_data_start_factor_\l__wheelchart_arc_data_align_tl _fp \cs_end: + + \cs:w c__wheelchart_arc_data_end_factor_\l__wheelchart_arc_data_align_tl _fp \cs_end: ) } \tl_new:N \l__wheelchart_arc_data_align_tl @@ -262,7 +267,7 @@ \cs_new_protected:Npn \__wheelchart_caption_and_title:nnnnn #1#2#3#4#5 { - \__wheelchart_if_text:nn {#1} + \__wheelchart_if_text:nnn {#1} { o } { \node [ anchor = #2 , align = #3 , / wheelchart / #1_style ] at ( $ (#4) + ( 0 , { #5 * ( \pgfkeysvalueof { / wheelchart / #1~sep } ) } ) $ ) @@ -282,12 +287,12 @@ { \fp_eval:n { - ( 1 - (#1) ) * \cs:w g__wheelchart_slice_inner_start_angle_\WCcount _fp\cs_end: - + (#1) * \cs:w g__wheelchart_slice_inner_end_angle_\WCcount _fp\cs_end: + ( 1 - (#1) ) * \cs:w g__wheelchart_slice_inner_start_angle_\WCcount _fp \cs_end: + + (#1) * \cs:w g__wheelchart_slice_inner_end_angle_\WCcount _fp \cs_end: + \l__wheelchart_counter_or_clockwise_fp * (#2) } } - { \fp_eval:n { \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: - (#4) } } + { \fp_eval:n { \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: - (#4) } } ) ! { \fp_eval:n {#3} } ! ( @@ -295,12 +300,12 @@ { \fp_eval:n { - ( 1 - (#1) ) * \cs:w g__wheelchart_slice_outer_start_angle_\WCcount _fp\cs_end: - + (#1) * \cs:w g__wheelchart_slice_outer_end_angle_\WCcount _fp\cs_end: + ( 1 - (#1) ) * \cs:w g__wheelchart_slice_outer_start_angle_\WCcount _fp \cs_end: + + (#1) * \cs:w g__wheelchart_slice_outer_end_angle_\WCcount _fp \cs_end: + \l__wheelchart_counter_or_clockwise_fp * (#2) } } - { \fp_eval:n { \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: + (#4) } } + { \fp_eval:n { \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: + (#4) } } ) $%note the () around the #i's to keep these contents together } @@ -374,10 +379,10 @@ \path let \p { l__wheelchart_def_angle_1 } = \__wheelchart_point_plot_true:nnnnn { \WCcount } {#1} {#2} { 0 } - { \fp_eval:n { (#4) + 1 / \cs:w g__wheelchart_samples_\WCcount _fp\cs_end: } } , + { \fp_eval:n { (#4) + 1 / \cs:w g__wheelchart_samples_\WCcount _fp \cs_end: } } , \p { l__wheelchart_def_angle_2 } = \__wheelchart_point_plot_true:nnnnn { \WCcount } {#1} {#2} { 1 } - { \fp_eval:n { (#4) + 1 / \cs:w g__wheelchart_samples_\WCcount _fp\cs_end: } } + { \fp_eval:n { (#4) + 1 / \cs:w g__wheelchart_samples_\WCcount _fp \cs_end: } } in [ / utils / exec = { \__wheelchart_def_angle_aux: } ] ; } @@ -392,10 +397,10 @@ { ( 1 - (#2) ) * ( - \cs:w g__wheelchart_slice_outer_start_angle_#1_fp\cs_end: - - \cs:w g__wheelchart_slice_inner_start_angle_#1_fp\cs_end: + \cs:w g__wheelchart_slice_outer_start_angle_#1_fp \cs_end: + - \cs:w g__wheelchart_slice_inner_start_angle_#1_fp \cs_end: ) - + (#2) * ( \cs:w g__wheelchart_slice_outer_end_angle_#1_fp\cs_end: - \cs:w g__wheelchart_slice_inner_end_angle_#1_fp\cs_end: ) + + (#2) * ( \cs:w g__wheelchart_slice_outer_end_angle_#1_fp \cs_end: - \cs:w g__wheelchart_slice_inner_end_angle_#1_fp \cs_end: ) } \cs_new:Npn \__wheelchart_def_angle_plot_false:nnnnn #1#2#3#4#5 @@ -410,11 +415,11 @@ ( sqrt ( - ( \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: + \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: ) ^ 2 - - \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: * + ( \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: + \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: ) ^ 2 + - \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: * ( 2 + 2 * cosd ( \__wheelchart_def_angle_plot_false_aux_angle:nn {#1} {#2} ) - + \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: + + \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: * ( ( @@ -425,25 +430,25 @@ ) ) ) - + \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: * + + \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: * ( - \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: - - \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: + \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: + - \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: * cosd ( \__wheelchart_def_angle_plot_false_aux_angle:nn {#1} {#2} ) ) / \__wheelchart_def_radius:nnn {#1} {#4} {#5} ) - * \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: * sind ( \__wheelchart_def_angle_plot_false_aux_angle:nn {#1} {#2} ) + * \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: * sind ( \__wheelchart_def_angle_plot_false_aux_angle:nn {#1} {#2} ) / ( - ( \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: + \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: ) ^ 2 - - 2 * \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: + ( \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: + \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: ) ^ 2 + - 2 * \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: * \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: * ( 1 + cosd ( \__wheelchart_def_angle_plot_false_aux_angle:nn {#1} {#2} ) ) ) ) } - + ( 1 - (#2) ) * ( \cs:w g__wheelchart_slice_inner_start_angle_#1_fp\cs_end: ) - + (#2) * ( \cs:w g__wheelchart_slice_inner_end_angle_#1_fp\cs_end: ) + + ( 1 - (#2) ) * ( \cs:w g__wheelchart_slice_inner_start_angle_#1_fp \cs_end: ) + + (#2) * ( \cs:w g__wheelchart_slice_inner_end_angle_#1_fp \cs_end: ) + \l__wheelchart_counter_or_clockwise_fp * (#3) } } @@ -451,7 +456,7 @@ \cs_new_protected:Npn \__wheelchart_def_coord:nnnn #1#2#3#4 { \path let \p { l__wheelchart_coord } = - ( \cs:w __wheelchart_#2_plot:nn\cs_end: {#4} { \fp_use:c { g__wheelchart_#2_radius_\WCcount _fp } } ) + ( \cs:w __wheelchart_#2_plot:nn \cs_end: {#4} { \fp_use:c { g__wheelchart_#2_radius_\WCcount _fp } } ) in [ / utils / exec = @@ -484,11 +489,11 @@ < \l__wheelchart_gap_fp ? - min ( \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp\cs_end: , \l__wheelchart_gap_max_angle_def_fp ) + min ( \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp \cs_end: , \l__wheelchart_gap_max_angle_def_fp ) : asind ( min ( \l__wheelchart_gap_fp / ( (#2) + 1 - sign (#2) ) , 1 ) ) + \l__wheelchart_gap_polar_fp - %note the min ( ... , 1 ) such that the asind is always defined - %also note the + 1 - sign (#2) such that the denominator is also nonzero if #2 = 0 + %note the min ( ... , 1 ) so that the asind is always defined + %also note the + 1 - sign (#2) so that the denominator is also nonzero if #2 = 0 } } @@ -516,7 +521,7 @@ : \g__wheelchart_new_angle_fp - \g__wheelchart_angle_fp ) - / \cs:w g__wheelchart_samples_1_fp\cs_end: + / \cs:w g__wheelchart_samples_1_fp \cs_end: } \path let \p { l__wheelchart_slices_orientation_1 } = @@ -579,8 +584,8 @@ { \fp_eval:n { - ( 1 - (#2) ) * ( \cs:w g__wheelchart_inner_radius_#1_fp\cs_end: - (#3) ) - + (#2) * ( \cs:w g__wheelchart_outer_radius_#1_fp\cs_end: + (#3) ) + ( 1 - (#2) ) * ( \cs:w g__wheelchart_inner_radius_#1_fp \cs_end: - (#3) ) + + (#2) * ( \cs:w g__wheelchart_outer_radius_#1_fp \cs_end: + (#3) ) } } @@ -591,26 +596,26 @@ { \fp_gset:cn { g__wheelchart_slice_#1_#2_angle_\WCcount _fp } { - \cs:w g__wheelchart_#3angle_fp\cs_end: + + \cs:w g__wheelchart_#3angle_fp \cs_end: + ( \l__wheelchart_counter_or_clockwise_fp * - ( (#4) * \cs:w g__wheelchart_#1_gap_\WCcount _fp\cs_end: + \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp\cs_end: ) + ( (#4) * \cs:w g__wheelchart_#1_gap_\WCcount _fp \cs_end: + \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp \cs_end: ) ) } } { \fp_gset:cn { g__wheelchart_slice_#1_#2_angle_\WCcount _fp } { - \cs:w g__wheelchart_#3angle_fp\cs_end: + + \cs:w g__wheelchart_#3angle_fp \cs_end: + ( \l__wheelchart_counter_or_clockwise_fp * ( - (#4) * \cs:w g__wheelchart_#1_gap_\WCcount _fp\cs_end: + \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp\cs_end: + (#4) * \cs:w g__wheelchart_#1_gap_\WCcount _fp \cs_end: + \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp \cs_end: - asind ( - \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: - * sind ( \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp\cs_end: ) - / \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: + \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: + * sind ( \cs:w l__wheelchart_slices_#1_#2_angle_shift_fp \cs_end: ) + / \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: ) ) ) @@ -620,8 +625,8 @@ \cs_new_protected:Npn \__wheelchart_def_slice_keys:n #1 { - {%note the double {{...}} such that the contents is in a group - %such that pgfkeys which are specific to the current slice are local for this slice + {%note the double braces {{...}} so that the contents is in a group + %and in particular, pgfkeys which are specific to the current slice are local for this slice \clist_if_in:NVT \l__wheelchart_slice_range_local_clist \WCcount { \pgfkeys { / wheelchart , slice_final /. expanded = { \exp_not:v { l__wheelchart_slice_\WCcount _keys_clist } } } @@ -663,24 +668,24 @@ %g__wheelchart_WCcount_counter to be larger than \WCtotalcount \tl_build_end:N \WClegend \cs_set:Npn \WCcount { \theg__wheelchart_WCcount_counter } - \cs_set:Npn \WCpercentage { \cs:w l__wheelchart_WCpercentage_\theg__wheelchart_WCcount_counter\cs_end: } - \cs_set:Npn \WCpercentagerounded { \cs:w l__wheelchart_WCpercentagerounded_\theg__wheelchart_WCcount_counter\cs_end: } + \cs_set:Npn \WCpercentage { \cs:w l__wheelchart_WCpercentage_\theg__wheelchart_WCcount_counter \cs_end: } + \cs_set:Npn \WCpercentagerounded { \cs:w l__wheelchart_WCpercentagerounded_\theg__wheelchart_WCcount_counter \cs_end: } \str_if_eq:eeTF { \l__wheelchart_type_tl } { etoc } { \cs_set:Npn \WCetocthelinkedname - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_name_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_name_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthelinkednumber - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_number_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_number_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthelinkedpage - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_page_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_linked_page_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthename - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_name_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_name_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthenumber - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_number_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_number_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthepage - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_page_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_page_\theg__wheelchart_WCcount_counter \cs_end: } \cs_set:Npn \WCetocthenumberofpages - { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_number_of_pages_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _the_number_of_pages_\theg__wheelchart_WCcount_counter \cs_end: } } { \clist_if_empty:NTF \l__wheelchart_header_clist @@ -688,7 +693,7 @@ \int_step_inline:nn { \l__wheelchart_max_list_items_int } { \cs_set:cpn { WCvar\int_to_Alph:n {##1} } - { \cs:w l__wheelchart_item_WCvar\int_to_Alph:n {##1}_\theg__wheelchart_WCcount_counter\cs_end: } + { \cs:w l__wheelchart_item_WCvar\int_to_Alph:n {##1}_\theg__wheelchart_WCcount_counter \cs_end: } } } { @@ -717,13 +722,13 @@ ( atand ( - \cs:w g__wheelchart_#3_y_fp\cs_end: - \cs:w g__wheelchart_#4_y_fp\cs_end: , - \cs:w g__wheelchart_#3_x_fp\cs_end: - \cs:w g__wheelchart_#4_x_fp\cs_end: + \cs:w g__wheelchart_#3_y_fp \cs_end: - \cs:w g__wheelchart_#4_y_fp \cs_end: , + \cs:w g__wheelchart_#3_x_fp \cs_end: - \cs:w g__wheelchart_#4_x_fp \cs_end: ) - atand ( - \cs:w g__wheelchart_#1_y_fp\cs_end: - \cs:w g__wheelchart_#2_y_fp\cs_end: , - \cs:w g__wheelchart_#1_x_fp\cs_end: - \cs:w g__wheelchart_#2_x_fp\cs_end: + \cs:w g__wheelchart_#1_y_fp \cs_end: - \cs:w g__wheelchart_#2_y_fp \cs_end: , + \cs:w g__wheelchart_#1_x_fp \cs_end: - \cs:w g__wheelchart_#2_x_fp \cs_end: ) ) } @@ -969,9 +974,9 @@ \__wheelchart_for_loop:n { \pgfkeysvalueof { / wheelchart / before~slices } - \int_step_inline:nn { \fp_eval:n { round ( \cs:w g__wheelchart_value_\WCcount _fp\cs_end: ) } } - %note that \fp_eval:n { round ( ... ) } is necessary even when the value is an integer because if parse=pgfmath - %then .0 is added and then \int_step_inline:nn { \cs:w g__wheelchart_value_\WCcount _fp\cs_end: } would give the messages + \int_step_inline:nn { \fp_eval:n { round ( \cs:w g__wheelchart_value_\WCcount _fp \cs_end: ) } } + %note that \fp_eval:n { round ( ... ) } is necessary even when the value is an integer because pgfmath + %could have added .0 and then \int_step_inline:nn { \cs:w g__wheelchart_value_\WCcount _fp \cs_end: } would give the messages %Missing character: There is no . in font nullfont! Missing character: There is no 0 in font nullfont! { \int_gincr:N \g__wheelchart_discrete_count_int @@ -1082,7 +1087,7 @@ \cs_set:Npe \WCmidangle { \fp_use:c { g__wheelchart_WCmidangle_\WCcount _fp } } \pgfkeysvalueof { / wheelchart / for~loop~start }%this must be placed after the definition of macros such as \WCpercentage - %such that these macros can be used in the key for loop start + %so that these macros can be used in the key for loop start \begin { scope } [ shift = { ( \WCmidangle \c_colon_str \fp_use:c { g__wheelchart_explode_\WCcount _fp } ) } , @@ -1161,16 +1166,21 @@ \fp_gset:cn { g__wheelchart_#1_\WCcount _fp } { \pgfmathresult } } -\cs_new_protected:Npn \__wheelchart_if_text:nn #1#2 +\cs_new_protected:Npn \__wheelchart_if_text:nnn #1#2#3 { %https://tex.stackexchange.com/questions/42280/expand-away-empty-macros-within-ifthenelse %https://tex.stackexchange.com/questions/44919/proper-way-to-detect-empty-blank-text \begin { pgfinterruptpicture } + \DeclareDocumentCommand \\ {#2} {} + %for arc data, \\ is used with seq_set_split so has no optional argument thus then #2 is empty + %otherwise, #2 is o + %no s because an optional star does not apply in a node + %no ! because a space between \\ and its optional argument is allowed in a node %https://tex.stackexchange.com/questions/459853/savebox-within-tikzpicture-results-in-an-empty-savebox \hbox_gset:Nn \g__wheelchart_if_text_box { \pgfkeysvalueof { / wheelchart / #1 } } \end { pgfinterruptpicture } \dim_compare:nNnT { \box_wd:N \g__wheelchart_if_text_box } > { 0 pt } - { {#2} } + { {#3} } } \cs_new_protected:Npn \__wheelchart_initial:n #1 @@ -1182,7 +1192,7 @@ \tl_if_empty:nTF {#1} { \cs_set:Npn \WCtotalcount { 0 } } { - \cs:w seq_set_split:Ne\l__wheelchart_expand_list_tl\cs_end: + \cs:w seq_set_split:Ne\l__wheelchart_expand_list_tl \cs_end: \l__wheelchart_list_seq { \pgfkeysvalueof { / wheelchart / separator~rows } } {#1} @@ -1190,7 +1200,7 @@ \int_zero:N \l__wheelchart_max_list_items_int \seq_map_indexed_inline:Nn \l__wheelchart_list_seq { - \cs:w seq_set_split:Ne\l__wheelchart_expand_list_items_tl\cs_end: + \cs:w seq_set_split:Ne\l__wheelchart_expand_list_items_tl \cs_end: \l__wheelchart_list_items_seq { \pgfkeysvalueof { / wheelchart / separator~columns } } {##2} @@ -1245,7 +1255,7 @@ \etocsetnexttocdepth { -1 }%only for the next toc \etocsetstyle { \l__wheelchart_etoc_level_tl } {} {} { - \int_compare:nNnT { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _count_int\cs_end: } > { 0 } + \int_compare:nNnT { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _count_int \cs_end: } > { 0 } { \cs_gset:cpe { @@ -1304,7 +1314,7 @@ {} \int_gzero_new:c { g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _count_int } \pgfkeysvalueof { / wheelchart / etoc~code } - \int_compare:nNnT { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _count_int\cs_end: } > { 0 } + \int_compare:nNnT { \cs:w g__wheelchart_etoc_item_\l__wheelchart_etoc_name_tl _count_int \cs_end: } > { 0 } { \cs_gset:cpe { @@ -1331,32 +1341,32 @@ { \__wheelchart_def_slice_keys:n { \__wheelchart_gdef_count_fp:nn { value } { value } } - \cs_set:Npe \WCtotalnum { \fp_eval:n { \WCtotalnum + \cs:w g__wheelchart_value_\WCcount _fp\cs_end: } } + \cs_set:Npe \WCtotalnum { \fp_eval:n { \WCtotalnum + \cs:w g__wheelchart_value_\WCcount _fp \cs_end: } } } \int_step_inline:nn { \WCtotalcount } { \cs_set:cpe { l__wheelchart_WCpercentage_##1 } - { \fp_eval:n { \cs:w g__wheelchart_value_##1_fp\cs_end: / ( \WCtotalnum / 100 ) } } + { \fp_eval:n { \cs:w g__wheelchart_value_##1_fp \cs_end: / ( \WCtotalnum / 100 ) } } \cs_set:cpe { l__wheelchart_WCpercentagerounded_##1 } - { \fp_eval:n { round ( \cs:w l__wheelchart_WCpercentage_##1\cs_end: , \pgfkeysvalueof { / wheelchart / perc~precision } ) } } + { \fp_eval:n { round ( \cs:w l__wheelchart_WCpercentage_##1 \cs_end: , \pgfkeysvalueof { / wheelchart / perc~precision } ) } } } } \cs_new_protected:Npn \__wheelchart_inner_and_wheel_data:n #1 { - \__wheelchart_if_text:nn { #1~data } + \__wheelchart_if_text:nnn { #1~data } { o } { \__wheelchart_def_fp:nn { #1_data_angle_pos } { #1~data~angle~pos } \__wheelchart_def_fp:nn { #1_data_angle_shift } { #1~data~angle~shift } \__wheelchart_def_fp:nn { #1_data_pos } { #1~data~pos } \__wheelchart_def_fp:nn { #1_data_sep } { #1~data~sep } \node [ align = left , / wheelchart / #1_data_style ] at - \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn\cs_end: + \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn \cs_end: { \WCcount } - { \cs:w l__wheelchart_#1_data_angle_pos_fp\cs_end: } - { \cs:w l__wheelchart_#1_data_angle_shift_fp\cs_end: } - { \cs:w l__wheelchart_#1_data_pos_fp\cs_end: } - { \cs:w l__wheelchart_#1_data_sep_fp\cs_end: } + { \cs:w l__wheelchart_#1_data_angle_pos_fp \cs_end: } + { \cs:w l__wheelchart_#1_data_angle_shift_fp \cs_end: } + { \cs:w l__wheelchart_#1_data_pos_fp \cs_end: } + { \cs:w l__wheelchart_#1_data_sep_fp \cs_end: } { \pgfkeysvalueof { / wheelchart / #1~data } } ; } } @@ -1366,13 +1376,13 @@ \cs_new_protected:Npn \__wheelchart_legend_append:nn #1#2 { - \tl_build_put_right:NV \WClegend \l__wheelchart_legend_row_tl%note the V specifier such that \WClegend can also be combined - %with an S column of the package siunitx and such that \WClegend can be used in a tblr environment of the package tabularray + \tl_build_put_right:NV \WClegend \l__wheelchart_legend_row_tl%note the V specifier so that \WClegend can also be combined + %with an S column of the package siunitx and so that \WClegend can be used in a tblr environment of the package tabularray %and then the option expand=\WClegend needs to be given to the tblr environment \tl_build_put_right:Nn \WClegend { \protect \setcounter { g__wheelchart_WCcount_counter } }%note the \protect for in case that %\WClegend would be parsed in a particular way %note that the counter g__wheelchart_WCcount_counter is defined globally and at the end of the previous \l__wheelchart_legend_row_tl - %such that this value is defined and has the right value at the start of the next \l__wheelchart_legend_row_tl + %so that this value is defined and has the right value at the start of the next \l__wheelchart_legend_row_tl %if \WClegend is used in a tblr environment of the package tabularray then \UseTblrLibrary{counter} is required \tl_build_put_right:Ne \WClegend { { \int_eval:n {#1} } } \tl_build_put_right:Nn \WClegend {#2} @@ -1414,8 +1424,8 @@ { atand ( - \cs:w g__wheelchart_#3_y_fp\cs_end: - \cs:w g__wheelchart_#4_y_fp\cs_end: , - \cs:w g__wheelchart_#3_x_fp\cs_end: - \cs:w g__wheelchart_#4_x_fp\cs_end: + \cs:w g__wheelchart_#3_y_fp \cs_end: - \cs:w g__wheelchart_#4_y_fp \cs_end: , + \cs:w g__wheelchart_#3_x_fp \cs_end: - \cs:w g__wheelchart_#4_x_fp \cs_end: ) } \fp_set:Nn \l__wheelchart_slices_arc_coord_fp @@ -1440,7 +1450,7 @@ ) : atand ( ( \l__wheelchart_slices_arc_A_fp - ( 1 / \l__wheelchart_slices_arc_A_fp ) ) / 2 ) - }%note the min ( \l__wheelchart_slices_arc_B_fp , 0 ) such that the acosd is always defined + }%note the min ( \l__wheelchart_slices_arc_B_fp , 0 ) so that the acosd is always defined } } ] @@ -1486,8 +1496,8 @@ * abs ( ( 1 / \l__wheelchart_slices_arc_A_fp ) + \l__wheelchart_slices_arc_A_fp ) * sqrt ( - ( \cs:w g__wheelchart_#3_x_fp\cs_end: - \cs:w g__wheelchart_#4_x_fp\cs_end: ) ^ 2 - + ( \cs:w g__wheelchart_#3_y_fp\cs_end: - \cs:w g__wheelchart_#4_y_fp\cs_end: ) ^ 2 + ( \cs:w g__wheelchart_#3_x_fp \cs_end: - \cs:w g__wheelchart_#4_x_fp \cs_end: ) ^ 2 + + ( \cs:w g__wheelchart_#3_y_fp \cs_end: - \cs:w g__wheelchart_#4_y_fp \cs_end: ) ^ 2 ) } } @@ -1539,11 +1549,11 @@ \fp_eval:n { ( - \cs:w g__wheelchart_#3_x_fp\cs_end: + \cs:w g__wheelchart_#4_x_fp\cs_end: + + \cs:w g__wheelchart_#3_x_fp \cs_end: + \cs:w g__wheelchart_#4_x_fp \cs_end: + ( \g__wheelchart_slices_orientation_fp * ( \l__wheelchart_slices_arrow_coord_fp - 1 ) * \l__wheelchart_slices_arrow_A_fp - * ( \cs:w g__wheelchart_#3_y_fp\cs_end: - \cs:w g__wheelchart_#4_y_fp\cs_end: ) + * ( \cs:w g__wheelchart_#3_y_fp \cs_end: - \cs:w g__wheelchart_#4_y_fp \cs_end: ) ) ) / 2 @@ -1552,11 +1562,11 @@ \fp_eval:n { ( - \cs:w g__wheelchart_#3_y_fp\cs_end: + \cs:w g__wheelchart_#4_y_fp\cs_end: + + \cs:w g__wheelchart_#3_y_fp \cs_end: + \cs:w g__wheelchart_#4_y_fp \cs_end: + ( \g__wheelchart_slices_orientation_fp * ( \l__wheelchart_slices_arrow_coord_fp - 1 ) * \l__wheelchart_slices_arrow_A_fp - * ( \cs:w g__wheelchart_#4_x_fp\cs_end: - \cs:w g__wheelchart_#3_x_fp\cs_end: ) + * ( \cs:w g__wheelchart_#4_x_fp \cs_end: - \cs:w g__wheelchart_#3_x_fp \cs_end: ) ) ) / 2 @@ -1593,10 +1603,10 @@ { \fp_eval:n { - ( 1 - (#1) / max ( round ( \cs:w g__wheelchart_value_\WCcount _fp\cs_end: ) , 1 ) ) - * \cs:w g__wheelchart_slice_#2_start_angle_\WCcount _fp\cs_end: - + (#1) * \cs:w g__wheelchart_slice_#2_end_angle_\WCcount _fp\cs_end: - / max ( round ( \cs:w g__wheelchart_value_\WCcount _fp\cs_end: ) , 1 ) + ( 1 - (#1) / max ( round ( \cs:w g__wheelchart_value_\WCcount _fp \cs_end: ) , 1 ) ) + * \cs:w g__wheelchart_slice_#2_start_angle_\WCcount _fp \cs_end: + + (#1) * \cs:w g__wheelchart_slice_#2_end_angle_\WCcount _fp \cs_end: + / max ( round ( \cs:w g__wheelchart_value_\WCcount _fp \cs_end: ) , 1 ) } } @@ -1617,17 +1627,19 @@ arc_style /. style = {} , arc~around~line /. initial = 1 , arc~around~text /. default = true ,%this key is not set up with /.is choice or \bool_set:Nn - %such that for example \WCvarA can be used as value for this key + %so that for example \WCvarA can be used as value for this key arc~around~text /. initial = false , arc~data /. initial = {} , arc~data~align /. code = { \tl_set:Nn \l__wheelchart_arc_data_align_tl {#1} } ,%this key is not set up with /.is choice - %such that for example \WCvarA can be used as value for this key + %so that for example \WCvarA can be used as value for this key arc~data~align = center , arc~data~angle~pos /. initial = 0.5 , arc~data~angle~shift /. initial = 0 , arc~data~dir /. initial = 1 , arc~data~expand /. initial = n , arc~data~line~sep~factor /. initial = 1 , + arc~data~lines~pos /. initial = 0.5 , + arc~data~lines~shift /. initial = 0 , arc~data~pos /. initial = 1 , arc~data~sep /. initial = 1 ex / 1 cm , arc~data~style /. style = { arc_data_style /. style = {#1} } , @@ -1640,7 +1652,7 @@ arc~sep /. initial = 1 ex / 1 cm , at /. initial = { ( 0 , 0 ) } , before~slices /. initial = {} , - bool_set_true /. code = { \bool_set_true:N #1 } , + bool_set_true /. code = \bool_set_true:N #1 , caption /. initial = {} , caption~left /. initial = {} , caption~left~sep /. initial = 0.5 , @@ -1670,9 +1682,9 @@ data~style /. style = { data_style /. style = {#1} } , data_style /. style = {} , discrete /. is~choice , - discrete / false /. code = { \bool_set_false:N \l__wheelchart_discrete_bool } , + discrete / false /. code = \bool_set_false:N \l__wheelchart_discrete_bool , discrete / false /. value~forbidden , - discrete / true /. code = { \bool_set_true:N \l__wheelchart_discrete_bool } , + discrete / true /. code = \bool_set_true:N \l__wheelchart_discrete_bool , discrete / true /. value~forbidden , discrete /. default = true , discrete = false , @@ -1777,7 +1789,7 @@ legend /. initial = {} , legend~columns /. initial = 1 , legend~entry /. initial = {} , - legend~only /. code = { \bool_set:Nn \l__wheelchart_legend_only_bool { \cs:w c_#1_bool\cs_end: } } , + legend~only /. code = \bool_set:Nn \l__wheelchart_legend_only_bool { \cs:w c_#1_bool \cs_end: } , legend~only /. default = true , legend~only = false , legend~row /. code = @@ -1800,7 +1812,7 @@ } , lines~ext~dirsep /. initial = 0 , lines~ext~fixed /. default = true ,%this key is not set up with /.is choice or \bool_set:Nn - %such that for example \WCvarA can be used as value for this key + %so that for example \WCvarA can be used as value for this key lines~ext~fixed /. initial = false , lines~ext~fixed~left /. initial = { @@ -1808,7 +1820,7 @@ { \l__wheelchart_lines_ext_dir_int * ( - \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: + \l__wheelchart_lines_sep_fp + \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: + \l__wheelchart_lines_sep_fp + \l__wheelchart_lines_fp + \l__wheelchart_lines_ext_fp ) } @@ -1819,7 +1831,7 @@ { \l__wheelchart_lines_ext_dir_int * ( - \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: + \l__wheelchart_lines_sep_fp + \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: + \l__wheelchart_lines_sep_fp + \l__wheelchart_lines_fp + \l__wheelchart_lines_ext_fp ) } @@ -1870,7 +1882,7 @@ outer_plot_style /. style = {} , outer~radius /. initial = 3 , perc~precision /. initial = 0 , - pie /. code = { \bool_set:Nn \l__wheelchart_pie_bool { \cs:w c_#1_bool\cs_end: } } , + pie /. code = \bool_set:Nn \l__wheelchart_pie_bool { \cs:w c_#1_bool \cs_end: } , pie /. default = true , pie = false , plot /. style = @@ -2029,12 +2041,12 @@ } , slices~inner /. initial = { - \fp_compare:nNnT { \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: } > { 0 } + \fp_compare:nNnT { \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: } > { 0 } { \fp_compare:nNnT - { \cs:w g__wheelchart_inner_gap_\WCcount _fp\cs_end: } + { \cs:w g__wheelchart_inner_gap_\WCcount _fp \cs_end: } < - { \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp\cs_end: } + { \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp \cs_end: } { arc [ @@ -2212,7 +2224,7 @@ {} } } , - slices~start~arrow/.style~2~args = + slices~start~arrow /. style~2~args = { slices~start = { @@ -2241,13 +2253,13 @@ (#1) - \fp_eval:n { - \l__wheelchart_counter_or_clockwise_fp * \cs:w g__wheelchart_value_1_fp\cs_end: * 0.5 + \l__wheelchart_counter_or_clockwise_fp * \cs:w g__wheelchart_value_1_fp \cs_end: * 0.5 * ( \l__wheelchart_total_angle_fp / \WCtotalnum ) } } } , start~half /. default = 90 , - title /. initial= {} , + title /. initial = {} , title~left /. initial = {} , title~left~sep /. initial = 0.5 , title~left~style /. style = { title~left_style /. style = {#1} } , @@ -2283,13 +2295,13 @@ { \cs_set:cpn {#1} { \use:e { \clist_item:nn {#2} { \int_mod:nn { \WCcount - 1 } { \clist_count:n {#2} } + 1 } } } - %note the \use:e such that \WClist<name> also works when given as an argument to pgfmath + %note the \use:e so that \WClist<name> also works when given as an argument to pgfmath %if the list contains a macro, for example %\begin{tikzpicture} %\def\n{1} %\wheelchart[ - % value=\WClistA, - % WClistA={\n} + % value=\WClistA, + % WClistA=\n %]{\exampleforthismanual} %\end{tikzpicture} %https://tex.stackexchange.com/questions/671298/clist-item-and-pgfmathsetmacro-causing-an-error @@ -2331,18 +2343,18 @@ { \tl_set:Ne \l__wheelchart_key_name_tl { \pgfkeyscurrentname }%it is necessary to define \l__wheelchart_key_name_tl %because \pgfkeyscurrentname will be overwritten by / errors / unknown~key /. expanded - \regex_match:nVTF { \{(.+)\} } \l__wheelchart_key_name_tl + \regex_match:NVTF \c__wheelchart_braces_regex \l__wheelchart_key_name_tl { \tl_set:Ne \l__wheelchart_key_range_tl { \pgfkeyscurrentname } - \regex_replace_all:nnN { \{(.+)\} } {} \l__wheelchart_key_name_tl - \regex_replace_all:nnN { [\w\s]+\{(.+)\} } { \1 } \l__wheelchart_key_range_tl + \regex_replace_all:NnN \c__wheelchart_braces_regex {} \l__wheelchart_key_name_tl + \regex_replace_all:NnN \c__wheelchart_key_braces_regex { \1 } \l__wheelchart_key_range_tl \str_if_eq:eeTF { \l__wheelchart_key_range_tl } { list } { \pgfkeys { / wheelchart , WC_list = { l__wheelchart_list_\l__wheelchart_key_name_tl } {#1} } \pgfkeys { / wheelchart , - \l__wheelchart_key_name_tl /. expand~once = { \cs:w l__wheelchart_list_\l__wheelchart_key_name_tl\cs_end: } + \l__wheelchart_key_name_tl /. expand~once = { \cs:w l__wheelchart_list_\l__wheelchart_key_name_tl \cs_end: } } } { @@ -2393,12 +2405,12 @@ \NewDocumentCommand \wheelchart { O {} m } { - {%note the double braces {{...}} such that the contents is in a group and such that & can be used in pgfmath in a tabular + {%note the double braces {{...}} so that the contents is in a group and so that & can be used in pgfmath in a tabular \pgfkeys { / wheelchart , #1 } \IfPackageLoadedTF { siunitx } { \cs_set:Npn \WCperc { \qty { \WCpercentagerounded } { \percent } } } { \cs_set:Npn \WCperc { \WCpercentagerounded \, \% } }%the definition of \WCperc is placed inside the command \wheelchart - %such that \WCperc is not defined outside this command + %so that \WCperc is not defined outside this command \bool_if:NTF \l__wheelchart_legend_only_bool { \__wheelchart_initial:n {#2} @@ -2430,7 +2442,7 @@ { \g__wheelchart_angle_fp + ( - \l__wheelchart_counter_or_clockwise_fp * \cs:w g__wheelchart_value_\WCcount _fp\cs_end: + \l__wheelchart_counter_or_clockwise_fp * \cs:w g__wheelchart_value_\WCcount _fp \cs_end: * ( \l__wheelchart_total_angle_fp / \WCtotalnum ) ) } @@ -2455,7 +2467,7 @@ \fp_gset:cn { g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp } { abs ( \g__wheelchart_angle_fp - \g__wheelchart_new_angle_fp ) / 2 } \fp_set:Nn \l__wheelchart_abs_half_angle_minus_new_angle_minus_gap_polar_fp - { \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp\cs_end: - \l__wheelchart_gap_polar_fp } + { \cs:w g__wheelchart_abs_half_angle_minus_new_angle_\WCcount _fp \cs_end: - \l__wheelchart_gap_polar_fp } \fp_gzero_new:c { g__wheelchart_outer_gap_\WCcount _fp } \fp_gzero_new:c { g__wheelchart_inner_gap_\WCcount _fp } \bool_if:NTF \l__wheelchart_plot_bool @@ -2466,7 +2478,7 @@ { \fp_set:Nn \l__wheelchart_gap_max_angle_def_fp { - \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: > 0 + \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: > 0 ? 90 : @@ -2490,8 +2502,8 @@ ) ) } - \__wheelchart_def_gap:nn { outer } { \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: } - \__wheelchart_def_gap:nn { inner } { \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: } + \__wheelchart_def_gap:nn { outer } { \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: } + \__wheelchart_def_gap:nn { inner } { \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: } \fp_compare:nNnT { \l__wheelchart_abs_half_angle_minus_new_angle_minus_gap_polar_fp } > { 0.01 } { \fp_gset:cn { g__wheelchart_inner_radius_\WCcount _fp } @@ -2508,7 +2520,7 @@ ) ) , - \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: + \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: ) } } @@ -2523,14 +2535,14 @@ \__wheelchart_gdef_count_fp:nn { data_pos } { data~pos } \__wheelchart_gdef_count_fp:nn { data_sep } { data~sep } \__wheelchart_def_angle:nnnn - { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_pos_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_sep_\WCcount _fp\cs_end: } + { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_pos_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_sep_\WCcount _fp \cs_end: } \cs_set:Npe \WCdataangle { \pgfmathresult } \__wheelchart_gdef_count_fp:nn { explode } { explode } \pgfkeysvalueof { / wheelchart / for~loop~start }%this must be placed after the definition of macros such as - %\WCpercentage such that these macros can be used in the key for loop start + %\WCpercentage so that these macros can be used in the key for loop start \int_compare:nNnT { \WCcount } = { 1 } { \begin { scope } @@ -2601,7 +2613,7 @@ [ shift /. expanded = { - \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn\cs_end: + \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn \cs_end: { \WCcount } { \l__wheelchart_slices_angle_pos_fp } { \l__wheelchart_slices_angle_shift_fp } @@ -2639,9 +2651,9 @@ \__wheelchart_for_loop:n { \bool_if:NT \l__wheelchart_wheel_lines_bool - %this is placed inside \__wheelchart_for_loop:n such that wheel lines can be applied for specific slices + %this is placed inside \__wheelchart_for_loop:n so that wheel lines can be applied for specific slices { - \int_step_inline:nnn { 0 } { \fp_eval:n { round ( \cs:w g__wheelchart_value_\WCcount _fp\cs_end: ) } } + \int_step_inline:nnn { 0 } { \fp_eval:n { round ( \cs:w g__wheelchart_value_\WCcount _fp \cs_end: ) } } %note the \fp_eval:n { round ( ... ) } to avoid the messages Missing character: There is no ... in font nullfont! { \bool_if:NTF \l__wheelchart_plot_bool @@ -2783,14 +2795,14 @@ \fp_compare:nF { \l__wheelchart_lines_fp == 0 && \l__wheelchart_lines_ext_fp == 0 } { \draw [ / wheelchart / lines_style ] let \p { l__wheelchart_lines_1 } = - \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn\cs_end: + \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn \cs_end: { \WCcount } - { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_pos_\WCcount _fp\cs_end: } + { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_pos_\WCcount _fp \cs_end: } { \l__wheelchart_lines_sep_fp + \l__wheelchart_lines_fp } in - \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn\cs_end: + \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn \cs_end: { \WCcount } { \l__wheelchart_lines_angle_pos_fp } { \l__wheelchart_lines_angle_shift_fp } @@ -2838,7 +2850,7 @@ { \fp_eval:n { - \l__wheelchart_lines_ext_dir_int * \cs:w g__wheelchart_data_sep_\WCcount _fp\cs_end: + \l__wheelchart_lines_ext_dir_int * \cs:w g__wheelchart_data_sep_\WCcount _fp \cs_end: } } , 0 @@ -2849,7 +2861,7 @@ } ; } - \__wheelchart_if_text:nn { data } + \__wheelchart_if_text:nnn { data } { o } { \fp_compare:nNnTF { \l__wheelchart_lines_ext_fp } = { 0 } { @@ -2876,13 +2888,13 @@ \coordinate [ at = - \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn\cs_end: + \cs:w __wheelchart_point_plot_\bool_to_str:N \l__wheelchart_plot_bool :nnnnn \cs_end: { \WCcount } - { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp\cs_end: } - { \cs:w g__wheelchart_data_pos_\WCcount _fp\cs_end: } + { \cs:w g__wheelchart_data_angle_pos_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_angle_shift_\WCcount _fp \cs_end: } + { \cs:w g__wheelchart_data_pos_\WCcount _fp \cs_end: } { - \cs:w g__wheelchart_data_sep_\WCcount _fp\cs_end: + + \cs:w g__wheelchart_data_sep_\WCcount _fp \cs_end: + ( \l__wheelchart_lines_fp == 0 ? @@ -2902,7 +2914,7 @@ \node [ anchor = \l__wheelchart_data_anchor_tl , align = left , / wheelchart / data_style ] at ( g__wheelchart_data_coordinate ) { \pgfkeysvalueof { / wheelchart / data } } ;%a separate \node and not at the end of the \draw with lines_style - %such that the key lines style is not passed to this \node + %so that the key lines style is not passed to this \node } \__wheelchart_def_fp:nn { arc_around_line } { arc~around~line } \__wheelchart_def_fp:nn { arc_data_angle_pos } { arc~data~angle~pos } @@ -2913,14 +2925,16 @@ \fp_gset:Nn \g__wheelchart_half_ex_over_one_cm_fp { 0.5 ex / 1 cm }% \endpgfinterruptpicture% \fp_gset:Nn \g__wheelchart_arc_data_aux_ii_fp { 0 } - \__wheelchart_if_text:nn { arc~data } + \__wheelchart_if_text:nnn { arc~data } {} { - \cs_set:Npn \WCperc { \WCpercentagerounded { \, } { \% } }%such that \WCperc follows the arc if used in arc data + \cs_set:Npn \WCperc { \WCpercentagerounded { \, } { \% } }%so that \WCperc follows the arc if used in arc data %this redefinition of \WCperc is local to the group of arc data \__wheelchart_def_fp:nn { arc_data_pos } { arc~data~pos } \__wheelchart_def_fp:nn { arc_data_sep } { arc~data~sep } \__wheelchart_def_fp:nn { arc_data_line_sep_factor } { arc~data~line~sep~factor } - \cs:w seq_set_split:Nn\pgfkeysvalueof { / wheelchart / arc~data~expand }\cs_end: + \__wheelchart_def_fp:nn { arc_data_lines_pos } { arc~data~lines~pos } + \__wheelchart_def_fp:nn { arc_data_lines_shift } { arc~data~lines~shift } + \cs:w seq_set_split:Nn\pgfkeysvalueof { / wheelchart / arc~data~expand } \cs_end: \l__wheelchart_arc_data_seq { \\ } { \pgfkeysvalueof { / wheelchart / arc~data } } @@ -2928,13 +2942,17 @@ { \fp_set:Nn \l__wheelchart_arc_data_text_pos_fp { - \l__wheelchart_arc_data_pos_fp + 2 * \g__wheelchart_slices_orientation_fp - * ( 2 * ####1 - \seq_count:N \l__wheelchart_arc_data_seq - 1 ) * sign ( \l__wheelchart_arc_data_dir_fp ) + \l__wheelchart_arc_data_pos_fp + 4 * \g__wheelchart_slices_orientation_fp * + ( + ####1 - 1 - \l__wheelchart_arc_data_lines_pos_fp * ( \seq_count:N \l__wheelchart_arc_data_seq - 1 ) + + \l__wheelchart_arc_data_lines_shift_fp + ) + * sign ( \l__wheelchart_arc_data_dir_fp ) * \l__wheelchart_arc_data_line_sep_factor_fp * \g__wheelchart_half_ex_over_one_cm_fp / ( - \cs:w g__wheelchart_outer_radius_\WCcount _fp\cs_end: - - \cs:w g__wheelchart_inner_radius_\WCcount _fp\cs_end: + \cs:w g__wheelchart_outer_radius_\WCcount _fp \cs_end: + - \cs:w g__wheelchart_inner_radius_\WCcount _fp \cs_end: + 2 * \l__wheelchart_arc_data_sep_fp ) }%the sign is needed because \l__wheelchart_arc_data_dir_fp is not necessarily 1 or -1 @@ -2957,9 +2975,9 @@ / wheelchart / arc_data_style } }%get the length of the path - %note the option overlay such that this does not increase the bounding box + %note the option overlay so that this does not increase the bounding box %note the {} at the start of text and the braces around \fp_gset:Nn ... - %such that the compilation does not stall + %so that the compilation does not stall { 0 } { 1 } { \l__wheelchart_plot_variable_tl } @@ -3033,7 +3051,7 @@ { \l__wheelchart_arc_data_text_pos_fp } { \l__wheelchart_arc_data_sep_fp + \g__wheelchart_half_ex_over_one_cm_fp } + \l__wheelchart_counter_or_clockwise_fp * \l__wheelchart_arc_data_dir_fp - * \cs:w c__wheelchart_arc_data_start_factor_\l__wheelchart_arc_data_align_tl _fp\cs_end: + * \cs:w c__wheelchart_arc_data_start_factor_\l__wheelchart_arc_data_align_tl _fp \cs_end: * \l__wheelchart_arc_data_total_angle_plot_false_fp } \path @@ -3188,7 +3206,7 @@ } \bool_if:NT \l__wheelchart_legend_row_bool { \__wheelchart_def_WClegend: } - \__wheelchart_if_text:nn { middle } + \__wheelchart_if_text:nnn { middle } { o } { \node [ align = center , / wheelchart / middle_style ] at ( 0 , 0 ) { \pgfkeysvalueof { / wheelchart / middle } } ; } \pgfkeysvalueof { / wheelchart / legend } \end { scope } @@ -3203,4 +3221,6 @@ \end { scope } } } - }
\ No newline at end of file + } + +\endinput
\ No newline at end of file diff --git a/graphics/pgf/contrib/wheelchart/wheelchart.tex b/graphics/pgf/contrib/wheelchart/wheelchart.tex index 5f0857f1a6..952fc93a81 100644 --- a/graphics/pgf/contrib/wheelchart/wheelchart.tex +++ b/graphics/pgf/contrib/wheelchart/wheelchart.tex @@ -137,7 +137,7 @@ \setcounter{secnumdepth}{2} \title{The \texttt{wheelchart} package\\[12pt]\large Diagrams with circular or other shapes using \tikzname{} and \LaTeX3} \author{Matthias Floré} -\date{Version 3.0 (2024/03/08)}%\\[12pt] +\date{Version 4.0 (2024/07/28)}%\\[12pt] \begin{document} \iftotalpages% \newsavebox{\fancyfootdefaultbox}% @@ -155,7 +155,11 @@ \maketitle \thispagestyle{fancy} \begin{abstract} -\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw various kinds of diagrams such as a bar chart, doughnut chart, infographic, pie chart, ring chart, square chart, sunburst chart, waffle chart and wheel chart with \tikzname. It provides several options to customize the diagrams. It is also possible to specify a plot for the shape of the chart. Furthermore a legend can be added and the table of contents can be displayed as one of these diagrams. Other tools for creating wheel charts or pie charts can be found in \cite{MpMP}, \cite{JhcIparowcltopotPGFm}, \cite{Tumfdb}, \cite{XdPCbupp} and \cite{RSVpaaMfp}.% This is the manual for version . +\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw various kinds of diagrams such as bar charts, doughnut charts, infographics, pie charts, ring charts, square charts, sunburst charts, waffle charts and wheel charts. + +\noindent It provides several options to customize the diagrams. It is also possible to specify a plot for the shape of the chart. Furthermore a legend can be added and the table of contents can be displayed as one of these diagrams. + +\noindent Other tools for creating wheel charts or pie charts can be found in \cite{MpMP}, \cite{JhcIparowcltopotPGFm}, \cite{Tumfdb}, \cite{XdPCbupp} and \cite{RSVpaaMfp}.% This is the manual for version . \end{abstract} \section*{\contentsname} \iftotalpages @@ -257,7 +261,7 @@ The default wheelchart with these data is shown below. \end{tikzpicture} \end{codeexample} \end{command} -\newpage%such that this section has its own block in the header +\newpage%so that this section has its own block in the header \section{Additional macros} \begin{command}{\WCangle\opt{\oarg{number}}\marg{angle pos}\marg{angle shift}\marg{pos}\marg{sep}} This command gives the angle in degrees of the point which is constructed as follows. @@ -670,6 +674,11 @@ In the example below, it is necessary to use |arc data expand=e| and to place |\ \begin{key}{/wheelchart/arc data line sep factor=\marg{factor} (initially 1)} The contents of the key |arc data| can consist of multiple lines separated by |\\|. The \meta{factor} determines the spacing between these lines. \end{key} +\begin{key}{/wheelchart/arc data lines pos=\marg{factor} (initially 0.5)} +\end{key} +\begin{key}{/wheelchart/arc data lines shift=\marg{value} (initially 0)} +The positioning of the lines of the key |arc data| is determined by the index $k-1-\text{|arc data lines pos|}\cdot(N-1)+\text{|arc data lines shift|}$ where $N$ is the number of lines and $k\in\{1,\dots,N\}$. +\end{key} \begin{key}{/wheelchart/arc data pos=\marg{value} (initially 1)} \end{key} \begin{key}{/wheelchart/arc data sep=\marg{value} (initially 1ex/1cm)} @@ -738,7 +747,6 @@ This key accepts a list of keys which will be applied to the node where the cont \begin{codeexample}[width=10cm] \begin{tikzpicture} \wheelchart[ - at={(5,2)}, caption=Caption, caption style={font=\scshape}, caption left=Caption left, @@ -2909,6 +2917,11 @@ The following example is an answer to the question on \url{https://tex.stackexch \item In v2.0, the key |arc data angle shift| was not taken into account for the key |arc| in combination with the key |arc around text|. This is fixed in v3.0. \item In v2.0, the number of items for each slice in the \meta{wheelchart data} which can be accessed with the macros |\WCvarA| and so on was determined by the number of items for the last slice. For example, |data{1}=\WCvarD| in combination with the \meta{wheelchart data} |1/black/A/a,2/gray/B| was not possible with v2.0. This is not a limitation anymore with v3.0. \end{itemize} +\item[] \textbf{Version 4.0 (2024/07/28)} +\begin{itemize} +\item Added the keys |arc data lines pos| and |arc data lines shift|. +\item Solved an incompatibility if |\\| is used in a key such as |data| inside an environment such as |center|. +\end{itemize} \end{itemize} \begin{thebibliography}{9} \bibitem{JhcIparowcltopotPGFm} diff --git a/graphics/pgf/contrib/wordle/README.md b/graphics/pgf/contrib/wordle/README.md index f1977a1ae7..fdfd996870 100644 --- a/graphics/pgf/contrib/wordle/README.md +++ b/graphics/pgf/contrib/wordle/README.md @@ -1,8 +1,33 @@ -wordle is a package to work with Wordle game. ------------------------------------------------------------ -wordle est un package pour travailler avec le jeu du sutom. ------------------------------------------------------------ -Author : Cédric Pierquet -email : cpierquet@outlook.fr -Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt -Source : https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex
\ No newline at end of file +![v![]()ersion](https://img.shields.io/github/v/tag/AndrewMathas/wordle?color=success&label=version) +<a href="http://www.latex-project.org/lppl.txt"><img src="https://img.shields.io/badge/license-LPPLv1.3c-blueviolet.svg"></a> +<a href="https://www.latex-project.org/"><img src="https://img.shields.io/badge/latex-20B2AA?logo=Latex"></a> + +# Wordle + +A stupidly feature-rich LaTeX package for typesetting **Wordle** puzzles. This package provides a stupidly feature-rich way of creating Wordle puzzles in LaTeX, which [Wikipedia](https://en.wikipedia.org/wiki/Wordle) describes as a hugely popular web-based word game created and developed by Welsh software engineer Josh Wardle. + +This package provides the `wordle` environment, which uses the syntax: + +```tex +% \usepackage{wordle} +\begin{wordle}{ANVIL} + CRANE + NATAL + ANVIL +\end{wordle} +``` + +Ce package fournit un moyen stupidement riche en fonctionnalités de créer des puzzles **Wordle** en LaTeX, que [Wikipedia](https://en.wikipedia.org/wiki/Wordle) décrit comme comme un jeu de lettres en ligne extrêmement populaire, créé et développé par l'ingénieur logiciel gallois Josh Wardle. + +```tex +% \usepackage{wordle} +\begin{GrilleSutom}{REBUS} + ABRIS + ROUTE + REBUS +\end{GrilleSutom} +``` + +### Authors +Andrew Mathas and Cédric Pierquet + diff --git a/graphics/pgf/contrib/wordle/doc/wordle-doc-en.pdf b/graphics/pgf/contrib/wordle/doc/wordle-doc-en.pdf Binary files differdeleted file mode 100644 index aadb07f54b..0000000000 --- a/graphics/pgf/contrib/wordle/doc/wordle-doc-en.pdf +++ /dev/null diff --git a/graphics/pgf/contrib/wordle/doc/wordle-doc-en.tex b/graphics/pgf/contrib/wordle/doc/wordle-doc-en.tex deleted file mode 100644 index 06352f5ad5..0000000000 --- a/graphics/pgf/contrib/wordle/doc/wordle-doc-en.tex +++ /dev/null @@ -1,426 +0,0 @@ -% !TeX TXS-program:compile = txs:///arara -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') - -\documentclass[english,a4paper,11pt]{article} -\usepackage[margin=2cm,includefoot]{geometry} -\def\TPversion{0.1.1} -\def\TPdate{03/09/2023} -\usepackage{amssymb,amsfonts,amsmath} -\usepackage[utf8]{inputenc} -%\usepackage[T1]{fontenc} -\usepackage{wordle} -\usepackage{awesomebox} -\usepackage{fontawesome5} -\usepackage{footnote} -\makesavenoteenv{tabular} -\usepackage{enumitem} -\usepackage{tabularray} -\usepackage{fancyvrb} -\usepackage{fancyhdr} -\fancyhf{} -\renewcommand{\headrulewidth}{0pt} -\lfoot{\sffamily\small [wordle]} -\cfoot{\sffamily\small - \thepage{} -} -\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} - -%\usepackage{hvlogos} -\usepackage{xspace} -\usepackage{hologo} -\providecommand\tikzlogo{Ti\textit{k}Z} -\providecommand\TeXLive{\TeX{}Live\xspace} -\providecommand\PSTricks{\textsf{PSTricks}\xspace} -\let\pstricks\PSTricks -\let\TikZ\tikzlogo -\newcommand\TableauDocumentation{% - \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} - {\LARGE \LaTeX} & & & & &\\ - & {\LARGE \hologo{pdfLaTeX}} & & & & \\ - & & {\LARGE \hologo{LuaLaTeX}} & & & \\ - & & & {\LARGE \TikZ} & & \\ - & & & & {\LARGE \TeXLive} & \\ - & & & & & {\LARGE \hologo{MiKTeX}} \\ - \end{tblr} -} - -\usepackage{hyperref} -\urlstyle{same} -\hypersetup{pdfborder=0 0 0} -\setlength{\parindent}{0pt} -\definecolor{LightGray}{gray}{0.9} - -\usepackage{babel} -%\AddThinSpaceBeforeFootnotes -%\FrenchFootnotes - -\usepackage{listings} - -\usepackage{newverbs} -\newverbcommand{\motcletex}{\color{cyan!75!black}}{} -\newverbcommand{\packagetex}{\color{violet!75!black}}{} - -\usepackage[most]{tcolorbox} -\tcbuselibrary{listingsutf8} -\newtcblisting{DemoCode}[1][]{% - enhanced,width=0.95\linewidth,center,% - bicolor,size=title,% - colback=cyan!2!white,% - colbacklower=cyan!1!white,% - colframe=cyan!75!black,% - listing options={% - breaklines=true,% - breakatwhitespace=true,% - style=tcblatex,basicstyle=\small\ttfamily,% - tabsize=4,% - commentstyle={\itshape\color{gray}}, - keywordstyle={\color{blue}},% - classoffset=0,% - keywords={},% - alsoletter={-},% - keywordstyle={\color{blue}},% - classoffset=1,% - alsoletter={-},% - morekeywords={center,justify},% - keywordstyle={\color{violet}},% - classoffset=2,% - alsoletter={-},% - morekeywords={WordleGrid},% - keywordstyle={\color{green!50!black}},% - classoffset=3,% - morekeywords={Colors,Rounded,Unit,Font,ColorLetters,Letters,Style,Thickness,BorderColor},% - keywordstyle={\color{orange}} - },% - #1 -} - -\tcbset{vignettes/.style={% - nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% - boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,% - } -} - -\tcbset{vignetteMaJ/.style={% - fontupper={\vphantom{pf}\footnotesize\ttfamily}, - vignettes,colframe=purple!50!black,coltitle=white,colback=purple!10,% - overlay={\begin{tcbclipinterior}% - \fill[fill=purple!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{black}{\scalebox{0.66}[0.66]{\textbf{Mà J}}}}} ($(interior.north west)+(5pt,0pt)$);% - \end{tcbclipinterior}} - } -} - -\newcommand\Cle[1]{{\small\sffamily\textlangle \textcolor{orange}{#1}\textrangle}} -\newcommand\cmaj[1]{\tcbox[vignetteMaJ]{#1}\xspace} - -\begin{document} - -\setlength{\aweboxleftmargin}{0.07\linewidth} -\setlength{\aweboxcontentwidth}{0.93\linewidth} -\setlength{\aweboxvskip}{8pt} - -\pagestyle{fancy} - -\thispagestyle{empty} - -\vspace{2cm} - -\begin{center} - \begin{minipage}{0.75\linewidth} - \begin{tcolorbox}[colframe=yellow,colback=yellow!15] - \begin{center} - \begin{tabular}{c} - {\Huge \texttt{wordle} [en]}\\ - \\ - {\LARGE Grids of Wordle,} \\ - \\ - {\LARGE made with \textsf{Ti\textit{k}Z}.} \\ - \end{tabular} - - \bigskip - - {\small \texttt{Version \TPversion{} -- \TPdate}} - \end{center} - \end{tcolorbox} -\end{minipage} -\end{center} - -\begin{center} - \begin{tabular}{c} - \texttt{Cédric Pierquet}\\ - {\ttfamily c pierquet -- at -- outlook . fr}\\ - \texttt{\url{https://github.com/cpierquet/wordle}} -\end{tabular} -\end{center} - -\vspace{0.25cm} - -{$\blacktriangleright$~~Create Wordle grids Wordle/Sutom\footnotemark\footnotetext{\url{https://en.wikipedia.org/wiki/Wordle}}.} - -\vspace{0.25cm} - -{$\blacktriangleright$~~Specify colors and font\footnotemark\footnotetext{Ideas from \url{ttps://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex}}. - -\vspace{0.5cm} - -\begin{center} -\begin{WordleGrid}{CRAZE} - GRAIL TRACK CRAMP CRABS CRAZY CRAZE -\end{WordleGrid} -\end{center} - -\begin{center} -\begin{WordleGrid}[Rounded=0,Colors={lightgray,orange,teal},Style=alt,Unit=0.5,Letters=false]{LADLE} - FLAIL LAPEL LADLE -\end{WordleGrid} -% -\hspace{5mm} -% -\begin{WordleGrid}[Rounded=0,Colors={lightgray,orange,teal},Style=alt,Unit=0.5]{LADLE} - FLAIL LAPEL LADLE -\end{WordleGrid} -\end{center} - -\vspace{0.25cm} - -%\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !} - -\smallskip - -\vfill - -\hrule - -\medskip - -\TableauDocumentation - -\medskip - -\hrule - -\vspace*{1cm} - -\newpage - -\phantomsection -\hypertarget{matoc}{} - -\tableofcontents - -\vfill - -\section{History} - -\verb|v0.1.1|~:~~~~Bugfix with english version. - -\verb|v0.1.0|~:~~~~Initial version. - -\newpage - -\section{The wordle package} - -\subsection{The game} - -\begin{noteblock} -Wordle is a web-based word game created and developed by Welsh software engineer Josh Wardle. Players have six attempts to guess a five-letter word, with feedback given for each guess in the form of colored tiles indicating when letters match or occupy the correct position. - -Every day, a five-letter word is chosen which players aim to guess within six tries. After every guess, each letter is marked as either green, yellow or gray: green indicates that letter is correct and in the correct position, yellow means it is in the answer but not in the right position, while gray indicates it is not in the answer at all. Multiple instances of the same letter in a guess, such as the "o"s in "robot", will be colored green or yellow only if the letter also appears multiple times in the answer; otherwise, excess repeating letters will be colored gray. - -\smallskip - -\hfill{\scriptsize \url{https://en.wikipedia.org/wiki/Wordle}} -\end{noteblock} - -\subsection{The package} - -\begin{noteblock} -This package can display, in a \textsf{tex} file, a wordle grid (with \TikZ{} and within a \motcletex!minipage!), with ability : - -\begin{itemize} - \item to change dimensions and colors ; - \item to pick style for misplaced letters ; - \item to change borders and corners ; - \item to print or not the letters. -\end{itemize} - -It's possible to "play" with other words than five-letter words ! -\end{noteblock} - -\begin{importantblock} -Most of source code, in \hologo{LaTeX3}, is given by thread from \texttt{tex.stackexchange}, proposed by user \textsf{3141592653589793238}. -\end{importantblock} - -\subsection{Loading of the package, used packages} - -\begin{importantblock} -The package \packagetex!wordle! loads within the preamble. - -There's no option, and \packagetex!xcolor! isn't loaded. -\end{importantblock} - -\begin{DemoCode}[listing only] -\documentclass{article} -\usepackage{wordle} - -\end{DemoCode} - -\begin{noteblock} -\packagetex!wordle! loads the following packages and libraries : - -\begin{itemize} - \item \packagetex!tikz!; - \item \packagetex!simplekv! ; - \item \packagetex!xstring!. -\end{itemize} - -It’s mostly compatible with \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} or \textsf{xelatex} compilation ! -\end{noteblock} - -\vfill~ - -\pagebreak - -\section{WordleGrid environment} - -\subsection{Environment} - -\begin{cautionblock} -The environment to display a Wordle grid is \packagetex!WordleGrid!. - -It works with keys, between \texttt{[...]} and needs to know : - -\begin{itemize} - \item the good word ; - \item the different guesses. -\end{itemize} - -The code create the grid and the colors ! -\end{cautionblock} - -\begin{DemoCode}[listing only] -\begin{WordleGrid}[keys]{good word} - guess n°1 - guess n°2 - guess n°3 -\end{WordleGrid} -\end{DemoCode} - -\begin{noteblock} -the grid is created with a \motcletex!minipage!, with automatic width and spacings ! -\end{noteblock} - -\begin{DemoCode}[] -%default output -\begin{WordleGrid}{REBUS} - ARISE - ROUTE - RULES - REBUS -\end{WordleGrid} -\end{DemoCode} - -\subsection{Keys and options} - -\begin{tipblock} -The first argument, mandatory and between \texttt{[...]}, proposes the following \Cle{keys} : - -\begin{itemize} - \item \Cle{Colors} : = colors of the boxes \Cle{back,misplaced,good} ; - - \hfill{}default : \Cle{WordleBack,WordleBad,WordleGood},% - \item \Cle{Rounded} := arc for corners, in mm ; \hfill{}default : \Cle{0.1} - \item \Cle{Unit} := width of cases, in cm ; \hfill{}default : \Cle{1} - \item \Cle{Font} := font for letters ; \hfill{}default : \Cle{\textbackslash LARGE\textbackslash bfseries\textbackslash sffamily} - \item \Cle{ColorLetters} := color for letters ; \hfill{}default : \Cle{white} - \item \Cle{BorderColor} := color fot the border ; \hfill{}default : \Cle{white} - \item \Cle{Letters} := boolean to print letters ; \hfill{}default : \Cle{true} - \item \Cle{Style} := style within \Cle{default / other} to change the style ; \hfill{}default : \Cle{default} - \item \Cle{Thick} := thickness of the borders, in mm. \hfill{}default : \Cle{0.25} -\end{itemize} -\vspace*{-\baselineskip}\leavevmode -\end{tipblock} - -\begin{tipblock} -The second argument, optional and between \texttt{\{...\}} is the correct word. - -\smallskip - -Different guesses are given within the body of the environment (line by line or space separated). -\end{tipblock} - -\subsection{Examples} - -\begin{DemoCode}[] -\begin{WordleGrid}{BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -% -\hspace{5mm} -% -\begin{WordleGrid}[Style=alt]{BURGH} - ABATE HERBS BURLY BURGH -\end{WordleGrid} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{WordleGrid} - [Thickness=0.3,BorderColor=black,% - Colors={lightgray,orange,teal}]{BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -% -\hspace{5mm} -% -\begin{WordleGrid} - [Rounded=0,Thickness=0.3,BorderColor=black,% - Colors={lightgray,orange,teal}]{BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{WordleGrid}[Unit=2,Font=\Huge\ttfamily,ColorLetters=black]{BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{WordleGrid}% - [Unit=0.75,Rounded=0,Colors={cyan,orange,violet},Letters=false]{BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -\hspace{5mm} -\begin{WordleGrid}% - [Unit=0.75,Rounded=0,Colors={cyan,orange,violet},Style=alt] - {BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -\hspace{5mm} -\begin{WordleGrid}% - [Unit=0.75,Rounded=0,Colors={cyan,orange,violet},Style=alt,Letters=false] - {BURGH} - ABATE - HERBS - BURLY - BURGH -\end{WordleGrid} -\end{DemoCode} - -\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.pdf b/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.pdf Binary files differdeleted file mode 100644 index 3277ca9a99..0000000000 --- a/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.pdf +++ /dev/null diff --git a/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.tex b/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.tex deleted file mode 100644 index f365cbb459..0000000000 --- a/graphics/pgf/contrib/wordle/doc/wordle-doc-fr.tex +++ /dev/null @@ -1,422 +0,0 @@ -% !TeX TXS-program:compile = txs:///arara -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} -% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode} if found('log', '(undefined references|Please rerun|Rerun to get)') - -\documentclass[french,a4paper,11pt]{article} -\usepackage[margin=2cm,includefoot]{geometry} -\def\TPversion{0.1.1} -\def\TPdate{3 septembre 2023} -\usepackage{amssymb,amsfonts,amsmath} -\usepackage[utf8]{inputenc} -%\usepackage[T1]{fontenc} -\usepackage{wordle} -\usepackage{awesomebox} -\usepackage{fontawesome5} -\usepackage{footnote} -\makesavenoteenv{tabular} -\usepackage{enumitem} -\usepackage{tabularray} -\usepackage{fancyvrb} -\usepackage{fancyhdr} -\fancyhf{} -\renewcommand{\headrulewidth}{0pt} -\lfoot{\sffamily\small [wordle]} -\cfoot{\sffamily\small - \thepage{} -} -\rfoot{\hyperlink{matoc}{\small\faArrowAltCircleUp[regular]}} - -%\usepackage{hvlogos} -\usepackage{hologo} -\providecommand\tikzlogo{Ti\textit{k}Z} -\providecommand\TeXLive{\TeX{}Live\xspace} -\providecommand\PSTricks{\textsf{PSTricks}\xspace} -\let\pstricks\PSTricks -\let\TikZ\tikzlogo -\newcommand\TableauDocumentation{% - \begin{tblr}{width=\linewidth,colspec={X[c]X[c]X[c]X[c]X[c]X[c]},cells={font=\sffamily}} - {\LARGE \LaTeX} & & & & &\\ - & {\LARGE \hologo{pdfLaTeX}} & & & & \\ - & & {\LARGE \hologo{LuaLaTeX}} & & & \\ - & & & {\LARGE \TikZ} & & \\ - & & & & {\LARGE \TeXLive} & \\ - & & & & & {\LARGE \hologo{MiKTeX}} \\ - \end{tblr} -} - -\usepackage{hyperref} -\urlstyle{same} -\hypersetup{pdfborder=0 0 0} -\setlength{\parindent}{0pt} -\definecolor{LightGray}{gray}{0.9} - -\usepackage{babel} -\AddThinSpaceBeforeFootnotes -\FrenchFootnotes - -\usepackage{listings} - -\usepackage{newverbs} -\newverbcommand{\motcletex}{\color{cyan!75!black}}{} -\newverbcommand{\packagetex}{\color{violet!75!black}}{} - -\usepackage[most]{tcolorbox} -\tcbuselibrary{listingsutf8} -\newtcblisting{DemoCode}[1][]{% - enhanced,width=0.95\linewidth,center,% - bicolor,size=title,% - colback=cyan!2!white,% - colbacklower=cyan!1!white,% - colframe=cyan!75!black,% - listing options={% - breaklines=true,% - breakatwhitespace=true,% - style=tcblatex,basicstyle=\small\ttfamily,% - tabsize=4,% - commentstyle={\itshape\color{gray}}, - keywordstyle={\color{blue}},% - classoffset=0,% - keywords={},% - alsoletter={-},% - keywordstyle={\color{blue}},% - classoffset=1,% - alsoletter={-},% - morekeywords={center,justify},% - keywordstyle={\color{violet}},% - classoffset=2,% - alsoletter={-},% - morekeywords={GrilleSutom},% - keywordstyle={\color{green!50!black}},% - classoffset=3,% - morekeywords={Couleurs,Arrondi,Unite,Police,CouleurLettres,Lettres,Style,Epaisseur,CouleurBordure},% - keywordstyle={\color{orange}} - },% - #1 -} - -\tcbset{vignettes/.style={% - nobeforeafter,box align=base,boxsep=0pt,enhanced,sharp corners=all,rounded corners=southeast,% - boxrule=0.75pt,left=7pt,right=1pt,top=0pt,bottom=0.25pt,% - } -} - -\tcbset{vignetteMaJ/.style={% - fontupper={\vphantom{pf}\footnotesize\ttfamily}, - vignettes,colframe=purple!50!black,coltitle=white,colback=purple!10,% - overlay={\begin{tcbclipinterior}% - \fill[fill=purple!75]($(interior.south west)$) rectangle node[rotate=90]{\tiny \sffamily{\textcolor{black}{\scalebox{0.66}[0.66]{\textbf{Mà J}}}}} ($(interior.north west)+(5pt,0pt)$);% - \end{tcbclipinterior}} - } -} - -\newcommand\Cle[1]{{\small\sffamily\textlangle \textcolor{orange}{#1}\textrangle}} -\newcommand\cmaj[1]{\tcbox[vignetteMaJ]{#1}\xspace} - -\begin{document} - -\setlength{\aweboxleftmargin}{0.07\linewidth} -\setlength{\aweboxcontentwidth}{0.93\linewidth} -\setlength{\aweboxvskip}{8pt} - -\pagestyle{fancy} - -\thispagestyle{empty} - -\vspace{2cm} - -\begin{center} - \begin{minipage}{0.75\linewidth} - \begin{tcolorbox}[colframe=yellow,colback=yellow!15] - \begin{center} - \begin{tabular}{c} - {\Huge \texttt{wordle} [fr]}\\ - \\ - {\LARGE Des grilles de Wordle (Sutom),} \\ - \\ - {\LARGE avec \textsf{Ti\textit{k}Z}.} \\ - \end{tabular} - - \bigskip - - {\small \texttt{Version \TPversion{} -- \TPdate}} - \end{center} - \end{tcolorbox} -\end{minipage} -\end{center} - -\begin{center} - \begin{tabular}{c} - \texttt{Cédric Pierquet}\\ - {\ttfamily c pierquet -- at -- outlook . fr}\\ - \texttt{\url{https://github.com/cpierquet/wordle}} -\end{tabular} -\end{center} - -\vspace{0.25cm} - -{$\blacktriangleright$~~Créer des grilles de Wordle/Sutom\footnotemark\footnotetext{\url{https://fr.wikipedia.org/wiki/Wordle}}.} - -\vspace{0.25cm} - -{$\blacktriangleright$~~Gestion des couleurs, de la taille\footnotemark\footnotetext{Idées venant de \url{ttps://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex}}. - -\vspace{1cm} - -\begin{center} -\begin{GrilleSutom}{LUCIOLE} - LAPINES - LUMIERE - LOURDES - LUCIOLE -\end{GrilleSutom} -\end{center} - -\medskip - -\begin{center} -\begin{GrilleSutom}[Arrondi=0,Couleurs={lightgray,orange,teal},Style=alt,Unite=0.5,Lettres=false]{REBUS} - ABRIS - ROUTE - RUDES - REBUS -\end{GrilleSutom} -% -\hspace{5mm} -% -\begin{GrilleSutom}[Arrondi=0,Couleurs={lightgray,orange,teal},Style=alt,Unite=0.5]{REBUS} - ABRIS - ROUTE - RUDES - REBUS -\end{GrilleSutom} -\end{center} - -\vspace{0.5cm} - -%\hfill{}\textit{Merci à Denis Bitouzé et à Gilles Le Bourhis pour leurs retours et idées !} - -\smallskip - -\vfill - -\hrule - -\medskip - -\TableauDocumentation - -\medskip - -\hrule - -\vspace*{1cm} - -\newpage - -\phantomsection -\hypertarget{matoc}{} - -\tableofcontents - -\vfill - -\section{Historique} - -\verb|v0.1.0|~:~~~~Correction d'un bug avec la version anglaise. - -\verb|v0.1.0|~:~~~~Version initiale. - -\newpage - -\section{Le package wordle} - -\subsection{Le principe du jeu} - -\begin{noteblock} -Wordle est un jeu de lettres en ligne gratuit développé en 2021 par Josh Wardle. Ce jeu est une adaptation directe du jeu télévisé américain Lingo (Motus en France) qui propose de faire deviner un mot par plusieurs tentatives, en indiquant pour chacune d'entre-elles la position des lettres bien placées et mal placées. - -Le but du jeu est de deviner un mot spécifique de cinq lettres en un maximum de six tentatives, en tapant des lettres sur un écran de six lignes de cinq cases chacune. La personne qui joue inscrit sur la première ligne un mot de cinq lettres de son choix et entre sa proposition. Après chaque proposition, les lettres apparaissent en couleurs : le fond gris représente les lettres qui ne se trouvent pas dans le mot recherché, le fond jaune représente les lettres qui se trouvent ailleurs dans le mot, et le fond vert représente les lettres qui se trouvent à la bonne place dans le mot à trouver. - -\smallskip - -\hfill{\scriptsize \url{https://fr.wikipedia.org/wiki/Wordle}} -\end{noteblock} - -\subsection{Le package} - -\begin{noteblock} -Le package propose de quoi afficher, dans son document \LaTeX, une grille de Wordle (ou de Sutom) à l'aide de \TikZ{} et d'une \motcletex!minipage!, avec la possibilité : - -\begin{itemize} - \item de spécifier les dimensions, la couleur ; - \item de choisir le style des lettres mal placées ; - \item de personnaliser les bordure et les coins ; - \item d'afficher ou non les lettres. -\end{itemize} - -Contrairement au jeu \og initial \fg, il est possible de travailler avec des mots de longueur différente de 5 ! -\end{noteblock} - -\begin{importantblock} -Une bonne partie du code, en \hologo{LaTeX3}, est issu d'un fil sur \texttt{tex.stackexchange}, et proposé par l'internaute \textsf{3141592653589793238}. -\end{importantblock} - -\subsection{Chargement du package, packages utilisés} - -\begin{importantblock} -Le package se charge, de manière classique, dans le préambule. - -Il n'existe pas d'option pour le package, et \packagetex!xcolor! n'est pas chargé. -\end{importantblock} - -\begin{DemoCode}[listing only] -\documentclass{article} -\usepackage{wordle} - -\end{DemoCode} - -\begin{noteblock} -\packagetex!wordle! charge les packages suivants : - -\begin{itemize} - \item \packagetex!tikz!; - \item \packagetex!simplekv! ; - \item \packagetex!xstring!. -\end{itemize} - -Il est compatible avec les compilations usuelles en \textsf{latex}, \textsf{pdflatex}, \textsf{lualatex} ou \textsf{xelatex}. -\end{noteblock} - -\vfill~ - -\pagebreak - -\section{Environnement GrilleSutom} - -\subsection{Fonctionnement global} - -\begin{cautionblock} -L'environnement dédié à la création de la grille du Sutom est \packagetex!GrilleSutom!. - -Il fonctionne avec un système de clés, entre \texttt{[...]}, et nécessite de préciser : - -\begin{itemize} - \item le bon mot ; - \item les différentes propositions. -\end{itemize} - -Le code se charge de mettre en forme (grâce à une \motcletex!minipage!) la grille et les différentes couleurs d'aide. -\end{cautionblock} - -\begin{DemoCode}[listing only] -\begin{GrilleSutom}[clés]{mot à trouver} - proposition n°1 - proposition n°2 - proposition n°3 -\end{GrilleSutom} -\end{DemoCode} - -\begin{noteblock} -Comme indiqué dans l'introduction, la grille est créée à l'aide d'un environnement \motcletex!minipage!, avec gestion automatique de la largeur et des espacements. -\end{noteblock} - -\begin{DemoCode}[] -%sortie par défaut -\begin{GrilleSutom}{SUTOM} - SAUCE - SAUTS - SUTOM -\end{GrilleSutom} -\end{DemoCode} - -\subsection{Clés et options} - -\begin{tipblock} -Le premier argument, optionnel et entre \texttt{[...]}, propose les \Cle{clés} suivantes : - -\begin{itemize} - \item \Cle{Couleurs} : = couleur des cases, sous la forme \Cle{fond,mal placée,bien placée} ; - - \hfill{}défaut : \Cle{cyan!75!black,yellow,red},% - \item \Cle{Arrondi} := arrondi des coins, en mm ; \hfill{}défaut : \Cle{0.1} - \item \Cle{Unite} := largeur des cases, en cm ; \hfill{}défaut : \Cle{1} - \item \Cle{Police} := police des lettres ; \hfill{}défaut : \Cle{\textbackslash LARGE\textbackslash bfseries\textbackslash sffamily} - \item \Cle{CouleurLettres} := couleur des lettres ; \hfill{}défaut : \Cle{white} - \item \Cle{CouleurBordure} := couleur de la bordure des cases ; \hfill{}défaut : \Cle{white} - \item \Cle{Lettres} := booléen pour afficher les lettre ; \hfill{}défaut : \Cle{true} - \item \Cle{Style} := style parmi \Cle{rond / autre} pour changer le style ; \hfill{}défaut : \Cle{rond} - \item \Cle{Epaisseur} := épaisseur des traits, en mm. \hfill{}défaut : \Cle{0.25} -\end{itemize} -\vspace*{-\baselineskip}\leavevmode -\end{tipblock} - -\begin{tipblock} -Le second argument, obligatoire et entre \texttt{\{...\}} correspond au mot correct à trouver. - -\smallskip - -Les différentes propositions sont à donner (ligne par ligne ou séparées par des espaces) dans le corps de l'environnement. -\end{tipblock} - -\subsection{Exemples} - -\begin{DemoCode}[] -\begin{GrilleSutom}{BOURDON} - BALEINE - BOURBON - BROMURE - BOURDON -\end{GrilleSutom} -% -\hspace{5mm} -% -\begin{GrilleSutom}[Style=alt]{BOURDON} - BALEINE BOURBON BROMURE BOURDON -\end{GrilleSutom} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{GrilleSutom} - [Style=alt,Epaisseur=0.3,CouleurBordure=black,% - Couleurs={lightgray,orange,teal}]% - {BOURDON} - BALEINE BOURBON BROMURE BOURDON -\end{GrilleSutom} -% -\hspace{5mm} -% -\begin{GrilleSutom} - [Arrondi=0,Epaisseur=0.3,CouleurBordure=black,% - Couleurs={lightgray,orange,teal}]% - {BOURDON} - BALEINE BOURBON BROMURE BOURDON -\end{GrilleSutom} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{GrilleSutom}[Unite=2,Police=\Huge\ttfamily,CouleurLettres=black]{BOURDON} - BALEINE - BOURBON - BROMURE - BOURDON -\end{GrilleSutom} -\end{DemoCode} - -\begin{DemoCode}[] -\begin{GrilleSutom}% - [Unite=0.75,Arrondi=0,Couleurs={cyan,orange,violet},% - Style=alt,Lettres=false]{REBUS} - ABRIS - ROUTE - RUDES - REBUS -\end{GrilleSutom} -\hspace{5mm} -\begin{GrilleSutom}% - [Unite=0.75,Arrondi=0,Couleurs={cyan,orange,violet},Style=alt]{REBUS} - ABRIS - ROUTE - RUDES - REBUS -\end{GrilleSutom} -\end{DemoCode} - -\end{document}
\ No newline at end of file diff --git a/graphics/pgf/contrib/wordle/tex/wordle.sty b/graphics/pgf/contrib/wordle/tex/wordle.sty deleted file mode 100644 index 4df1801ba0..0000000000 --- a/graphics/pgf/contrib/wordle/tex/wordle.sty +++ /dev/null @@ -1,298 +0,0 @@ -% Author.........: C. Pierquet -% licence........: Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txtf -% Inspiration....: https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex - -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{wordle}[2023/09/03 v0.1.1 Wordle grid] -% 0.1.1 Coorection d'un bug sur la version anglaise -% 0.1.0 Version initiale + quelques modèles - -%------Packages utiles -\RequirePackage{tikz} -\RequirePackage{simplekv} -\RequirePackage{xstring} - -%commandes utiles -\usepackage{expl3} -\ExplSyntaxOn - -%boite en [fr] -\cs_new:Npn \l__sutom_boite_lettre:nn #1#2#3 -{ - \ifboolKV[SUTOM]{Lettres}% - {% - \tikz \draw[rounded~corners=\fpeval{#3*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) node[midway,font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#2} ; - }% - {% - \tikz \draw[rounded~corners=\fpeval{#3*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - }% -} - -\cs_new:Npn \l__sutom_boite_lettre_rond:nn #1#2#3#4 -{ - \IfStrEq{\SutomStyle}{rond} - {% - \tikz {\draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - \ifboolKV[SUTOM]{Lettres}% - {% - \draw[line~width=\SutomWidth~mm,draw=#2,fill=#2] ({0.5*\SutomUnit},{0.5*\SutomUnit}) circle[radius=\fpeval{0.5*\SutomUnit-0.1*\SutomWidth}] node[font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#3} ; - }% - {% - \draw[line~width=\SutomWidth~mm,draw=#2,fill=#2] ({0.5*\SutomUnit},{0.5*\SutomUnit}) circle[radius=\fpeval{0.5*\SutomUnit-0.1*\SutomWidth}]; - }% - }% - }% - {% - \ifboolKV[SUTOM]{Lettres}% - {% - \tikz \draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,line~width=0\SutomWidth~mm,draw=\SutomBorder,fill=#2] (0,0) rectangle++ (\SutomUnit,\SutomUnit) node[midway,font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#3} ; - }% - {% - \tikz \draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,line~width=\SutomWidth~mm,draw=\SutomBorder,fill=#2] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - }% - }% -} - -%boite en [en] -\cs_new:Npn \l__wordle_boite_lettre:nn #1#2#3 -{ - \ifboolKV[WORDLE]{Letters}% - {% - \tikz \draw[rounded~corners=\fpeval{#3*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) node[midway,font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#2} ; - }% - {% - \tikz \draw[rounded~corners=\fpeval{#3*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - }% -} - -\cs_new:Npn \l__wordle_boite_lettre_rond:nn #1#2#3#4 -{ - \IfStrEq{\SutomStyle}{default} - {% - \ifboolKV[WORDLE]{Letters}% - {% - \tikz \draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,line~width=\SutomWidth~mm,draw=\SutomBorder,fill=#2] (0,0) rectangle++ (\SutomUnit,\SutomUnit) node[midway,font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#3} ; - }% - {% - \tikz \draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,line~width=\SutomWidth~mm,draw=\SutomBorder,fill=#2] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - }% - }% - {% - \tikz {\draw[rounded~corners=\fpeval{#4*\SutomUnit}cm,draw=\SutomBorder,line~width=\SutomWidth~mm,fill=#1] (0,0) rectangle++ (\SutomUnit,\SutomUnit) ; - \ifboolKV[WORDLE]{Letters}% - {% - \draw[line~width=\SutomWidth~mm,draw=#2,fill=#2] ({0.5*\SutomUnit},{0.5*\SutomUnit}) circle[radius=\fpeval{0.5*\SutomUnit-0.1*\SutomWidth}] node[font=\SutomFonte,text=\SutomFonteColor,scale=\SutomUnit] {#3} ; - }% - {% - \draw[line~width=\SutomWidth~mm,draw=#2,fill=#2] ({0.5*\SutomUnit},{0.5*\SutomUnit}) circle[radius=\fpeval{0.5*\SutomUnit-0.1*\SutomWidth}]; - }% - }% - }% -} - -\seq_new:N \l_wordle_seq % the answer -\prop_new:N \l_wordle_prop % count letters in wordle -\seq_new:N \l_words_seq % list of all words -\prop_new:N \l_word_prop % count letters in word -\int_new:N \l_letter_int % index of current letter in word - -% a conditional for nonnegative prop counter in \l_word_prop -\prg_new_protected_conditional:Npnn \if_wordle_letter_nonnegative:n #1 {TF} -{ - \prop_if_in:NnTF \l_word_prop {#1} - { % letter in in prop - \prop_get:NnN \l_word_prop {#1} \l_tmpa_tl - \int_compare:nNnTF {\l_tmpa_tl} < {0} - {\prg_return_false:} {\prg_return_true:} - } - {\prg_return_false:} -} - -% a conditional for comparing letters -\prg_new_protected_conditional:Npnn \if_wordle_letters_agree:n #1 {T, TF} -{ - \str_set:Nx \l_tmpa_str {\seq_item:Nn \l_wordle_seq {\l_letter_int}} - \str_if_eq:nVTF {#1} \l_tmpa_str {\prg_return_true:} {\prg_return_false:} -} - -% add #3 to <prop=#1>.#2 -\cs_new_protected:Npn \wordle__add_to_prop_counter:Nnn #1#2#3 -{ - \prop_put_if_new:Nnn #1 {#2} {0} - \prop_pop:NnN #1 {#2} \l_tmp_a - \prop_put:Nnx #1 {#2} {\int_eval:n {#3+\l_tmp_a}} -} - -% make \l_wordle_prop<x> = #x's in wordle_seq -\cs_new_protected:Npn \count_letters_in_wordle:n #1 -{ - \wordle__add_to_prop_counter:Nnn \l_wordle_prop {#1} {1}% -} - -% first run: subtract correct matches from letter counts -\cs_new:Npn \count_letters_in_word:n #1 -{ - \int_incr:N \l_letter_int - \if_wordle_letters_agree:nT {#1} - { \wordle__add_to_prop_counter:Nnn \l_word_prop {#1} {-1} }% -} - -%commande [fr] -% on the second run we print a coloured wordle word -\cs_new:Npn \write_letters_in_word:n #1 -{ - \int_incr:N \l_letter_int - \if_wordle_letters_agree:nTF {#1} - { \l__sutom_boite_lettre:nn {\SutomBienPlacee}{#1}{\SutomRounded} } - { - % subtract 1 from the prop counter - \wordle__add_to_prop_counter:Nnn \l_word_prop {#1} {-1} - % if the counter is non-negative this is a pseudo match - \if_wordle_letter_nonnegative:nTF {#1} - { \l__sutom_boite_lettre_rond:nn {\SutomCoulFond}{\SutomCoulMalPlacee}{#1}{\SutomRounded} } - { \l__sutom_boite_lettre:nn {\SutomCoulFond}{#1}{\SutomRounded} } - }% -} - -%commande [en] -% on the second run we print a coloured wordle word -\cs_new:Npn \write_letters_in_wordle:n #1 -{ - \int_incr:N \l_letter_int - \if_wordle_letters_agree:nTF {#1} - { \l__wordle_boite_lettre:nn {\SutomBienPlacee}{#1}{\SutomRounded} } - { - % subtract 1 from the prop counter - \wordle__add_to_prop_counter:Nnn \l_word_prop {#1} {-1} - % if the counter is non-negative this is a pseudo match - \if_wordle_letter_nonnegative:nTF {#1} - { \l__wordle_boite_lettre_rond:nn {\SutomCoulFond}{\SutomCoulMalPlacee}{#1}{\SutomRounded} } - { \l__wordle_boite_lettre:nn {\SutomCoulFond}{#1}{\SutomRounded} } - }% -} - -%clés [fr] -\defKV[SUTOM]{% - Couleurs=\def\SutomCouleurs{#1},% - Arrondi=\def\SutomRounded{#1},% - Unite=\def\SutomUnit{#1},% - Police=\def\SutomFonte{#1},% - CouleurLettres=\def\SutomFonteColor{#1},% - Style=\def\SutomStyle{#1},% - Epaisseur=\def\SutomWidth{#1},% - CouleurBordure=\def\SutomBorder{#1} -} - -\setKVdefault[SUTOM]{% - Couleurs={cyan!75!black,yellow,red},% - Arrondi=0.1,% - Unite=1,% - Police=\LARGE\bfseries\sffamily,% - CouleurLettres=white,% - Lettres=true,% - Style=rond,% - Epaisseur=0.25,% - CouleurBordure=white -} - -%environnement [fr] -\NewDocumentEnvironment{GrilleSutom}{ O{} m b }% -{% - \restoreKV[SUTOM]% - \setKV[SUTOM]{#1}% - \StrBefore{\SutomCouleurs}{,}[\SutomCoulFond]% - \StrBetween[1,2]{\SutomCouleurs}{,}{,}[\SutomCoulMalPlacee]% - \StrBehind[2]{\SutomCouleurs}{,}[\SutomBienPlacee]% - \StrLen{#2}[\SutomNbLettres]% - \def\SutomLarg{\fpeval{1.01*\SutomUnit*\SutomNbLettres}}% - \begin{minipage}{\SutomLarg~cm} - \lineskip=0pt% - \parindent=0pt% - % split the answer into letters - \seq_set_split:Nnn \l_wordle_seq {} {#2} - % we need to count the number of times each letter appears in \l_wordle_seq - \prop_clear:N \l_wordle_prop - \tl_map_function:nN {#2} \count_letters_in_wordle:n - % split the solution into words - \regex_split:nnN {\s} {#3} \l_words_seq - % process the words - \seq_map_inline:Nn \l_words_seq - { - \int_zero:N \l_letter_int - \prop_set_eq:NN \l_word_prop \l_wordle_prop - \tl_map_function:nN {##1} \count_letters_in_word:n - \int_zero:N \l_letter_int - \tl_map_function:nN {##1} \write_letters_in_word:n - \par - } -}% -{% - \end{minipage}% -} - -%clés [en] -\definecolor{WordleBack}{HTML}{797D7F} -\definecolor{WordleBad}{HTML}{CAB557} -\definecolor{WordleGood}{HTML}{6AAB64} - -\defKV[WORDLE]{% - Colors=\def\SutomCouleurs{#1},% - Rounded=\def\SutomRounded{#1},% - Unit=\def\SutomUnit{#1},% - Fonte=\def\SutomFonte{#1},% - ColorLetters=\def\SutomFonteColor{#1},% - Style=\def\SutomStyle{#1},% - Thickness=\def\SutomWidth{#1},% - BorderColor=\def\SutomBorder{#1} -} - -\setKVdefault[WORDLE]{% - Colors={WordleBack,WordleBad,WordleGood},% - Rounded=0.1,% - Unit=1,% - Fonte=\LARGE\bfseries\sffamily,% - CouleurLettres=white,% - Letters=true,% - Style=default,% - Thick=0.25,% - BorderColor=white -} - -%environnement [en] -\NewDocumentEnvironment{WordleGrid}{ O{} m b } -{% - \restoreKV[WORDLE]% - \setKV[WORDLE]{#1}% - \StrBefore{\SutomCouleurs}{,}[\SutomCoulFond]% - \StrBetween[1,2]{\SutomCouleurs}{,}{,}[\SutomCoulMalPlacee]% - \StrBehind[2]{\SutomCouleurs}{,}[\SutomBienPlacee]% - \StrLen{#2}[\SutomNbLettres]% - \def\SutomLarg{\fpeval{1.01*\SutomUnit*\SutomNbLettres}}% - \begin{minipage}{\SutomLarg~cm} - \parindent=0pt - \lineskip=0pt - % split the answer into letters - \seq_set_split:Nnn \l_wordle_seq {} {#2} - % we need to count the number of times each letter appears in \l_wordle_seq - \prop_clear:N \l_wordle_prop - \tl_map_function:nN {#2} \count_letters_in_wordle:n - % split the solution into words - \regex_split:nnN {\s} {#3} \l_words_seq - % process the words - \seq_map_inline:Nn \l_words_seq - { - \int_zero:N \l_letter_int - \prop_set_eq:NN \l_word_prop \l_wordle_prop - \tl_map_function:nN {##1} \count_letters_in_word:n - \int_zero:N \l_letter_int - \tl_map_function:nN {##1} \write_letters_in_wordle:n - \par - } -}% -{% - \end{minipage}% -} - -\ExplSyntaxOff - -\endinput
\ No newline at end of file diff --git a/graphics/pgf/contrib/wordle/wordle-doc-en.pdf b/graphics/pgf/contrib/wordle/wordle-doc-en.pdf Binary files differnew file mode 100644 index 0000000000..7845bc31b5 --- /dev/null +++ b/graphics/pgf/contrib/wordle/wordle-doc-en.pdf diff --git a/graphics/pgf/contrib/wordle/wordle-doc-en.tex b/graphics/pgf/contrib/wordle/wordle-doc-en.tex new file mode 100644 index 0000000000..a638ed9496 --- /dev/null +++ b/graphics/pgf/contrib/wordle/wordle-doc-en.tex @@ -0,0 +1,921 @@ +% !TeX TS-program = pdflatex + +\documentclass[svgnames]{report} +\usepackage{wordle} +\usepackage{manfnt} +\usepackage{enumitem} +\setlist[description]{font=\sffamily\bfseries\color{ForestGreen},labelwidth=\textwidth} +\usepackage{booktabs} +\usepackage[a4paper,margin=18mm]{geometry} +\synctex=1 +\parindent=0pt +\parskip=2mm + +\usepackage{cmap} % fix search and cut-and-paste in Acrobat +\setcounter{secnumdepth}{0} + +\usepackage{listings}\lstset{language=[LaTeX]TeX,framerule=2pt} +\lstset{language=[LaTeX]TeX, + texcsstyle=*\bfseries\color{Peru}, + backgroundcolor=\color{Ivory}, + numbers=none, + breaklines=true, + keywordstyle=\color{Sienna}, + commentstyle=\color{BurlyWood}, + tabsize=2, + morekeywords={Wordle,wordle,GrilleSutom}, + resetmargins=true, +} +% hyperref links to ctan +\newcommand\ctan[1]{\href{https://www.ctan.org/pkg/#1}{\texttt{#1}}} + +\newcommand\Section[1]{\subsection{\textcolor{DarkGreen}{#1}}} + +\ExplSyntaxOn +\NewDocumentCommand\option{ omo }{% + \IfNoValueTF{#1}{\textsf{#2}} + {% + \textbf{\textcolor{Crimson}{#2}} + \str_if_empty:nF {#1}{~(default:~\textcolor{DarkRed}{#1})}% + \IfNoValueF{#3}{\hfill\textcolor{Gray}{[accepts:~#3]}}% + }% + \index{#2}% +} +\ExplSyntaxOff + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{imakeidx} +\indexsetup{level=\section*, toclevel=section, noclearpage} +\makeindex[intoc,columns=3] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[skins,listings]{tcolorbox} +\usetikzlibrary{backgrounds, shapes.geometric} % for tikz={framed,...} + +\DeclareTotalTCBox\keyword{ O{} v }{ + fontupper=\sffamily, + nobeforeafter, + skin=tile, + verbatim, + on line, + tcbox raise base, + top=0pt,bottom=0pt,left=0mm,right=0mm, + colback=OldLace, + colupper=ForestGreen, + #1} +{#2} + +\lstdefinestyle{tikz}{style=tcblatex, + classoffset=0, + texcsstyle=*\color{DarkGoldenrod},% + deletetexcs={begin, end}, + moretexcs={,% + node, + draw, + true, + false + },% + classoffset=1, + keywordstyle=\color{ForestGreen},% + morekeywords={wordle,GrilleSutom}, + classoffset=2, + keywordstyle=\color{Crimson},% + morekeywords={ + absent, + align, + border, + borders, + case, + color, + colors, + colour, + colours, + correct, + empty, + font, + frame, + frames, + letters, + lower, + name, + natural, + noalign, + noletters, + params, + present, + rounded, + rows, + scale, + sensitive, + separation, + shape, + shapes, + size, + strict, + style, + style, + text, + thickness, + tikz, + tile, + upper, + }, + classoffset=3, + keywordstyle=\color{DarkOrange},% + morekeywords={ + hard, + standard, + sutom, + } +} + +\DeclareTCBListing{example}{ !O{} }{% + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + lefthand width=50mm, + listing style=tikz, + sidebyside, + sidebyside align=center, + sidebyside gap=4mm, + text and listing, + text outside listing, + boxsep = 0pt, + #1 +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\makeatletter +\author{Andrew Mathas and Cédric Pierquet} +\usepackage{tikz} +\usetikzlibrary{shadows.blur} +\tikzset{shadowed/.style={blur shadow={shadow blur steps=5}, + bottom color=ForestGreen!30, + draw=MediumSeaGreen!70, + shade, + font=\normalfont\Huge\bfseries\scshape, + rounded corners=8pt, + top color=SeaGreen, + }, + boxes/.style={draw=SeaGreen, + fill=Cornsilk, + font=\sffamily\small, + inner sep=5pt, + rectangle, + rounded corners=8pt, + text=DarkGreen, + } +} +\newcommand\Wordle{% + \begin{tikzpicture}[remember picture,overlay] + \node[yshift=-3cm] at (current page.north west) + {\begin{tikzpicture}[remember picture, overlay] + \draw[shadowed](30mm,0) rectangle node[white]{wordle} (\paperwidth-30mm,16mm); + \node[anchor=west,boxes] at (4cm,0cm) {\@author}; + \node[anchor=east,boxes] at (\paperwidth-4cm,0) {Version \wordle@version}; + \end{tikzpicture} + }; + \end{tikzpicture} + \vspace*{20mm} +} + +\def\@oddfoot{\textsc{Wordle} --- \wordle@version~(released~\wordle@release)\hfill\thepage} + +\usepackage[colorlinks=true,linkcolor=blue,urlcolor=MediumBlue]{hyperref} +\hypersetup{ + pdfcreator={ Generated by pdfLaTeX }, + pdfinfo={ + Author ={ Andrew Mathas and Cédric Pierquet}, + Keywords={ wordle }, + License ={ LaTeX Project Public License v1.3c or later }, + Subject ={ LaTeXing Wordle puzzles }, + Title ={ Wordle - \wordle@version } + }, +} +\makeatother + +\begin{document} + + \Wordle + + This package provides a stupidly feature-rich way of creating + \keyword{Wordle} puzzles in \LaTeX, which + \href{https://en.wikipedia.org/wiki/Wordle}{Wikipedia} describes as a + hugely popular web-based word game created and developed by Welsh + software engineer Josh Wardle. This package is an enhanced version of + one of the solutions to a question asked by \textcolor{FireBrick}{valerio\_new} + on + \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com}. + + This package provides the \keyword{wordle} environment, which uses the + syntax: + + \begin{tcblisting}{ + listing only, + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + listing style=tikz, + boxsep = 0pt, + } + % \usepackage{wordle} + \begin{wordle}[wordle settings]{solution}[optional tikz commands] + guess1 guess2 ... + \end{wordle} + \end{tcblisting} + \index{environment!wordle} + \index{wordle} + + and the \keyword{GrilleSutom} environment, for \keyword{Sutom}, the French version of + the games: + + \begin{tcblisting}{ + listing only, + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + listing style=tikz, + boxsep = 0pt, + } + % \usepackage{wordle} + \begin{GrilleSutom}[sutom settings]{solution}[optional TikZ commands] + guess1 guess2 ... + \end{GrilleSutom} + \end{tcblisting} + \index{environment!GrilleSutom} + \index{GrilleSutom} + \index{sutom} + + The words in the puzzle can be entered on a single lines, or on separate + lines. Here are some examples: + + \begin{example} + \begin{wordle}{ANVIL} + % English version of sutom (wordle) + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + \begin{example} + % French version of wordle (sutom) + \begin{GrilleSutom}{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + As in the online puzzles, the \keyword{wordle} environment + automatically colours the letter tiles + \keyword[colback=WordleCorrect,colupper=White]{green} + when the letter is in the same position as the solution, and as + \keyword[colback=WordlePresent,colupper=White]{gold} when + the letter is in the solution but it is not in the correct position. + Similarly, \keyword{GrilleSutom} colours the correct letters + \keyword[colback=WordleSutomCorrect,colupper=White]{red} + and the present letters + \keyword[colback=WordleSutomPresent,colupper=White]{gold}. + As described below, these colours can be changed to suit your tastes. + + The number of letters in the puzzle is determined by the solution, + being constrained only by the page width. + + \begin{example} + \begin{wordle}[rows=4]{orange} + normal + orders + orange + \end{wordle} + \end{example} + + The letters in the puzzle can be entered in upper case, lower case, or + mixed case. By default, the case of the letters is ignored when + determining the colours of the letter tiles. + + As described below, the \keyword{wordle} and \keyword{GrilleSutom} + environments accept an array of different options that change the + colours, fonts, and shapes of the tile. In addition, you can the case + sensitivity of the environments, add extra rows to the puzzle, disable + special formatting of the \textit{letter tiles}. These options are + given as a comma separated list key-value pairs. They can be set + locally, using the optional argument of the \keyword|wordle| + environment, or they can be set globally (more accurately, in the + current \LaTeX\ group) using the \keyword{\WordleSetup} command + \index{\textbackslash WordleSetup}, or as global package options, via + \keyword{\usepackage[options]{wordle}}. The order of the options does + not matter, except that later options take precedence over earlier + ones, with the exception of \option{tikz} and \option{tile style} keys + which are always applied last. + + The \keyword{wordle} puzzles are drawn using \ctan{TikZ}, with each + letter in the puzzle sitting inside a \ctan{TikZ} node. Many of the + options control the settings of these nodes. + + The descriptions of the options below are grouped according to their + function. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Wordle styles} + + The \option{style} key can be used to change many characteristics of + the tiles in a \keyword{wordle} puzzle, including their colours, the + fonts and so on. The more common settings can be setting using the + \option{style} keyword. \textit{The style should always be set first + because, otherwise, the style settings may override earlier settings.} + + The following styles are supported: + + \textcolor{DarkOrange}{sutom} + \index{style!sutom} + \index{sutom} + + \begin{example} + \begin{wordle}[style=sutom]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + The \textcolor{DarkOrange}{sutom} style is the default + style for the \keyword{GrilleSutom} environment. + + \textcolor{DarkOrange}{standard} + \index{style!standard} + + \begin{example} + \begin{wordle}[style=standard]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + The \textcolor{DarkOrange}{standard} style is the default style for the + \keyword{wordle} environment. + + \textcolor{DarkOrange}{hard} + \index{style!hard} + + \begin{example} + \begin{wordle}[style=hard]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Options for the individual styles of the letter tiles} + + There are four types of letter tiles in \keyword{wordle}: + \option{absent}, \option{present}, \option{correct} and + \option{empty}, corresponding to letters not in the solution, + incorrectly placed letters, correctly placed letters, and empty + tiles, respectively. The options in this section can be used to set + the text, tile and border colours, shapes, and frames of these tiles. + + The letter tiles in a \keyword{wordle} environment are typeset inside + a \ctan{TikZ} \keyword{\node}. The options below control the different + style settings of these nodes. + + \option[--]{colours}[comma separated list of valid colours] + + The \option{colours} option is a short-hand for specifying the colours + of the \option{absent}, \option{present}, \option{correct} and + \option{empty} tiles, in that order. Later colours can be omitted but + the colours should be given in this order, from left to right. + If only one colour is given then this colour is applied to all tiles. + + \begin{example} + \begin{wordle}[colours={LightGray,Orange,Teal}]{cellar} + pounds + taylor + cellar + \end{wordle} + \end{example} + + The colours can also be set individually using \option{absent colour}, + \option{present colour}, \option{correct colour} and \option{empty + colour}. To support north American dialects, is also possible to use + \option{colors}, \option{absent color}, \option{present color}, + \option{correct color} and \option{empty color}. + + \begin{example} + \begin{wordle}[absent colour=DarkGray,present color=Salmon, + correct color=SeaGreen]{cellar} + pounds + taylor + cellar + \end{wordle} + \end{example} + + \option[white]{borders}[comma separated list of valid colours] + + Similar to the \option{colours} option, this is a short-hand for the + setting border colour of the \option{absent}, \option{present}, + \option{correct} and \option{empty} tiles, in that order. + If only one colour is given then this colour is applied to all tiles. + + \begin{example} + \begin{wordle}[borders={red, orange,blue}]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + You can set the border borders of the individual tiles using + \option{absent border}, \option{present border}, \option{correct + border} and \option{empty border} + + \option[false]{frames}[comma separated list of true/false] + + This is a short-hand for adding a rectangular frame around the + \option{absent}, \option{present}, \option{correct} and \option{empty} + tiles, in that order, with the same background colour as the + \option{absent} file. This is only useful for non-square tiles. + + \begin{example} + \begin{wordle}[frames={false,true,true}, shapes=circle]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + You can set the frames of the individual tiles using + \option{absent frame}, \option{present frame}, + \option{correct frame} and \option{empty~frame}. + + \option[rectangle]{shapes}[comma separated list of TikZ shapes] + + Similar to the \option{colours} option, this is a short-hand for the + setting shape colour of the \option{absent}, \option{present}, + \option{correct} and \option{empty} tiles, in that order. + + \begin{example} + \begin{wordle}[shapes={circle, rectangle, circle}]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + You can set the shape shapes of the individual tiles using + \option{absent shape}, \option{present shape}, + \option{correct shape} and \option{empty shape} + You can use the shapes provided by the \ctan{TikZ} + \texttt{shapes.geometric} package, including \texttt{diamond}, + \texttt{ellipse}, \texttt{trapezium} and \texttt{star}; see + section~71.2 of the \ctan{TikZ} manual. + + \begin{example} + % \usepackage{shapes.geometric} + \begin{wordle}[shapes={diamond, ellipse, star}]{LADLE} + FLAIL + LAPEL + * + LADLE + LOVER + \end{wordle} + \end{example} + + \option[white]{text}[comma separated list of valid colours] + + This is a short-hand for the setting the text colours of the + \option{absent}, \option{present}, \option{correct} and \option{empty} + tiles, in that order. + + \begin{example} + \begin{wordle}[text={red, orange,blue}]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + You can set the text borders of the individual tiles using + \option{absent text}, \option{present border}, \option{correct + text} and \option{empty border} + + + \Section{Common tile characteristics} + + The following options apply to all tiles. + + \option[]{noalign} (default) \qquad + \option[]{align} + + The options tweak the vertical alignment of the letters in each row of + the puzzle. This is only likely to be useful if you have lower case + letters in your puzzle. + + \begin{example} + \begin{wordle}[align]{agony} + groan + angry + agony + \end{wordle} + \end{example} + + \begin{example} + \begin{wordle}[noalign]{agony} % the default + groan + angry + agony + \end{wordle} + \end{example} + + \option[\textbackslash Large\textbackslash bfseries\textbackslash sffamily]{font} + [LaTeX font specification] + + Sets the font used by all \keyword{wordle} letters. Any valid sequence + of \LaTeX\ font commands can be used. + + \begin{example} + \begin{wordle}[font=\large\sffamily]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + \option[1mm]{rounded}[a length] + + Set TikZ \texttt{rounded corners} key for the \keyword{wordle} letter tiles. + + \begin{example} + \begin{wordle}[rounded=2mm]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + \option[0.5mm]{separation}[a length] + + Sets the separation distance between the \keyword{wordle} letter + tiles. + + \begin{example} + \begin{wordle}[separation=2mm, borders=black]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + \option[1]{scale}[a number] + + The \option{scale} option rescales the \keyword{wordle} environment. + The \option{scale} alters the dimensions sets by the \option{rounded}, + \option{separation} \option{size} and \option{thickness} options. If + you change the scale, then you will almost certainly want + to change font size font as well, which you can do using the + \option{font} option: + + \begin{example} + \begin{wordle}[scale=1.5, font=\huge\bfseries]{SIZE} + HELP + WISE + SIZE + \end{wordle} + \end{example} + + \option[8mm]{size}[a length] + + The \option{size} option sets the size of the \keyword{wordle} letter + tiles. Unlike the \option{scale} option, \option{size} only changes + the dimensions of the letter tiles. + + \begin{example} + \begin{wordle}[size=10mm, font=\huge\bfseries]{LADLE} + FLAIL LAPEL * LADLE + \end{wordle} + \end{example} + + \option[0.25mm]{thickness}[a length] + + Sets the border thickness of the \keyword{wordle} letter tiles. By + default, the borders of the tiles are white, which makes this setting + hard to see, so the following example changes the border to red. + + \begin{example} + \begin{wordle}[thickness=1mm, borders=red]{LADLE} + FLAIL + LAPEL + LADLE + \end{wordle} + \end{example} + + \option[--]{tile style}[comma separated list of TikZ style keys] + + A comma-separated list of \ctan{Tikz} node keys that are appended to + the style of the \ctan{TikZ} node that contains each of the + \keyword{wordle} letters. Some of the options given above can be set + directly using the \option{tile style} option. When using the + \option{tile style}, be careful not to break the special formatting of + letters provided by the \keyword{wordle} environment.\par + + With most of the \keyword{wordle} options, the latter options take + precedence, however, the \option{tile style} option is applied last, + so it overrides any competing options. + + % TODO: Fix this because it looks like this style is being applied + % twice because the PDF file shows a rotation of 90 = 2*45... + \begin{example} + \begin{wordle}[tile style={rotate=45}]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Extra rows and columns} + + By default, all of the words in a \keyword{wordle} puzzle are assumed + to have the same number of letters as the solution, and the number of + rows in the puzzle is number of words given in the environment. The + options below give more control over the number of rows and columns in + the puzzle. + + \option[]{letters} (default)\qquad + \option[]{noletters} + + By default, the letters in the puzzle are printed. You can hide the + letters from the puzzle, while still keeping the \keyword{wordle} tile + colouring, using \option{noletters}. + + \begin{example} + \begin{wordle}[letters]{CRAZE} % the default + TRACE + CREAM + CRAZE + \end{wordle} + \end{example} + + \begin{example} + \begin{wordle}[noletters]{CRAZE} + TRACE + CREAM + CRAZE + \end{wordle} + \end{example} + + \option[false]{strict}[true/false/--] + + By default, the \keyword{wordle} environment does not check that each + word in the puzzle has the same length as the solution, so missing + and extra letters receive no special processing. + + \begin{example} + \begin{wordle}[strict=false]{CRAZE} % the default + GRAIL + CRAMPS + CRAM + CRABS + \end{wordle} + \end{example} + + The \option{strict} option enforces the word length in the puzzle by + marking missing letters as incorrect and striking out extra letters. + + \begin{example} + \begin{wordle}[strict]{CRAZE} + GRAIL + CRAMPS + CRAM + CRABS + \end{wordle} + \end{example} + + \option[--]{rows} + + By default, a \keyword{wordle} environment displays the words + in the puzzle environment with one word per row. You can add extra + (blank) rows to the puzzle with the \option{rows} option. + + \begin{example} + \begin{wordle}[rows=4]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + The \option{rows} option only adds extra rows to the puzzle if they + are needed. This option does not prevent ``extra'' rows from + appearing. + + \begin{example} + \begin{wordle}[rows=2]{ANVIL} + CRANE + NATAL + ANVIL + \end{wordle} + \end{example} + + + \option[]{*} + + You can disable the special colouring of letter tiles in a + \keyword{wordle} puzzle by adding an asterisk,~\option{*}, as a + \textit{word}, into the puzzle. + + \begin{example} + \begin{wordle}{ANVIL} + CRANE + NATAL + * % disable wordle colouring + ANNUL + ANVIL + \end{wordle} + \end{example} + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Case sensitivity} + \index{case~sensitive} + \index{case~sensitive!lower case} + \index{case~sensitive!natural case} + \index{case~sensitive!upper case} + + By default, the letters are printed in upper and lower case, exactly + as typed, and the letter comparisons are not case sensitive. + + \option[false]{case~sensitive} + + By default the \keyword{wordle} puzzles are not case sensitive, but + you can make them case sensitive using this option. Note that + \keyword{case sensitive} is the same as \keyword{case sensitive=true} + (and the default option is the same as + \keyword{case sensitive=false}). + + \begin{example} + \begin{wordle}[case sensitive=false]{youth} % the default + North + South + Youth + \end{wordle} + \end{example} + + Here is a case sensitive version of this puzzle. + + \begin{example} + \begin{wordle}[case sensitive]{youth} + North + South + Youth + \end{wordle} + \end{example} + + As this puzzle is case sensitive, the \keyword{Y} on the last line is + not marked as being correct because it does not match the \keyword{y} + in the solution. + + \option[]{natural case} (default) \qquad + \option[]{lower case} \qquad + \option[]{upper case} + + The \option{lower case} and \option{upper case} options force all + letters in the puzzle to be in lower or upper case, respectively. + + \begin{example} + \begin{wordle}[lower case]{YOUTH} + North + South + Youth + \end{wordle} + \end{example} + + \begin{example} + \begin{wordle}[upper case]{youth} + North + South + Youth + \end{wordle} + \end{example} + + As these examples show, both of these options disable the case + sensitivity of the tests for colouring the \keyword{wordle} tiles; + that is, they set \option{case sensitive=false}. To balance the + \option{lower case} and \option{upper case} options, the + \option{natural case} option makes the \keyword{wordle} environment + restores the default behaviour, which respects the case of the letters + as typed into the environment. The \option{natural case} option does + not change the \option{case sensitive} setting. + + \begin{example} + \begin{wordle}[natural case]{youth} % the default + North + South + youth + \end{wordle} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Adding \ctan{TikZ} code} + + The \keyword{wordle} environment is a fancy wrapper around a + \keyword{tikzpicture} environment, with some code under the hood that + automatically colours the letter tiles according to how well they + match the solution. The options in this section describe how to access + the underlying \ctan{TikZ} layer. + + \option[]{tikz}[TikZ commands] + + The \option{tikz} option passes \ctan{TikZ} keys to the underlying + \keyword{tikzpicture} environment. The \option{tikz} option is almost + the same as using a \keyword{\tikzset{...}} command before the + \keyword{wordle} environment except that it is applied to the + \keyword{tikpicture} environment, which contains the \keyword{wordle} + puzzle, such that the \option{tikz} keys are applied \textit{after} + all of options above and \textit{before} \option{tile style} is + applied. + + \begin{example} + % \usetikzlibrary{backgrounds} + \begin{wordle}[ + tikz={framed, + background rectangle/.style={ + double,ultra thick, draw=SteelBlue + } + }]{youth} + North South youth + \end{wordle} + \end{example} + + As this example indicates, it is advisable to enclose complicated + \ctan{TikZ} settings inside braces. + + \option[W]{name} + + All of the tiles in a \keyword{wordle} puzzle are given node names of + the form $\langle$\textsf{name}$\rangle$-$\mathsf{r}$-$\mathsf{c}$, + for the tile in row~$\mathsf{r}$ and column~$\mathsf{c}$. By default, + the prefix \textsf{name} is \texttt{W}. Within reason, the + \option{name} prefix can be changed to anything you like using the + \option{name} option. + + One way to use the named nodes for the letter tiles is with + \ctan{TikZ} \texttt{overlay} and \texttt{remember picture} keys: + + \begin{example} + \begin{wordle}[tikz={remember picture}]{CRAZE} + TRACE + CREAM + CRAZE + \end{wordle} + \end{example} + + This makes it possible, for example, to draw arrows to tiles in a + \keyword{wordle} puzzle: + + \begin{example} + \tikz[remember picture]\draw[overlay, very thick, opacity=0.5,->,red](0,0)node{No M!} to [out=90, in=180](W-2-5); + \end{example} + + A second use of the tile node names is in conjunction with \ctan{TikZ} + commands that can be added to a \keyword{wordle} puzzle using the + second optional argument to the environment. As with the \option{tikz} + option, it is advisable to enclose complicated \ctan{TikZ} commands + inside braces. + + \begin{example} + \begin{wordle}[name=M, + tikz={arr/.style={Red,ultra thick,->}} + ]{MACAW} + [{ + \draw[arr](M-1-3.south)--(M-3-2.north)--(M-4-2.north); + \draw[arr](M-1-1.south)--(M-3-5)--(M-4-3.north east); + }] + CRANE HOTLY BASIC MACAW + \end{wordle} + \end{example} + + In practice, we are not convinced that anyone will find a real use for this! + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{The package code} + + The \keyword{wordle} package is a \LaTeX3 package. There are many + comments in the code explaining how the code works. The automatic + colouring of the letter tiles is a fun exercise in \LaTeX3 + programming, which was motivated by a + \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com} post. + + Bug reports and feature requests can be made on \href{https://github.com/AndrewMathas/Wordle}{github}. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \printindex + +\end{document} diff --git a/graphics/pgf/contrib/wordle/wordle-doc-fr.pdf b/graphics/pgf/contrib/wordle/wordle-doc-fr.pdf Binary files differnew file mode 100644 index 0000000000..09d306b0f3 --- /dev/null +++ b/graphics/pgf/contrib/wordle/wordle-doc-fr.pdf diff --git a/graphics/pgf/contrib/wordle/wordle-doc-fr.tex b/graphics/pgf/contrib/wordle/wordle-doc-fr.tex new file mode 100644 index 0000000000..039bc7a158 --- /dev/null +++ b/graphics/pgf/contrib/wordle/wordle-doc-fr.tex @@ -0,0 +1,767 @@ +% !TeX TS-program = pdflatex + +\documentclass[svgnames]{report} +\usepackage[utf8]{inputenc} +\usepackage{wordle} +\usepackage{manfnt} +\usepackage{enumitem} +\setlist[description]{font=\sffamily\bfseries\color{ForestGreen},labelwidth=\textwidth} +\usepackage{booktabs} +\usepackage[a4paper,margin=18mm]{geometry} +\synctex=1 +\parindent=0pt +\parskip=2mm + +\usepackage{cmap} % fix search and cut-and-paste in Acrobat +\setcounter{secnumdepth}{0} + +\usepackage{listings}\lstset{language=[LaTeX]TeX,framerule=2pt} +\lstset{language=[LaTeX]TeX, + texcsstyle=*\bfseries\color{Peru}, + backgroundcolor=\color{Ivory}, + numbers=none, + breaklines=true, + keywordstyle=\color{Sienna}, + commentstyle=\color{BurlyWood}, + tabsize=2, + morekeywords={Wordle,wordle,GrilleSutom}, + resetmargins=true, +} +% hyperref links to ctan +\newcommand\ctan[1]{\href{https://www.ctan.org/pkg/#1}{\texttt{#1}}} + +\newcommand\Section[1]{\subsection{\textcolor{DarkGreen}{#1}}} + +\ExplSyntaxOn +\NewDocumentCommand\option{ omo }{% + \IfNoValueTF{#1}{\textsf{#2}} + {% + \textbf{\textcolor{Crimson}{#2}} + \str_if_empty:nF {#1}{~(défaut~:~\textcolor{DarkRed}{#1})}% + \IfNoValueF{#3}{\hfill\textcolor{Gray}{[accepte~:~#3]}}% + }% + \index{#2}% +} +\ExplSyntaxOff + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage{imakeidx} +\indexsetup{level=\section*, toclevel=section, noclearpage} +\makeindex[intoc,columns=3] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\usepackage[skins,listings]{tcolorbox} +\usetikzlibrary{backgrounds, shapes.geometric} % for tikz={framed,...} + +\DeclareTotalTCBox\keyword{ O{} v }{ + fontupper=\sffamily, + nobeforeafter, + skin=tile, + verbatim, + on line, + tcbox raise base, + top=0pt,bottom=0pt,left=0mm,right=0mm, + colback=OldLace, + colupper=ForestGreen, + #1} +{#2} + +\lstdefinestyle{tikz}{style=tcblatex, + classoffset=0, + texcsstyle=*\color{DarkGoldenrod},% + deletetexcs={begin, end}, + moretexcs={,% + node, + draw, + true, + false + },% + classoffset=1, + keywordstyle=\color{ForestGreen},% + morekeywords={wordle,GrilleSutom}, + classoffset=2, + keywordstyle=\color{Crimson},% + morekeywords={ + absent, + Strict, + Taille, + Lignes, + Epaisseur, + align, + border, + borders, + Bords, + Cadres, + Style, + Formes, + Separation, + case, + Police, + Arrondi, + Echelle, + NonLettres, + color, + Couleurs, + CouleurBordures, + CouleurLettres, + bordure, + couleur, + colours, + correct, + vide, + font, + frame, + frames, + letters, + lower, + params, + name, + natural, + noalign, + noletters, + present, + rounded, + rows, + scale, + sensitive, + separation, + shape, + shapes, + size, + strict, + style, + style, + text, + thickness, + tikz, + tile, + upper, + }, + classoffset=3, + keywordstyle=\color{DarkOrange},% + morekeywords={ + hard, + standard, + sutom, + } +} + +\DeclareTCBListing{example}{ !O{} }{% + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + lefthand width=50mm, + listing style=tikz, + sidebyside, + sidebyside align=center, + sidebyside gap=4mm, + text and listing, + text outside listing, + boxsep = 0pt, + #1 +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\makeatletter +\author{Andrew Mathas \&\ Cédric Pierquet} +\usepackage{tikz} +\usetikzlibrary{shadows.blur} +\tikzset{shadowed/.style={blur shadow={shadow blur steps=5}, + bottom color=ForestGreen!30, + draw=MediumSeaGreen!70, + shade, + font=\normalfont\Huge\bfseries\scshape, + rounded corners=8pt, + top color=SeaGreen, + }, + boxes/.style={draw=SeaGreen, + fill=Cornsilk, + font=\sffamily\small, + inner sep=5pt, + rectangle, + rounded corners=8pt, + text=DarkGreen, + } +} +\newcommand\Wordle{% + \begin{tikzpicture}[remember picture,overlay] + \node[yshift=-3cm] at (current page.north west) + {\begin{tikzpicture}[remember picture, overlay] + \draw[shadowed](30mm,0) rectangle node[white]{wordle} (\paperwidth-30mm,16mm); + \node[anchor=west,boxes] at (4cm,0cm) {\@author}; + \node[anchor=east,boxes] at (\paperwidth-4cm,0) {Version \wordle@version}; + \end{tikzpicture} + }; + \end{tikzpicture} + \vspace*{20mm} +} + +\def\@oddfoot{\textsc{Wordle} --- \wordle@version~(version~du~\wordle@release)\hfill\thepage} + +\usepackage[colorlinks=true,linkcolor=blue,urlcolor=MediumBlue]{hyperref} +\hypersetup{ + pdfcreator={ Generated by pdfLaTeX }, + pdfinfo={ + Author ={ Andrew Mathas et Cédric Pierquet }, + Keywords={ wordle }, + License ={ LaTeX Project Public License v1.3c or later }, + Subject ={ LaTeXing Wordle puzzles }, + Title ={ Wordle - \wordle@version } + }, +} +\makeatother + +\begin{document} + + \Wordle + + Ce package fournit un moyen \textit{stupidement} riche en fonctionnalités de créer des puzzles \keyword{Wordle} en \LaTeX, que \href{https://en.wikipedia.org/wiki/Wordle}{Wikipedia} décrit comme + comme un jeu de lettres en ligne extrêmement populaire, créé et développé par l'ingénieur logiciel gallois Josh Wardle. Ce paquet + est une version améliorée d'une des solutions à une question posée par \textcolor{FireBrick}{valerio\_new} sur \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com}. + + Ce paquet fournit l'environnement \keyword{GrilleSutom}, qui utilise la syntaxe : + + \begin{tcblisting}{ + listing only, + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + listing style=tikz, + boxsep = 0pt, + } + % \usepackage{wordle} + \begin{GrilleSutom}[params sutom]{solution}[commandes tikz optionnelles] + essai1 essai2 ... + \end{GrilleSutom} + \end{tcblisting} + \index{environnement!GrilleSutom} + \index{GrilleSutom} + \index{sutom} + + et l'environnement \keyword{wordle}, pour la version anglaise du jeu : + + \begin{tcblisting}{ + listing only, + skin=bicolor, + colframe=MediumSeaGreen, + colbacklower=OldLace, + colback=LawnGreen!20, + listing style=tikz, + boxsep = 0pt, + } + % \usepackage{wordle} + \begin{wordle}[params wordle]{solution}[commandes tikz optionnelles] + essai1 essai2 ... + \end{wordle} + \end{tcblisting} + \index{environnement!wordle} + \index{wordle} + + Les mots du puzzle peuvent être saisis sur une seule ligne ou sur des lignes séparées. Voici quelques exemples : + + \begin{example} + %Version fr du wordle (sutom) + \begin{GrilleSutom}{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + \begin{example} + % Version en du sutom (wordle) + \begin{wordle}{SUTOM} + SAUCE + SAUTS + SUTOM + \end{wordle} + \end{example} + + Comme pour les puzzles en ligne, l'environnement \keyword{GrilleSutom} + colore automatiquement les lettres en + \keyword[colback=WordleSutomCorrect,colupper=White]{rouge} + lorsque la lettre se trouve dans la même position que la solution, et en + \keyword[colback=WordlePresent,colupper=White]{or} lorsque la lettre est dans la solution mais qu'elle n'est pas bien placée. + De même, \keyword{GrilleSutom} colore les lettres correctes en + \keyword[colback=WordleCorrect,colupper=White]{vert} + et les lettres actuelles en + \keyword[colback=WordleCorrect,colupper=White]{or}. + Comme décrites ci-dessous, ces couleurs peuvent être modifiées en fonction de vos goûts. + + Le nombre de lettres du puzzle est déterminé par la solution, et n'est limité que par la largeur de la page. + + \begin{example} + \begin{GrilleSutom}[Lignes=4]{orange} + normal + ordres + orange + \end{GrilleSutom} + \end{example} + + Les lettres du puzzle peuvent être saisies en majuscules, en minuscules ou en mélange de majuscules et de minuscules. Par défaut, la casse des lettres est ignorée lors de la détermination des couleurs des cases de lettres. + + Comme décrit ci-dessous, les environnements \keyword{wordle} et \keyword{GrilleSutom} acceptent une liste d'options différentes qui modifient les couleurs, les polices et les formes de la tuile. De plus, vous pouvez modifier la sensibilité à la casse des environnements, ajouter des lignes supplémentaires au puzzle, désactiver la mise en forme spéciale des \textit{cases de lettres}. Ces options sont données sous la forme d'une liste séparée par des virgules de paires \texttt{clé-valeur}. Elles peuvent être définies localement, en utilisant l'argument optionnel de l'environnement \keyword|wordle|, ou globalement (plus précisément, dans le groupe \LaTeX\ actuel) en utilisant la commande \keyword{\ParamsSutom} \index{\textbackslash ParamsSutom}, ou comme options globales du package, via \keyword{\usepackage[options]{wordle}}. L'ordre des options n'a pas d'importance, sauf que les options ultérieures ont priorité sur les options précédentes, à l'exception des clés \option{tikz} et \option{tile style} qui sont toujours appliquées en dernier. + + Les puzzles \keyword{wordle} sont dessinés à l'aide de \ctan{TikZ}, chaque lettre du puzzle étant placée à l'intérieur d'un nœud \ctan{TikZ}. De nombreuses options contrôlent les paramètres de ces nœuds. Les descriptions des options ci-dessous sont regroupées en fonction de leur fonction. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Styles Wordle} + + La clé \option{Style} peut être utilisée pour modifier de nombreuses caractéristiques des cases dans un puzzle \keyword{wordle}, y compris leurs couleurs, les polices et ainsi de suite. Les paramètres les plus courants peuvent être définis à l'aide du mot-clé \option{style}. \textit{Le style doit toujours être défini en premier car, sinon, les paramètres de style peuvent remplacer les paramètres précédents.} + + Les styles suivants sont pris en charge : + + \textcolor{DarkOrange}{sutom} + \index{Style!sutom} + \index{sutom} + + \begin{example} + \begin{GrilleSutom}[Style=sutom]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + En plus de définir les couleurs des cases, les cadres et les formes, le style \textsf{sutom} définit également la taille des cases à 8 mm. Le style \textsf{sutom} est le style par défaut pour l'environnement \keyword{GrilleSutom}. + + \textcolor{DarkOrange}{standard} + \index{style!standard} + + \begin{example} + \begin{GrilleSutom}[Style=standard]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + Le style \textcolor{DarkOrange}{standard} est le style par défaut pour l'environnement \keyword{wordle}. + + \textcolor{DarkOrange}{hard} + \index{style!hard} + + \begin{example} + \begin{GrilleSutom}[Style=hard]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Options pour les styles individuels des cases de lettres} + + Il existe quatre types de cases de lettres dans \keyword{wordle} : + \option{absent}, \option{present}, \option{correct} et + \option{vide}, correspondant respectivement aux lettres qui ne sont pas dans la solution, + aux lettres mal placées, aux lettres correctement placées et aux cases vides. Les options de cette section peuvent être utilisées pour + définir les couleurs du texte, des cases et des bordures, les formes et les cadres de ces cases. + + Les cases de lettres dans un environnement \keyword{wordle} sont composées à l'intérieur + d'un \keyword{\node} \ctan{TikZ}. Les options ci-dessous contrôlent les + différents paramètres de style de ces nœuds. + + \option[--]{Couleurs}[liste de couleurs valides séparées par des virgules] + + L'option \option{Couleurs} est un raccourci pour spécifier les + couleurs des cases \option{absent}, \option{present}, \option{correct} et + \option{vide}, dans cet ordre. Les couleurs suivantes peuvent être omises, mais + les couleurs doivent être données dans cet ordre, de gauche à droite. + Si une seule couleur est donnée, cette couleur est appliquée à toutes les cases. + + \begin{example} + \begin{GrilleSutom}[Couleurs={LightGray,Orange,Teal}]{cellar} + pounds + taylor + cellar + \end{GrilleSutom} + \end{example} + + Les couleurs peuvent également être définies individuellement à l'aide de \option{couleur absent}, \option{couleur present}, \option{couleur correct} et \option{couleur vide}. + + \begin{example} + \begin{GrilleSutom}[couleur absent=DarkGray,couleur present=Salmon, + couleur correct=SeaGreen]{cellar} + pounds + taylor + cellar + \end{GrilleSutom} + \end{example} + + \option[white]{CouleurBordures}[liste de couleurs valides séparées par des virgules] + + de manière similaire à l'option \option{Couleurs}, il s'agit d'un raccourci pour le paramétrage des couleurs des bordures des cases \option{absent}, \option{present}, + \option{correct} et \option{vide}, dans cet ordre. + + Si une seule couleur est donnée, elle est appliquée à toutes les cases. + + \begin{example} + \begin{GrilleSutom}[CouleurBordures={red,orange,blue}]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + Les bordures pour les cases individuelles peuvent être paramétrer via + \option{bordure absent}, \option{bordure present}, \option{bordure correct} et \option{bordure vide}. + + \option[false]{Cadres}[liste de booléens true/false séparées par des virgules] + + Il s'agit d'un raccourci pour ajouter un cadre autour des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre, avec la même couleur que \option{absent}. C'est utile uniquement pour les cases non carrée. + + \begin{example} + \begin{GrilleSutom}[Cadres={false,true,true},Formes=circle]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + Les cadres pour les cases individuelles peuvent être paramétrer via \option{cadre absent}, \option{cadre present}, + \option{cadre correct} and \option{cadre vide}. + + \option[rectangle]{Formes}[liste de formes TikZ séparées par des virgules] + + De même que pour l'option \option{Couleurs}, c'est un raccourci pour paramétrer les formes des cases \option{absent}, \option{present}, + \option{correct} et \option{vide}, dans cet ordre. + + \begin{example} + \begin{GrilleSutom}[Formes={circle, rectangle, circle}]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + Les formes individuelles peuvent être paramétrer via \option{forme absent}, \option{forme present}, + \option{forme correct} et \option{forme vide}. + + Les formes proposés par le package \ctan{TikZ} + \texttt{shapes.geometric}, incluant \texttt{diamond}, + \texttt{ellipse}, \texttt{trapezium} et \texttt{star} (voir section~71.2 du manuel \ctan{TikZ}). + + \begin{example} + % \usepackage{shapes.geometric} + \begin{GrilleSutom}[Formes={diamond,ellipse,star}]{LADLE} + FLAIL + LAPEL + * + LADLE + LOVER + \end{GrilleSutom} + \end{example} + + \option[white]{CouleurLettres}[liste de couleurs valides séparées par des virgules] + + Il s'agir d'un raccourci pour paramétrer la couleur des lettres des cases \option{absent}, \option{present}, \option{correct} et \option{vide}, dans cet ordre. + + \begin{example} + \begin{GrilleSutom}[CouleurLettres={red,orange,blue}]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + Les cases individuelles peuvent être paramétrer via \option{coultxt absent}, \option{coultxt present}, \option{coultxt correct} et \option{coultxt vide}. + + + \Section{Caractéristiques communes des cases} + + Les options suivantes s'appliquent à toutes les cases. + + \option[]{nonalign} (default) \qquad + \option[]{align} + + Cette option s'occupe de l'alignement vertical des lettres. C'est utile essentiellement lors de l'utilisation de minuscules. + + \begin{example} + \begin{GrilleSutom}[align]{agony} + groan + angry + agony + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}{agony} % nonalign par defaut + groan + angry + agony + \end{GrilleSutom} + \end{example} + + \option[\textbackslash Large\textbackslash bfseries\textbackslash sffamily]{Police} + [Police \LaTeX] + + Cela permet de paramétrer la police de toutes les lettres. Toute commande valide est acceptée. + + \begin{example} + \begin{GrilleSutom}[Police=\large\ttfamily]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + \option[1mm]{Arrondi}[une longueur] + + Cela permet de paramétrer le paramètres \texttt{rounded corners} (de TikZ) pour les cases \keyword{wordle}. + + \begin{example} + \begin{GrilleSutom}[Arrondi=2.5mm]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + \option[0.5mm]{Separation}[une longueur] + + Cela permet de paramétrer la séparation entre les cases du \keyword{wordle}. + + \begin{example} + \begin{GrilleSutom}[Separation=2mm,CouleurBordures=black]{REBUS} + ABRIS + ROUTE + REBUS + \end{GrilleSutom} + \end{example} + + \option[1]{Echelle}[un nombre] + + L'option \option{Echelle} applique un facteur à l'environnement \keyword{wordle}. + Cette option modifie les dimensions définies par les options \option{Arrondi}, + \option{Separation}, \option{Taille} et \option{Epaisseur}. Si vous changez l'échelle, vous voudrez également changer la police de caractères via \option{Police} : + + \begin{example} + \begin{GrilleSutom}[Echelle=1.5,Police=\huge\bfseries]{SIZE} + HELP + WISE + SIZE + \end{GrilleSutom} + \end{example} + + \option[8mm]{Taille}[une longueur] + + L'option \option{Taille} définit la taille des cases. Contrairement à l'option \option{Echelle}, \option{Taille} change uniquement la dimension des cases. + + \begin{example} + \begin{GrilleSutom}[Taille=10mm,Police=\huge\bfseries]{REPU} + ABRI ROUE * REPU + \end{GrilleSutom} + \end{example} + + \option[0.25mm]{Epaisseur}[une longueur]• + + Cela permet de paramétrer la taille des bordures des cases. Par défaut la couleur est blanche, donc pour illustrer cette option elle sera paramétrer en rouge. + + \begin{example} + \begin{GrilleSutom}[Epaisseur=0.75mm,CouleurBordures=red]{LADLE} + FLAIL + LAPEL + LADLE + \end{GrilleSutom} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Lignes et colonnes supplémentaires} + + Par défaut, le nombre de lignes et de colonnes de la grille est fixée par les mots donnés. + + \option[]{Lettres} (défaut)\qquad + \option[]{NonLettres} + + Par dafut, les lettres sont affichées, mais l'option \option{NonLettres} peuvent être cachées. + + \begin{example} + \begin{GrilleSutom}{CRAZE} % the default + TRACE + CREAM + CRAZE + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}[NonLettres]{CRAZE} + TRACE + CREAM + CRAZE + \end{GrilleSutom} + \end{example} + + \option[false]{Strict}[true/false/--] + + Par défaut, l'environnement ne vérifie pas si tous les mots sont la même taille, donc les lettres \textit{en trop} n'ont pas de style particulier. + + \begin{example} + \begin{GrilleSutom}[Strict=false]{CRAZE} % par defaut + GRAIL + CRAMPS + CRAM + CRABS + \end{GrilleSutom} + \end{example} + + L'option booléenne \option{Strict} force un style particulier des lettre \textit{en trop}. + + \begin{example} + \begin{GrilleSutom}[Strict]{CRAZE} + GRAIL + CRAMPS + CRAM + CRABS + \end{GrilleSutom} + \end{example} + + \option[--]{Lignes} + + Par défaut, l'environnement \keyword{wordle} affiche le nombre de lignes en adéquation avec le nombre de mots donnés. L'option \option{Lignes} permet de modifier le nombre de lignes (évenuellement vides). + + \begin{example} + \begin{GrilleSutom}[Lignes=4]{ANVIL} + CRANE + NATAL + ANVIL + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}[Lignes=2]{ANVIL} + CRANE + NATAL + ANVIL + \end{GrilleSutom} + \end{example} + + \option[]{*} + + Le style des case peut être annulé en ajoutant un astérisque,~\option{*}, en tant que mot. + + \begin{example} + \begin{GrilleSutom}{ANVIL} + CRANE + NATAL + * % annule la mise en forme + ANNUL + ANVIL + \end{GrilleSutom} + \end{example} + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Sensibilité à la casse} + \index{case~sensitive} + \index{case~sensitive!lower case} + \index{case~sensitive!natural case} + \index{case~sensitive!upper case} + + Par défaut, les lettres peuvent être écrites en majuscule ou en minuscule, comme saisies par l'utilisateur. + + L'option (voir doc en anglais) \option{case~sensitive} permet de spécifier un paramétrage de la casse. + + \begin{example} + \begin{GrilleSutom}[case sensitive=false]{youth} % par defaut + North + South + Youth + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}[case sensitive]{youth} + North + South + Youth + \end{GrilleSutom} + \end{example} + + Les options \textit{fines} \option{natural case} (défaut), \option{lower case}et \option{upper case} permettent de travailler plus finement sur la casse des lettres correctes et/ou mal placées. + + \begin{example} + \begin{GrilleSutom}[lower case]{YOUTH} + North + South + Youth + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}[upper case]{youth} + North + South + Youth + \end{GrilleSutom} + \end{example} + + \begin{example} + \begin{GrilleSutom}[natural case]{youth} % par defaut + North + South + youth + \end{GrilleSutom} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Style \ctan{TikZ} complémentaire} + + \option[]{tikz}[commandes TikZ] + + \begin{example} + % \usetikzlibrary{backgrounds} + \begin{GrilleSutom}[ + tikz={framed, + background rectangle/.style={ + double,ultra thick, draw=SteelBlue + } + }]{youth} + North South youth + \end{GrilleSutom} + \end{example} + + \pagebreak + + \option[W]{Nom} + + \begin{example} + \begin{GrilleSutom}[tikz={remember picture}]{CRAZE} + TRACE + CREAM + CRAZE + \end{GrilleSutom} + \end{example} + + \begin{example} + \tikz[remember picture]\draw[overlay, very thick, opacity=0.5,->,red](0,0)node{Pas de M !!!} to [out=90, in=180](W-2-5); + \end{example} + + \begin{example} + \begin{GrilleSutom}[name=M, + tikz={arr/.style={red,ultra thick,->}} + ]{MACAW} + [{ + \draw[arr](M-1-3.south)--(M-3-2.north)--(M-4-2.north); + \draw[arr](M-1-1.south)--(M-3-5)--(M-4-3.north east); + }] + CRANE HOTLY BASIC MACAW + \end{GrilleSutom} + \end{example} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \Section{Le code} + + Le package \keyword{wordle} est écrit en \LaTeX3. Beaucoup de commentaires permettent d'expliciter le fonctionnement du code. La coloration automatique des cases est un exercice amusant en \LaTeX3, motivépar un message issu de + \href{https://tex.stackexchange.com/questions/659860/wordle-like-colored-letter-boxes-in-latex/660056#660056}{tex.stackexchange.com}. + + Le dépôt \href{https://github.com/AndrewMathas/Wordle}{github.com/AndrewMathas/Wordle} est disponible pour signaler tout bug. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \printindex + +\end{document} diff --git a/graphics/pgf/contrib/wordle/wordle.sty b/graphics/pgf/contrib/wordle/wordle.sty new file mode 100644 index 0000000000..a463f22837 --- /dev/null +++ b/graphics/pgf/contrib/wordle/wordle.sty @@ -0,0 +1,670 @@ +% --------------------------------------------------------------- +% wordle --- A latex package for typesetting wordle puzzles +% +% E-mail: andrew.mathas@gmail.com and cpierquet@outlook.fr +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% ---------------------------------------------------------------- + +\NeedsTeXFormat{LaTeX2e} + +% Package version +\def\wordle@version{0.3.0} +\def\wordle@release{2024-08-18} + +\providecommand\DeclareRelease[3]{} +\providecommand\DeclareCurrentRelease[2]{} +\DeclareRelease{\wordle@version}{\wordle@release}{wordle.sty} +\DeclareCurrentRelease{}{\wordle@release} + +\ProvidesExplPackage{wordle} {\wordle@release} {\wordle@version} + {A latex package for typesetting wordle puzzles} + +% ---------------------------------------------------------------- +% Required packages +%\RequirePackage{xcolor} +\RequirePackage{tikz} + +% ---------------------------------------------------------------- +% predefined tile colours + +% from https://www.nytimes.com/games/wordle +\definecolor{WordleAbsent} {HTML} {797D7F} +\definecolor{WordlePresent} {HTML} {F7DA21} +\definecolor{WordleCorrect} {HTML} {6AAB64} +\definecolor{WordleEmpty} {HTML} {F5F5DC} + +\definecolor{WordleHardPresent} {HTML} {95BEFA} +\definecolor{WordleHardCorrect} {HTML} {FB9B00} + +% from https://sutom.nocle.fr/# +\definecolor{WordleSutomAbsent} {HTML} {0077B7} +\definecolor{WordleSutomPresent} {HTML} {FFBB00} +\definecolor{WordleSutomCorrect} {HTML} {EB2152} + +% ---------------------------------------------------------------- +% package variables + +\bool_new:N \l__wordle_case_sensitive_bool % case sensitive mode (false by default) +\bool_new:N \l__wordle_strict_bool % strict mode (false by default) + +\dim_new:N \l__wordle_grid_dim +\dim_new:N \l__wordle_rounded_dim +\dim_new:N \l__wordle_sep_dim +\dim_new:N \l__wordle_size_dim +\dim_new:N \l__wordle_thickness_dim + +\int_new:N \l__wordle_rows_int + +\fp_new:N \l__wordle_scale_fp + +\tl_new:N \l__wordle_align_tl +\tl_new:N \l__wordle_depth_tl +\tl_new:N \l__wordle_font_tl +\tl_new:N \l__wordle_name_tl +\tl_new:N \l__wordle_style_tl +\tl_new:N \l__wordle_tikz_tl +\tl_new:N \l__wordle_tile_style_tl + +\tl_new:N \l__wordle_present_border_tl +\tl_new:N \l__wordle_present_colour_tl +\tl_new:N \l__wordle_present_frame_tl +\tl_new:N \l__wordle_present_shape_tl +\tl_new:N \l__wordle_present_text_tl + +\tl_new:N \l__wordle_correct_border_tl +\tl_new:N \l__wordle_correct_colour_tl +\tl_new:N \l__wordle_correct_frame_tl +\tl_new:N \l__wordle_correct_shape_tl +\tl_new:N \l__wordle_correct_text_tl + +\tl_new:N \l__wordle_empty_border_tl +\tl_new:N \l__wordle_empty_colour_tl +\tl_new:N \l__wordle_empty_frame_tl +\tl_new:N \l__wordle_empty_shape_tl +\tl_new:N \l__wordle_empty_text_tl + +\tl_new:N \l__wordle_absent_border_tl +\tl_new:N \l__wordle_absent_colour_tl +\tl_new:N \l__wordle_absent_frame_tl +\tl_new:N \l__wordle_absent_shape_tl +\tl_new:N \l__wordle_absent_text_tl + + +% ---------------------------------------------------------------- +% Assign up to four style attributes from comma separated list to absent, +% present, correct, empty, respectively. If there is only one entry in +% the list then everything is set equal to that entry +\cs_new_nopar:Npn \__wordle_set_style:nn #1#2 +{ + \seq_set_split:Nnn \l_tmpa_seq {,} {#2} + \int_compare:nNnTF {\seq_count:N \l_tmpa_seq} = {1} + { + \tl_set:co {l__wordle_absent_#1_tl} {#2} + \tl_set:co {l__wordle_present_#1_tl} {#2} + \tl_set:co {l__wordle_correct_#1_tl} {#2} + \tl_set:co {l__wordle_empty_#1_tl} {#2} + } + { + \seq_pop_left:NNT \l_tmpa_seq \l_tmpa_tl { \tl_set:co {l__wordle_absent_#1_tl} {\l_tmpa_tl} } + \seq_pop_left:NNT \l_tmpa_seq \l_tmpa_tl { \tl_set:co {l__wordle_present_#1_tl} {\l_tmpa_tl} } + \seq_pop_left:NNT \l_tmpa_seq \l_tmpa_tl { \tl_set:co {l__wordle_correct_#1_tl} {\l_tmpa_tl} } + \seq_pop_left:NNT \l_tmpa_seq \l_tmpa_tl { \tl_set:co {l__wordle_empty_#1_tl} {\l_tmpa_tl} } + } +} + +% apply the wordle styles +\cs_new_nopar:Npn \__wordle_apply_style:n #1 { + \str_case:enF { #1 } + { + {hard} + { + \__wordle_set_style:nn {border} {white} + \__wordle_set_style:nn {colour} {WordleAbsent,WordleHardPresent,WordleHardCorrect,WordleEmpty} + \__wordle_set_style:nn {frame} {false} + \__wordle_set_style:nn {shape} {rectangle} + \__wordle_set_style:nn {text} {white,white,white,black} + } + + {alt} + { % alt appears in the English version of Cedric's manual for sutom + \__wordle_set_style:nn {border} {white} + \__wordle_set_style:nn {colour} {WordleSutomAbsent,WordleSutomPresent,WordleSutomCorrect,WordleEmpty} + \__wordle_set_style:nn {frame} {false,true,false,false} + \__wordle_set_style:nn {shape} {rectangle,circle,rectangle,circle} + \__wordle_set_style:nn {text} {white,white,white,black} + \tl_set:Nn \l_wordle_font_tl {\LARGE\bfseries\sffamily} + + } + + {sutom} + { + \__wordle_set_style:nn {border} {white} + \__wordle_set_style:nn {colour} {WordleSutomAbsent,WordleSutomPresent,WordleSutomCorrect,WordleEmpty} + \__wordle_set_style:nn {frame} {false,true,false,false} + \__wordle_set_style:nn {shape} {rectangle,circle,rectangle,circle} + \__wordle_set_style:nn {text} {white,white,white,black} + \tl_set:Nn \l_wordle_font_tl {\LARGE\bfseries\sffamily} + } + } + { + % default style + \__wordle_set_style:nn {border} {white} + \__wordle_set_style:nn {colour} {WordleAbsent,WordlePresent,WordleCorrect,WordleEmpty} + \__wordle_set_style:nn {frame} {false} + \__wordle_set_style:nn {shape} {rectangle} + \__wordle_set_style:nn {text} {white,white,white,black} + } +} + +% rescale dimensions +\cs_new_nopar:Npn \__wordle_rescale:n #1 +{ + \fp_set:Nn \l__wordle_scale_fp {#1} + \dim_set:Nn \l__wordle_rounded_dim { \fp_eval:n {#1*\dim_to_decimal_in_mm:n {\l__wordle_rounded_dim }}mm } + \dim_set:Nn \l__wordle_sep_dim { \fp_eval:n {#1*\dim_to_decimal_in_mm:n {\l__wordle_sep_dim }}mm } + \dim_set:Nn \l__wordle_size_dim { \fp_eval:n {#1*\dim_to_decimal_in_mm:n {\l__wordle_size_dim }}mm } + \dim_set:Nn \l__wordle_thickness_dim { \fp_eval:n {#1*\dim_to_decimal_in_mm:n {\l__wordle_thickness_dim}}mm } +} + + +% ---------------------------------------------------------------- +% just in case we're running an old version of latex +\providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion } + +\IfFormatAtLeastTF { 2022-06-01 } + { \ProcessKeyOptions [ wordle ] } + { + \RequirePackage { l3keys2e } + \ProcessKeysOptions { wordle } + } + +% ---------------------------------------------------------------- +% Define keys for the package options and their defaults + +\keys_define:nn { wordle } +{ + % apply puzzle styles: sets colours of absent, present, correct and empty tiles + style .code:n = { + \seq_set_from_clist:Nn \l_tmpa_seq {#1} + \seq_map_inline:Nn \l_tmpa_seq { \__wordle_apply_style:n { \str_lowercase:n{##1}} } + }, + Style .meta:n = { style = #1 }, + style .initial:n = standard, + + % specifying tile colours and shapes + borders .code:n = { \__wordle_set_style:nn {border} {#1} }, + BorderColor .code:n = { \__wordle_set_style:nn {border} {#1} }, + CouleurBordures.code:n = { \__wordle_set_style:nn {border} {#1} }, + + Couleurs .code:n = { \__wordle_set_style:nn {colour} {#1} }, + colours .code:n = { \__wordle_set_style:nn {colour} {#1} }, + + frames .code:n = { \__wordle_set_style:nn {frame} {#1} }, + Cadres .code:n = { \__wordle_set_style:nn {frame} {#1} }, + frames .default:n = true, + shapes .code:n = { \__wordle_set_style:nn {shape} {#1} }, + Formes .code:n = { \__wordle_set_style:nn {shape} {#1} }, + + % text colour + text .code:n = { \__wordle_set_style:nn {text} {#1} }, + CouleurLettres .code:n = { \__wordle_set_style:nn {text} {#1} }, + + % align letters in puzzle + align .code:n = { + \tl_set:Nn \l__wordle_align_tl {\vphantom{azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN}} + \tl_set:Nn \l__wordle_depth_tl {text~depth=0pt} + }, + noalign .code:n = { + \tl_set:Nn \l__wordle_align_tl {} + \tl_set:Nn \l__wordle_depth_tl {} + }, + nonalign .meta:n = { noalign }, + align .initial:n = {true}, + + absent .tl_set:N = \l__wordle_absent_colour_tl, + absent~color .tl_set:N = \l__wordle_absent_colour_tl, + couleur~absent .tl_set:N = \l__wordle_absent_colour_tl, + absent~colour .tl_set:N = \l__wordle_absent_colour_tl, + bordure~absent .tl_set:N = \l__wordle_absent_border_tl, + absent~border .tl_set:N = \l__wordle_absent_border_tl, + absent~frame .tl_set:N = \l__wordle_absent_frame_tl, + cadre~absent .tl_set:N = \l__wordle_absent_frame_tl, + absent~frame .default:n = true, + absent~shape .tl_set:N = \l__wordle_absent_shape_tl, + forme~absent .tl_set:N = \l__wordle_absent_shape_tl, + absent~text .tl_set:N = \l__wordle_absent_text_tl, + coultxt~absent .tl_set:N = \l__wordle_absent_text_tl, + + correct .tl_set:N = \l__wordle_correct_colour_tl, + correct~color .tl_set:N = \l__wordle_correct_colour_tl, + correct~colour .tl_set:N = \l__wordle_correct_colour_tl, + couleur~correct.tl_set:N = \l__wordle_correct_colour_tl, + correct~border .tl_set:N = \l__wordle_correct_border_tl, + bordure~correct.tl_set:N = \l__wordle_correct_border_tl, + correct~frame .tl_set:N = \l__wordle_correct_frame_tl, + cadre~correct .tl_set:N = \l__wordle_correct_frame_tl, + correct~frame .default:n = true, + correct~shape .tl_set:N = \l__wordle_correct_shape_tl, + forme~correct .tl_set:N = \l__wordle_correct_shape_tl, + correct~text .tl_set:N = \l__wordle_correct_text_tl, + coultxt~correct.tl_set:N = \l__wordle_correct_text_tl, + + empty .tl_set:N = \l__wordle_empty_colour_tl, + couleur~vide .tl_set:N = \l__wordle_empty_colour_tl, + empty~color .tl_set:N = \l__wordle_empty_colour_tl, + empty~colour .tl_set:N = \l__wordle_empty_colour_tl, + empty~border .tl_set:N = \l__wordle_empty_border_tl, + bordure~vide .tl_set:N = \l__wordle_empty_border_tl, + empty~frame .tl_set:N = \l__wordle_empty_frame_tl, + cadre~vide .tl_set:N = \l__wordle_empty_frame_tl, + empty~frame .default:n = true, + empty~shape .tl_set:N = \l__wordle_empty_shape_tl, + forme~vide .tl_set:N = \l__wordle_empty_shape_tl, + empty~text .tl_set:N = \l__wordle_empty_text_tl, + coultxt~vide. tl_set:N = \l__wordle_empty_text_tl, + + present .tl_set:N = \l__wordle_present_colour_tl, + couleur~present.tl_set:N = \l__wordle_present_colour_tl, + present~color .tl_set:N = \l__wordle_present_colour_tl, + present~colour .tl_set:N = \l__wordle_present_colour_tl, + present~border .tl_set:N = \l__wordle_present_border_tl, + bordure~present.tl_set:N = \l__wordle_present_border_tl, + present~frame .tl_set:N = \l__wordle_present_frame_tl, + cadre~present .tl_set:N = \l__wordle_present_frame_tl, + present~frame .default:n = true, + present~shape .tl_set:N = \l__wordle_present_shape_tl, + forme~present .tl_set:N = \l__wordle_present_shape_tl, + present~text .tl_set:N = \l__wordle_present_text_tl, + coultxt~present.tl_set:N = \l__wordle_present_text_tl, + + % text font + font .tl_set:N = \l__wordle_font_tl, + Fonte .tl_set:N = \l__wordle_font_tl, + Police .tl_set:N = \l__wordle_font_tl, + font .initial:n = \Large\bfseries\sffamily, + + % tile size + size .dim_set:N = \l__wordle_size_dim, + Taille .dim_set:N = \l__wordle_size_dim, + size .initial:n = 8mm, + + % thickness of tile border + thickness .dim_set:N = \l__wordle_thickness_dim, + Epaisseur .dim_set:N = \l__wordle_thickness_dim, + Thick .code:n = {\dim_set:Nn \l__wordle_thickness_dim {#1mm}}, + thickness .initial:n = 0.25mm, + + % rounded-corner = # + rounded .dim_set:N = \l__wordle_rounded_dim, + Arrondi .dim_set:N = \l__wordle_rounded_dim, + rounded .default:n = 4pt, + Rounded .code:n = {\dim_set:Nn \l__wordle_rounded_dim {#1mm}}, + rounded .initial:n = 1mm, + + % separation between tiles + separation .dim_set:N = \l__wordle_sep_dim, + Separation .dim_set:N = \l__wordle_sep_dim, + separation .initial:n = 0.5mm, + + % rescale tiles + scale .code:n = { \__wordle_rescale:n {#1} }, + Echelle .code:n = { \__wordle_rescale:n {#1} }, + scale .initial:n = 1, + Unit .code:n = { \__wordle_rescale:n {#1} }, + Unite .code:n = { \__wordle_rescale:n {#1} }, + + % letter case + case~sensitive .bool_set:N = \l__wordle_case_sensitive_bool, + case~sensitive .default:n = true, + case~sensitive .initial:n = false, + + % letter visibility + letters .code:n = {\cs_set_eq:NN \__wordle_letter:n \__wordle_letter_natural:n}, + Lettres .code:n = {\cs_set_eq:NN \__wordle_letter:n \__wordle_letter_natural:n}, + noletters .code:n = {\cs_set_eq:NN \__wordle_letter:n \__wordle_letter_none:n}, + NonLettres .code:n = {\cs_set_eq:NN \__wordle_letter:n \__wordle_letter_none:n}, + letters .initial:n = true, + + % forced letter case + natural~case .code:n = { + \cs_set_eq:NN \__wordle_letter:n \__wordle_letter_natural:n + }, + lower~case .code:n = { + \cs_set_eq:NN \__wordle_letter:n \__wordle_letter_lower:n + \bool_set_false:N \l__wordle_case_sensitive_bool + }, + upper~case .code:n = { + \cs_set_eq:NN \__wordle_letter:n \__wordle_letter_upper:n + \bool_set_false:N \l__wordle_case_sensitive_bool + }, + + % puzzle specs: rows and columns + rows .int_set:N = \l__wordle_rows_int, + Lignes .int_set:N = \l__wordle_rows_int, + rows .initial:n = 0, + + strict .bool_set:N = \l__wordle_strict_bool, + Strict .bool_set:N = \l__wordle_strict_bool, + strict .default:n = true, + strict .initial:n = false, + + % tikz settings + tile~style .tl_set:N = \l__wordle_tile_style_tl, + Style~case .tl_set:N = \l__wordle_tile_style_tl, + tile~style .initial:n = , + + name .tl_set:N = \l__wordle_name_tl, + Nom .tl_set:N = \l__wordle_name_tl, + name .initial:n = W, + tikz .tl_set:N = \l__wordle_tikz_tl, + tikz .initial:n = , +} + +% user settings +\NewDocumentCommand\WordleSetup{ m }{ \keys_set:nn { wordle } {#1} } +\NewDocumentCommand\ParamsSutom{ m }{ \keys_set:nn { wordle } {#1} } + +% ---------------------------------------------------------------- +% Define TikZ Wordle styles for the letters. Using tikz styles both +% ensures consistency and has the added advantage of taking care of +% expansion issues with the tile settings +\tikzset{/Wordle/.is~family, /Wordle, + tile/.style = { + /tikz, % change back to using tikz keys + inner~sep = \l__wordle_sep_dim, + minimum~height = \l__wordle_size_dim, + minimum~size = \l__wordle_size_dim, + rounded~corners= \l__wordle_rounded_dim, + line~width = \l__wordle_thickness_dim, + font = \l__wordle_font_tl, + % scale = \fp_to_decimal:N \l__wordle_scale_fp, + text = \tl_use:c {l__wordle_#1_text_tl}, + fill = \tl_use:c {l__wordle_#1_colour_tl}, + shape = \tl_use:c {l__wordle_#1_shape_tl}, + }, + frame/.style = { + /Wordle/tile=#1, + /tikz, % change back to using tikz keys + draw = \tl_use:c{l__wordle_#1_border_tl}, + minimum~size = {\l__wordle_size_dim+\l__wordle_thickness_dim}, + fill = \tl_use:c {l__wordle_#1_colour_tl}, + shape = rectangle, + }, +} + +% apply a TikZ setting +\cs_new_nopar:Npn \__wordle_tikzset:n #1 { \exp_args:Nx \tikzset{#1} } + +% ---------------------------------------------------------------- +% preprocessing of the wordle letters +\cs_new_nopar:Npn \__wordle_letter_none:n #1 {} +\cs_new_nopar:Npn \__wordle_letter_natural:n #1 {#1} +\cs_new_nopar:Npn \__wordle_letter_lower:n #1 { \str_lowercase:n {#1} } +\cs_new_nopar:Npn \__wordle_letter_upper:n #1 { \str_uppercase:n {#1} } + +% by default wordle letters are not processed +\cs_set_eq:NN \__wordle_letter:n \__wordle_letter_natural:n + +% Print a letter in a box as a node. There is slightly different behaviour +% depending on whether the tile is frames or we are in strict mode. The way +% that the entry is printed depends is controlled by \__wordle_letter:n. +\cs_new_nopar:Npn \wordle__boxed_letter:nn #1#2 +{ + % determine the node name, which takes the form <W>-<row>-<col> + \tl_set:No \l_tmpa_tl + { + \l__wordle_name_tl-\int_eval:n{1+\l__wordle_row_index_int}-\int_use:N\l__wordle_letter_index_int + } + + % the construction of the node depends on whether the tile is framed + \tl_if_eq:cnTF {l__wordle_#1_frame_tl} {true} + { + % draw the frame + \node[/Wordle/frame=absent] % frame use the absent fill colour + at ({\l__wordle_letter_index_int*\l__wordle_grid_dim},{-\l__wordle_row_index_int*\l__wordle_grid_dim}){}; + % draw the tile + \node[/Wordle/tile=#1] + (\l_tmpa_tl) at ({\l__wordle_letter_index_int*\l__wordle_grid_dim}, + {-\l__wordle_row_index_int*\l__wordle_grid_dim}) + { \l__wordle_align_tl\__wordle_letter:n {#2} }; + } + { + % draw the tile, with a border + \node[/Wordle/frame=#1, /Wordle/tile=#1] + (\l_tmpa_tl) at ({\l__wordle_letter_index_int*\l__wordle_grid_dim}, + {-\l__wordle_row_index_int*\l__wordle_grid_dim}) + { \l__wordle_align_tl\__wordle_letter:n {#2} }; + } + + % if strict then put a slash through any extra letters + \bool_if:NT \l__wordle_strict_bool + { + \int_compare:nNnT {\l__wordle_letter_index_int} > {\seq_count:N \l__wordle_answer_seq } + { + \draw[red,ultra~thick] (\tl_use:N\l_tmpa_tl.south~west)--(\tl_use:N\l_tmpa_tl.north~east); + } + } +} + +\seq_new:N \l__wordle_answer_seq % the answer +\prop_new:N \l__wordle_answer_counts_prop % count letters in wordle +\seq_new:N \l__wordle_solution_seq % list of all words +\prop_new:N \l__wordle_word_counts_prop % count letters in word +\int_new:N \l__wordle_letter_index_int % index of current letter in word +\int_new:N \l__wordle_row_index_int % TikZ row index in solution + +% a conditional for non-negative prop counter in \l__wordle_word_counts_prop +\prg_new_protected_conditional:Npnn \if__wordle_letter_nonnegative:n #1 {TF} +{ + \prop_if_in:NnTF \l__wordle_word_counts_prop {#1} + { % letter in in prop + \prop_get:NnN \l__wordle_word_counts_prop {#1} \l_tmpa_tl + \int_compare:nNnTF {\l_tmpa_tl} < {0} + {\prg_return_false:} {\prg_return_true:} + } + {\prg_return_false:} +} + +\cs_generate_variant:Nn \str_if_eq:nVTF {xVTF} + +% a conditional for comparing letters +\prg_new_protected_conditional:Npnn \if__wordle_letters_agree:n #1 {T, TF} +{ + \str_set:Nx \l_tmpa_str + {\seq_item:Nn \l__wordle_answer_seq {\l__wordle_letter_index_int}} + + + \bool_if:NTF \l__wordle_case_sensitive_bool + {\str_if_eq:nVTF {#1} \l_tmpa_str {\prg_return_true:} {\prg_return_false:}} + {\str_if_eq:xVTF {\str_uppercase:n{#1}} \l_tmpa_str {\prg_return_true:} {\prg_return_false:}} +} + +% add #3 to <prop=#1>.#2 +\cs_new_nopar:Npn \wordle__add_to_prop_counter:Nnn #1#2#3 +{ + \prop_put_if_new:Nnn #1 {#2} {0} + \prop_pop:NnN #1 {#2} \l_tmp_a + \prop_put:Nnx #1 {#2} {\int_eval:n {#3+\l_tmp_a}} +} + +% make \l__wordle_answer_counts_prop<x> = #x's in wordle_seq +\cs_new_nopar:Npn \wordle__count_letters_in_answer:n #1 +{ + \wordle__add_to_prop_counter:Nnn \l__wordle_answer_counts_prop {#1} {1} +} + +% first run: subtract correct matches from letter counts +\cs_new_nopar:Npn \wordle__count_letters_in_word:n #1 +{ + \int_incr:N \l__wordle_letter_index_int + \if__wordle_letters_agree:nT {#1} + { \wordle__add_to_prop_counter:Nnn \l__wordle_word_counts_prop {#1} {-1} } +} + +% on the second run we print a coloured wordle word +\cs_new_nopar:Npn \wordle__write_letters_in_word:n #1 +{ + \int_incr:N \l__wordle_letter_index_int + \if__wordle_letters_agree:nTF {#1} + { \wordle__boxed_letter:nn {correct} {#1} } + { + % subtract 1 from the prop counter + \wordle__add_to_prop_counter:Nnn \l__wordle_word_counts_prop {#1} {-1} + % if the counter is non-negative this is a pseudo match + \if__wordle_letter_nonnegative:nTF {#1} + { \wordle__boxed_letter:nn {present} {#1} } + { \wordle__boxed_letter:nn {absent} {#1} } + } +} + +\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx} +\cs_generate_variant:Nn \cs_set_nopar:Nn {NV} + +% typeset the word "#1", colouring letters using the wordle convention +\cs_new_nopar:Npn \wordle__mark_word:n #1 +{ + \str_if_eq:nnTF {#1} {*} + { + \cs_set_eq:NN \wordle__process_word:n \wordle__empty_word:n + } + { + \prop_set_eq:NN \l__wordle_word_counts_prop \l__wordle_answer_counts_prop + \tl_map_function:nN {#1} \wordle__count_letters_in_word:n + \int_zero:N \l__wordle_letter_index_int + \tl_map_function:nN {#1} \wordle__write_letters_in_word:n + + % if strict then check lengths + \bool_if:NT \l__wordle_strict_bool + { + \int_while_do:nNnn {\l__wordle_letter_index_int} < {\seq_count:N\l__wordle_answer_seq} + { + \int_incr:N \l__wordle_letter_index_int + \wordle__boxed_letter:nn {absent} {\c_space_tl} + } + } + + % increment the row index + \int_incr:N \l__wordle_row_index_int + } +} + +% typeset the word "#1" by putting boxes around each letter +\cs_new_nopar:Npn \wordle__empty_word:n #1 +{ + \tl_map_inline:nn {#1} + { + \int_incr:N \l__wordle_letter_index_int + \wordle__boxed_letter:nn {empty} {##1} + } + % if strict then check lengths + \bool_if:NT \l__wordle_strict_bool + { + \int_while_do:nNnn {\l__wordle_ltter_index_int} < {\seq_count:N\l__wordle_answer_seq} + { + \int_incr:N \l__wordle_letter_index_int + \wordle__boxed_letter:nn {empty} {\c_space_tl} + } + } + \int_incr:N \l__wordle_row_index_int +} + +\cs_set_eq:NN \wordle__process_word:n \wordle__mark_word:n + +\NewDocumentEnvironment{wordle}{ O{} m O{} b } +{ + % apply wordle environment options + \WordleSetup{#1} + \begin{tikzpicture} + + % apply any tikz settings -- we need to some expansion trickery to do this + \__wordle_tikzset:n {\l__wordle_tikz_tl} + \__wordle_tikzset:n {/Wordle/tile/.append~style={\l__wordle_depth_tl,\l__wordle_tile_style_tl}} + + % set grid dimension = box size + separation + \dim_set:Nn \l__wordle_grid_dim {\l__wordle_size_dim+\l__wordle_sep_dim} + + % split the answer into letters + \bool_if:NTF \l__wordle_case_sensitive_bool + { \seq_set_split:Nnn \l__wordle_answer_seq {} {#2} } + { \seq_set_split:Nnx \l__wordle_answer_seq {} {\str_uppercase:n {#2}} } + + % count the number of times letters appear in \l__wordle_answer_seq + \prop_clear:N \l__wordle_answer_counts_prop + \tl_map_function:nN {#2} \wordle__count_letters_in_answer:n + + % split the solution into words + \regex_split:nnN {\s} {#4} \l__wordle_solution_seq + + % process the words + \int_zero:N \l__wordle_row_index_int + \seq_map_inline:Nn \l__wordle_solution_seq + { + \int_zero:N \l__wordle_letter_index_int + \wordle__process_word:n {##1} + } + + % if required, add extra required blank rows + \int_while_do:nNnn {\l__wordle_row_index_int} < {\l__wordle_rows_int} + { + \int_zero:N \l__wordle_letter_index_int + \int_while_do:nNnn {\l__wordle_letter_index_int} < {\seq_count:N\l__wordle_answer_seq} + { + \int_incr:N \l__wordle_letter_index_int + \wordle__boxed_letter:nn {empty} {\c_space_tl} + } + \int_incr:N \l__wordle_row_index_int + } + + % finally, execute the optional TikZ commands + #3 + + \end{tikzpicture} +}{} + +% wrapper environment for Gridwordle +\NewDocumentEnvironment{GridWordle}{ O{} m O{} b } + { + \begin{wordle}[#1]{#2}[#3]#4]\end{wordle} + } + {} + +% wrapper environment for GrilleSutom +\NewDocumentEnvironment{GrilleSutom}{ O{} m O{} b } + { + \begin{wordle}[style=sutom,#1]{#2}[#3]#4\end{wordle} + } + {} + +\endinput + +% ---------------------------------------------------------------- +% CHANGE LOG +% +% Version 0.3 - \wordle@release +% - merged AM & CP packages, adding styles and streamlining options, french keys +% +% Version 0.2 - \wordle@release +% - added documentation and cleaned some of the options +% +% Version 0.1 - 2022-10-01 +% - initial version +% +% ---------------------------------------------------------------- +% +% Copyright (C) 2022-3 by Andrew Mathas <andrew.mathas@gmail.com> +% and Cédric Pierquet cpierquet@outlook.fr +% +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License (LPPL), either +% version 1.3c of this license or (at your option) any later +% version. The latest version of this license is in the file: +% +% http://www.latex-project.org/lppl.txt +% +% This work is "maintained" (as per LPPL maintenance status) by +% Andrew Mathas. +% +% This work consists of the files: +% wordle.sty +% wordle.tex |