summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex')
-rw-r--r--Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex190
1 files changed, 190 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex b/Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex
new file mode 100644
index 00000000000..1071fe21b4b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/pst-cie/pst-cie.tex
@@ -0,0 +1,190 @@
+%%
+%% This is file `pst-cie.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-cie.tex'
+%%
+%% Manuel Luque <Manuel.Luque27 _at_ gmail.com
+%% Herbert Voss <hvoss _at_ tug.org>
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `pst-cie' is a PSTricks package to draw CIE color space
+%% with a Planck' locus
+%%
+\csname PSTcieLoaded\endcsname
+\let\PSTcieLoaded\endinput
+\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi
+\ifx\PSTplotLoaded \endinput\else \input pst-plot.tex\fi
+\ifx\PSTnodesLoaded\endinput\else \input pst-node \fi
+%\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
+%
+\def\fileversion{1.05}
+\def\filedate{2016/05/16}
+\message{`PST-cie' v\fileversion, \filedate\space (hv)}
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+\pst@addfams{pst-cie}
+\pstheader{pst-cie.pro}
+%
+\define@key[psset]{pst-cie}{gamma}[2.2]{\def\psk@psCIE@GAM{#1 }}
+\define@key[psset]{pst-cie}{contrast}[1]{\def\psk@psCIE@contrast{#1 }}
+\define@key[psset]{pst-cie}{chromaticityCoordinates}[xy]{\def\psk@psCIE@chromaticityCoordinates{#1}}
+\define@key[psset]{pst-cie}{bgcolor}[black]{\pst@getcolor{#1}\pst@psCIE@bgcolor}
+\define@key[psset]{pst-cie}{textcolor}[white]{\pst@getcolor{#1}\pst@psCIE@textcolor}
+\define@key[psset]{pst-cie}{trianglecolor}[black]{\pst@getcolor{#1}\pst@psCIE@trianglecolor}
+\psset[pst-cie]{gamma=2.2,contrast=1,bgcolor=black,textcolor=white,trianglecolor=black}
+\define@boolkey[psset]{pst-cie}[Pst@]{primaries}[true]{}
+\define@key[psset]{pst-cie}{Tfontsize}{\pst@getlength{#1}\psk@Tfontsize}
+\define@boolkey[psset]{pst-cie}[Pst@]{Planck}[true]{}
+\define@boolkey[psset]{pst-cie}[Pst@]{showcontour}[true]{}
+\psset[pst-cie]{primaries,Planck=false,showcontour=false,Tfontsize=4pt,chromaticityCoordinates={xy}}
+% primary illuminants
+% systems = Adobe, CIE, SMPTE, sRGB,Pal-Secam, NTSC
+% #1=type de reservation (action, object...) associee a une liste qui
+% doit forcement etre du type pst@cie@list@#1
+\def\pst@cie@reservednames#1{%
+ \edef\@tempa{\csname pst@cie@list@#1\endcsname}
+ \@for \name:=\@tempa\do{\expandafter\def\csname pst@cie@#1@\name\endcsname{}}}
+% système
+\def\txCIEdictBegin{ tx@CIEdict begin }
+%
+\def\pst@cie@list@ColorSpace{Adobe,CIE,ColorMatch,NTSC,Pal-Secam,ProPhoto,SMPTE,sRGB}
+%% Reservation de macros correspondants aux systemes
+\pst@cie@reservednames{ColorSpace}
+\define@key[psset]{pst-cie}{ColorSpace}{%
+ \ifcsname pst@cie@ColorSpace@#1\endcsname
+ \def\pst@cie@ColorSpace{#1}%
+ \else
+ \@pstrickserr{This color space is not authorized, sRGB is
+ chosen by default}{}%
+ \fi}
+\psset[pst-cie]{ColorSpace=sRGB}
+
+% datas
+\def\pst@cie@list@datas{CIE1964,CIE1931}
+%% Reservation de macros correspondants aux datas
+\pst@cie@reservednames{datas}
+\define@key[psset]{pst-cie}{datas}{%
+ \ifcsname pst@cie@datas@#1\endcsname
+ \def\pst@cie@datas{#1}%
+ \else
+ \@pstrickserr{This datas is not authorized, CIE1931 is chosen by default}{}%
+ \fi}
+\psset[pst-cie]{datas=CIE1931}
+\def\CIEdefaultYear{CIE1931}
+%
+\def\psChromaticityDiagram{\def\pst@par{}\pst@object{psChromaticityDiagram}}
+\def\psChromaticityDiagram@i{%
+ \begin@SpecialObj
+%\pstVerb{\ifPst@primaries /primaries {true} def \else /primaries {false} def \fi}%
+ \addto@pscode{
+ \ifPst@primaries /primaries {true} def \else /primaries {false} def \fi
+ /gamma \psk@psCIE@GAM def
+ /contrast \psk@psCIE@contrast def
+ /ColorSpace (\pst@cie@ColorSpace) def
+ /datas (\pst@cie@datas) def
+ /chromaticityCoordinates (\psk@psCIE@chromaticityCoordinates) def
+ /cie-bgcolor { \pst@usecolor\pst@psCIE@bgcolor } def
+ /cie-textcolor { \pst@usecolor\pst@psCIE@textcolor } def
+ /cie-unit \pst@number\psunit 10 mul def
+ /cie-U \pst@number\psunit 28.45274 div def
+ \txCIEdictBegin SCREEN {datas cvx exec}
+ {ColorSpace cvx exec} gamma contrast traceGamut end
+ }%
+ \ifPst@Planck\gdef\ps@next{\pstPlanck}\else\gdef\ps@next{}\fi% options are local
+ \end@SpecialObj
+ \ps@next
+}%
+%
+\def\pstCIEcontour{\pst@object{pstCIEcontour}}%
+\def\pstCIEcontour@i{%
+ \begin@ClosedObj
+ \addto@pscode{
+ \ifPst@primaries /primaries {true} def \else /primaries {false} def \fi
+ /gamma \psk@psCIE@GAM def
+ /contrast \psk@psCIE@contrast def
+ /ColorSpace (\pst@cie@ColorSpace) def
+ /datas (\pst@cie@datas) def
+ /chromaticityCoordinates (\psk@psCIE@chromaticityCoordinates) def
+ /cie-bgcolor { \pst@usecolor\pst@psCIE@bgcolor } def
+ /cie-textcolor { \pst@usecolor\pst@psCIE@textcolor } def
+ /cie-trianglecolor { \pst@usecolor\pst@psCIE@trianglecolor } def
+ /cie-unit \pst@number\psunit 10 mul def
+ /cie-U cie-unit 28.45274 div def
+ \txCIEdictBegin {datas cvx exec} /TAB exch def ColorSpace cvx exec %/system exch def
+ chromaticityCoordinates (xy) ne {/Tabuv [
+ 0 1 TAB length 1 sub {/i exch def
+ TAB i get /subarray exch def
+ /X subarray 0 get def /Y subarray 1 get def /Z 1 X sub Y sub def
+% [4 X mul X 15 Y mul add 3 Z mul add div % u
+% 6 Y mul X 15 Y mul add 3 Z mul add div] % v
+ [4 X mul X 15 Y mul add 3 Z mul add div % u'
+ 9 Y mul X 15 Y mul add 3 Z mul add div] % v'
+ } for
+ ] def
+ /TAB Tabuv def
+ } if
+% system
+ gsave primaries {CouleursPrimaires} if grestore
+ TAB contour stroke
+ contourTriangle cie-trianglecolor stroke
+ end
+ }%
+ \end@ClosedObj
+}
+% \txCIEdictBegin \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+%
+\def\pstPlanck{\pst@object{pstPlanck}}%
+\def\pstPlanck@i{%
+ \begingroup
+ \use@par
+ \font\CMSS=cmss10 at \psk@Tfontsize pt
+ \ifPst@showcontour\pstCIEcontour\fi
+ % lieu des points blancs (Planckian locus)
+ \parametricplot[plotpoints=3000]{1000}{500000}{
+ \txCIEdictBegin t \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+ BLKBOD Y X X Y Z end
+ add add /S ED S div 10 mul exch S div 10 mul }%
+ \parametricplot[plotpoints=2,arrows=-|]{500000}{502000}{
+ \txCIEdictBegin t \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+ BLKBOD Y X X Y Z end
+ add add /S ED S div 10 mul exch S div 10 mul }%
+ % point de concours des normales : R.Sève : physique de la couleur (.332,.186)
+ %\psdot[linecolor=red](3.32,1.86)
+ \pnode(3.320,1.858){O}%
+ \psforeach{\iA}{5000,7000,8000,9000,11000,12000,13000}{%
+ \pnode(!
+ \txCIEdictBegin \iA\space \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+ BLKBOD Y X X Y Z end
+ add add /S ED
+ S div 10 mul exch S div 10 mul){D\iA}%
+ \psRelNode(O)(D\iA){0.96}{d0}\psRelNode(O)(D\iA){1.04}{d1}%
+ \psline(d0)(d1)%
+ }%
+ \psforeach{\iA}{1500,2000,2500,3000,4000,6000,10000}{%
+ \pnode(!
+ \txCIEdictBegin \iA\space
+ \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+ BLKBOD Y X X Y Z end
+ add add /S ED
+ S div 10 mul exch S div 10 mul){D\iA}%
+ \psRelNode(O)(D\iA){1 3.2e-5 \iA\space mul sub}{d0}\psRelNode(O)(D\iA){1 3.2e-5 \iA\space mul add}{d1}%
+ \pcline(d0)(d1)\ncput[npos=1.15]{\CMSS\iA}%
+ }%
+ \uput[-125](!
+ 1e5
+ \txCIEdictBegin \ifx\pst@cie@datas\CIEdefaultYear CIEXYZ_1931_table \else CIEXYZ_1964_table \fi
+ BLKBOD Y X X Y Z end
+ add add /S ED
+ S div 10 mul exch S div 10 mul){$\scriptstyle\infty$}%
+ \endgroup
+}
+%
+\catcode`\@=\PstAtCode\relax
+\endinput
+%% END pst-cie.tex \def\pstCIEcontour{\pst@object{pstCIEcontour}}%