summaryrefslogtreecommitdiff
path: root/graphics/pstricks
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pstricks')
-rw-r--r--graphics/pstricks/base/Changes4
-rw-r--r--graphics/pstricks/base/doc/pst-news24.pdfbin98554 -> 99744 bytes
-rw-r--r--graphics/pstricks/base/doc/pst-news24.tex6
-rw-r--r--graphics/pstricks/base/doc/pstricks-bug.tex6
-rw-r--r--graphics/pstricks/base/generic/pstricks.tex27
-rw-r--r--graphics/pstricks/contrib/pst-coil/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-coil/README2
-rw-r--r--graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.bib2
-rw-r--r--graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.pdfbin295379 -> 3748115 bytes
-rw-r--r--graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.tex159
-rw-r--r--graphics/pstricks/contrib/pst-coil/dvips/pst-coil.pro21
-rw-r--r--graphics/pstricks/contrib/pst-coil/latex/pst-coil.sty2
-rw-r--r--graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex63
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/Changes7
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/Makefile55
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/README37
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.bib176
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.pdfbin0 -> 23064303 bytes
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.tex (renamed from graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.tex)223
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/latex/pst-diffraction.sty (renamed from graphics/pstricks/contrib/pst-diffraction/pst-diffraction.sty)2
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-doc.bib119
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.pdfbin828505 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.tex495
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.pdfbin799677 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.pdfbin813332 -> 0 bytes
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.tex483
-rw-r--r--graphics/pstricks/contrib/pst-diffraction/tex/pst-diffraction.tex (renamed from graphics/pstricks/contrib/pst-diffraction/pst-diffraction.tex)37
-rw-r--r--graphics/pstricks/contrib/pst-node/Changes6
-rw-r--r--graphics/pstricks/contrib/pst-node/README5
-rw-r--r--graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.bib35
-rw-r--r--graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.pdfbin0 -> 229201 bytes
-rw-r--r--graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.tex1155
-rw-r--r--graphics/pstricks/contrib/pst-node/doc/pst-node-doc.pdfbin513402 -> 585632 bytes
-rw-r--r--graphics/pstricks/contrib/pst-node/doc/pst-node-doc.tex36
-rw-r--r--graphics/pstricks/contrib/pst-node/dvips/pst-node.pro6
-rw-r--r--graphics/pstricks/contrib/pst-node/latex/pst-node.sty11
-rw-r--r--graphics/pstricks/contrib/pst-node/tex/pst-node.tex61
-rw-r--r--graphics/pstricks/contrib/pst-optic/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-optic/README5
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib11
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdfbin516250 -> 518230 bytes
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex19
-rw-r--r--graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex28
43 files changed, 1879 insertions, 1427 deletions
diff --git a/graphics/pstricks/base/Changes b/graphics/pstricks/base/Changes
index 887654e5b9..5871e81cb9 100644
--- a/graphics/pstricks/base/Changes
+++ b/graphics/pstricks/base/Changes
@@ -1,4 +1,4 @@
-% $Id: Changes 805 2023-11-06 20:31:22Z herbert $
+% $Id: Changes 913 2024-07-09 16:27:10Z herbert $
For all changes see file History! Here are only the last one changes
listed.
@@ -11,6 +11,8 @@ pstricks.tex --------
versions like 2.47a have only changes in other files, but not
in this main package.
+3.20 2024-07-09 - changed \clipbox to \psclipbox to prevent clash with
+ other package which also uses \clipbox
3.19c 2024-02-02 - fix for check of wrong docname "pstricks.tex" in pstricks.sty (RN)
3.19b 2023-11-06 - Revert Code for \DocumentMetadata in pstricks.sty
3.19a 2023-10-30 - Try to suppress the warning with lualatex and a
diff --git a/graphics/pstricks/base/doc/pst-news24.pdf b/graphics/pstricks/base/doc/pst-news24.pdf
index bbc7bf404d..e102b8a602 100644
--- a/graphics/pstricks/base/doc/pst-news24.pdf
+++ b/graphics/pstricks/base/doc/pst-news24.pdf
Binary files differ
diff --git a/graphics/pstricks/base/doc/pst-news24.tex b/graphics/pstricks/base/doc/pst-news24.tex
index 3fb53580ab..bf357b88d4 100644
--- a/graphics/pstricks/base/doc/pst-news24.tex
+++ b/graphics/pstricks/base/doc/pst-news24.tex
@@ -41,6 +41,12 @@ broken.
Added a test for \verb|lualatex| before the default linewidth and color are set.
See last line in \verb|pstricks.tex|
+Moved macro \Lcs{clipbox} to \Lcs{psclipbox} to prevent a clash with package
+\LPack{adjustbox}
+from Martin Scharrer.
+
+
+
\section{\LuaLaTeX}\label{lua}
This version has a stable basic support for the lua package
\LPack{luapstricks.lua}, available from \url{https://github.com/zauguin/luapstricks}.
diff --git a/graphics/pstricks/base/doc/pstricks-bug.tex b/graphics/pstricks/base/doc/pstricks-bug.tex
index b5f9ba2c32..d4e0329dd3 100644
--- a/graphics/pstricks/base/doc/pstricks-bug.tex
+++ b/graphics/pstricks/base/doc/pstricks-bug.tex
@@ -97,7 +97,7 @@
% 15. When lines are very short, linestyle=dash may cause an error.
% PATCH: Input this file.
%
-% 16. \clipbox does not work.
+% 16. \psclipbox does not work.
% PATCH: Input this file.
%
% 17. Various nodes are missing \leavevmode, which can cause irregularities
@@ -509,8 +509,8 @@
stroke>
% 16.
-\def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}}
-\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}}
+\def\psclipbox{\@ifnextchar[{\psclipbox@}{\psclipbox@[\z@]}}
+\def\psclipbox@[#1]{\pst@makebox\psclipbox@@{#1}}
% 20.
\def\mixed@coor#1#2{%
diff --git a/graphics/pstricks/base/generic/pstricks.tex b/graphics/pstricks/base/generic/pstricks.tex
index 2f87e9895e..66b00657b9 100644
--- a/graphics/pstricks/base/generic/pstricks.tex
+++ b/graphics/pstricks/base/generic/pstricks.tex
@@ -88,8 +88,8 @@
\let\pgfforeach\foreach
%
-\def\fileversion{3.19c}
-\def\filedate{2024/02/02}
+\def\fileversion{3.20}
+\def\filedate{2024/07/09}
\pst@addfams{pstricks}
%
%\define@boolkey[psset]{pstricks}[Pst@]{useURWfonts}[true]{}
@@ -2609,13 +2609,13 @@
\AltClipMode
\fi
-\def\clipbox{\@ifnextchar[{\clipbox@}{\clipbox@[\z@]}}
+\def\psclipbox{\@ifnextchar[{\psclipbox@}{\psclipbox@[\z@]}}
% DG modification begin - Apr. 3, 1997
% From paulus@immd5.informatik.uni-erlangen.de (Dietrich Paulus)
%\def\clipbox@[#1]{\pst@makebox\clipbox@@{#1}}
-\def\clipbox@[#1]{\pst@makebox{\clipbox@@{#1}}}
+\def\psclipbox@[#1]{\pst@makebox{\psclipbox@@{#1}}}
% DG modification end
-\def\clipbox@@#1{%
+\def\psclipbox@@#1{%
\pssetlength\pst@dimg{#1}%
\leavevmode\hbox{%
\begin@psclip%
@@ -4119,10 +4119,19 @@ pop
\def\pst@picture{\@ifnextchar[{\pst@@picture}{\pst@@picture[]}}
\def\pst@@picture[#1]{\@ifnextchar({\pst@@picture@i[#1]}{\pst@@picture@@i[#1]}}%
\def\pst@@picture@@i[#1]{%
- \gdef\pscoor{(10,10)}%
+ \def\pic@coor{(0,0)(0,0)}%
+% \gdef\pscoor{(10,10)}%
\ifPst@calcframe
\typeout{>>>Check for file \jobname-\the\numexpr\ps@imagectr+1.psaux}%
- \IfFileExists{\jobname-\the\numexpr\ps@imagectr+1.psaux}{\input{\jobname-\the\numexpr\ps@imagectr+1.psaux}}{}%
+ \IfFileExists{\jobname-\the\numexpr\ps@imagectr+1.psaux}
+ {\input{\jobname-\the\numexpr\ps@imagectr+1.psaux}%
+ \xdef\pic@coor{(0,0)\pscoor}%
+ \typeout{----->>\pic@coor}%
+ \typeout{----->>\pscoor}%
+ }
+ {%\gdef\pscoor{(10,10)}
+ %\def\pic@coor{(0,0)(0,0)(10,10)}
+ }%
% \typeout{>>>\pscoor}%
\fi
\edef\@temp{[\noexpand#1]\pscoor}%
@@ -4168,7 +4177,7 @@ pop
\ifPst@pgffunctions\pstVerb{ pgffunctions }\fi% hv 2013-04-17
}
-\def\pic@coor{(0,0)(0,0)(10,10)}
+%\def\pic@coor{(0,0)(0,0)(10,10)}
\def\endpspicture{%
\ifPst@calcframe
\ifPSTlualatex
@@ -4236,7 +4245,7 @@ pop
\advance\pst@dimd\pst@dimb
\lower\pst@dimd\box\pst@hbox
\kern\pst@dimc}%
- \if@star\setbox\pst@hbox=\hbox{\clipbox@@\z@}\fi
+ \if@star\setbox\pst@hbox=\hbox{\psclipbox@@\z@}\fi
\leavevmode
\ifPst@draft
\expandafter\ifx\csname @latexerr\endcsname\relax
diff --git a/graphics/pstricks/contrib/pst-coil/Changes b/graphics/pstricks/contrib/pst-coil/Changes
index d9028ebf31..c9fa1b1dae 100644
--- a/graphics/pstricks/contrib/pst-coil/Changes
+++ b/graphics/pstricks/contrib/pst-coil/Changes
@@ -2,6 +2,7 @@ pst-coil.sty --------
2010-02-01 message for loading the pro file
pst-coil.tex --------
+v. 1.08 2024-08-13 - added alternative macro \psAltCoil
v. 1.07 2015-05-13 - modified psSin
v. 1.06 2011-09-18 - fix bug with \pszigzag
v. 1.05 2011-07-12 - added optional argument bow for circular
diff --git a/graphics/pstricks/contrib/pst-coil/README b/graphics/pstricks/contrib/pst-coil/README
index 8f8b07cfa0..0484bb5078 100644
--- a/graphics/pstricks/contrib/pst-coil/README
+++ b/graphics/pstricks/contrib/pst-coil/README
@@ -9,4 +9,4 @@ pst-coil-doc.bib - The documentation, bibfile
--
-Herbert Voss 2006-11-05
+hoss@tug.org 2024-08-13
diff --git a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.bib b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.bib
index b29fe53b65..1281ed1318 100644
--- a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.bib
+++ b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.bib
@@ -60,7 +60,7 @@
author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}},
title = {The {\LaTeX} {G}raphics {C}ompanion},
publisher = {{Addison-Wesley Publishing Company}},
- edition = second,
+ edition = 2,
year = {2007},
address = {Reading, Mass.}
}
diff --git a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.pdf b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.pdf
index 26f0e655ba..13ae4342bb 100644
--- a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.pdf
+++ b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.tex b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.tex
index 201f8298c0..ebcd0aa051 100644
--- a/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.tex
+++ b/graphics/pstricks/contrib/pst-coil/doc/pst-coil-doc.tex
@@ -1,9 +1,13 @@
-%% $Id: pst-coil-doc.tex 539 2011-07-12 08:22:33Z herbert $
-\documentclass[11pt,english,BCOR10mm,DIV12,bibliography=totoc,parskip=false,smallheadings
- headexclude,footexclude,oneside,dvipsnames,svgnames]{pst-doc}
+%% $Id: pst-coil-doc.tex 930 2024-08-13 18:19:44Z herbert $
+\errorcontextlines=100
+%\RequirePackage{pdfmanagement-testphase}
+\DocumentMetadata{}
+\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,twoside,english]{pst-doc}
\listfiles
-\usepackage[utf8]{inputenc}
+\addbibresource{\jobname.bib}
+\usepackage{csquotes,animate}
\usepackage{pst-plot,pst-node,pst-coil}
\SpecialCoor
\let\pstFV\fileversion
@@ -25,7 +29,7 @@
\author{Timothy Van Zandt\\Herbert Vo\ss\\Michael Sharpe}
\date{\today}
-\maketitle
+\settitle
\begin{abstract}
Coils, springs and zigzag curves
@@ -42,7 +46,7 @@ elaborated on at the corresponding places.
\vfill
\noindent
Thanks to:
-Marco Daniel, Denis Girou, Uwe Siart.
+Marco Daniel, Denis Girou, Manuel Luque, Uwe Siart.
\end{abstract}
\clearpage
@@ -561,6 +565,146 @@ Th other connections behave completely analogue to those dealt with the
package \LPack{pst-node} so that
no further explanations are needed here.
+
+\section{Alternative macro}
+
+The macro \Lcs{psAltCoil} depends on the code from Manuel Luque. It uses a different way
+to draw coils with a kind of perspective view. The possible optional parameter are:
+
+\begin{itemize}
+ \item \Lkeyword{N}\textsf{=10} : number of coils
+ \item \Lkeyword{l0}\texttt{=5} : initial length in cm
+ \item \Lkeyword{R}\texttt{=0.5} : initial radius in cm
+ \item \Lkeyword{arm}\texttt{=0} : arm length in cm
+ \item \Lkeyword{alpha}\texttt{=15} : projection angle
+ \item \Lkeyword{nS}\texttt{=25} : number of steps per coil
+\end{itemize}
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid,arrowsize=0.2,arrowinset=0.1](-2,-1.4)(14,2)
+\psAltCoil[N=20,l0=10,alpha=20,arm=0.5,linewidth=0.05]{*-*}(0,0)(11,0)
+\psline[linewidth=0.5\pslinewidth](0.5,0)(0.5,1.25)
+\psline[linewidth=0.5\pslinewidth](10.5,0)(10.5,1.25)
+\psline{<->}(0.5,1)(10.5,1)
+\uput[u](5.5,1){l0=10 cm}
+\psline[linewidth=0.5\pslinewidth](0,0)(0,1.25)
+\psline{>-}(-0.22,1)(0.5,1)
+\uput[u](0.25,1){dl}
+\psline[linewidth=0.5\pslinewidth](11,0)(11,1.25)
+\psline{-<}(10.5,1)(11.25,1)
+\uput[u](10.75,1){dl}
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid,arrowsize=0.2,arrowinset=0.1](-2,-1.4)(14,2)
+\psAltCoil[N=20,l0=10,R=0.5,alpha=20,arm=0.5,linewidth=0.05]{*-*}(-2,0)(14,0)
+\psline[linewidth=0.5\pslinewidth](-1.5,0)(-1.5,1.25)
+\psline[linewidth=0.5\pslinewidth](13.5,0)(13.5,1.25)
+\psline{<->}(-1.5,1)(13.5,1)
+\uput[u](5.5,1){L=15 cm}
+\psline[linewidth=0.5\pslinewidth](-2,0)(-2,1.25)
+\psline{>-}(-2.25,1)(-1.5,1)
+\uput[u](-1.75,1){dl}
+\psline[linewidth=0.5\pslinewidth](14,0)(14,1.25)
+\psline{-<}(13.5,1)(14.25,1)
+\uput[u](13.75,1){dl}
+\end{pspicture}
+\end{LTXexample}
+
+
+
+The next animation needs Adobe Acrobat to view:
+
+\begin{minipage}{4cm}
+\psset{unit=0.5}
+\def\nFrames{44}% 44 images
+\def\calc{
+ /Z0 -16 def
+ /OMEGA 20 0.1 div sqrt def % pulsation des oscillations
+ /Period TwoPi OMEGA div def % 0.4442883
+ /ti \rt\space def
+ /ZR Z0 -5 OMEGA RadtoDeg ti mul cos mul add def }
+\newcommand\bille{%
+ \psset{linewidth=0.02,fillstyle=solid,fillcolor=yellow!50}
+ \pscircle*[linecolor=yellow](0,0){0.5}
+ \psarc[linecolor=black](0,0){0.425}{-110}{90}
+ \psarc[linecolor=black](0,0){0.3}{-90}{70}
+ \psarc[linecolor=black](0,0){0.2}{-70}{60}}
+
+\begin{animateinline}[controls,loop,%
+ begin={\begin{pspicture}(-2,1)(2,-23)},
+ end={\end{pspicture}}]{5}% 5 images/s
+\multiframe{\nFrames}{rt=0+0.01}{%
+ \psframe*(-2,1)(2,-23)
+ \psframe[fillstyle=hlines,linestyle=none,hatchcolor=white](-1,0)(1,0.2)
+ \psline[linecolor=white](-1,0)(1,0)
+ \psdot[linecolor=white](0,0)
+ \psgrid[subgriddiv=0,gridcolor=white,griddots=10,gridlabels=0pt]
+ \psAltCoil[arm=0.5,alpha=25,N=20,l0=10,linecolor=white,linewidth=0.05](0,0)(! 0 \calc ZR)
+ \rput(! 0 \calc ZR 0.5 sub){\pscircle*[linecolor=yellow](0,0){0.5}}
+}
+\end{animateinline}
+\end{minipage}%
+\begin{minipage}{\dimexpr\linewidth-4cm}
+\begin{verbatim}
+\psset{unit=0.75}
+\def\nFrames{44}% 44 images
+\def\calc{
+ /Z0 -16 def
+ /OMEGA 20 0.1 div sqrt def
+ /Period TwoPi OMEGA div def % 0.4442883
+ /ti \rt\space def % rt variable from animate
+ /ZR Z0 -5 OMEGA RadtoDeg ti mul cos mul add def }
+\begin{animateinline}[controls,loop,%
+ begin={\begin{pspicture}(-2,1)(2,-23)},
+ end={\end{pspicture}}]{5}% 5 images/s
+\multiframe{\nFrames}{rt=0+0.01}{%
+ \psframe*(-2,1)(2,-23)
+ \psframe[fillstyle=hlines,linestyle=none,
+ hatchcolor=white](-1,0)(1,0.2)
+ \psline[linecolor=white](-1,0)(1,0)
+ \psdot[linecolor=white](0,0)
+ \psgrid[subgriddiv=0,gridcolor=white,griddots=10,gridlabels=0pt]
+ \psAltCoil[arm=0.5,alpha=25,N=20,l0=10,linecolor=white,
+ linewidth=0.05](0,0)(! 0 \calc ZR)
+ \rput(! 0 \calc ZR 0.5 sub){\pscircle*[linecolor=yellow](0,0){0.5}}
+}
+\end{animateinline}
+\end{verbatim}
+\end{minipage}
+
+
+
+\begin{LTXexample}[pos=l]
+\begin{pspicture}[showgrid](0,0)(6,11)
+\psAltCoil[linecolor=blue,N=20,linewidth=0.1,
+ alpha=-20,arm=1,arrowinset=0.1]{<->}(1,2)(5,10)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=l]
+\begin{pspicture}[showgrid](0,0)(4,6)
+\psAltCoil[linecolor=red,N=20](1,5)(3,1)
+\end{pspicture}
+\end{LTXexample}
+
+
+\begin{LTXexample}[pos=t]
+\begin{pspicture}[showgrid](0,-5)(16,5)
+\psAltCoil[linecolor=blue,N=25,R=1,l0=5,arm=0.5,alpha=-20,
+ doubleline=true](0,3)(16,3)
+\psAltCoil[linecolor=red,N=8,alpha=25](0,0)(4,0)
+\psAltCoil[linecolor=black,N=8,alpha=25](16,0)
+\psAltCoil[linecolor=blue,N=15.5,l0=5,arm=0.5,alpha=0](0,-2)(16,-2)
+\end{pspicture}
+\end{LTXexample}
+
+
+
\clearpage
\section{List of all optional arguments for \texttt{pst-coil}}
@@ -570,8 +714,7 @@ no further explanations are needed here.
\nocite{*}
\bgroup
\RaggedRight
-\bibliographystyle{plain}
-\bibliography{pst-coil-doc}
+\printbibliography
\egroup
\printindex
diff --git a/graphics/pstricks/contrib/pst-coil/dvips/pst-coil.pro b/graphics/pstricks/contrib/pst-coil/dvips/pst-coil.pro
index 9513e99194..b5484af58c 100644
--- a/graphics/pstricks/contrib/pst-coil/dvips/pst-coil.pro
+++ b/graphics/pstricks/contrib/pst-coil/dvips/pst-coil.pro
@@ -41,8 +41,8 @@
/roundValue ED
/relativePeriod ED
/Periods ED
- /y1 ED /x1 ED /y0 ED /x0 ED
- y1 y0 sub x1 x0 sub 2 copy Pyth
+ /y_1 ED /x_1 ED /y_0 ED /x_0 ED
+ y_1 y_0 sub x_1 x_0 sub 2 copy Pyth
dup /TotalLength ED
ArmA sub ArmB sub /SinLength ED
Atan /RotAngle ED
@@ -54,7 +54,7 @@
/dxStep SinLength 360 div def % the default step for x pos
/xStep 360 PointsPerPeriod div def % the step for the for loop
/mtrx CM def
- x0 y0 translate
+ x_0 y_0 translate
RotAngle rotate
1 0 0 0 ArrowA ArmA 0 lineto
1 xStep 360 { % PointsPerPeriod times
@@ -77,7 +77,9 @@
BeginAngle 180 div AspectCos mul add BeginAngle cos
/lineto load stopped { moveto } if
BeginAngle Inc EndAngle { CoilLoop } for
- EndAngle CoilLoop mtrx setmatrix } def
+ EndAngle CoilLoop mtrx setmatrix
+} def
+%
/ZigZag { 15 dict begin
/ArmB ED /ArmA ED
2 div /w ED
@@ -109,7 +111,7 @@
%/psi ang 90 sub theta sub def % angle of B from center if bow>0
/rho HalfLength theta sin div def % radius of circle
bow 0 gt { /direc 1 def /thetaB ang 90 sub theta sub def } % travel B to A in pos drn
- { /direc -1 def /thetaB ang 90 add theta add def } ifelse % travel B to A in neg drn
+ { /direc -1 def /thetaB ang 90 add theta add def } ifelse % travel B to A in neg drn
%thetaB=angle from center to B
rho thetaB 180 add PtoC translate % origin now at center
/h h rho div RadtoDeg def
@@ -123,9 +125,14 @@
/arg thetaB ArmB direc mul add def % argument for 2nd point
% thetaB = direc = bow = HalfLength = theta = rho = arg = h = n =
mark rho thetaB PtoC rho arg PtoC /arg arg h 2 div add def
- n { w 0 gt { rhoo }{ rhoi } ifelse arg PtoC /w w neg def /arg arg h add def } repeat
+ n {
+ w 0 gt { rhoo }{ rhoi } ifelse
+ arg PtoC
+ /w w neg def
+ /arg arg h add def
+ } repeat
rho thetaB theta2 ArmA sub direc mul add PtoC rho thetaB theta2 direc mul add PtoC
- } def
+} def
%
end
% END pst-coil.pro
diff --git a/graphics/pstricks/contrib/pst-coil/latex/pst-coil.sty b/graphics/pstricks/contrib/pst-coil/latex/pst-coil.sty
index d5b0311532..1def1526c0 100644
--- a/graphics/pstricks/contrib/pst-coil/latex/pst-coil.sty
+++ b/graphics/pstricks/contrib/pst-coil/latex/pst-coil.sty
@@ -1,4 +1,4 @@
-%% $Id: pst-coil.sty 539 2011-07-12 08:22:33Z herbert $
+%% $Id: pst-coil.sty 930 2024-08-13 18:19:44Z herbert $
\RequirePackage{pstricks}
\ProvidesPackage{pst-coil}[2010/02/01 package wrapper for
pst-coil.tex (hv)]
diff --git a/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex b/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
index cd15fa0537..0aff59732c 100644
--- a/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
+++ b/graphics/pstricks/contrib/pst-coil/tex/pst-coil.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-coil.tex 578 2011-09-18 17:18:46Z herbert $
+%% $Id: pst-coil.tex 930 2024-08-13 18:19:44Z herbert $
%% BEGIN pst-coil.tex
%%
%% Coils and zigzags with PSTricks
@@ -7,7 +7,7 @@
%%
%%
%% COPYRIGHT 1993, 1994, 1999 by Timothy Van Zandt, tvz@nwu.edu.
-%% 2006-2015 Herbert Voss, hvoss@tug.org
+%% 2006-2024 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
@@ -21,8 +21,8 @@
\ifx\PSTnodeLoaded\endinput \else\input pst-node.tex\fi
\ifx\PSTXKeyLoaded\endinput \else\input pst-xkey \fi
%
-\def\fileversion{1.07}
-\def\filedate{2015/05/13}
+\def\fileversion{1.08}
+\def\filedate{2024/08/13}
%
\edef\TheAtCode{\the\catcode`\@}
\catcode`\@=11
@@ -48,7 +48,15 @@
\let\psk@coilarmB\psk@coilarmA}
\define@key[psset]{pst-coil}{coilaspect}[45]{\pst@getangle{#1}\psk@coilaspect}
\define@key[psset]{pst-coil}{coilinc}[10]{\pst@getangle{#1}\psk@coilinc}
-%
+%%%%%% alternative macro
+\define@key[psset]{pst-coil}{N}[10]{\def\psk@NoOfSpirals{#1 }}
+\define@key[psset]{pst-coil}{R}[1]{\def\psk@InitialWidth{#1 }}% in cm
+\define@key[psset]{pst-coil}{l0}[10]{\def\psk@InitialLength{#1 }}
+\define@key[psset]{pst-coil}{alpha}[15]{\def\psk@coil@Alpha{#1 }}
+\define@key[psset]{pst-coil}{arm}[0]{\def\psk@coil@arm{#1 }}
+\define@key[psset]{pst-coil}{nS}[25]{\def\psk@coil@NoOfPointsPerCoil{#1 }}
+\psset[pst-coil]{N=10,R=0.5,alpha=15,arm=0,l0=5,nS=25}
+
\psset[pst-coil]{coilaspect=45,coilarm=.5cm,coilheight=1,coilwidth=1cm,coilinc=10}
%
\def\pscoil{\def\pst@par{}\pst@object{pscoil}}
@@ -198,7 +206,7 @@
{ \psk@function }
\tx@Sin
}%
- \showpointsfalse%
+ \showpointsfalse
\end@OpenObj}
%
\def\ncsin{\pst@object{ncsin}}
@@ -220,6 +228,49 @@
\def\pcsin{\def\pst@par{}\pst@object{pcsin}}
\def\pcsin@i{\pc@object\ncsin@ii}
%
+\def\psAltCoil{\def\pst@par{}\pst@object{psAltCoil}}
+\def\psAltCoil@i{\pst@getarrows\psAltCoil@ii}
+\def\psAltCoil@ii(#1){\@ifnextchar({\psAltCoil@iii{1}(#1)}{\psAltCoil@iii{\z@}(0,0)(#1)}}
+\def\psAltCoil@iii#1(#2)(#3){%
+ \begin@OpenObj
+ \pst@getcoor{#2}\pst@tempa
+ \pst@getcoor{#3}\pst@tempb
+ \addto@pscode{%
+ \pst@tempa \pst@tempb
+ /y1 ED /x1 ED /y0 ED /x0 ED
+ x0 y0 translate
+ y1 y0 sub x1 x0 sub 2 copy Pyth
+ /Longueur ED
+ Atan rotate
+ /NoOfSpirals \psk@NoOfSpirals def % nombre de spires
+ /Alpha \psk@coil@Alpha def
+ /R_0 \psk@InitialWidth \pst@number\psunit mul def
+ /arm \psk@coil@arm \pst@number\psunit mul def
+ /l_0 \psk@InitialLength \pst@number\psunit mul def
+ /nS \psk@coil@NoOfPointsPerCoil def
+ /Pas_0 l_0 NoOfSpirals div def
+ /Pas Longueur 2 arm mul sub NoOfSpirals div def
+ % longueur de l'hélice sur un tour
+ % = sqrt(4*pi^2*R^2+p^2)
+ /Longueur_Helice_pas 39.47842 R_0 dup mul mul Pas_0 dup mul add sqrt def
+ % R=1/(2*pi)*sqrt(L^2-p^2)
+ /Radius 0.1591549 Longueur_Helice_pas dup mul Pas dup mul sub sqrt mul def
+ /xH {Radius 360 t mul cos mul Radius sub} def
+ /yH {Radius 360 t mul sin mul} def
+ /zH {Pas t mul arm add} def
+ /Inc 1 NoOfSpirals nS mul div def % nS(50) points par spires
+ 1 setlinejoin
+ 1 0 0 0 ArrowA arm 0 lineto
+ 0 Inc NoOfSpirals {
+ /t ED
+ zH xH Alpha tan mul sub
+ yH
+ lineto
+ } for
+ Longueur 0
+ ArrowB lineto
+ }%
+ \end@OpenObj}
%
\catcode`\@=\TheAtCode\relax
\endinput
diff --git a/graphics/pstricks/contrib/pst-diffraction/Changes b/graphics/pstricks/contrib/pst-diffraction/Changes
index d5cad1459f..d40c814ac7 100644
--- a/graphics/pstricks/contrib/pst-diffraction/Changes
+++ b/graphics/pstricks/contrib/pst-diffraction/Changes
@@ -1,4 +1,11 @@
pst-diffraction.tex --------
+2.06a 2024-07-15 - small fix in the documentation
+2.06 2024-07-10 - fix for missing contrast option for \psdiffractionCircular (Keno Wehr)
+2.05 2024-07-10 - removed unused optional argument gamma
+2.04a 2024-06-29 - bugfix for the documentation header
+ - removed german and french docs
+2.04 2010-01-05 - fix bug with missing \space for keywords
+ from pst-3dplot
2.03 2008-09-03 - fix compatibility bug with pst-3d
(\variablesIIID no more valid)
2.02 2007-09-25 - add IIID option for all macros
diff --git a/graphics/pstricks/contrib/pst-diffraction/Makefile b/graphics/pstricks/contrib/pst-diffraction/Makefile
deleted file mode 100644
index 1d4650b7c1..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-# `Makefile' for `pst-diffraction.pdf', hv, 2007/03/17
-
-.SUFFIXES : .tex .ltx .dvi .ps .pdf .eps
-
-PACKAGE = pst-diffraction
-
-LATEX = latex
-
-ARCHNAME = $(PACKAGE)-$(shell date +%y%m%d)
-ARCHFILES = $(PACKAGE).sty *.tex $(PACKAGE).pro *.tex README Changes Makefile
-
-all : DE E FR clean
-
-DE : $(PACKAGE)-docDE.pdf
-E : $(PACKAGE)-docE.pdf
-FR : $(PACKAGE)-docFR.pdf
-
-doc : $(MAIN).pdf
-
-%.pdf : %.ps
- GS_OPTIONS=-dAutoRotatePages=/None ps2pdf $<
-
-%.ps : %.dvi
- dvips $<
-
-%.dvi : %.tex
- $(LATEX) $<
- $(LATEX) $<
- if ! test -f $(basename $<).glo ; then touch $(basename $<).glo; fi
- if ! test -f $(basename $<).idx ; then touch $(basename $<).idx; fi
- makeindex -s gglo.ist -t $(basename $<).glg -o $(basename $<).gls \
- $(basename $<).glo
- makeindex -t $(basename $<).ilg -o $(basename $<).ind \
- $(basename $<).idx
- bibtex $(basename $<)
- $(LATEX) $<
- $(LATEX) $<
-
-clean :
- $(RM) $(addprefix $(PACKAGE)-docDE, .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl )
- $(RM) $(addprefix $(PACKAGE)-docDE, .dvi .ps)
- $(RM) $(addprefix $(PACKAGE)-docE, .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl )
- $(RM) $(addprefix $(PACKAGE)-docE, .dvi .ps)
- $(RM) $(addprefix $(PACKAGE)-docFR, .log .aux .glg .glo .gls .ilg .idx .ind .tmp .toc .out .blg .Roessler .bbl )
- $(RM) $(addprefix $(PACKAGE)-docFR, .dvi .ps)
-
-veryclean : clean
- $(RM) $(addprefix $(PACKAGE)-docDE, .pdf .bbl .blg)
- $(RM) $(addprefix $(PACKAGE)-docE, .pdf .bbl .blg)
- $(RM) $(addprefix $(PACKAGE)-docFR, .pdf .bbl .blg)
-
-arch :
- zip $(ARCHNAME).zip $(ARCHFILES)
-
-# EOF
diff --git a/graphics/pstricks/contrib/pst-diffraction/README b/graphics/pstricks/contrib/pst-diffraction/README
index e642ddc6fb..3d95ca6feb 100644
--- a/graphics/pstricks/contrib/pst-diffraction/README
+++ b/graphics/pstricks/contrib/pst-diffraction/README
@@ -1,9 +1,9 @@
%% Package `pst-diffraction.tex'
%%
-%% Manuel Luque (ml _at_ pstricks.de) (France)
-%% Herbert Voss (hv _at_ pstricks.de) (Germany)
+%% Manuel Luque (France)
+%% Herbert Voss (hvoss _at_ tug.org) (Germany)
%%
-%% 2007-09-04
+%% 2024-06-29
%%
PSTricks offers excellent macros to insert more or less complex
@@ -19,39 +19,28 @@ Save the files
pst-diffraction.sty
pst-diffraction.tex
-pst-diffraction.pro
in any place, where latex or any other TeX program will find it.
-The pro file should go into $TEXMF$/dvips/pstricks/.
-
-pst-diffraction uses the extended version of the keyval package. So
-be sure that you
-- have installed xkeyval with the special pst-xkey
- (CTAN: tex-archive/macros/latex/contrib/xkeyval/)
-- do not load another package after pst-diffraction, which loads
- the old keyval.sty or pst-key.tex
You can run the documentation with
-make DE
-make E
-make FR
-or for all make all ;-) this will take a lot of time, because
+make
+
+or for all make all ;-) this may take some time, because
the images are very big.
If you like to get the documentation file in another format run
-latex pst-diffraction-docX.tex
-bibtex pst-diffraction-docX
-latex pst-diffraction-docX.tex
-dvips pst-diffraction-docX.dvi
+latex pst-diffraction-doc.tex
+bibtex pst-diffraction-doc
+latex pst-diffraction-doc.tex
+dvips pst-diffraction-doc.dvi
to get a PostScript file. But pay attention, that the pst-diffraction
files are saved in the above mentioned way, before you run
latex on the documentation file.
-The intermediate DVI file works only with viewers which can
-interprete the embedded PostScript code.
+Running the files with lualatex is possible, but may take a lot of
+time in fact of the heavy calculations.
-For another PDF output read the introduction from
-the documentation.
+hvoss@tug.org
diff --git a/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.bib b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.bib
new file mode 100644
index 0000000000..0d2ecefe77
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.bib
@@ -0,0 +1,176 @@
+@STRING{tugboat = {TUGboat} }
+@STRING{dtk = {Die {\TeX}nische Komödie} }
+@STRING{bretter = {Bretter, die die Welt bedeuten } }
+
+@Book{companion,
+ author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Dennis Roegel and Herbert Voß},
+ title = {The {\LaTeX} Graphics Companion},
+ publisher = {Lehmanns Media},
+ edition = {2},
+ date = {2022},
+ location = {Berlin},
+ note={Preprint of the english version, 2nd edition}
+}
+
+@Article{girou:01:,
+ author = {Denis Girou},
+ title = {Présentation de PSTricks},
+ journal = {Cahier {GUT}enberg},
+ year = 1994,
+ volume = {16},
+ month = apr,
+ pages = {21-70}
+}
+
+@Article{girou:02:,
+ author = {Timothy Van Zandt and Denis Girou},
+ title = {Inside {PST}ricks},
+ journal = TUGboat,
+ year = 1994,
+ volume = {15},
+ month = sep,
+ pages = {239-246}
+}
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {PostScript richtig eingesetzt: vom Konzept zum praktischen Einsatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@ctan{multido,
+title = {The Multido package},
+subtitle = {A loop facility for Generic TeX},
+author = {Van Zandt, Timothy and Voß, Herbert and Niepraschk, Rolf},
+url = {macros/latex/multido},
+urldate = {2018-09-01},
+version = {1.42}
+}
+
+
+@Book{PSTricks2,
+ author = {Herbert Voß},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {7},
+ publisher = {DANTE {\eV} and Lehmanns Media},
+ date = {2016},
+ address = {Heidelberg and Hamburg}
+}
+
+@Book{PSTricksE,
+ author = {Herbert Voß},
+ title = {\texttt{PSTricks} -- Graphics and PostScript for \LaTeX},
+ edition = {1},
+ publisher = {UIT},
+ date = {2011},
+ address = {Cambridge -- UK}
+}
+
+@Book{LTXquick,
+ author = {Herbert Voß},
+ title = {{\LaTeX} quick reference},
+ edition = {1},
+ publisher = {UIT},
+ year = {2012},
+ address = {Cambridge -- UK}
+}
+
+@Book{presentations,
+ author = {Herbert Voß},
+ title = {Presentations with \LaTeX},
+ edition = {2},
+ publisher = {DANTE {\eV} and Lehmanns Media},
+ year = {2019},
+ address = {Heidelberg and Berlin}
+}
+
+
+@Book{tbt,
+ author = {Victor Eijkhout},
+ title = {\TeX\ by Topic -- {A} \TeX{}nician Reference},
+ edition = {1},
+ publisher = {DANTE {\eV} and Lehmanns Media},
+ year = {2014},
+ address = {Heidelberg and Berlin}
+}
+
+
+
+@Article{dtk02.1:voss:mathematischen,
+ author = {Herbert Voß},
+ title = {Die mathematischen {F}unktionen von {P}ostscript},
+ journal = dtk,
+ year = 2002,
+ volume = {1/02},
+ altvolume = 1,
+ altnumber = 14,
+ month = mar,
+ pages = {40-47},
+ annote = bretter,
+ abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im
+ Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es
+ darum geht zu beurteilen, was es denn nun im eigentlichen
+ Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass
+ sich mit den \PS-Funktionen viele Dinge erledigen lassen,
+ bei denen sonst auf externe Programme zur{\"u}ckgegriffen
+ wird. Dies wird im Folgenden f{\"u}r die mathematischen
+ Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot}
+ gezeigt. }
+}
+
+
+@Book{PostScript,
+ Author = {Kollock, Nikolai G.},
+ Title = {PostScript richtig eingesetzt: vom Konzept zum
+ praktischen Einsatz},
+ Publisher = {IWT},
+ Address = {Vaterstetten},
+ year = 1989,
+}
+
+@online{pstricks,
+ Title = {PSTricks - {\PS} macros for Generic TeX},
+ Author = {Timothy Van Zandt},
+ Organization = {},
+ url = {http://www.tug.org/application/PSTricks},
+ year = 1993,
+}
+
+
+@online{pdftricks,
+ Title = {PSTricks Support for pdf},
+ Author = {Herbert Voß},
+ url = {http://PSTricks.de/pdf/pdfoutput.phtml},
+ year = 2002,
+}
+
+@Book{diffraction,
+ author = {Bouasse, H. and Carri\`ere, Z.},
+ title = {Diffraction},
+ publisher={Delagrave},
+ year ={1923},
+ address = {Paris},
+ pages = 480
+}
+
+
+@book{tutorial,
+ title = {The New Physical Optics Notebook Tutorials in Fourier Optics},
+ isbn ={0819401307},
+ author ={Reynolds, George O. and Develis, John B. and Parrent, George B. and Thompson, Bria},
+ url = {\url{http://www.langtoninfo.co.uk/de/showitem.asp?isbn=0819401307}},
+ year= 1989,
+ publisher = {Society of {P}hoto {O}ptical}
+}
+
+@online{Fresnel,
+ Title = {Augustin Fresnel},
+ Author = {Manuel Luque},
+ Organization = {},
+ url = {http://melusine.eu.org/syracuse/mluque/fresnel/augustin/fresnel.html},
+ year = 2004
+}
+
+
diff --git a/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.pdf b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.pdf
new file mode 100644
index 0000000000..d6e0b803ac
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.tex b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.tex
index 1dc2d35e4c..382907d86c 100644
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.tex
+++ b/graphics/pstricks/contrib/pst-diffraction/doc/pst-diffraction-doc.tex
@@ -1,75 +1,53 @@
-\documentclass[dvips,english,a4paper]{article}
-\usepackage[utf8]{inputenc}%
-\usepackage[T1]{fontenc}
-\usepackage[bmargin=2cm,tmargin=2cm]{geometry}
-%
-\usepackage{pstricks,pst-node,pst-grad,url}
-\usepackage{pst-diffraction}
-\let\PSTfileversion\fileversion
-\let\PSTfiledate\filedate
-%
-\usepackage{ccfonts}
-\usepackage[euler-digits]{eulervm}
-\usepackage[scaled=0.85]{luximono}
-\usepackage{xspace}
-\newcommand*\psp{\texttt{pspicture}\xspace}
-\def\UrlFont{\small\ttfamily}
-\makeatletter
-\def\verbatim@font{\small\normalfont\ttfamily}
-\makeatother
-\usepackage{prettyref,multicol}
-\usepackage{fancyhdr}
-\usepackage{showexpl}
+%% $Id: pst-diffraction-docE.tex 134 2009-09-27 12:28:50Z herbert $
+\documentclass[11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,twoside,english]{pst-doc}
+
+%\usepackage{libertinus}
+\usepackage{biblatex}
+\addbibresource{pst-diffraction-doc.bib}
+
+\usepackage{xurl,pst-grad,pst-diffraction}
+\let\pstDiffractionFV\fileversion
+
+
+
+\lstset{pos=t,wide=true,language=PSTricks,
+ morekeywords={psdiffractionRectangle,psdiffractionCircle,psdiffractionCircular},basicstyle=\footnotesize\ttfamily}
\lstdefinestyle{syntax}{backgroundcolor=\color{blue!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
frame=single}
\lstdefinestyle{example}{backgroundcolor=\color{red!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
frame=single}
-\lstset{wide=true,language=PSTricks,
- morekeywords={psdiffractionCircular,psdiffractionRectangle,psdiffractionTriangle}}
-
-\usepackage{babel}
-\usepackage[colorlinks,linktocpage]{hyperref}
-
-\pagestyle{fancy}
-\def\Lcs#1{{\ttfamily\textbackslash #1}}
-\lfoot{\small\ttfamily\jobname.tex}
-\cfoot{Documentation}
-\rfoot{\thepage}
-\lhead{PSTricks}
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
-\newcommand{\PS}{PostScript}
-\newcommand\CMD[1]{\texttt{\textbackslash#1}}
-\makeatother
-\usepackage{framed}
-\definecolor{shadecolor}{cmyk}{0.2,0,0,0}
-\SpecialCoor
-
-\title{\texttt{pst-diffraction}\\[6pt]
-Diffraction patterns for diffraction from circular, rectangular and triangular
-apertures
-\\[1cm]
----\\[10pt]
-{\normalsize v. \PSTfileversion (\PSTfiledate)}}
-\author{%
- \tabular[t]{c}Manuel Luque\\[3pt]
- \url{ml@PSTricks.de}
- \endtabular \and
- \tabular[t]{c}Herbert Vo\ss\\[3pt]
- \url{hv@PSTricks.de}\endtabular%
-}
-\date{\today}
+\newcommand*\psp{\texttt{pspicture}\xspace}
+%
+
+\renewcommand\bgImage{%
+\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
+\psdiffractionCircular[f=10,showFunc=true]
+\end{pspicture}
+}
+
+\def\eV{e.\kern-1pt{}V\kern-1pt}
+
\begin{document}
-\maketitle
-\vfill\noindent
-Thanks to Doris Wagner for help with the documentation.\\
-Also thanks to: Julien Cubizolles.
+\title{\texttt{pst-diffraction}}
+\subtitle{Diffraction patterns for diffraction from circular, rectangular and triangular
+apertures; v.\pstDiffractionFV}
+\author{Manuel Luque \\ Herbert Vo\ss}
+\docauthor{Herbert Voß}
+\date{\today}
+%\maketitle
+\settitle
-\clearpage
\tableofcontents
+\psset{unit=1cm}
+
+\vfill\noindent
+Thanks to: Julien Cubizolles,
+Doris Wagner,
+Timothy Van Zandt, Keno Wehr,
+Michael Zedler.
-\clearpage
\section{Optical setup}
@@ -124,24 +102,22 @@ of the light (the associated color will be given automatically by the package).
There are three commands, for rectangular, circular and triangular openings respectively:
-\begin{lstlisting}[style=syntax]
-\psdiffractionRectangle[<Optionen>]
-\psdiffractionCircular[<Optionen>]
-\psdiffractionTriangle[<Optionen>]
-\end{lstlisting}
+\begin{BDef}
+\Lcs{psdiffractionRectangle}\OptArgs\\
+\Lcs{psdiffractionCircular}\OptArgs\\
+\Lcs{psdiffractionTriangle}\OptArgs
+\end{BDef}
\section{The color}
The desired color is defined by specifying the associated wavelength $\lambda$ (in nanometers).
-Red for instance one gets by the option \texttt{[lambda=632]} because
+Red for instance one gets by the option \Lkeyword{lambda}=632 because
red light has the wavelength $\lambda_{\textrm{rot}}=632\,\textrm{nm}$.
The conversion of the wavelength into the associated \texttt{RGB}-value is done by PostScript.
The code is similar to the code of a FORTRAN program which can be found here: \\
\url{http://www.midnightkite.com/color.html}
-\clearpage
-
\section{Diffraction from a rectangular aperture}
\begin{center}
@@ -154,23 +130,23 @@ The code is similar to the code of a FORTRAN program which can be found here: \\
\end{pspicture}
\end{center}
-The width of the rectangle with the area $h=k\times a$ is defined by the letter \texttt{[a]},
-the height by \texttt{[k]}.
-The focal length is specified by \texttt{[f]}, the desired resolution in pixels [pixel].
-With the option \texttt{[contrast]} one can improve the visibility of the minor secondary
-maxima more.\\
-We get a black and white picture if we use the option \texttt{[colorMode=0]},
-the option \texttt{[colorMode=1]} provides the associated negative pattern. The options
-\texttt{[colorMode=2]} and \texttt{[colorMode=3]} render color pictures in the
-CMYK and RGB color model respectively.
+The width of the rectangle with the area $h=k\times a$ is defined by the letter \Lkeyword{a},
+the height by \Lkeyword{k}.
+The focal length is specified by \Lkeyword{f}, the desired resolution in pixels [pixel].
+With the option \Lkeyword{contrast} one can improve the visibility of the minor secondary
+maxima more.
+We get a black and white picture if we use the option \Lkeyword{colorMode}=0,
+the option \Lkeyword{colorMode}=1 provides the associated negative pattern. The options
+\Lkeyword{colorMode}=2 and \Lkeyword{colorMode}=3 render color pictures in the
+\Index{CMYK} and \Index{RGB} color model respectively.
By default the settings are as follows:
\begin{tabular}{@{}lll@{}}
-\texttt{[a=0.2e-3]} in m; & \texttt{[k=1]}; & \texttt{[f=5]} in m;\\
-\texttt{[lambda=650]} in nm; & \texttt{[pixel=0.5]}; & \texttt{[contrast=38]}, greates value;\\
-\texttt{[colorMode=3]}; & \texttt{[IIID=false]}.
+\Lkeyword{a}=0.2e-3 in m; & \Lkeyword{k}=1; & \Lkeyword{f}=5 in m;\\
+\Lkeyword{lambda}=650 in nm; & \Lkeyword{pixel}=0.5; & \Lkeyword{contrast}=38, greatest value;\\
+\Lkeyword{colorMode}=3; & \Lkeyword{IIID}=\false.
\end{tabular}
\bigskip
@@ -189,7 +165,7 @@ By default the settings are as follows:
\end{pspicture}
\hfill
\begin{pspicture}(-1.5,-2.5)(3.5,3.5)
-\psdiffractionRectangle[IIID,Alpha=30,f=2.5]
+\psdiffractionRectangle[IIID,Alpha=30,f=2.5]% for Alpha see package pst-3dplot
\end{pspicture}
\end{lstlisting}
@@ -233,6 +209,7 @@ By default the settings are as follows:
\hfill
\begin{pspicture}(-1.5,-2)(3.5,3)
\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
+% % for Alpha see package pst-3dplot
\end{pspicture}
\end{lstlisting}
@@ -244,6 +221,7 @@ By default the settings are as follows:
\hfill
\begin{pspicture}(-3.5,-1)(3.5,4)
\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
+% % for Alpha see package pst-3dplot
\end{pspicture}
\begin{lstlisting}[style=example]
@@ -253,21 +231,18 @@ By default the settings are as follows:
\hfill
\begin{pspicture}(-3.5,-1)(3.5,4)
\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
+% % for Alpha see package pst-3dplot
\end{pspicture}
\end{lstlisting}
-\section{Diffraction from two rectangular apertures}
-
-\begin{shaded}
-This simulation was provided by Julien
-\textsc{Cubizolles}.
-\end{shaded}
+\section[Diffraction from two rectangular apertures]{Diffraction from two rectangular apertures%
+\protect\footnote{This simulation was provided by Julien Cubizolles.}}
It is also possible to render the diffraction pattern of two congruent rectangles
(placed parallel such that their base is located on the $x$-axis)
-by using the option \texttt{[twoSlit]}.
+by using the option \Lkeyword{twoSlit}.
By default this option is deactivated.
The distance of the two rectangles is specified by the option $s$.
-The default for $s$ is $12e^{-3}\,\mathrm{m}$.
+The default for $s$ is $12\cdot10^{-3}\,\mathrm{m}$.
\begin{center}
@@ -286,12 +261,14 @@ The default for $s$ is $12e^{-3}\,\mathrm{m}$.
\begin{center}
\begin{pspicture}(-2,-1)(4,4)
\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
+% % for Alpha see package pst-3dplot
\end{pspicture}
\end{center}
\begin{lstlisting}[pos=t,style=example,wide=false]
\begin{pspicture}(-2,-1)(4,4)
\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
+% % for Alpha see package pst-3dplot
\end{pspicture}
\end{lstlisting}
@@ -301,16 +278,16 @@ The default for $s$ is $12e^{-3}\,\mathrm{m}$.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Diffraction from a circular aperture}
-The radius of the circular opening can be chosen via the letter \texttt{r}, e.g.
-\texttt{[r=1e-3]}. The default is $r=1$ mm. In the first quadrant
+The radius of the circular opening can be chosen via the letter \Lkeyword{r}, e.g.
+\Lkeyword{r}=1e-3. The default is $r=1$ mm. In the first quadrant
PSTricks displays the graph of the intensity distribution (the maximum in the center will be
-cropped if its height exceeds the margin of the \psp-environment).
+cropped if its height exceeds the margin of the environment \Lenv{pspicture*}).
\hspace*{-1cm}%
\begin{LTXexample}[pos=t,style=example,wide=false]
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
+\begin{pspicture*}(-3.5,-3.5)(3.5,3.5)
\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
+\end{pspicture*}
%
\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
\psdiffractionCircular[IIID,r=0.5e-3,f=10,pixel=0.5,lambda=520]
@@ -318,17 +295,31 @@ cropped if its height exceeds the margin of the \psp-environment).
\end{LTXexample}
+\begin{LTXexample}[pos=t,style=example,wide=false]
+\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
+\psdiffractionCircular[f=10]
+\end{pspicture}
+\hfill
+\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
+\psdiffractionCircular[f=10,showFunc=true]
+\end{pspicture}
+\end{LTXexample}
+
+
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Diffraction from two circular apertures}
Only the case of equal radii is provided, this common radius can be defined like in the
-previous section via \texttt{[r=\dots]}.
+previous section via \Lkeyword{r}=\dots.
Furthermore one has to give the half distance of the circles measured from their centers by
-\texttt{[d=\dots]}, e.g. \texttt{[d=3e-3]}. Also the option
-\texttt{[twoHole]} has to be used.\\
+\Lkeyword{d}=\dots, e.g. \Lkeyword{d}=3e-3. Also the option
+\Lkeyword{twoHole} has to be used.\\
The rendering process could take some time in this case\dots
-\begin{pspicture}(-3,-3.5)(3.5,3.5)
+\begin{pspicture}(-3.5,-3.5)(4,3.5)
\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
\end{pspicture}
%
@@ -349,7 +340,7 @@ The rendering process could take some time in this case\dots
\hspace*{-1cm}%
-\begin{pspicture}(-3,-3)(3.5,4)
+\begin{pspicture}(-4,-3)(4,4)
\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
\end{pspicture}
%
@@ -373,21 +364,22 @@ or $d=\frac{2r}{1.22}$ (see
\url{http://www.unice.fr/DeptPhys/optique/diff/trouscirc/diffrac.html}).
\hspace*{-1cm}%
-\begin{pspicture}(-3,-3.5)(3,3.5)
+\begin{pspicture}(-4,-3.5)(3,4.5)
\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
\end{pspicture}
%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
+\begin{pspicture}(-5,-2)(3.5,3)
\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
\end{pspicture}
+\bigskip
\begin{lstlisting}[style=example]
\begin{pspicture}(-3,-3.5)(3,3.5)
\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
\end{pspicture}
%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
+\begin{pspicture}(-5,-1.5)(3.5,3)
\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
\end{pspicture}
\end{lstlisting}
@@ -397,10 +389,10 @@ or $d=\frac{2r}{1.22}$ (see
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Diffraction from a triangular aperture}
-Only the case of an equilateral triangle is provided, whose height \texttt{[h]} has to be
+Only the case of an equilateral triangle is provided, whose height \Lkeyword{h} has to be
defined as an option. As is generally known, $h$ can be computed from the length $s$ of
its side by $h=\frac{\sqrt{3}}{2}s$. A black and white picture can be obtained by using the
-option \texttt{[colorMode=0]}.
+option \Lkeyword{colorMode}=0.
@@ -414,7 +406,7 @@ option \texttt{[colorMode=0]}.
\makebox[\linewidth]{%
\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
+\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=18]
\end{pspicture}
\quad
\begin{pspicture}(-3,-3)(3,2.5)
@@ -428,7 +420,7 @@ option \texttt{[colorMode=0]}.
\begin{lstlisting}[style=example]
\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
+\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=18]
\end{pspicture}
\quad
\begin{pspicture}(-3,-3)(3,2.5)
@@ -470,16 +462,17 @@ option \texttt{[colorMode=0]}.
+\section{List of all optional arguments for \texttt{pst-diffraction}}
+%\Loption{pst-diff} is the short form for the keywords in the package \LPack{pst-diffraction}.
+
+\xkvview{family=pst-diff,columns={key,type,default}}
-%\section{Credits}
-\bgroup
-\nocite{*}
\raggedright
-\bibliographystyle{plain}
-\bibliography{pst-diffraction-doc}
-\egroup
+\nocite{*}
+\printbibliography
+\printindex
\end{document}
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction.sty b/graphics/pstricks/contrib/pst-diffraction/latex/pst-diffraction.sty
index ab4962f6bc..35e8121644 100644
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction.sty
+++ b/graphics/pstricks/contrib/pst-diffraction/latex/pst-diffraction.sty
@@ -1,7 +1,7 @@
\RequirePackage{pstricks}
\RequirePackage{pst-3dplot}
\RequirePackage{pst-xkey}
-\ProvidesPackage{pst-diffraction}[2009/09/04 package wrapper for
+\ProvidesPackage{pst-diffraction}[2024/06/29 package wrapper for
pst-diffraction.tex (hv)]
\input{pst-diffraction.tex}
\ProvidesFile{pst-diffraction.tex}
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-doc.bib b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-doc.bib
deleted file mode 100644
index 737b6dbba9..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-doc.bib
+++ /dev/null
@@ -1,119 +0,0 @@
-@STRING{dtk = {{D}ie {\TeX}nische {K}om{\"o}die} }
-
-@Book{PostScript,
- Author = {Kollock, Nikolai G.},
- Title = {PostScript richtig eingesetzt: vom Konzept zum
- praktischen Einsatz},
- Publisher = {IWT},
- Address = {Vaterstetten},
- year = 1989,
-}
-
-@Manual{pstricks,
- Title = {PSTricks - {\PS} macros for Generic TeX},
- Author = {Timothy Van Zandt},
- Organization = {},
- Address = {\url{http://www.tug.org/application/PSTricks}},
- Note = {},
- year = 1993,
-}
-
-
-@Manual{pdftricks,
- Title = {PSTricks Support for pdf},
- Author = {Herbert Voss},
- Organization = {},
- Address = {\url{http://PSTricks.de/pdf/pdfoutput.phtml}},
- Note = {},
- year = 2002,
-}
-
-@Manual{miwi,
- Title = {References for \TeX{} and Friends},
- Author = {Michael Wiedmann and Peter Karp},
- Organization = {},
- Address = {\url{http://www.miwie.org/tex-refs/}},
- Note = {},
- year = 2003,
-}
-
-
-@Article{dtk02.1:voss:mathematischen,
- author = {Herbert Vo{\ss}},
- title = {Die mathematischen {F}unktionen von {P}ostscript},
- journal = dtk,
- year = 2002,
- volume = {1/02},
- altvolume = 1,
- altnumber = 14,
- month = mar,
- pages = {40-47},
- annote = bretter,
- keywords = {},
- abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im
- Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es
- darum geht zu beurteilen, was es denn nun im eigentlichen
- Sinne ist. Au{\ss}erdem wird h{\"a}ufig vergessen, dass
- sich mit den \PS-Funktionen viele Dinge erledigen lassen,
- bei denen sonst auf externe Programme zur{\"u}ckgegriffen
- wird. Dies wird im Folgenden f{\"u}r die mathematischen
- Funktionen im Zusammenhang mit dem Paket \texttt{pst-plot}
- gezeigt. }
-}
-
-@Book{companion,
- author = {Michel Goosens and Frank Mittelbach and Sebastian Rahtz and Denis Roegel and Herbert Vo{\ss}},
- title = {The {\LaTeX} {G}raphics {C}ompanion},
- publisher = {{Addison-Wesley Publishing Company}},
- edition = 2,
- year = {2007},
- address = {Reading, Mass.}
-}
-
-@Book{PSTricks2,
- author = {Herbert Vo\ss},
- title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
- edition = {4.},
- publisher = {DANTE -- Lehmanns},
- year = {2007},
- address = {Heidelberg/Hamburg}
-}
-
-@Book{LaTeXRef,
- author = {Herbert Vo\ss},
- title = {\LaTeX\ Referenz},
- edition = {1.},
- publisher = {DANTE -- Lehmanns},
- year = {2007},
- address = {Heidelberg/Hamburg}
-}
-
-@Book{diffraction,
- author = {Bouasse, H. and Carri\`ere, Z.},
- title = {Diffraction},
- publisher={Delagrave},
- year ={1923},
- address = {Paris},
- pages = 480
-}
-
-
-@book{tutorial,
- title = {The New Physical Optics Notebook Tutorials in Fourier Optics},
- isbn ={0819401307},
- author ={Reynolds, George O. and Develis, John B. and Parrent, George B. and Thompson, Bria},
- url = {\url{http://www.langtoninfo.co.uk/de/showitem.asp?isbn=0819401307}},
- year= 1989,
- publisher = {Society of {P}hoto {O}ptical}
-}
-
-@Manual{Fresnel,
- Title = {Augustin Fresnel},
- Author = {Manuel Luque},
- Organization = {},
- Address = {\url{http://melusine.eu.org/syracuse/mluque/fresnel/augustin/fresnel.html}},
- Note = {},
- year = 2004
-}
-
-
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.pdf b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.pdf
deleted file mode 100644
index 08199e91ec..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.tex b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.tex
deleted file mode 100644
index 27f528fcff..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docDE.tex
+++ /dev/null
@@ -1,495 +0,0 @@
-\documentclass[ngerman,a4paper]{article}
-\usepackage[T1]{fontenc}
-\usepackage[utf8]{inputenc}
-\usepackage[bmargin=2cm,tmargin=2cm]{geometry}
-%
-\usepackage{pstricks,pst-node,pst-grad,url}
-\usepackage{pst-diffraction}
-\let\PSTfileversion\fileversion
-\let\PSTfiledate\filedate
-%
-\usepackage{ccfonts}
-\usepackage[euler-digits]{eulervm}
-\usepackage[scaled=0.85]{luximono}
-\usepackage{xspace}
-\def\UrlFont{\small\ttfamily}
-\newcommand*\psp{\texttt{pspicture}\xspace}
-\makeatletter
-\def\verbatim@font{\small\normalfont\ttfamily}
-\makeatother
-\usepackage{showexpl}
-\lstdefinestyle{syntax}{backgroundcolor=\color{blue!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
- frame=single}
-\lstdefinestyle{example}{backgroundcolor=\color{red!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
- frame=single}
-\lstset{wide=true,language=PSTricks,
- morekeywords={psdiffractionCircular,psdiffractionRectangle,psdiffractionTriangle}}
-
-
-\usepackage{prettyref}
-\usepackage{fancyhdr}
-\usepackage{multicol}
-
-\usepackage{babel}
-\usepackage[colorlinks,linktocpage]{hyperref}
-
-\pagestyle{fancy}
-\def\Lcs#1{{\ttfamily\textbackslash #1}}
-\lfoot{\small\ttfamily\jobname.tex}
-\cfoot{Documentation}
-\rfoot{\thepage}
-\lhead{PSTricks}
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
-\newcommand{\PS}{PostScript}
-\newcommand\CMD[1]{\texttt{\textbackslash#1}}
-\makeatother
-\usepackage{framed}
-\definecolor{shadecolor}{cmyk}{0.2,0,0,0}
-\SpecialCoor
-
-\title{\texttt{pst-diffraction}\\[6pt]
-\mbox{}\\[1cm]
-Beugungsmuster für Beugung an kreisförmigen, rechteckigen und dreieckigen
-Öffnungen\\[10pt]
----\\[10pt]
-{\normalsize v. \PSTfileversion (\PSTfiledate)}}
-\author{%
- \tabular[t]{c}Manuel Luque\\[3pt]
- \url{ml@PSTricks.de}
- \endtabular \and
- \tabular[t]{c}Herbert Vo\ss\\[3pt]
- \url{hv@PSTricks.de}\endtabular%
-}
-\date{\today}
-\begin{document}
-\maketitle
-\vfill
-Dank an Doris Wagner für die Übersetzung der Dokumentation.\\
-Beiträge und Anmerkungen lieferten: Julien Cubizolles.
-
-\clearpage
-\tableofcontents
-\clearpage
-
-
-\section{Versuchsaufbau}
-
-\begin{center}
-\begin{pspicture}(0,-3)(12,3)
-\pnode(0,0){S} \pnode(4,1){L'1} \pnode(4,-1){L'2} \pnode(6,1){E'1} \pnode(6,-1){E'2}
-\pnode(6,0.5){E1}\pnode(6,-0.5){E2}\pnode(8.5,1.5){L1}\pnode(8.5,0.5){L2}\pnode(11.5,1.25){P}
-\pspolygon[linestyle=none,fillstyle=vlines,
- hatchcolor=yellow](S)(L'1)(E'1)(E1)(L1)(P)(L2)(E2)(E'2)(L'2)
-% lentille L'
-\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{%
- \code{0.5 0.83333 scale}
- \psarc(4,0){4.176}{-16.699}{16.699}
- \psarc(12,0){4.176}{163.30}{196.699}}
-% lentille L
-\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{%
- \code{1 1.5 scale}
- \psarc(4.5,0){4.176}{-16.699}{16.699}
- \psarc(12.5,0){4.176}{163.30}{196.699}}
-\uput[90](4,1){$L'$}\uput[90](8.5,2){$L$}
-\psdot(S)\uput[180](S){S}
-\psline(S)(12,0)\psline[linewidth=2\pslinewidth](6,2)(6,0.5)\psline[linewidth=2\pslinewidth](6,-2)(6,-0.5)
-\psline[linestyle=dashed](6,0.5)(6,-0.5)\psline(11.5,-3)(11.5,3)\psline(S)(L'1)(E'1)\psline(S)(L'2)(E'2)
-\uput[0](P){P}
-\psline(E1)(L1)(P)\psline(E2)(L2)(P)\psline[linestyle=dashed](8.5,0)(P)
-%\rput(8.5,0){\psarc{->}(0,0){1.5}{0}{!1.25 3 atan}\uput[0](1.5;15){$\theta$}}
-\uput[-90](10,0){$f$}\uput[0](6,2){E}\uput[135](6,0){T}\uput[45](11.5,0){O}
-\end{pspicture}
-\end{center}
-
-Das von der punktförmigen Lichtquelle S ausgehende monochromatische Licht verlässt die
-Sammellinse L' achsenparallel und trifft auf die Blende E mit der Öffnung T.
-Das Licht wird an der Öffnung gebeugt:
-Jeder Punkt in der Öffnung wirkt als punktförmige Lichtquelle (Huygens'sches Prinzip) und es entsteht ein
-Interferenzmuster (Beugungsmuster), welches auf einem Schirm beobachtet werden kann. Ist der Schirm von der
-Blende hinreichend weit entfernt, so spricht man von Fraunhofer'scher Beugung.
-In diesem Fall kann man annehmen, da"s alle Lichtstrahlen, die von der Öffnung her kommen und
-denselben Punkt P auf dem Schirm treffen, parallel verlaufen.\\
-In der Praxis will man den Abstand zwischen Schirm und Blende klein halten. Deshalb
-wird zwischen die Blende und den Schirm eine Sammellinse L montiert und der
-Schirm (in der Zeichnung enthält er die Punkte P und O) in die Brennebene dieser Linse gestellt.
-Links von der Linse parallel verlaufende Lichtstrahlen werden dann im Punkt P in der Brennebene
-fokussiert.
-
-Die folgenden PSTricks-Befehle ermöglichen es, Beugungsmuster für
-verschiedene Formen von Blendenöffnungen zu erstellen. Dabei wird die Verwendung von monochromatischem
-Licht vorausgesetzt. Die Blenden können eine rechteckige, kreisförmige oder
-dreieckige Öffnung haben.
-
-Als mögliche Optionen für die Befehle hat man die Abmessungen, die sich aus dem jeweiligen
-Versuchsaufbau ergeben, etwa
-den Radius bei Verwendung einer Lochblende. Au"serdem kann man die Wellenlänge des verwendeten Lichts
-angeben (die zugehörige Farbe wird vom Paket dann automatisch zugeordnet).
-
-Es gibt drei Befehle, jeweils einen für rechteckige, kreisförmige und
-dreieckige Öffnungen:
-
-
-\begin{lstlisting}[style=syntax]
-\psdiffractionRectangle[<Optionen>]
-\psdiffractionCircular[<Optionen>]
-\psdiffractionTriangle[<Optionen>]
-\end{lstlisting}
-
-
-\section{Die Farbe}
-Die gewünschte Lichtfarbe wird über die Angabe der zugehörigen Wellenlänge
-$\lambda$ (in Nanometern) definiert. Für die Farbe rot beispielsweise gibt man als
-Option \texttt{[lambda=632]} an wegen $\lambda_{\textrm{rot}}=632\,\textrm{nm}$.
-
-Die Umrechnung der Wellenlänge in den entsprechenden Wert des
-\texttt{RGB}-Farbschemas wird von PostScript durchgeführt. Der zugrunde liegende
-Code lehnt sich an an ein Fortran-Programm, welches man auf folgender Seite
-findet:
-\url{http://www.midnightkite.com/color.html}.
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Beugung an einer rechteckigen Blendenöffnung}
-
-\begin{center}
-\begin{pspicture}(-2,-1)(2,1.5)
-\psframe(-0.5,-1)(0.5,1)
-\pcline{<->}(-0.5,1.1)(0.5,1.1)
-\Aput{$a$}
-\pcline{<->}(0.6,1)(0.6,-1)
-\Aput{$h=k\times a$}
-\end{pspicture}
-\end{center}
-
-Die Breite des Rechtecks mit der Fläche $h=k\times a$ wird
-über den Buchstaben \texttt{[a]} definiert, die Höhe
-über den Buchstaben \texttt{[k]}.
-Die Brennweite der Linse gibt man durch \texttt{[f]} an, die Auflösung kann man mit der
-Option [pixel] verändern.
-Mit der Option \texttt{[contrast]} kann man erreichen, da"s die Nebenmaxima des
-Beugungsmusters deutlicher werden.\\
-Ein Schwarzweissbild erhält man, wenn man die Option \texttt{[colorMode=0]}
-verwendet, \texttt{[colorMode=1]} liefert das zugehörige Negativ. Die Optionen
-\texttt{[colorMode=2]} bzw. \texttt{[colorMode=3]} liefern Farbbilder im
-CMYK-Farbmodell bzw. RGB-Farbmodell.
-
-Defaultmä"sig sind folgende Werte voreingestellt:
-
-\begin{tabular}{@{}lll@{}}
-\texttt{[a=0.2e-3]} in m; & \texttt{[k=1]}; & \texttt{[f=5]} in m;\\
-\texttt{[lambda=650]} in nm; & \texttt{[pixel=0.5]}; & \texttt{[contrast=38]}, Maximalwert;\\
-\texttt{[colorMode=3]}; & \texttt{[IIID=false]}.
-\end{tabular}
-
-\bigskip
-\noindent
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionRectangle[f=2.5]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2.5)(3.5,3.5)
-\psdiffractionRectangle[IIID,Alpha=30,f=2.5]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionRectangle[f=2.5]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2.5)(3.5,3.5)
-\psdiffractionRectangle[IIID,Alpha=30,f=2.5]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\noindent\begin{pspicture}(-2,-4)(2,4)
-\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\hfill
-\begin{pspicture}(0,-3)(4,4)
-\psdiffractionRectangle[IIID,a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-2,-4)(2,4)
-\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\hfill
-\begin{pspicture}(0,-3)(4,4)
-\psdiffractionRectangle[IIID,a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\noindent
-\begin{pspicture}(-2.5,-2.5)(3.5,3)
-\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2)(3.5,3)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-2.5,-2.5)(3.5,3)
-\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2)(3.5,3)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\end{lstlisting}
-
-
-\noindent
-\begin{pspicture}(-3.5,-1)(3.5,1)
-\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-3.5,-1)(3.5,4)
-\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-1)(3.5,1)
-\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-3.5,-1)(3.5,4)
-\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\end{lstlisting}
-
-\section{Beugung an zwei rechteckigen Blendenöffnungen}
-
-\begin{shaded}
-Der Code für diese Simulation wurde von Julien \textsc{Cubizolles} erstellt.
-\end{shaded}
-Man kann auch das Beugungsmuster zweier kongruenter Rechtecke (so nebeneinander
-angeordnet, da"s ihre Grundlinie auf der $x$-Achse liegt) erstellen,
-indem man zusätzlich
-zu den Angaben für den Fall nur eines Rechtecks die Option \texttt{[twoSlit]} angibt.
-Defaultmä"sig ist \texttt{[twoSlit]} deaktiviert. Den Abstand zwischen den beiden
-Rechtecken kann man über die Option $s$ einstellen. Sie wird, wenn nichts anderes angegeben
-wird, mit dem Wert $12e^{-3}\,\mathrm{m}$ belegt.
-
-\begin{center}
-\noindent
-\begin{pspicture}(-4,-1)(4,1)
-\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{center}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-4,-1)(4,1)
-\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{lstlisting}
-
-\begin{center}
-\begin{pspicture}(-2,-1)(4,4)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{center}
-
-\begin{lstlisting}[pos=t,style=example,wide=false]
-\begin{pspicture}(-2,-1)(4,4)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{lstlisting}
-
-
-\section{Beugung an einer kreisförmigen Blendenöffnung}
-Der Lochradius wird über den Buchstaben \texttt{r} angesprochen, beispielsweise
-\texttt{[r=1e-3]}. Der Default ist $r=1$ mm. Im ersten Quadranten wird der Graph der
-Intensitätsverteilung abgebildet (das Maximum in der Mitte wird abgeschnitten,
-falls es über den oberen Rand der \psp-Umgebung hinausgeht).
-
-\begin{center}
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-\end{center}
-
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\section{Beugung an zwei kreisförmigen Blendenöffnungen}
-Es ist nur der Fall gleich gro"ser Radien vorgesehen, diesen gemeinsamen Radius
-spezifiziert man wie vorher über \texttt{[r=\dots]}. Au"serdem muss man den
-halben Abstand der beiden Kreismitten festlegen vermöge \texttt{[d=\dots]},
-beispielsweise \texttt{[d=3e-3]}. Zusätzlich muss man die Option
-\texttt{[twoHole]} verwenden. Der Bildaufbau kann in diesem Fall etwas länger dauern\dots
-
-\begin{pspicture}(-3,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-\end{lstlisting}
-
-
-\hspace*{-1cm}%
-\begin{pspicture}(-3,-3)(3.5,4)
-\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-2)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3)(3.5,4)
-\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-2)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-\end{lstlisting}
-
-Nicht in jedem Fall ergibt sich im mittleren Kreis ein Streifenmuster. Die Anzahl $N$ der Streifen
-im Inneren ist gegeben durch $N=2,44\frac{d}{r}$. Man kann diesen Effekt also erst für
-$N\geq2$ bzw. ab $d=\frac{2r}{1,22}$ beobachten (siehe
-\url{http://www.unice.fr/DeptPhys/optique/diff/trouscirc/diffrac.html}).
-
-
-\hspace*{-1cm}%
-\begin{pspicture}(-3,-3.5)(3,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3.5)(3,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\section{Brechung an einer dreieckigen Blendenöffnung}
-Es ist nur der Fall eines gleichseitigen Dreiecks vorgesehen. Als Option gibt man dessen Höhe
-\texttt{[h]} an, welche sich bekanntlich über $h=\frac{\sqrt{3}}{2}s$ aus der Seitenlänge $s$
-des Dreiecks berechnet. Ein Schwarzweissbild erhält man mit \texttt{[colorMode=0]}.
-
-\begin{center}
-\begin{pspicture}(-1,-1)(1,1)
-\pspolygon*(0,0)(1;150)(1;210)
-\pcline{|-|}(-0.732,-1)(0,-1)
-\Aput{$h$}
-\end{pspicture}
-\end{center}
-
-\makebox[\linewidth]{%
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}
-\end{lstlisting}
-
-
-\makebox[\linewidth]{%
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}
-\end{lstlisting}
-
-
-%\section{Credits}
-
-
-\bgroup
-\nocite{*}
-\raggedright
-\bibliographystyle{plain}
-\bibliography{pst-diffraction-doc}
-\egroup
-
-
-
-\end{document}
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.pdf b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.pdf
deleted file mode 100644
index f68036fd2a..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docE.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.pdf b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.pdf
deleted file mode 100644
index 5059c652a5..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.pdf
+++ /dev/null
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.tex b/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.tex
deleted file mode 100644
index 0f59dfe155..0000000000
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction-docFR.tex
+++ /dev/null
@@ -1,483 +0,0 @@
-\documentclass[frenchb,dvips,a4paper]{article}
-\usepackage[latin9]{inputenc}%
-\usepackage[T1]{fontenc}
-\usepackage[bmargin=2cm,tmargin=2cm]{geometry}
-%
-\usepackage{pstricks,pst-node,pst-grad,url}
-\usepackage{pst-diffraction}
-\let\PSTfileversion\fileversion
-\let\PSTfiledate\filedate
-%
-\usepackage{ccfonts}
-\usepackage[euler-digits]{eulervm}
-\usepackage[scaled=0.85]{luximono}
-\usepackage{xspace}
-\newcommand*\psp{\texttt{pspicture}\xspace}
-\def\UrlFont{\small\ttfamily}
-\makeatletter
-\def\verbatim@font{\small\normalfont\ttfamily}
-\makeatother
-\usepackage{prettyref,multicol}
-\usepackage{fancyhdr}
-
-\usepackage{showexpl}
-\lstdefinestyle{syntax}{backgroundcolor=\color{blue!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
- frame=single}
-\lstdefinestyle{example}{backgroundcolor=\color{red!20},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
- frame=single}
-\lstset{wide=true,language=PSTricks,
- morekeywords={psdiffractionCircular,psdiffractionRectangle,psdiffractionTriangle}}
-
-\usepackage{babel}
-\usepackage[colorlinks,linktocpage]{hyperref}
-
-\pagestyle{fancy}
-\def\Lcs#1{{\ttfamily\textbackslash #1}}
-\lfoot{\small\ttfamily\jobname.tex}
-\cfoot{Documentation}
-\rfoot{\thepage}
-\lhead{PSTricks}
-\renewcommand{\headrulewidth}{0pt}
-\renewcommand{\footrulewidth}{0pt}
-\newcommand{\PS}{PostScript}
-\newcommand\CMD[1]{\texttt{\textbackslash#1}}
-\makeatother
-\usepackage{framed}
-\definecolor{shadecolor}{cmyk}{0.2,0,0,0}
-\SpecialCoor
-
-\title{\texttt{pst-diffraction}\\[6pt]
-Diffraction \`a l'infini
-par un trou rectangulaire,
-un trou circulaire, deux trous circulaires,
-un trou triangulaire.\\[1cm]
----\\[10pt]
-{\normalsize v. \PSTfileversion (\PSTfiledate)}}
-\author{%
- \tabular[t]{c}Manuel Luque\\[3pt]
- \url{ml@PSTricks.de}
- \endtabular \and
- \tabular[t]{c}Herbert Vo\ss\thanks{%
- Thanks to Julien Cubizolles}%
- \\[3pt]
- \url{hv@PSTricks.de}\endtabular%
-}
-\date{\today}
-\begin{document}
-\maketitle
-
-\tableofcontents
-
-\clearpage
-\section{Présentation et Montage}
-\begin{center}
-\begin{pspicture}(0,-3)(12,3)
-\pnode(0,0){S} \pnode(4,1){L'1} \pnode(4,-1){L'2} \pnode(6,1){E'1} \pnode(6,-1){E'2}
-\pnode(6,0.5){E1}\pnode(6,-0.5){E2}\pnode(8.5,1.5){L1}\pnode(8.5,0.5){L2}\pnode(11.5,1.25){P}
-% lentille L'
-\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{%
- \code{0.5 0.83333 scale}
- \psarc(4,0){4.176}{-16.699}{16.699}
- \psarc(12,0){4.176}{163.30}{196.699}}
-% lentille L
-\pscustom[fillstyle=gradient,linecolor=blue,gradend=white]{%
- \code{1 1.5 scale}
- \psarc(4.5,0){4.176}{-16.699}{16.699}
- \psarc(12.5,0){4.176}{163.30}{196.699}}
-\pspolygon[linestyle=none,fillstyle=vlines,
- hatchcolor=yellow](S)(L'1)(E'1)(E1)(L1)(P)(L2)(E2)(E'2)(L'2)
-\uput[90](4,1){$L'$}\uput[90](8.5,2){$L$}
-\psdot(S)\uput[180](S){S}
-\psline(S)(12,0)\psline[linewidth=2\pslinewidth](6,2)(6,0.5)\psline[linewidth=2\pslinewidth](6,-2)(6,-0.5)
-\psline[linestyle=dashed](6,0.5)(6,-0.5)\psline(11.5,-3)(11.5,3)\psline(S)(L'1)(E'1)\psline(S)(L'2)(E'2)
-\uput[0](P){P}
-\psline(E1)(L1)(P)\psline(E2)(L2)(P)\psline[linestyle=dashed](8.5,0)(P)
-\rput(8.5,0){\psarc{->}(0,0){1.5}{0}{!1.25 3 atan}\uput[0](1.5;15){$\theta$}}
-\uput[-90](10,0){$f$}\uput[0](6,2){E}\uput[135](6,0){T}\uput[45](11.5,0){O}
-\end{pspicture}
-\end{center}
-Ceci est la reproduction de montage
-proposé par Henri \textsc{Bouasse} dans son livre sur la
-diffraction, page 25, publié aux éditions Delagrave en 1\,925. Les commentaires dont il accompagne ce
-schéma sont les suivants :\newline
-\begin{shaded}
-« Une source ponctuelle unique S, très éloignée ou placée dans le plan focal
-principal de la lentille collimatrice $L'$, fournit un faisceau cylindrique
-unique de rayons. On le reçoit sur le plan~E, percé d'un trou~T dont la
-forme caractérise le phénomène étudié.
-Au-delà de l'écran~E la lumière est diffractée \textit{une infinité de
-directions}, ou si l'on veut suivant une infinité de faisceaux
-cylindriques.
-Les rayons diffractés dans chaque direction sont concentrés aux divers points
-du plan focal image d'une lunette accommodée sur l'infini, où ils forment la
-\textit{figure de diffraction} : d'où le nom de \textit{phénomène à
-l'infini}. De chaque faisceau cylindrique diffracté, l'objectif~L de la
-lunette donne une image au point~P de son plan focal principal.
-[\ldots]Au point P correspond un faisceau cylindrique antérieur à l'objectif
-qui fait avec l'axe optique l'angle $\theta$ tel que :
-$\overline{OP}=f\tan\theta\approx\theta$
-\end{shaded}
-
-Ces quelques commandes réalisées avec \texttt{PSTricks} permettent d'obtenir
-les figures de diffraction \textit{à l'infini}, en lumière monochromatique,
-d'un trou rectangulaire, d'un trou circulaire, de deux trous circulaires et
-d'un trou triangulaire.
-
-Les dimensions des ouvertures sont bien sûr paramétrables, ainsi que le
-choix de la longueur d'onde : la couleur s'adapte automatiquement, et des
-divers paramètres du montage.
-
-Il y a trois commandes, l'une pour les ouvertures rectangulaires, l'autre
-pour les ouvertures circulaires et la dernière pour une ouverture
-triangulaire.
-\begin{lstlisting}[style=syntax]
-\psdiffractionRectangle[<liste de paramètres>]
-\psdiffractionCircular[<liste de paramètres>]
-\psdiffractionTriangle[<liste de paramètres>]
-\end{lstlisting}
-
-Nous allons passer en revue ces différentes commandes et leurs paramètres.
-\section{La couleur de la radiation}
-La longueur d'onde est définie par le paramètres \texttt{[lambda=632]} (si
-l'on veut du rouge de longueur d'onde~:~ $\lambda=632$~nm), cette valeur est donc en~nm. La
-conversion de la longueur d'onde dans le système \texttt{rgb} est une adaptation en
-postscript de celle qu'on trouve sur~:\\
-\url{http://www.physics.sfasu.edu/astro/color.html}.
-
-
-
-\section{Diffraction par une ouverture rectangulaire}
-
-\begin{center}
-\begin{pspicture}(-2,-1)(2,1.5)
-\psframe(-0.5,-1)(0.5,1)
-\pcline{<->}(-0.5,1.1)(0.5,1.1)
-\Aput{$a$}
-\pcline{<->}(0.6,1)(0.6,-1)
-\Aput{$h=k\times a$}
-\end{pspicture}
-\end{center}
-On donnera la largeur de la fente \texttt{[a]} et le paramètre \texttt{[k]}
-qui déterminera la hauteur de la fente $h=k\times a$. On choisira aussi la
-distance focale de la lentille \texttt{[a]}, la résolution du tracé par la dimension du
-\texttt{[pixel]}. On pourra jouer sur le contraste pour rendre les franges
-éloignées un peu plus visibles avec \texttt{[contrast]}et éventuellement, obtenir un tracé en niveaux de
-gris en négatif inverse avec \texttt{[colorMode=0]} ou
-negativ avec \texttt{[colorMode=1]} ou cmyk couleur avec \texttt{[colorMode=2]} ou
-rgb avec \texttt{[colorMode=3]}.
-
-Par défaut les paramètres ont les valeurs suivantes :
-
-\begin{tabular}{@{}lll@{}}
-\texttt{[a=0.2e-3]} en m; & \texttt{[k=1]}; & \texttt{[f=5]} en m;\\
-\texttt{[lambda=650]} en nm; & \texttt{[pixel=0.5]}; & \texttt{[contrast=38]}, valeur maximale;\\
-\texttt{[colorMode=3]}; & \texttt{[IIID=false]}.
-\end{tabular}
-
-\bigskip
-\noindent
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionRectangle[f=2.5]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2.5)(3.5,3.5)
-\psdiffractionRectangle[IIID,Alpha=30,f=2.5]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionRectangle[f=2.5]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2.5)(3.5,3.5)
-\psdiffractionRectangle[IIID,Alpha=30,f=2.5]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\noindent\begin{pspicture}(-2,-4)(2,4)
-\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\hfill
-\begin{pspicture}(0,-3)(4,4)
-\psdiffractionRectangle[IIID,a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-2,-4)(2,4)
-\psdiffractionRectangle[a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\hfill
-\begin{pspicture}(0,-3)(4,4)
-\psdiffractionRectangle[IIID,a=0.5e-3,k=0.5,f=4,pixel=0.5,colorMode=0]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\noindent
-\begin{pspicture}(-2.5,-2.5)(3.5,3)
-\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2)(3.5,3)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-2.5,-2.5)(3.5,3)
-\psdiffractionRectangle[a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-1.5,-2)(3.5,3)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=2,f=10,lambda=515,colorMode=1]
-\end{pspicture}
-\end{lstlisting}
-
-
-\noindent
-\begin{pspicture}(-3.5,-1)(3.5,1)
-\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-3.5,-1)(3.5,4)
-\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-1)(3.5,1)
-\psdiffractionRectangle[a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\hfill
-\begin{pspicture}(-3.5,-1)(3.5,4)
-\psdiffractionRectangle[IIID,Alpha=10,a=0.5e-3,k=20,f=10,pixel=0.5,lambda=450]
-\end{pspicture}
-\end{lstlisting}
-
-\section{Diffraction par deux ouverture rectangulaire}
-
-\begin{shaded}
-This simulation was provided by Julien \textsc{Cubizolles}.
-\end{shaded}
-
-\begin{center}
-\noindent
-\begin{pspicture}(-4,-1)(4,1)
-\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{center}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-4,-1)(4,1)
-\psdiffractionRectangle[a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{lstlisting}
-
-\begin{center}
-\begin{pspicture}(-2,-1)(4,4)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{center}
-
-\begin{lstlisting}[pos=t,style=example,wide=false]
-\begin{pspicture}(-2,-1)(4,4)
-\psdiffractionRectangle[IIID,Alpha=20,a=0.5e-3,k=10,f=10,pixel=0.5,lambda=650,twoSlit,s=2e-3]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\section{Diffraction par une ouverture circulaire}
-On donnera le rayon du trou : \texttt{[r=1e-3]}, $r=1$ mm par défaut. Les
-variations de l'intensité sont superposées à la figure de diffraction dans
-le premier quadrant (le maximum au centre a été écrêté).
-
-
-\begin{center}
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-\end{center}
-
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,pixel=0.5,lambda=520]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\section{Diffraction par deux trous circulaires}
-Les deux trous sont identiques, outre le rayon commun des trous on fixera la
-demi-distance entre les centres des deux trous avec : \texttt{[d]} et pour
-ce cas de figure on activera l'option \texttt{[twoHole]}. On notera que
-les temps de calculs d'allongent\ldots
-
-
-\begin{pspicture}(-3,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3.5)(3.5,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=3e-3,lambda=515,twoHole]
-\end{pspicture}
-\end{lstlisting}
-
-
-\hspace*{-1cm}%
-\begin{pspicture}(-3,-3)(3.5,4)
-\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-2)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3.5,-3)(3.5,4)
-\psdiffractionCircular[r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-2)(3.5,3.5)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=2e-3,lambda=700,twoHole,colorMode=0]
-\end{pspicture}
-\end{lstlisting}
-
-Le cas limite d'obtention de franges se vérifie avec $\displaystyle d
-=\frac{a}{1.22}$. Voir~:\\
-\url{http://www.unice.fr/DeptPhys/optique/diff/trouscirc/diffrac.html}).
-
-\hspace*{-1cm}%
-\begin{pspicture}(-3,-3.5)(3,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3.5)(3,3.5)
-\psdiffractionCircular[r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-%
-\begin{pspicture}(-3.5,-1.5)(3.5,3)
-\psdiffractionCircular[IIID,r=0.5e-3,f=10,d=4.1e-4,lambda=632,twoHole]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-\section{Diffraction par un trou triangulaire équilatéral}
-Le triangle équilatéral est défini par sa hauteur \texttt{[h]} en m. Pour le
-triangle, on peut obtenir la figure en niveaux de gris avec l'option
-\texttt{[colorMode=0]}. L'étude théorique de cette diffraction a été faite par
-\textsc{Airy}, on la trouve dans le livre d'Henri \textsc{Bouasse} sur la
-diffraction, pages 114 et 115.
-
-
-\begin{center}
-\begin{pspicture}(-1,-1)(1,1)
-\pspolygon*(0,0)(1;150)(1;210)
-\pcline{|-|}(-0.732,-1)(0,-1)
-\Aput{$h$}
-\end{pspicture}
-\end{center}
-
-\makebox[\linewidth]{%
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}}
-
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-3)(3,2.5)
-\psdiffractionTriangle[f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}
-\end{lstlisting}
-
-
-\makebox[\linewidth]{%
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}}
-
-\begin{lstlisting}[style=example]
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,lambda=515,contrast=38]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=1,contrast=38,lambda=515]
-\end{pspicture}
-\quad
-\begin{pspicture}(-3,-2)(3,3.5)
-\psdiffractionTriangle[IIID,f=10,h=1e-3,colorMode=0,contrast=38,lambda=515]
-\end{pspicture}
-\end{lstlisting}
-
-
-
-
-
-%\section{Credits}
-
-
-\bgroup
-\nocite{*}
-\raggedright
-\bibliographystyle{plain}
-\bibliography{pst-diffraction-doc}
-\egroup
-
-
-\end{document}
diff --git a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction.tex b/graphics/pstricks/contrib/pst-diffraction/tex/pst-diffraction.tex
index 1c653b3770..2ff137b0a8 100644
--- a/graphics/pstricks/contrib/pst-diffraction/pst-diffraction.tex
+++ b/graphics/pstricks/contrib/pst-diffraction/tex/pst-diffraction.tex
@@ -5,8 +5,8 @@
%%
%% Package `pst-diffraction.tex'
%%
-%% Manuel Luque <ml@pstricks.de>
-%% Herbert Voss <hv@pstricks.de>
+%% Manuel Luque <ml@texnik.de>
+%% Herbert Voss <hvoss@tug.org>
%%
%% with contributions of Julien Cubizolles
%%
@@ -21,12 +21,12 @@
\csname PSTDiffractionLoaded\endcsname
\let\PSTDiffractionLoaded\endinput
% Require PSTricks
-\ifx\PSTricksLoaded\endinput\else\input pstricks.tex\fi
+\ifx\PSTricksLoaded\endinput\else \input pstricks.tex\fi
\ifx\PSTThreeDplotLoaded\endinput\else\input pst-3dplot.tex\fi
-\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
+\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey.tex \fi
%
-\def\fileversion{2.03}%
-\def\filedate{2008/09/03}%
+\def\fileversion{2.06a}
+\def\filedate{2024/07/15}
\message{`PST-diffraction v\fileversion, \filedate\space (ML,hv)}%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
\pst@addfams{pst-diff}
@@ -40,7 +40,7 @@
\define@key[psset]{pst-diff}{s}{\def\psk@Diffraction@Slit@s{#1 }} % distance entre les fentes
\define@key[psset]{pst-diff}{lambda}{\pst@checknum{#1}\psk@Diffraction@Slit@Lambda }% en nm
\define@key[psset]{pst-diff}{f}{\pst@checknum{#1}\psk@Diffraction@Slit@F }% focus en m
-\define@key[psset]{pst-diff}{gamma}{\pst@checknum{#1}\psk@Diffraction@gamma@G }
+%\define@key[psset]{pst-diff}{gamma}{\pst@checknum{#1}\psk@Diffraction@gamma@G }
\define@key[psset]{pst-diff}{pixel}{\pst@checknum{#1}\psk@Diffraction@Slit@pixel }
\define@key[psset]{pst-diff}{colorMode}{\pst@getint{#1}\psk@Diffraction@colorMode }
% 0 black and white inverse
@@ -65,7 +65,8 @@
\psset[pst-diff]{a=0.2e-3,f=5,k=1,r=1e-3,
d=6e-3,s=12e-3,h=0.5e-3,
lambda=650,pixel=0.5,
- contrast=38,gamma=0.8,twoHole=false,twoSlit=false,colorMode=3, scale=1,
+ contrast=38,%gamma=0.8,
+ twoHole=false,twoSlit=false,colorMode=3, scale=1,
IIID=false, showFunc=false}
%
% load the pstricks-add.pro only, if not already done
@@ -82,7 +83,7 @@
/focus \psk@Diffraction@Slit@F def
/widthSlit \psk@Diffraction@Slit@A def
/heightSlit \psk@Diffraction@Slit@k widthSlit mul def
- /Gamma \psk@Diffraction@gamma@G def
+ %/Gamma \psk@Diffraction@gamma@G def
/pixel \psk@Diffraction@Slit@pixel def
/SlitSeparation \psk@Diffraction@Slit@s def
\psk@Diffraction@Slit@Lambda tx@addDict begin wavelengthToRGB Red Green Blue end
@@ -94,7 +95,7 @@
/bornexpt 1 widthSlit div focus mul ondeLongueur mul 2845 mul def
/borneypt 1 heightSlit div focus mul ondeLongueur mul 2845 mul def
\ifPst@Diffraction@IIID
- \psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED
+ \psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED
tx@3DPlotDict begin \IIIDplot@variables end
\fi
% Les calculs commencent...
@@ -162,7 +163,7 @@
\addto@pscode{%
% les dimensions sont en mètres
/focus \psk@Diffraction@Slit@F def
- /Gamma \psk@Diffraction@gamma@G def
+ %/Gamma \psk@Diffraction@gamma@G def
/pixel \psk@Diffraction@Slit@pixel def
/contrast 1e\psk@Diffraction@Slit@contrast def
/r \psk@Diffraction@Circular@r def
@@ -170,7 +171,7 @@
\psk@Diffraction@Slit@Lambda tx@addDict begin wavelengthToRGB Red Green Blue end
/Blue ED /Green ED /Red ED
\ifPst@Diffraction@IIID
- \psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED
+ \psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED
tx@3DPlotDict begin \IIIDplot@variables end
\fi
% 0 0 translate
@@ -253,7 +254,8 @@
/y { yPts 2845 div } bind def
/R { x dup mul y dup mul add sqrt } bind def % R en m
/m Coeff R mul def
- 1 1e38 m J1Card Facteur x mul cos dup mul mul neg exp sub
+ % 1 1e38 m J1Card Facteur x mul cos dup mul mul neg exp sub
+ 1 contrast m J1Card Facteur x mul cos dup mul mul neg exp sub % fix by Keno Wehr
dup /intensity ED
dup dup
Red mul 3 -1 roll
@@ -283,7 +285,7 @@
\ifPst@Diffraction@IIID \else
newpath
R_limite neg %1.5 mul
- cm dup moveto
+ cm dup moveto
R_limite 2 mul cm 0 rlineto
0 R_limite 2 mul cm rlineto
R_limite neg 2 mul cm 0 rlineto
@@ -294,7 +296,8 @@
R_limite -0.001 0 {
/Radius exch def
/m Coeff Radius 0.01 mul mul def
- 1 1e38 m J1Card neg exp sub
+% 1 1e38 m J1Card neg exp sub
+ 1 contrast m J1Card neg exp sub % fix by keno wehr
dup /intensity ED
dup dup
Red mul 3 -1 roll % R
@@ -396,7 +399,7 @@
% les dimensions sont en mètres
/f \psk@Diffraction@Slit@F def
/h \psk@Diffraction@Triangle@h def
- /Gamma \psk@Diffraction@gamma@G def
+ %/Gamma \psk@Diffraction@gamma@G def
/L { \psk@Diffraction@Slit@Lambda 1e-9 mul} bind def % longueur d'onde en m
/pixel \psk@Diffraction@Slit@pixel def
/k { TwoPi f L mul div } bind def
@@ -408,7 +411,7 @@
/bornexpt 1 h div f mul L mul 2845 mul def
/borneypt 1 h div f mul L mul 2845 mul def
\ifPst@Diffraction@IIID
- \psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED
+ \psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED
tx@3DPlotDict begin \IIIDplot@variables end
\fi
/P {
diff --git a/graphics/pstricks/contrib/pst-node/Changes b/graphics/pstricks/contrib/pst-node/Changes
index cac34e6912..6ef6294b36 100644
--- a/graphics/pstricks/contrib/pst-node/Changes
+++ b/graphics/pstricks/contrib/pst-node/Changes
@@ -1,5 +1,7 @@
----- pst-node.tex
-1.43 2021-09-15 - fix for lualatex and empty value in \psk@nrot
+1.45 2024-07-10 - fix \algparnode (Erich Schmidt)
+1.44 2024-07-04 - modified \psparnode and \algparnode (Erich Schmidt)
+1.43 2022-10-31 - fix for lualatex and empty value in \psk@nrot
1.42a 2020-04-01 - fix typo in the documentation
1.42 2019-03-03 - bugfix for \rnode inside \psframebox*
1.41 2017-12-30 - added \psnpolygon
@@ -56,12 +58,14 @@
----- pst-node.sty
+1.02 2024-07-10 - update package versions (hv)
1.01 2012-09-18 - update package versions (hv)
1.00 2011-06-05 - make ancient variant 97 available (hv)
2008-12-12 first version (hv)
----- pst-node.pro
+1.15a 2024-07-10 - typos
1.15 2014-01-27 - comment out empty lines
1.14 2012-09-18 - add subroutines for global dict
1.13 2011-11-21 - fix bug for xelatex and scaling
diff --git a/graphics/pstricks/contrib/pst-node/README b/graphics/pstricks/contrib/pst-node/README
index 3f4fd08e59..29b62ef30c 100644
--- a/graphics/pstricks/contrib/pst-node/README
+++ b/graphics/pstricks/contrib/pst-node/README
@@ -1,13 +1,10 @@
-This version of pst-node uses the xkeyval package, the extended
-version of keyval.
-
Save the files pst-node.sty|.tex|.pro in a directory, which is part of your
local TeX node. Then do not forget to run texhash to update this node
if these packages are new to your TeX distribution.
For more information see the documentation of your LaTeX distribution
on installing packages into your LaTeX distribution or the
TeX Frequently Asked Questions:
-(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
+(https://texfaq.org/#installing).
pst-node needs pstricks, which should be part of your
local TeX installation, otherwise get it from a CTAN server, f.ex.
diff --git a/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.bib b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.bib
new file mode 100644
index 0000000000..f2a5d82e84
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.bib
@@ -0,0 +1,35 @@
+@Manual{pstricks2007,
+ Title = {PSTricks - {\PS} macros for Generic TeX. Version 1.5},
+ Author = {Timothy Van Zandt},
+ Organization = {},
+ Address =
+ {\url{http://www.tug.org/tex-archive/graphics/pstricks/base/doc/pst-user.pdf}},
+ Note = {},
+ year = 2007,
+}
+
+
+@Manual{siart,
+ Title = {Befehls\"ubersicht f\"ur \texttt{PSTricks} (Version
+ 0.93},
+ Author = {Uwe Siart},
+ Organization = {},
+ Address =
+ {\url{http://www.siart.de/typografie/pstricks-referenz.pdf}},
+ Note = {},
+ year = 2009,
+}
+
+
+
+
+@Book{PSTricks2,
+ author = {Herbert Vo\ss},
+ title = {\texttt{PSTricks} -- {G}rafik f\"ur \TeX{} und \LaTeX},
+ edition = {fünfte},
+ publisher = {DANTE -- Lehmanns},
+ year = {2008},
+ address = {Heidelberg/Hamburg}
+}
+
+
diff --git a/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.pdf b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.pdf
new file mode 100644
index 0000000000..cb72a62b43
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.tex b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.tex
new file mode 100644
index 0000000000..8ca96eab4e
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-node/doc/psmatrix-docDE.tex
@@ -0,0 +1,1155 @@
+%% $Id: psmatrix-docDE.tex 696 2017-12-30 19:01:07Z herbert $
+\listfiles
+\documentclass[11pt,ngerman,a4paper,BCOR10mm,DIV12,bibliography=totoc,parskip,smallheadings,
+ headexclude,footexclude,oneside]{pst-doc}
+\usepackage[utf8]{inputenc}
+\usepackage{babel}
+
+%\setlength{\parindent}{0pt}
+%\setlength{\parskip}{1ex plus 0.2ex minus 0.1ex}
+
+\usepackage{pst-node,pst-grad,pstricks-add,pst-blur,float}
+\def\tab#1{\tabular{@{}l@{}}#1\endtabular}
+\def\OptEinh{\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Einheit}}\kern1pt}
+
+\let\myFV\fileversion
+
+\usepackage{tabularx}
+\usepackage{longtable}
+
+\addbibresource{\jobname.bib}
+
+
+\lstset{explpreset={pos=l,rframe=},frame=,backgroundcolor=\color{white},literate={ä}{{\"a}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
+ {Ä}{{\"A}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
+ {ß}{\ss}1}
+
+
+\usepackage{bibgerm}
+
+%\psset{subgriddiv=0,gridlabels=7pt,gridcolor=black!15}
+%\hypersetup{pdfauthor={Christine Roemer},pdftitle={psmatrix}}
+%
+\def\bgImage{\hspace*{1cm}%
+\begin{psmatrix}[colsep=0.8cm,rowsep=0.4cm,mcol=c,emnode=r]
+ & & semantische Ebene & &
+ \psshadowbox[framearc=0.25]{Bedeutung}\\
+ & & morphologische Ebene & & \\
+[name=A]\tab{pragmatische\\Ebene} & [name=B]& & & \\
+ & & syntaktische Ebene & & \\
+ & & \tab{phonetisch-phonologische Ebene\\graphische Ebene}
+ & & \psshadowbox[framearc=0.25]{Formativ}
+\end{psmatrix}
+\psset{nodesep=3pt,arrowscale=1.5,arrows=->,
+ armA=6mm,angleB=180}
+\ncline{A}{B}
+\ncangles{A}{1,3} \ncangles{A}{2,3}
+\ncangles{A}{4,3} \ncangles{A}{5,3}
+\ncline{1,3}{1,5} \ncline{5,3}{5,5}
+\ncline{<->}{1,5}{5,5}%
+}
+
+\lstset{basicstyle=\ttfamily\footnotesize}
+
+\begin{document}
+\author{Timothy van Zandt\\Herbert Vo\ss}
+\docauthor{Christine R\"omer}
+\date{\today}
+\title{Schematische \"Ubersichten mit \texttt{psmatrix}}
+
+\maketitle%
+
+\tableofcontents
+
+\clearpage
+\begin{abstract}
+Mit der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen au{\ss}erhalb
+einer mathematischen
+Umgebung vielfältige schematische \"Ubersichten gesetzt werden. Das Makro \texttt{psmatrix}
+wird nicht extra geladen. Es ist in verschiedene Pakete des
+PSTricks-Verbundes\index{PSTricks-Verbund}
+(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
+\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert
+ und wird mit ihnen aufgerufen.
+
+\vfill\noindent
+Danke f\"ur die Unterst\"utzung bei der Erstellung dieser Dokumentation an Herbert Vo\ss.
+\end{abstract}
+
+
+\section{Einf\"uhrung}
+
+Mit der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} k\"onnen
+au{\ss}erhalb einer mathematischen
+Umgebung schematische \"Ubersichten gesetzt werden. Sie basiert auf dem
+Tabellenmakro \texttt{array}\index{array@\texttt{array}} und gleicht ihm deshalb in der
+Syntax. Es hat jedoch nicht dessen
+Einschr\"ankungen bez\"uglich Verbindungen über die Zellen und Zeilen hinweg. Das Makro
+\texttt{psmatrix}
+wird nicht extra geladen. Es ist in verschiedene Pakete des
+PSTricks-Verbundes\index{PSTricks-Verbund}
+(\texttt{pstricks,\\pst-node,pst-grad})\index{pstricks@\texttt{pstricks}}
+\index{pst-node@\texttt{pst-node}} \index{pst-grad@\texttt{pst-grad}} integriert und
+wird mit ihnen aufgerufen.
+
+\section{Erstellen einer Matrix}
+\subsection{Einordnung}
+
+Das Makro \bs{\texttt{psmatrix}} arbeitet sowohl in einer \TeX - als auch
+\LaTeX-Umgebung:
+
+\begin{BDef}
+\Lcs{psmatrix}\OptArgs \ldots\ \Lcs{endpsmatrix} & \% TeX-Version\\
+\LBEG{psmatrix}\OptArgs \ldots \ \LEND{psmatrix} & \% LaTeX-Version
+\end{BDef}
+
+Da mit der \TeX-Version einige Einschr\"ankungen verbunden sind, wird nur auf
+die \LaTeX-Variante eingegangen. Das Grundprinzip des Strukturaufbaus
+stellt eine Knoten- und Knotenverbindungszuordnung dar. Diese kann mehrfach
+geschachtelt und sowohl bei der Knotenbelegung als auch
+Verbindungsdarstellung in verschiedener Weise ausgestalltet werden. Dazu
+stellt der PSTricksverbund zahlreiche Makros bereit.
+
+\subsection{Matrixgrundstruktur}\index{Matrixgrundstruktur}
+
+Die Knoten werden in der Art einer Tabelle innerhalb der
+\texttt{psmatrix}-Umgebung\index{psmatrix@\texttt{psmatrix}-Umgebung} angeordnet.
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[rowsep=0.2cm]
+1 & 2 & 3 \\
+X & Y & Z
+\end{psmatrix}
+\end{LTXexample}
+
+
+\section{Zuordnung Knoten zu Verbindungen}
+
+Die Matrix entsteht durch die Zuordnung von Knoten zu Verbindungen. Die
+Knoten werden in die Zellen in der \texttt{psmatrix}-Umgebung eingetragen
+(siehe obiges Beispiel). Nach \bs{\texttt{end}}\{\texttt{psmatrix}\} werden die gew\"unschten
+Linien definiert. Grunds\"atzlich geschieht dies nach dem Schema
+
+\psframebox{\bs
+nc\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Verbindung}}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Koordinaten ZelleA\}\{Koordinaten ZelleB\}}
+
+Die Koordinaten\index{Zellen-Koordinaten} werden, wenn den Zellen keine
+Namen gegeben werden (siehe
+Parameter \texttt{name}),
+durch abz\"ahlen gewonnen: jeweils erst die Zeile und danach durch Komma abgetrennt
+die Zelle.
+
+\vspace{4mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[rowsep=0.2cm]
+1 & 2 & 3 \\
+X & Y & Z
+\end{psmatrix}
+\ncline[linecolor=red]{1,1}{2,2}
+\ncline[linecolor=green]{1,3}{2,2}
+\ncline[linestyle=dotted]{<-}{1,2}{2,1}
+\ncline[linestyle=dashed]{->}{1,2}{2,3}
+\end{LTXexample}
+
+
+\section{Knotenparameter}
+\subsection{mnode}\index{mnode@\texttt{mnode}}
+
+Der Parameter \texttt{mnode=<Knotenart>} legt die Knotenart fest. Das kann lokal für
+einzelne Knoten oder global für die ganze Matrix erfolgen (siehe folgende
+Beispiele). Dazu muss neben
+dem Paket \texttt{pstricks}\index{pstricks@\texttt{pstricks}} auch
+\texttt{pst-node}\index{pst-node@\texttt{pst-node}} geladen werden.
+
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+1 & 2 \\
+X & Y
+\end{psmatrix}
+\end{LTXexample}
+
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+1 & 2 \\
+[mnode=dia] X & Y
+\end{psmatrix}
+\end{LTXexample}
+
+Folgende \textbf{Knotenarten}\index{Knotenarten} stehen zur Verf\"ugung. Ihr Aufruf erfolgt mit
+\texttt{mnode=} über die in Klammern angegebenen K\"urzel.
+
+\begin{compactitem}
+ \item \texttt{Rnode} (R):\index{Rnode@\texttt{Rnode} (R)}
+ Es wird damit das Eingetragene zur Basislinie
+ positioniert. Mittels Optionen kann dies variiert werden.
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[rowsep=0.2cm,linecolor=blue,radius=0.5]
+X & [mnode=R,vref=0pt] Y
+\end{psmatrix}
+\ncline{1,1}{1,2}
+\end{LTXexample}
+
+\item \texttt{Cnode} (C):\index{Cnode@\texttt{Cnode} (C)} Ungef\"ullte Kreise werden gesetzt.
+Deren Radius mit dem Parameter \texttt{radius}\index{radius@\texttt{radius}} modifiziert
+werden kann. Es muss irgendetwas eingetragen werden, was dann aber nicht erscheint.
+\vspace{2mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[mnode=C,rowsep=0.2cm,linecolor=blue,radius=0.5]
+ X & Y
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{pnode} (p):\index{pnode@\texttt{pnode} (p)} Ein Knoten mit dem Radius Null, ein
+leerer Knoten (siehe folgendes Beispiel, wo der Knoten 1 leer gesetzt wird).
+
+\item \texttt{Circlenode}
+(Circle):\index{Circlenode@\texttt{Circlenode} (Circle)} Ein Knoten, der von einem Kreis
+umschlossen
+wird, dessen Umfang richtet sich nach dem Inhalt. Er kann mit der Option
+\texttt{radius} modifiziert werden (siehe obiges Beispiel).
+
+\vspace{2mm}
+\begin{LTXexample}[width=.42\linewidth]
+\begin{psmatrix}[mnode=Circle,radius=1cm,rowsep=0.2cm]
+ X & Y \\
+[mnode=p] 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{dianode} (dia):\index{dianode@\texttt{dianode} (dia)} Ein Knoten, der von
+einer Raute umschlossen
+wird, deren Umfang richtet sich nach dem Inhalt
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=dia,rowsep=0.2cm,colsep=0.7cm]
+ X & Y \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{dotnode} (dot):\index{Rnode@\texttt{dotnode} (dot)} Es wird im unmarkierten
+Fall ein gef\"ullter Kreisknoten gesetzt, der
+u.\,a. \"uber den Parameter \texttt{dotscale} gesteuert
+werden kann.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=dot,rowsep=0.2cm]
+[mnode=dot,dotscale=3] X & Y \\
+[mnode=dot,dotscale=2,dotstyle=triangle]1&2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{rnode} (r):\index{Rnode@\texttt{rnode} (r)}
+Unterscheidet sich von \bs{rnode} (R) in der
+Festlegung des Knotenzentrums, das ohne optionale Parameter das Zentrum
+der umgebenden Box ist. Eingesetzter "`Text"' erscheint pur.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=r,rowsep=0.2cm]
+ X & Y \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+
+
+\item \texttt{fnode} (f):\index{fnode@\texttt{fnode} (f)} Ein leerer
+Rahmen, dessen Gr\"o{"s}e \"uber
+\texttt{framesize=} und
+Koordinatenfestlegungen beeinflusst werden kann.%\footnote{Diese Funktion
+%ist bisher nur eingeschr\"ankt nutzbar, die K\"astchen einer Zeile werden nicht getrennt.
+%Mit "`Text"' gef\"ullte K\"astchen k\"onnen einfach mit \bs{\texttt{fbox}\{
+%\}} oder \bs{\texttt{psframebox}\{ \}} gesetzt werden.}
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=f,rowsep=0.2cm]
+ X & Y \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+
+\item \texttt{circlenode}
+(circle):\index{circlenode@\texttt{circlenode} (circle)} Entspricht
+weitgehend \texttt{Circlenode}. Es
+kann aber nicht der Radius ge\"andert werden.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=circle,rowsep=0.2cm,colsep=1cm]
+ X & Y \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\item \texttt{ovalnode} (oval):\index{ovalnode@\texttt{ovalnode} (oval)} Ovaler Knoten,
+dessen Gr\"o"se aus dem Inhalt resultiert.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=oval,rowsep=0.2cm,colsep=0.7cm]
+ XX & YY \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+
+\item \texttt{trinode} (tri):\index{trinode@\texttt{trinode} (tri)}
+Dreieck, dessen Gr\"o"se aus dem Inhalt resultiert.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
+ X & Y \\
+ 1 & 2
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+Mit der Option \texttt{trimode}\index{trimode@\texttt{trimode}} kann die Lage der Dreiecke verändert
+werden. Die Sternversion verkleinert die Basis und erzeugt aus
+stumpfwinkligen (Winkel zwischen 90 und 180 Grad) spitzwinkelige (kleiner
+als 90 Grad) Dreiecke.
+\vspace{2mm}
+\begin{table}[H]
+\centering
+\caption{Ver\"anderung der Dreieckslage}
+\begin{tabular}{@{}ll@{}}
+Befehl & Lage des Dreiecks \\ \hline
+\texttt{trimode=U} & Spitze oben \\
+\texttt{trimode=D} & Spitze unten \\
+\texttt{trimode=R} & Spitze rechts \\
+\texttt{trimode=L} & Spitze links
+\end{tabular}
+\end{table}
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(0,-2)(3,2)
+\begin{psmatrix}[mnode=tri,rowsep=0.2cm,colsep=0.7cm]
+ [trimode=U] Dreieck \\
+ [trimode=*D]Dreieck
+\end{psmatrix}
+\end{pspicture}
+\end{LTXexample}
+\vspace{2mm}
+
+
+ \item \texttt{no node} (none):\index{no node@\texttt{no node} (none)} Ohne Knoten, was für das
+ Einf\"ugen von Verbindungslinien sinnvoll sein kann.
+
+
+\end{compactitem}
+
+
+
+\subsection{emnode}\index{emnode@\texttt{emnode}}
+
+Mit \texttt{emnode} k\"onnen verschiedene Arten (Parameter wie bei
+\texttt{mnode} von Knoten für "`leere"' Zellen gesetzt
+werden. Es muss also nichts in die Zellen eingetragen werden. Wie
+nachfolgendes Beispiel auch belegt, kann es dabei auf der rechten Seite zu
+fehlerhaften Ausgaben kommen, weil
+\bs{pst-node}\index{pst-node@\texttt{pst-node}} da noch nicht v\"ollig korrekt
+arbeitet.
+
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[emnode=circle,rowsep=0.2cm,colsep=2cm]
+ & \\
+ &
+\end{psmatrix}
+\end{LTXexample}
+\vspace{2mm}
+
+\subsection{nodealign}\index{nodealign@\texttt{nodealign}}
+
+Der Parameter \texttt{nodealign} kann in [\texttt{nodealign=true}]
+abge\"andert werden, um das Zentrum des Knotens auf die Basisebene zu
+verschieben (vgl. \cite[S.\,259]{PSTricks2}).
+
+\section{Parameter zu Zellen und Zeilen}
+
+\subsection{name}\index{name@\texttt{name}}
+
+Der Parameter \texttt{name} erm\"oglicht es, jeder Zelle einen
+selbstgew\"ahlten Namen zu geben, der am Anfang einer Zelle eingef\"ugt werden
+muss. Dies kann beim Setzen von Linien die
+Arbeit erleichtern, man muss dann nicht die Positionen ausz\"ahlen.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+ rowsep=0.4cm]
+ & [name=A] Buch & \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
+\end{LTXexample}
+\vspace{2mm}
+
+
+Au"serdem ist es \"uber diese Zellenfestlegung m\"oglich, auch \Lcs{pcline} und
+\Lcs{psline} in einer Matrixumgebung zu benutzen. Diese nehmen die
+Koordinatenargumente (hier gleich Zellennamen) aber in runden Klammern, wie
+in dem folgenden Beispiel zu sehen ist.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.45\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,
+ rowsep=0.4cm]
+[name=A]Buch \psspan{3} & \\[1cm]
+[name=B]Fachbuch & [name=C]Lehrbuch &
+[name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red}
+\psline(A)(C)
+\pcline(A)(B)
+\nbput*[nrot=:D]{\footnotesize \texttt{pcline}}
+\ncline{A}{D}
+\naput*[nrot=:U]{\footnotesize \texttt{ncline}}
+\end{LTXexample}
+
+\Lcs{pcline} geht immer vom Zentrum aus und kann nicht an einer
+Umgebungsbox beginnen oder aufh\"oren. Sie kann deshalb von
+\texttt{nodesep} nicht beeinflusst werden. Andere Parameter --
+beispielsweise \texttt{offset=},\index{offset@\texttt{offset}} der eine vertikale Verschiebung
+erm\"oglicht, -- k\"onnen das aber schon. \Lcs{psline}
+reagiert wiederum darauf nicht.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+[name=A]Fachbuch & \\[1cm]
+ & [name=C]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=<-,linecolor=red,offset=0.3cm}
+\pcline(A)(C)
+\pcline(C)(A)
+\end{LTXexample}
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+ [name=A] Fachbuch & \\[1cm]
+ & [name=C] Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red,offset=1cm}
+\psline(A)(C)
+\psline(C)(A)
+\end{LTXexample}
+
+
+
+\subsection{mcol}\index{mcol@\texttt{mcol}}
+
+Mit \texttt{mcol} kann lokal und global der horizontale
+Zellenabstand\index{Zellenabstand!horizontal}
+mit den Optionen \texttt{l,r,c} modifiziert werden.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+ rowsep=0.4cm,mcol=r]
+ & [name=A] Buch & \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
+\end{LTXexample}
+\vspace{2mm}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+ rowsep=0.4cm,mcol=l]
+ & [name=A]Buch & \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
+\end{LTXexample}
+
+\subsection{rowsep und colsep}\index{Abstand!Zellen und Zeilen}
+
+Mit \texttt{rowsep}\index{rowsep@\texttt{rowsep}} kann man den
+vertikalen und mit \texttt{colsep}\index{colsep@\texttt{colsep}}
+den horizontalen Abstand zwischen
+den Zeilen bzw. Zellen regulieren; welchen hinzuf\"ugen oder mit einem
+negativen Wert reduzieren (siehe Beispiele bei \texttt{name}).
+
+\subsection{mnodesize}\index{mnodesize@\texttt{mnodesize}}
+
+Im Defaultfall wird die Breite der Zellen\index{Zelle!Breite} von deren Inhalt bestimmt;
+innerhalb einer Zellenspalte von der mit dem gr\"o"sten Umfang. Mit
+\texttt{mnodesize=} kann allen Spalten dieselbe Breite gegeben werden.
+Dabei ist zu beachten, dass kein automatischen
+Zeilenumbruch\index{Zelle!Zeilenumbruch} in den Zellen
+erfolgt. Man kann in eine Zelle jedoch mehrere Zeilen über eine Tabelle
+einbringen.
+
+\begin{LTXexample}[width=.52\linewidth]
+\begin{psmatrix}[emnode=r,
+colsep=-0.4cm,rowsep=0.6cm,
+mnodesize=3cm]
+& [name=A]
+ \begin{tabular}{c}Grafische\\Grundelemente\end{tabular} & \\
+[name=B]Linien & [name=C]Polygone &
+[name=D]Rahmen
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C}
+\ncline{A}{D}
+\end{LTXexample}
+
+Wenn der von \texttt{mnodesize=} festgelegte Raum nicht ausreichend ist
+erweitert sich einfach die Zelle.
+
+\subsection{psspan}\index{psspan@\texttt{psspan}}
+
+Mit \texttt{psspan\{n\}} k\"onnen Zellen analog zu
+\bs{multicolumn}\index{multicolumn@\texttt{\textbackslash{multicolumn}}} mehrere
+Zellen\index{Zellen!zusammenfassen} zusammengefasst werden.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=0.4cm,
+rowsep=0.4cm]
+[name=A]Buch \psspan{3} & \\
+[name=B]Fachbuch & [name=C]Lehrbuch & [name=D]Roman
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->}
+\ncline{A}{B} \ncline{A}{C} \ncline{A}{D}
+\end{LTXexample}
+
+
+\section{Knotenverbindungen}\index{Knotenverbindung}
+
+Die Knotenverbindungen beginnen in der Regel mit \texttt{nc} und haben die Syntax:
+
+\begin{BDef}
+\bs{Knotenverbindung}\OptArgs\{Pfeile\}\{KnotenA\}\{KnotenB\}
+\end{BDef}
+
+Sie gehen von einem Knoten zu einem anderen, wenn es nicht anders festgelegt
+wurde, ist die Zielorientierung die Knotenmitte.
+
+Die Knotenverbindungen können über eine Reihe von Parametern geändert
+werden (vgl. \cite[S.\,43\,f]{PSTricks2} und \cite{siart}). Einige, die für das Zeichnen von
+Strukturen besonders relevant sind, werden in der nachfolgenden Tabelle
+aufgelistet:\index{Knotenverbindung!Parameter}
+
+\begin{table}[H]
+\centering
+\caption{Parameter f\"ur Knotenverbindungen}
+\begin{tabular}{@{}lll@{}}
+Name & Werte & Vorgabe \\ \hline
+\texttt{linewidth} & <Wert>\OptEinh\ & 0.8pt \\
+\texttt{linecolor} & <Farbe> & black \\
+\texttt{linestyle} & none|solid|dotted|dashed & solid \\
+\texttt{shadow} & <an (true)/aus (false)> & false \\
+\texttt{shadowsize} & <Wert>\OptEinh\ & 3pt \\
+\texttt{shadowangle} & <Winkel> & $-$45 \\
+\texttt{shadowcolor} & <Farbe> & darkgray \\
+\texttt{arrows} & <Pfeiltyp> & -- \\
+\texttt{doubleline} & <true/false> & false
+\end{tabular}
+\end{table}
+
+\subsection{ncline}
+
+Mit \Lcs{ncline} wird eine direkte Linie von einem Knoten zum anderen
+gezogen\footnote{Wenn Sie das nächste Beispiel mit den
+folgenden Beispielen vergleichen, können Sie auch sehen, dass eine bessere
+Positionierung in einer einfachen Box über die Umgebung
+\bs{\texttt{pspicture}}
+m\"oglich ist. Zumal ohne diese Umgebung die Kurvenlinien \"uber die Box
+hinausragen w\"urden, wie dies im ersten Beispiel zu \texttt{ncdiag} der
+Fall ist.}.
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncline[linecolor=red]{1,1}{1,2}
+\end{LTXexample}
+
+
+\subsection{ncarc}\xLcs{ncarc}
+
+Eine Kurve verbindet die Knoten.
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncarc[linecolor=red]{<->}{1,1}{1,2}
+\end{pspicture}
+\end{LTXexample}
+
+Mit der Option \texttt{arcangle=}\index{arcangle@\texttt{arcangle}} kann der
+Steigungswinkel\index{Steigungswinkel} erh\"oht werden.
+
+\begin{LTXexample}[width=.35\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncarc[arcangle=60,linecolor=red]{<->}{1,1}{1,2}
+\end{pspicture}
+\end{LTXexample}
+
+In der Sternchenversion wird der von der Kurve eingeschlossenen Raum mit
+der Linienfarbe ausgefüllt.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,-0.5)(4,1)
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncarc*[arcangle=60,linecolor=red]{<->}{1,1}{1,2}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{ncdiag}
+
+Mit \Lcs{ncdiag} wird eine Linie in drei Segmente "`zerlegt"'. Man kann
+diese Zerlegung über die Winkelfestlegungen (siehe folgendes Beispiel)
+steuern.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncdiag[angleA=90,angleB=-90,linecolor=red]{<->}{1,1}{1,2}
+\end{LTXexample}
+
+Die Angabe \texttt{arm=0}\index{arm@\texttt{arm}} erzwingt eine gerade Linie.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm]
+ KnotenX & KnotenY
+\end{psmatrix}
+\ncdiag[angleA=-90,angleB=90,arm=0,linecolor=red]{<->}{1,1}{1,2}
+\end{LTXexample}
+
+\subsection{ncdiagg}
+
+\Lcs{ncdiagg} ist \Lcs{ncdiag} \"ahnlich. Für den Ausgangsknoten wird aber
+nur eine Verbindung gezeichnet.
+
+\begin{LTXexample}[width=.3\linewidth]
+\usepackage{pstricks-add}
+\begin{pspicture}(-1,-1)(4,6)
+ \circlenode{A}{A}\quad\circlenode{C}{C}
+ \rput(0,4){\circlenode{B}{B}}
+ \rput(1,5){\circlenode{D}{D}}
+ {\psset{arrowscale=2,linearc=0.2,
+ linecolor=red,armA=0.5,angleA=90}
+ \ncdiagg[lineAngle=-160]{->}{A}{B}
+ \ncput*[nrot=:U]{Linie I}
+ \ncdiagg[lineAngle=-160]{->}{C}{D}
+ \ncput*[nrot=:U]{Linie II}}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncbar}
+
+\Lcs{ncbar} arbeitet ähnlich wie \Lcs{ncdiag}. Zwei Knoten werden
+durch drei Linienteile verbunden.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,linecolor=red,arrows=<->,arrowscale=2,
+arm=0.8]{A}{B}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{ncbarr}
+
+\Lcs{ncbarr} verwendet f\"unf Liniensegmente und erstellt damit eine
+S-f\"ormige Verbindung.
+
+\begin{LTXexample}[width=.3\linewidth]
+\begin{psmatrix}
+ & \circlenode{X}{X}\\[1cm]
+ & \circlenode{Y}{Y}
+\end{psmatrix}
+\ncbarr[angleA=0,linecolor=red]{X}{Y}
+\end{LTXexample}
+
+
+\subsection{ncangle}
+
+\Lcs{ncangle} erm\"oglich genauer berechnete dreiteilige Linien. Es
+arbeitet analog zu \Lcs{ncdiag}.
+
+\begin{LTXexample}[width=.37\linewidth]
+\begin{pspicture}(0,1)(4,-1)
+\begin{psmatrix}[emnode=r,colsep=2cm,
+ rowsep=0.5cm]
+KnotenX & KnotenY \\
+\end{psmatrix}
+\ncdiag[angleA=-90,angleB=135,armA=1cm,armB=1cm,
+linearc=.5,linecolor=red]{->}{1,1}{1,2}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncangles}
+
+\Lcs{ncangles} produziert viergliedrige Linien.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2.3)
+\begin{psmatrix}[emnode=r,colsep=2cm,
+ rowsep=0.5cm]
+\psframebox{\emph{KnotenX}} &
+\psframebox{\emph{KnotenY}}
+\end{psmatrix}
+\ncangles[angleA=-90,angleB=135,armA=1cm,
+ armB=1cm,
+linearc=.15,linecolor=red]{->}{1,1}{1,2}
+\rput[bl](-5,-0.7){armA}
+\rput[rB](-0.4,0.5){armB}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{ncloop}
+
+\Lcs{ncloop} setzt f\"unfgliedrige Linien. Gegenüber \Lcs{ncangles}
+kommt noch die Option \texttt{loopsize}\index{loopsize@\texttt{loopsize}} hinzu, die die
+H\"ohe für einen Loop (eine Schlinge) vorgibt.
+
+
+\begin{LTXexample}[width=.45\linewidth]
+\begin{pspicture}(-1.5,-1)(4,2)
+\rnode[lB]{A}{\psframebox{Knoten mit Schlinge}}
+\ncloop[angleB=180,loopsize=1,arm=.5,
+ linearc=.2,linecolor=red]{->}{A}{A}
+\ncput[npos=3.5,nrot=:U]{\psline{|<->|}%
+ (0.5,-0.2)(-0.5,-0.2)}
+\nbput[npos=3.5,nrot=:D,labelsep=.35cm]{%
+ {\small\texttt{loopsize}}}
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{nccurve}
+
+\Lcs{nccurve} setzt eine B\`ezierkurve zwischen zwei Knoten, die über
+die Winkel \texttt{angleA} und \texttt{angleB} sowie den
+Kurvenparameter\index{Kurvenparameter}
+\texttt{ncurv}\index{nccurv@\texttt{nccurv}} gesteuert werden kann.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{psmatrix}[emnode=r,colsep=2cm,
+rowsep=0.5cm]
+{\rnode{A}{\psframebox{KnotenX}}} & \\
+& {\rnode{B}{\psframebox{KnotenY}}}
+\end{psmatrix}
+\nccurve[angleB=180,ncurv=0.9,
+linecolor=red]{A}{B}
+\end{LTXexample}
+
+\subsection{nccircle}
+
+\Lcs{nccircle} erzeugt \"uber einem Knoten einen ungef\"ullten oder gef\"ullten
+(Sternchenversion) Kreis.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(-1,-1)(3,2)
+\begin{psmatrix}[emnode=r]
+\rnode{A}{herum}
+\end{psmatrix}
+\nccircle[nodesep=3pt,linecolor=red]{->}{A}{.8cm}
+\kern 5pt
+\end{pspicture}
+\end{LTXexample}
+
+\vspace{2mm}
+\begin{LTXexample}[width=.25\linewidth]
+\begin{pspicture}(-1,-1)(3,2)
+\begin{psmatrix}[emnode=r]
+\rnode{A}{dar\"uber}
+\end{psmatrix}
+\nccircle*[nodesep=3pt,linecolor=lightgray]{->}{A}{1cm}
+\kern 5pt
+\end{pspicture}
+\end{LTXexample}
+
+\subsection{offset}
+
+Die Option \texttt{offset}\index{offset@\texttt{offset}} verschiebt, wie
+schon bei den Erl\"auterungen zu dem Parameter \texttt{name} angesprochen,
+die Verbindungslinie parallel zum eigentlich festgelegten Verlauf. Dies ist
+besonders bei zwei Linien sinnvoll und effektiv.
+Wenn man jede Linien einzeln modifizieren m\"ochte, kann dies mit
+\texttt{offsetA}\index{offsetA@\texttt{offsetA}} und
+\texttt{offsetB}\index{offsetB@\texttt{offsetB}}
+geschehen. Beispielsweise, wenn von
+einem Knoten zwei Verbindungen ausgehen sollen.
+
+\vspace{2mm}
+\begin{LTXexample}[width=.2\linewidth]
+\begin{psmatrix}[emnode=r,colsep=1cm,rowsep=0.4cm]
+[name=A]Buch \\
+[name=B]Fachbuch \\
+[name=C]\LaTeX buch
+\end{psmatrix}
+\psset{nodesep=3pt,arrows=->,linecolor=red,offset=0.3cm}
+\pcline[offsetA=0.3cm](A)(B)
+\pcline[offsetB=-0.3cm](A)(C)
+\end{LTXexample}
+
+
+\section{Linien beschriften}\index{Linienbeschriftung}
+
+\subsection{Beschriftung einf\"ugen}
+
+\psframebox{\parbox{0.65\textwidth}{
+\bs ncput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung auf der Linie\}\\
+\bs naput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung \"uber der Linie\}\\
+\bs nbput\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{*}
+[\psframebox[framesep=2pt,fillstyle=solid,fillcolor=black!20,linecolor=black!20]{\texttt{Optionen}}]
+\{Beschriftung unter der Linie\}
+}}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*{auf}
+\naput*{\"uber}
+\nbput*{unter}
+\end{pspicture}
+\end{LTXexample}
+
+Die angegebene Sternchenversion ist besser geeignet, da sie die Linien
+überschreibt und damit die Beschriftungen besser sichtbar sind (vgl. mit
+der nachfolgenden Beispielversion ohne Sternchen). Das betrifft besonders
+die \texttt{naput}-Version.
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput{auf}
+\naput{\"uber}
+\nbput{unter}
+\end{pspicture}
+\end{LTXexample}
+
+Ohne die Angabe von Optionen wird die Beschriftung auf den sichtbaren
+Linienteil geschrieben. Sie orientiert sich dabei an der Linienmitte.
+Mit \texttt{npos=}\index{npos@\texttt{npos}} und
+\text{nrot=}\index{nrot@\texttt{nrot}} kann diese Orientierung ge\"andert werden.
+
+Mit \Lcs{psset}\{labelset=\} kann der Abstand zwischen Label und Linie
+reguliert werden. Wenn der Wert auf 0pt gesetzt wird (also direkt über oder
+unter der Linie, sollte f\"ur \Lcs{naput} bzw. \Lcs{nbput} nicht die
+Sternchenversion gew\"ahlt werden, die wahrscheinlich ohnehin nur f\"ur
+\Lcs{ncput} sinnvoll scheint. Die Nullversion ist immer dann zu nehmen,
+wenn es Probleme mit dem Sichtbarmachen des Labels gibt.
+
+\subsection{npos}
+
+\texttt{npos} ermöglicht die Platzierung der Beschriftung auf den
+verschiedenen Segmenten des entsprechenden Linientyps. Die Zahl gibt vor
+dem Punkt die Segmentnummer (0,1,2,\ldots) und nach dem Punkt den Abstand
+zum Segmentanfang an. Im folgenden Beispiel bekommt die Beschriftung den
+Wert 1.2 und steht damit auf dem zweiten Liniensegment 20\% vom
+Segmentanfang.
+
+\begin{table}[H]
+\centering
+\caption{Zusammenstellung der Kurzformen für die Drehwinkel}\label{tab:wind}
+ \begin{tabular}{@{}l|*{8}{>{\ttfamily}c}@{}}
+ \emph{Buchstabe} & U & L & D & R & N & W & S & E \\\hline
+ \emph{Bedeutung} & Up& Left&Down&Right&North&West&South&East\\
+ \emph{Enstprechung} &0&90&180&270&*0&*90&*180&*270
+%
+% \begin{tabular}{@{}>{\ttfamily}llr@{}}
+% \textrm{Buchstabe} & Bedeutung & Winkel\\\hline
+% U & Up & 0\\
+% L & Left & 90\\
+% D & Down & 180\\
+% R & Right & 270\\
+% N & North & *0\\
+% W & West & *90\\
+% S & South & *180\\
+% E & East & *270
+ \end{tabular}
+\end{table}
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*[npos=1.2]{auf}
+\end{pspicture}
+\end{LTXexample}
+
+
+\subsection{nrot}
+
+\texttt{nrot=:Winkel/K\"urzel} erm\"oglicht es die Beschriftung zu
+drehen:
+
+\begin{table}[htb]
+\centering\tabcolsep=3pt
+\caption{Vergleich der verschiedenen Knotenverbindungen bez\"uglich ihrer
+Segmentanzahl}\label{tab:segmente}
+\hspace*{-1em}
+\begin{tabular}{@{} lccc | lccc @{}}
+\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe} &
+\emph{Verbindung} & \emph{Segm.} & \emph{Bereich} & \emph{Vorgabe}\\\hline
+ \Lcs{ncline} & $1$ & $0\leq npos\leq 1$ & $0.5$ &
+ \Lcs{nccurve} & $1$ & $0\leq npos\leq 1$ & $0.5$\\
+ \Lcs{ncarc} & $1$ & $0\leq npos\leq 1$ & $0.5$ &
+ \Lcs{ncbar} & $3$ & $0\leq npos\leq 3$ & $1.5$\\
+ \Lcs{ncdiag} & $3$ & $0\leq npos\leq 3$ & $1.5$ &
+ \Lcs{ncdiagg} & $2$ & $0\leq npos\leq 2$ & $0.5$\\
+ \Lcs{ncangle} & $3$ & $0\leq npos\leq 3$ & $1.5$ &
+ \Lcs{ncangles} & $4$ & $0\leq npos\leq 4$ & $1.5$\\
+ \Lcs{ncloop} & $5$ & $0\leq npos\leq 5$ & $2.5$ &
+ \Lcs{nccircle} & $1$ & $0\leq npos\leq 1$ & $0.5$\\
+\end{tabular}
+\end{table}
+
+
+\begin{LTXexample}[width=.4\linewidth]
+\begin{pspicture}(0,1)(4,-2)
+\begin{psmatrix}[emnode=r]
+\psset{arrowscale=2}
+Verbinde {\rnode{A}{KnotenX}} mit
+{\rnode{B}{KnotenY}}!
+\end{psmatrix}
+\ncbar[nodesep=3pt,angleA=-90,angleB=90,
+linecolor=red,arrows=<->,arrowscale=2,arm=0.8]
+{A}{B}
+\ncput*[nrot=:L]{auf}
+\end{pspicture}
+\end{LTXexample}
+
+\section{Strukturbeispiele}
+
+
+
+Jetzt sollen noch einige wenige Beispiele von Struktur\"ubersichten
+vorgestellt werden, die von mir in der \texttt{pstmatrix}-Umgebung gesetzt wurden.
+
+\begin{figure}[H]\centering
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
+{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
+ & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
+\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
+ & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} &
+ \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
+ & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
+\end{psmatrix}
+\ncline{1,1}{2,2} \naput{s}
+\ncline{1,2}{2,2} \naput{ob}
+\ncline{2,1}{2,2} \naput{a}
+\ncline{2,2}{2,3} \naput{a}
+\ncline{2,2}{3,2} \naput{ub}
+\caption{Ein Frame}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\usepackage{pst-node,pst-blur}
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]
+{$\left[\tabular{c}GF: /Pinguin/\\ WA: +N\endtabular\right]$}
+ & \psframebox[fillcolor=yellow!40,fillstyle=solid]{Vogel} \\
+\psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{\tabular{l}aufrecht\\ gehend\endtabular}
+ & \psshadowbox[fillcolor=red,fillstyle=solid,shadow=true,blur=true,shadowsize=5pt]{\textbf{Pinguin}} &
+ \psframebox[fillcolor=blue!40,fillstyle=solid,doubleline=true]{flugunfähig}\\
+ & \psframebox[fillcolor=green!40,fillstyle=solid]{Felsenpinguin}
+\end{psmatrix}
+\ncline{1,1}{2,2} \naput{s}
+\ncline{1,2}{2,2} \naput{ob}
+\ncline{2,1}{2,2} \naput{a}
+\ncline{2,2}{2,3} \naput{a}
+\ncline{2,2}{3,2} \naput{ub}
+\end{lstlisting}
+
+
+\begin{figure}[H]\centering
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psset{shortput=nab,framesep=10pt}
+ \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
+ \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
+ \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}}
+& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
+ \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe}
+& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
+\end{psmatrix}
+\psset{nodesep=2pt,arrows=->}
+\ncline[arrowscale=2]{1,1}{2,1}
+\ncline[arrowscale=2]{2,1}{3,1}
+\caption{Eine konzeptuelle Kategorisierung}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\begin{psmatrix}[colsep=0.8,rowsep=0.8]
+\psset{shortput=nab,framesep=10pt}
+ \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Lebewesen} &
+ \psframebox[fillcolor=yellow!40,fillstyle=solid]{allgemeine Kategorisierung}\\
+ \psshadowbox[framearc=0.25,fillcolor=red!40,fillstyle=solid,doubleline=true]{\textbf{Löwe}}
+& \psframebox[fillcolor=red!40,fillstyle=solid,doubleline=true]{Basisebene}\\
+ \psshadowbox[framearc=0.25,fillcolor=blue!20,fillstyle=solid,doubleline=true]{Höhlenlöwe}
+& \psframebox[fillcolor=green!30,fillstyle=solid]{spezielle Kategorisierung}
+\end{psmatrix}
+\psset{nodesep=2pt,arrows=->}
+\ncline[arrowscale=2]{1,1}{2,1}
+\ncline[arrowscale=2]{2,1}{3,1}
+\end{lstlisting}
+
+\begin{figure}[H]\centering
+\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
+\begin{psmatrix}[colsep=0,rowsep=0.9]
+ & & \psframebox[fillcolor=blue!30]{Synchronie}\\
+ & \psframebox[fillcolor=red!30]{Sprache} & \\
+ & & \psframebox[fillcolor=blue!30]{Diachronie} \\
+\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
+ & \psframebox[fillcolor=red!30]{Sprechen} &
+ \end{psmatrix}
+ \psset{shadow=false}
+\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
+\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
+\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
+\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
+\caption{F. de Saussure zu Sprache}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\psset{framearc=0.2,shadow=true,fillstyle=solid,shadowcolor=black!55}
+\begin{psmatrix}[colsep=0,rowsep=0.9]
+ & & \psframebox[fillcolor=blue!30]{Synchronie}\\
+ & \psframebox[fillcolor=red!30]{Sprache} & \\
+ & & \psframebox[fillcolor=blue!30]{Diachronie} \\
+\psframebox[fillcolor=red!30]{Menschliche Rede} & & \\
+ & \psframebox[fillcolor=red!30]{Sprechen} &
+ \end{psmatrix}
+ \psset{shadow=false}
+\ncline[arrows=->,arrowscale=2]{2,2}{1,3}
+\ncline[arrows=->,arrowscale=2]{2,2}{3,3}
+\ncline[arrows=->,arrowscale=2]{4,1}{2,2}
+\ncline[arrows=->,arrowscale=2]{4,1}{5,2}
+\end{lstlisting}
+
+\begin{figure}[H] \centering
+\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
+ & & & & <Metall> & \\
+ & & & [mnode=oval] 18 & &\\
+ <WERKZEUG> & & & & & \\
+ & & & &[mnode=tri] 12 &\\
+ & & & & & <arbeiten> \\
+ & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
+ \fbox{12} & & & \fbox{51} & & \\
+ & \fbox{36} & & & <Hammer> &\\
+ <Feile> & & <Zange> & & &
+\end{psmatrix}
+\psset{arrowscale=2,labelsep=0pt}
+\ncline{->}{1,5}{2,4}
+\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
+\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
+\ncline{<->}{6,3}{3,1}
+\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
+\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2}
+\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
+\caption{Begriffliches Merkmalsnetz nach Hoffmann}
+\end{figure}
+
+\begin{lstlisting}[language={[LaTeX]TeX},basicstyle=\rmfamily\small,backgroundcolor={\color{yellow!20}},frame=single]
+\begin{psmatrix}[emnode=r,colsep=0.5cm,rowsep=0.5cm,mcol=c]
+ & & & & <Metall> & \\
+ & & & [mnode=oval] 18 & &\\
+ <WERKZEUG> & & & & & \\
+ & & & &[mnode=tri] 12 &\\
+ & & & & & <arbeiten> \\
+ & & [mnode=C,linestyle=dashed,radius=0.5,mcol=l] & & &\\
+ \fbox{12} & & & \fbox{51} & & \\
+ & \fbox{36} & & & <Hammer> &\\
+ <Feile> & & <Zange> & & &
+\end{psmatrix}
+\psset{arrowscale=2,labelsep=0pt}
+\ncline{->}{1,5}{2,4}
+\ncarc{->}{4,5}{2,4}\naput[npos=0.4]{OBJ}
+\ncarc{->}{6,3}{4,5}\naput[npos=0.4]{INSTR}
+\ncline{<->}{6,3}{3,1}
+\ncarc{->}{6,3}{7,1}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{7,4}\naput[npos=0.4]{UB}
+\ncarc{->}{6,3}{8,2}\naput[npos=0.4]{UB}
+\ncarc{->}{9,1}{7,1} \ncarc{->}{9,3}{8,2}
+\ncarc{->}{8,5}{7,4} \ncline{->}{5,6}{4,5}
+\end{lstlisting}
+
+\newpage
+\bgroup
+\appendix
+
+%\addcontentsline{toc}{section}{Literaturverzeichnis}
+
+\nocite{*}
+\raggedright
+
+\printbibliography
+\egroup
+\clearpage
+\addcontentsline{toc}{section}{Index}
+\printindex
+
+
+\end{document}
+
+
diff --git a/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.pdf b/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.pdf
index 8be7b3ec52..f8bebfdf1e 100644
--- a/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.pdf
+++ b/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.tex b/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.tex
index 5ff16cb6cf..a4d0faa964 100644
--- a/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.tex
+++ b/graphics/pstricks/contrib/pst-node/doc/pst-node-doc.tex
@@ -1,7 +1,8 @@
-\RequirePackage{pdfmanagement-testphase}
-\DeclareDocumentMetadata{}
-%% $Id: pst-node-doc.tex 438 2022-01-31 17:45:26Z herbert $
-\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,headings=small,
+%\RequirePackage{pdfmanagement-testphase}
+\DocumentMetadata{}
+%% $Id: pst-node-doc.tex 920 2024-07-11 07:41:04Z herbert $
+\documentclass[fontsize=11pt,english,BCOR=10mm,DIV=12,bibliography=totoc,parskip=false,
+ headings=small,
headinclude=false,footinclude=false,oneside]{pst-doc}
\listfiles
@@ -75,7 +76,8 @@ when also running the main package \LPack{pstricks} with this option.
\vfill
\noindent
-Thanks to: Marco Daniel; Denis Girou; Thomas Iyer; Rolf Niepraschk; Sebastian Rahtz; Andi Setiawan;
+Thanks to: Marco Daniel; Denis Girou; Thomas Iyer; Rolf Niepraschk; Sebastian Rahtz;
+Erich Schmidt; Andi Setiawan;
\end{abstract}
\clearpage
@@ -1356,7 +1358,7 @@ Here is how I used \Lcs{nput} to mark an angle in a previous example:
\end{pspicture}
\end{LTXexample}
-\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%%
For the put macros there are several possibilities:
@@ -1411,7 +1413,7 @@ will produce the same effect as
\end{LTXexample}
-\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%
+%\clearpage%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Normal behavior with rotation}
If there are a point $B$ of type node and a point $A$ of any type then
@@ -1589,7 +1591,7 @@ connections:
You can include the node connections inside the \Lcs{psmatrix}, in the last entry
and right before \Lcs{endpsmatrix}. One advantage to doing this is that
-\Lkeyset{shortput=tab} is the default within a \Lcs{psmatrix}.
+\Lkeyset{shortput=tab} is the default within a \Lcs{psmatrix}.\label{tab}
\begin{LTXexample}
$ \begin{psmatrix}
@@ -2489,13 +2491,12 @@ For example,
\end{pspicture}
\end{LTXexample}
-
\begin{BDef}
\Lcs{fnpnode}\Largb{xval}\Largb{expression in x}\Largb{nodename}
\end{BDef}
- sets a single node on the graph. Eg,
+ sets a single node on the graph, eg:
\begin{verbatim}
\fnpnode{.5}{x x 1 add mul 2 div}{P}
@@ -2507,7 +2508,12 @@ For example,
\end{verbatim}
If your expression in \texttt{t} is algebraic, you must specify the keyword \texttt{algebraic}, as in
- \Lcs{fnpnode}\verb|[algebraic]{0.5}{x*(x+1)/2}{P}|.
+
+
+\begin{verbatim}
+\fnpnode[algebraic]{0.5}{x*(x+1)/2}{P}
+\end{verbatim}
+
\begin{LTXexample}[width=.35\textwidth]
\begin{pspicture}[showgrid](-.5,-.5)(2.5,3)
@@ -2574,7 +2580,7 @@ turn a list of coordinates into a node sequence P0 P1 ...
\begin{LTXexample}[width=.35\textwidth]
\begin{pspicture}[showgrid,algebraic](-.5,-.5)(2.5,2)
\pnodes{B}(.1,.1)(1;10)(*2 {x^2/4})(0,1.4)
-%definesuP0..P3--now join them
+% defines P0..P3 -- now join them
\psnline[arrowscale=2]{-D>}(0,3){B}
\end{pspicture}
\end{LTXexample}
@@ -2635,7 +2641,7 @@ Conversion between any angle unit and radian unit
\begin{LTXexample}[width=.35\textwidth]
\begin{pspicture}[showgrid,algebraic](-.5,-.5)(2.5,2)
\pnodes{P}(.1,.1)(1;10)(*2 {x^2/4})(0,1.4)
-%defines P0..P3--now join them
+% defines P0..P3 -- now join them
\psncurve[arrowscale=2]{-D>}(0,3){P}
\end{pspicture}
\end{LTXexample}
@@ -2644,7 +2650,7 @@ Conversion between any angle unit and radian unit
\begin{LTXexample}[width=.35\textwidth]
\begin{pspicture}[showgrid,algebraic](-.5,-.5)(2.5,2)
\pnodes{P}(.1,.1)(1;10)(*2 {x^2/4})(0,1.4)
-%defines P0..P3--now join them
+% defines P0..P3 -- now join them
\psnccurve[arrowscale=2]{-D>}(0,3){P}
\end{pspicture}
\end{LTXexample}
@@ -2753,7 +2759,7 @@ line from \verb|<basept>+<nodexpr1>| to \verb|<basept>+<nodexpr2>|.
\curvepnode{2}{\pfn}{P}% sets P, Ptang
\normalvec(Ptang){Q}\uput[-45](P){P}
\psxline[linecolor=red]{<->}(P){-(Ptang)}{1.5(Ptang)}
-\psxline[linecolor=blue]{->}(P){}{.5(Q)}%can use } for {(0,0)}
+\psxline[linecolor=blue]{->}(P){}{.5(Q)}% can use {} for {(0,0)}
\end{pspicture}
\end{LTXexample}
\vspace{2pc}
diff --git a/graphics/pstricks/contrib/pst-node/dvips/pst-node.pro b/graphics/pstricks/contrib/pst-node/dvips/pst-node.pro
index b75ef89863..4c7ee95623 100644
--- a/graphics/pstricks/contrib/pst-node/dvips/pst-node.pro
+++ b/graphics/pstricks/contrib/pst-node/dvips/pst-node.pro
@@ -1,13 +1,13 @@
-% $Id: pst-node.pro 438 2022-01-31 17:45:26Z herbert $
+% $Id: pst-node.pro 919 2024-07-10 18:31:27Z herbert $
%%
%% PostScript prologue for pst-node.tex.
-%% Version 1.15, 2014/01/27.
+%% Version 1.15a, 2024/07/10.
%%
%% 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.
%
-%%%% EMPTY lines are not alowed!!! Problem with pst-eps -> \par
+%%%% EMPTY lines are not allowed!!! Problem with pst-eps -> \par
%
%
tx@Dict begin % from main pstricks dict
diff --git a/graphics/pstricks/contrib/pst-node/latex/pst-node.sty b/graphics/pstricks/contrib/pst-node/latex/pst-node.sty
index 43edb5aa2b..4fe6a63aa2 100644
--- a/graphics/pstricks/contrib/pst-node/latex/pst-node.sty
+++ b/graphics/pstricks/contrib/pst-node/latex/pst-node.sty
@@ -1,10 +1,10 @@
-% $Id: pst-node.sty 438 2022-01-31 17:45:26Z herbert $
+% $Id: pst-node.sty 919 2024-07-10 18:31:27Z herbert $
%%
%% This is file `pst-node.sty'.
%%
%% IMPORTANT NOTICE:
%%
-%% pst-node.sty Copyright (C) 2004-2017 Herbert Voss <voss@perce.de>
+%% pst-node.sty Copyright (C) 2004-2024 Herbert Voss <voss@perce.de>
%% Rolf Niepraschk <Rolf.Niepraschk@ptb.de>
%%
%% This package may be distributed under the terms of the LaTeX Project
@@ -14,7 +14,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{pst-node}
- [2012/09/18 v1.01 LaTeX wrapper for `pst-node' (HV)]
+ [2024/07/10 v1.02 LaTeX wrapper for `pst-node' (HV)]
%
\newif\ifpst@OldVersion\pst@OldVersionfalse
\DeclareOption{97}{\pst@OldVersiontrue}
@@ -32,13 +32,14 @@
\@addtofilelist{pst-node97.pro}}{}%
\else
\RequirePackage{pstricks}
-\ProvidesPackage{pst-node}[2010/04/22 package wrapper for pst-node.tex]
+\ProvidesPackage{pst-node}[2024/07/10 package wrapper for pst-node.tex]
\input{pst-node.tex}
\ProvidesFile{pst-node.tex}
[\filedate\space \fileversion\space `pst-node' (tvz,hv)]
\IfFileExists{pst-node.pro}{%
\ProvidesFile{pst-node.pro}
- [2011/09/18 v. 1.14, PostScript prologue file (hv)]
+ [2024/07/10 v. 1.15a, PostScript prologue file (hv)]
\@addtofilelist{pst-node.pro}}{}%
\fi
+
\endinput
diff --git a/graphics/pstricks/contrib/pst-node/tex/pst-node.tex b/graphics/pstricks/contrib/pst-node/tex/pst-node.tex
index ed3ef60a4b..a653d76eea 100644
--- a/graphics/pstricks/contrib/pst-node/tex/pst-node.tex
+++ b/graphics/pstricks/contrib/pst-node/tex/pst-node.tex
@@ -1,4 +1,4 @@
-% $Id: pst-node.tex 438 2022-01-31 17:45:26Z herbert $
+% $Id: pst-node.tex 918 2024-07-10 17:41:55Z herbert $
%%
%% BEGIN pst-node.tex
%%
@@ -18,8 +18,8 @@
\ifx\PSTricksLoaded\endinput\else\input pstricks.tex \fi\relax
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
%
-\def\fileversion{1.43}
-\def\filedate{2022/01/31}
+\def\fileversion{1.45}
+\def\filedate{2024/07/10}
\message{ v\fileversion, \filedate}
%
\edef\TheAtCode{\the\catcode`\@}
@@ -1386,8 +1386,8 @@ tx@NodeDict \pst@tempg known
/dy YB YA sub def
/angle dy dx Atan def
/linelength \pst@number\pst@dimb \pst@number\psunit div def
- XA linelength angle cos mul add YA linelength angle sin mul add ){#4}%
-}
+ XA linelength angle cos mul add YA linelength angle sin mul add ){#4}}
+%
\def\psRelNode{\pst@object{psRelNode}}
\def\psRelNode@i(#1)(#2)#3#4{{% A - B - factor - node name
\use@par
@@ -1402,10 +1402,10 @@ tx@NodeDict \pst@tempg known
/AlphaStrich \psk@angleA\space def
/unit \pst@number\psyunit \pst@number\psxunit div def % yunit/xunit
%
- /dx XB XA sub def
- /dy YB YA sub \ifPst@trueAngle\space unit mul \fi\space def
- /laenge dy dup mul dx dup mul add sqrt #3 mul def
- /Alpha dy dx atan def
+ /dx__ XB XA sub def
+ /dy__ YB YA sub \ifPst@trueAngle\space unit mul \fi\space def
+ /laenge dy__ dup mul dx__ dup mul add sqrt #3 mul def
+ /Alpha dy__ dx__ atan def
/beta Alpha AlphaStrich add def
laenge beta cos mul XA add
laenge beta sin mul \ifPst@trueAngle\space unit div \fi\space YA add ){#4}%
@@ -1537,8 +1537,7 @@ tx@NodeDict \pst@tempg known
\def\trim@ #1{\trim@@ @#1 @ #1 @ @@}%
\def\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}%
\def\unbrace#1{#1}%
-\unbrace{\def\trim@@@ #1 } #2@#3{\expandafter\def%
- \expandafter #3\expandafter {#1}}%
+\unbrace{\def\trim@@@ #1 } #2@#3{\expandafter\def\expandafter #3\expandafter {#1}}%
%
\def\hasparen#1(#2\@nil{%check if expression contains a (--call with \hasparen#1(\@nil
\ifx\relax#2\relax \@parenfalse \else \@parentrue\fi}%
@@ -1577,23 +1576,28 @@ tx@NodeDict \pst@tempg known
\expandafter\testAlg\my@tempA|\@nil\my@next {#1}{#2}{#3}}
%
\def\psparnode#1#2#3{%
-% #1=t value, #2=x(t) y(t) in PS form,#3=node name,
- \pnode(!/t #1 def #2){#3}%
- \pnode(!/t #1 .001 sub def #2
- /t #1 .001 add def
- #2 3 -1 roll sub 3 1 roll sub neg
- 2 copy Pyth dup 3 1 roll div 3 1 roll div ){#3tang}}%unit tangent vector at t
+ % #1=t value, #2=x(t) y(t) in PS form, #3=node name,
+ % also returns unit tangent vector at t with node #3tang
+ \pnode(! /t #1 def #2){#3}%
+ \pnode(! /t #1 dup abs 1 lt {0.001 sub} {dup 0 gt {0.999} {1.001} ifelse mul} ifelse def
+ #2
+ /t #1 dup abs 1 lt {0.001 add} {dup 0 lt {0.999} {1.001} ifelse mul} ifelse def
+ #2
+ 3 -1 roll sub 3 1 roll exch sub 2 copy exch dup mul exch dup mul add sqrt
+ dup 3 1 roll div 3 1 roll div){#3tang}% unit tangent vector at t
+}%
%
\def\algparnode#1#2#3{%
-% #1=t value, #2=x(t) | y(t) in alg form,#3=node name,
-%\pstVerb{tx@Dict begin /t #1 def /Func (#2) AlgParser cvx def end}
-%\pnode(!Func){#3}}%
- \pstVerb{tx@Dict begin /Func (#2) AlgParser cvx def end }
- \pnode(!/t #1 def Func){#3}
- \pnode(!/t #1 .001 sub def Func
- /t #1 .001 add def
- Func 3 -1 roll sub 3 1 roll sub neg
- 2 copy Pyth dup 3 1 roll div 3 1 roll div ){#3tang}%unit tangent vector at t
+% #1=t value, #2=x(t) | y(t) in alg form, #3=node name,
+% also returns unit tangent vector at t with node #3tang
+ \pstVerb{tx@Dict begin /Func (#2) AlgParser cvx def end }%
+ \pnode(! /t #1 def Func){#3}%
+ \pnode(! /t #1 dup abs 1 lt {0.001 sub} {dup 0 gt {0.999} {1.001} ifelse mul} ifelse def
+ Func
+ /t #1 dup abs 1 lt {0.001 add}{dup 0 lt {0.999} {1.001} ifelse mul } ifelse def
+ Func
+ 3 -1 roll sub 3 1 roll exch sub 2 copy exch dup mul exch dup mul add sqrt
+ dup 3 1 roll div 3 1 roll div){#3tang}% unit tangent vector at t
}%
%
\def\nodex#1{%
@@ -1634,8 +1638,7 @@ tx@NodeDict \pst@tempg known
\nodexn{#3}{@TMP@a}%
\AplusB(#1)(@TMP@a){@TMP@B}%
\psline(@TMP@A)(@TMP@B)%
-}%
-\ignorespaces}%
+}\ignorespaces}%
%
\def\curvepnodes{\pst@object{curvepnodes}}
\def\curvepnodes@i#1#2#3#4{{%optional [plotpoints=xx]
@@ -1685,7 +1688,7 @@ tx@NodeDict \pst@tempg known
\else
\multido{\i=0+1}{\pst@cntc}{\pnode(!/x \pst@number\pst@dima\space def x #3){#4\i}%
\advance\pst@dima \pst@dimb}%
-\fi%
+\fi
\expandafter\xdef \csname \PST@root nodecount\endcsname {\the\pst@cnta}%
\ifnum\Pst@Debug>0 \typeout{Created nodes #40 .. #4\the\pst@cnta}\fi%
}\ignorespaces}%
diff --git a/graphics/pstricks/contrib/pst-optic/Changes b/graphics/pstricks/contrib/pst-optic/Changes
index 9d04151b68..e51864d848 100644
--- a/graphics/pstricks/contrib/pst-optic/Changes
+++ b/graphics/pstricks/contrib/pst-optic/Changes
@@ -1,4 +1,5 @@
---- pst-optic.tex
+1.04 2024-06-02 - small fixes to code and documentation
1.03 2024-05-17 - small fixes to code and documentation
1.02a 2023-05-07 - fix documentation for \psRefractionRay
1.02 2016-07-10 - added option onlyrays, preset to false
diff --git a/graphics/pstricks/contrib/pst-optic/README b/graphics/pstricks/contrib/pst-optic/README
index 47b0c29eb1..0f33952022 100644
--- a/graphics/pstricks/contrib/pst-optic/README
+++ b/graphics/pstricks/contrib/pst-optic/README
@@ -3,7 +3,7 @@
%% Manuel Luque <Mluque5130@aol.com> (France)
%% Herbert Voss <hvoss@tug.org> (Germany)
%%
-%% 2023-05-07
+%% 2024-06-02
%%
Save the files
@@ -21,5 +21,6 @@ dvips pst-optic-doc.dvi
to get a PostScript file. But pay attention, that the pst-optic
files are saved in the above mentioned way, before you run
-latex on the documentation file.
+latex on the documentation file. Or simply use lualatex to get
+directly the pdf.
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
index 740cf6db59..6eea964780 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
@@ -96,7 +96,7 @@
@Article{dtk02.1:voss:mathematischen,
- author = {Herbert Voß},
+ author = {Herbert Vo{\ss}},
title = {Die mathematischen {F}unktionen von {P}ostscript},
journal = dtk,
year = 2002,
@@ -105,7 +105,7 @@
altnumber = 14,
month = mar,
pages = {40--47},
- annote = "Bretter, die die Welt bedeuten",
+ annote = bretter,
abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im
Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es
darum geht zu beurteilen, was es denn nun im eigentlichen
@@ -117,3 +117,10 @@
gezeigt. }
}
+@ctan{pstlens:2001,
+ Title = {PST-lens - {\PS} macros for Generic TeX},
+ Author = {Denis Girou and Manuel Luque},
+ url = {/graphics/pstricks/contrib/pst-lens/},
+ year = 2001,
+}
+
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
index 35ec09b5b8..182863a16e 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
index 96ca28bbec..5ec11a0297 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-optic-doc.tex 896 2024-05-17 10:13:27Z herbert $
+%% $Id: pst-optic-doc.tex 903 2024-06-02 06:16:43Z herbert $
\DocumentMetadata{}
\documentclass[11pt,english,bibliography=totoc,parskip=false,headings=small,
@@ -132,7 +132,7 @@ There are macros for the convergent and divergent lens
\begin{BDef}
\Lcs{lens}\OptArgs\\
\Lcs{lensCVG} \% \textbf{C}on\textbf{v}er\textbf{g}ent (Collecting lens ) -- default\\
-\Lcs{lensDVG} \% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )
+\Lcs{lensDVG} \% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )\\
\Lcs{pslensCVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
\Lcs{pslensDVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
\end{BDef}
@@ -148,7 +148,7 @@ The predefined options for \Lcs{lens} are \texttt{xLeft=-7.5, xRight=7.5, yBotto
\subsection{Short forms}
-The two macros \Lcs{lensCVG} and \Lcs{lensDVG} are only short forms of the main macro \Lcs{lens}
+The two macros \Lcs{lensCVG} and \Lcs{lensDVG} draw some more rays as the main macro \Lcs{lens}
with the setting \Lkeyval{lensType}\texttt{=CVG|DVG}.
The only valid arguments are \Lkeyword{lensScale}, \Lkeyword{lensWidth}, and \Lkeyword{lensHeight},
which must be set by \Lcs{psset}.
@@ -235,16 +235,17 @@ Using \Lcs{lens}\OptArg{\Lkeyword{lensType}=\ldots} gives the in figures \ref{fi
Lense width in cm & \Lkeyword{lensWidth} & 0.5cm\footnotemark\\
vertical scale (obsolet) & \Lkeyword{lensScale} & 1\\
View the lens & \Lkeyword{lensGlass} & \true\\
- show onyl the rays & \Lkeyword{onlyrays} & \false\\
+ show only the rays & \Lkeyword{onlyrays} & \false\\
Second lens & \Lkeyword{lensTwo} & \false\\
Focus in cm & \Lkeyword{focus} & 2\\
- Distance $\mathrm{\overline{OA}}$& \Lkeyword{OA} & -4\\
- Distance $\mathrm{\overline{AB}}$& \Lkeyword{AB} & 1.5\\
- Lens color & \Lkeyword{lenscolor} & \black\\
- Arrow length in cm & \Lkeyword{lensarrowsize} & 0.2\\
- Arrow inset in cm & \Lkeyword{lensarrowinset} & 0.5\\
+ Distance $\mathrm{\overline{OA}}$& \Lkeyword{OA} & -3\\
+ Distance $\mathrm{\overline{AB}}$& \Lkeyword{AB} & 1\\
+ Lens color & \Lkeyword{lenscolor}\footnotemark & \black\\
+ Arrow length in cm & \Lkeyword{lensArrowSize}${}^2$ & 0.2\\
+ Arrow inset in cm & \Lkeyword{lensArrowInset}${}^2$ & 0.5\\
\end{tabular}
\footnotetext{\textsuperscript{1} only for \Lkeyset{lensGlass=true}, otherwise set to \texttt{2\textbackslash pslinewidth}}
+\footnotetext{\textsuperscript{2} only for \Lkeyset{lensGlass=false}}
\end{minipage}
\end{table}
diff --git a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
index f145993fc6..0c06f849b3 100644
--- a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
+++ b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
@@ -1,4 +1,4 @@
-%%%% $Id: pst-optic.tex 896 2024-05-17 10:13:27Z herbert $
+%%%% $Id: pst-optic.tex 903 2024-06-02 06:16:43Z herbert $
%% This is file `pst-optic.tex',
%%
%% IMPORTANT NOTICE:
@@ -8,7 +8,7 @@
%% Manuel Luque <Mluque5130@aol.com> (France)
%% Herbert Voss <hvoss@tug.org> (Germany)
%%
-%% 2024-05-17
+%% 2024-06-02
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -30,8 +30,8 @@
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey\fi
%
-\def\fileversion{1.03}
-\def\filedate{2024/05/17}
+\def\fileversion{1.04}
+\def\filedate{2024/06/02}
\message{`PST-Optic' v\fileversion, \filedate\space (Manuel Luque and Herbert Voss)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -798,13 +798,19 @@
\begingroup%
\ifPst@lensGlass
\rput(! XO YO){%
- \ifx\psk@optic@lensType\lensTypeCVG\lensCVG%
- \else\ifx\psk@optic@lensType\lensTypePCVG\lensCVG
- \else\lensDVG\fi\fi}%
- \else%
- \ifx\psk@optic@lensType\lensTypeDVG\psset{arrows=>-<}\else
- \ifx\psk@optic@lensType\lensTypePDVG\psset{arrows=>-<}\else\psset{arrows=<->}
- \fi\fi
+ \ifx\psk@optic@lensType\lensTypeCVG \lensCVG%
+ \else\ifx\psk@optic@lensType\lensTypePCVG \lensCVG
+ \else\lensDVG
+ \fi\fi}%
+ \else
+ \ifx\psk@optic@lensType\lensTypeDVG
+ \psset{arrows=>-<}
+ \else
+ \ifx\psk@optic@lensType\lensTypePDVG
+ \psset{arrows=>-<}%
+ \else
+ \psset{arrows=<->}%
+ \fi\fi
\psline[linecolor=\psk@optic@lensColor,
linewidth=\psk@optic@lensWidth,arrowsize=\psk@optic@lensArrowSize,
arrowinset=\psk@optic@lensArrowInset]%