summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex')
-rw-r--r--graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex139
1 files changed, 139 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex b/graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex
new file mode 100644
index 0000000000..fa54097db4
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-tools/tex/pst-tools.tex
@@ -0,0 +1,139 @@
+%% $Id: pst-tools.tex 674 2017-12-02 22:04:53Z herbert $
+%%
+%% This is file `pst-tools.tex',
+%%
+%% IMPORTANT NOTICE:
+%%
+%% Package `pst-tools.tex'
+%%
+%% Herbert Voss <hvoss@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-tools' is a PSTricks package for helper functions
+%%
+%%
+\csname PSTtoolsLoaded\endcsname
+\let\PSTtoolsLoaded\endinput
+
+\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex \fi
+%
+\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
+% interface to the `xkeyval' package
+\pst@addfams{pst-tools}
+%
+\def\fileversion{0.09b}
+\def\filedate{2017/12/03}
+\message{`PST-tools' v\fileversion, \filedate\space (hv)}
+%
+\define@key[psset]{pst-tools}{decimalSeparator}[.]{\def\psk@decimalSeparator{#1}}%
+\define@boolkey[psset]{pst-tools}[Pst@]{comma}[true]{%
+ \ifPst@comma\def\psk@decimalSeparator{,}\else\def\psk@decimalSeparator{.}\fi}
+\define@boolkey[psset]{pst-tools}[Pst@]{trimSpaces}[true]{}
+\define@key[psset]{pst-tools}{xShift}[0]{\def\psk@xShift{#1}}
+\define@key[psset]{pst-tools}{yShift}[0]{\def\psk@yShift{#1}}
+\define@key[psset]{pst-tools}{postString}[{}]{\def\psk@postString{#1}}
+\define@key[psset]{pst-tools}{VarName}[]{\def\psk@VarName{#1 }}
+\define@key[psset]{pst-tools}{PSfont}[NimbusRomNo9L-Regu]{\def\psk@PSfont{/#1 }}
+\define@key[psset]{pst-tools}{valuewidth}[10]{\pst@getint{#1}\psk@valuewidth }
+\define@key[psset]{pst-tools}{fontscale}[10]{\pst@checknum{#1}\psk@fontscale }
+\define@key[psset]{pst-tools}{decimals}[-1]{\pst@getint{#1}\psk@decimals }
+\psset[pst-tools]{PSfont=NimbusRomNo9L-Regu,fontscale=10,valuewidth=10,decimals=-1,
+ xShift=0,yShift=0,trimSpaces=false,postString={},VarName={},
+ comma=false,decimalSeparator=.}
+%
+\def\txG{ true setglobal globaldict begin }
+\def\etxG{ end false setglobal }
+%
+\newpsstyle{mmpaper}{subgriddiv=5,gridlabels=0,gridwidth=1pt,gridcolor=orange,subgridwidth=0.1pt,subgridcolor=orange!90}
+%
+\def\psPrintValue{\pst@object{psPrintValue}}
+\def\psPrintValue@i#1{\expandafter\psPrintValue@ii#1,,\@nil}
+\def\psPrintValue@ii#1,#2,#3\@nil{% #1,#2 only for algebraic code
+ \begin@SpecialObj
+ \addto@pscode{
+ gsave \psk@PSfont findfont \psk@fontscale scalefont setfont
+ \ifPst@algebraic
+ /x #1 def
+ /Func (#2) tx@AlgToPs begin AlgToPs end cvx def
+ Func
+ \else #1 \fi
+ \ifx\relax\psk@VarName\relax\else dup \txG 10 string cvs /\psk@VarName\space exch def \etxG \fi
+ \psk@decimals -1 gt { 10 \psk@decimals exp dup 3 1 roll mul cvi exch div } if
+ \psk@valuewidth string cvs %/Output exch def % save output
+%/concatstringarray{ % [(a) (b) ... (z)] --> (ab...z) 20100422
+ \ifx\relax\psk@postString\relax\else [ exch (\psk@postString) ] concatstringarray \fi
+ \ifPst@trimSpaces rightTrim \fi
+ \ifPst@comma dot2comma \fi % do we have to change dot to comma
+ \psk@xShift\space \psk@yShift\space moveto %Output
+ show grestore
+ }%
+ \end@SpecialObj%
+}
+
+\define@boolkey[psset]{pst-tools}[Pst@]{round}[true]{}%
+\define@boolkey[psset]{pst-tools}[Pst@]{science}[true]{%
+ \ifPst@science\def\psk@Scin{true }\else\def\psk@Scin{false }\fi}
+\psset[pst-tools]{science=false,round=false}
+%
+\def\psPrintValueNew{\pst@object{psPrintValueNew}}
+\def\psPrintValueNew@i#1{\expandafter\psPrintValueNew@ii#1,,!!}
+\def\psPrintValueNew@ii#1,#2,#3!!{% #1,#2 only for algebraic code
+ \begin@SpecialObj
+ \addto@pscode{ % thanks to Buddy Ledger
+ /mfont { \psk@PSfont findfont \psk@fontscale scalefont setfont } bind def
+ /mfontexp { \psk@PSfont findfont \psk@fontscale 1.2 div scalefont setfont } bind def
+ /s1 { /StandardSymL findfont \psk@fontscale scalefont setfont } bind def
+ \ifPst@algebraic
+ /x #1 def
+ /Func (#2) tx@AlgToPs begin AlgToPs end cvx def
+ Func
+ \else #1 \fi
+ /value exch def
+ \psk@Scin {
+ value 0 ne { value log floor cvi /expon exch def }{ /expon 0 def } ifelse
+ value 10 expon exp div
+ \psk@decimals -1 gt { 10 \psk@decimals exp dup 3 1 roll mul
+ \ifPst@round round \else cvi \fi exch div } if
+ \psk@decimals 0 eq { cvi } if /numb exch def
+ expon \psk@valuewidth string cvs /expon exch def
+ numb \psk@valuewidth string cvs
+ \ifPst@comma dot2comma \fi % do we have to change dot to comma
+ /Output exch def
+ /txspc \psk@fontscale 4 div def
+ \psk@xShift\space 0 moveto mfont Output show
+ txspc 0 rmoveto s1 (\string\264) show
+ txspc 0 rmoveto mfont (10) show
+ txspc 2 div txspc 1.5 mul rmoveto mfontexp expon show }
+ { value
+ \psk@decimals -1 gt { 10 \psk@decimals exp dup 3 1 roll mul
+ \ifPst@round round \else cvi \fi exch div } if
+ \psk@decimals 0 eq { cvi } if %inserted to handle decimals=0
+ \psk@valuewidth string cvs
+ \ifPst@comma dot2comma \fi % do we have to change dot to comma
+ \psk@xShift\space 0 moveto mfont %Output
+ show
+ } ifelse
+ }%
+ \end@SpecialObj
+}
+%
+\def\psRegisterList#1#2{%
+ \@namedef{#1}##1{\@nameuse{#1##1}}%
+ \pst@cnto=1
+ \@for\pst@tempA:=#2\do{%
+ \edef\pst@tempB{\@namedef{#1\the\pst@cnto}{\pst@tempA}}%
+ \pst@tempB
+ \advance\pst@cnto by 1
+ }%
+}
+
+\catcode`\@=\PstAtCode\relax
+%
+%% END: pst-tools.tex
+\endinput
+%