diff options
author | Karl Berry <karl@freefriends.org> | 2013-12-01 23:02:12 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-12-01 23:02:12 +0000 |
commit | 7ca4a6a3feb7f041867bbc46e876888b3379234b (patch) | |
tree | 7408324e759ee4f2f4253f48a82bc28fa3536856 /Master | |
parent | 64eeb6fa76f5cca3ef7bedf009c7287a45ef1cb0 (diff) |
pst-optexp (1dec13)
git-svn-id: svn://tug.org/texlive/trunk@32294 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-optexp/Changes | 5 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-optexp/README | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-DE.pdf | bin | 2842306 -> 2854555 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-quickref.pdf | bin | 49579 -> 49687 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/pst-optexp/pst-optexp.pdf | bin | 2795360 -> 2808019 bytes | |||
-rw-r--r-- | Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro | 6 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pst-optexp/pst-optexp.dtx | 636 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/pst-optexp/pst-optexp.ins | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty | 171 |
9 files changed, 572 insertions, 250 deletions
diff --git a/Master/texmf-dist/doc/latex/pst-optexp/Changes b/Master/texmf-dist/doc/latex/pst-optexp/Changes index 237131b6d9a..9522d317b8a 100644 --- a/Master/texmf-dist/doc/latex/pst-optexp/Changes +++ b/Master/texmf-dist/doc/latex/pst-optexp/Changes @@ -1,3 +1,8 @@ +4.6 2013-11-27 + * Added option extnodes. + * Added option optdipolecomp. + * Added option opttripolecomp. + 4.5 2013-07-21 * Added option usewirestyle. * Added line style fade, with options fadeto, fadepoints, diff --git a/Master/texmf-dist/doc/latex/pst-optexp/README b/Master/texmf-dist/doc/latex/pst-optexp/README index a86c6a5c420..ed6ea59a2e1 100644 --- a/Master/texmf-dist/doc/latex/pst-optexp/README +++ b/Master/texmf-dist/doc/latex/pst-optexp/README @@ -1,5 +1,5 @@ ------------------------------------------------------------------------ -The pst-optexp package --- Sketching optical experimental setups +The pst-optexp package --- Drawing optical experimental setups Maintained by Christoph Bersch E-mail: usenet@bersch.net Released under the LaTeX Project Public License v1.3c or later diff --git a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-DE.pdf b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-DE.pdf Binary files differindex 5058dae422c..1ca6dd0b60b 100644 --- a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-DE.pdf +++ b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-DE.pdf diff --git a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-quickref.pdf b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-quickref.pdf Binary files differindex 8e9286618f2..3be863aa5c9 100644 --- a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-quickref.pdf +++ b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp-quickref.pdf diff --git a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp.pdf b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp.pdf Binary files differindex 3d6cc665661..6f551ec89c1 100644 --- a/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp.pdf +++ b/Master/texmf-dist/doc/latex/pst-optexp/pst-optexp.pdf diff --git a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro index 3fd41c12bee..bcd6c0193b1 100644 --- a/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro +++ b/Master/texmf-dist/dvips/pst-optexp/pst-optexp.pro @@ -9,7 +9,7 @@ %% This is a generated file. %% %% Project: pst-optexp -%% Version: 4.5 (2013/07/21) +%% Version: 4.6 (2013/11/27) %% %% Copyright (C) 2007-2013 by Christoph Bersch <usenet@bersch.net> %% @@ -205,8 +205,8 @@ tx@OptexpDict begin /@@y 0 def /@@x0 0 def /@@y0 0 def - /@xref 0 def - /@yref 0 def + /@xref [0] def + /@yref [0] def /RefFac 1 def } bind def /NewTempNodeComp { diff --git a/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.dtx b/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.dtx index 1b0ee21c1cc..7bbc707a1b4 100644 --- a/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.dtx +++ b/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.dtx @@ -18,7 +18,7 @@ %<stylefile>\NeedsTeXFormat{LaTeX2e}[1999/12/01] %<stylefile>\ProvidesPackage{pst-optexp} %<*stylefile> - [2013/07/21 v4.5 Optical experimental setups with PSTricks] + [2013/11/27 v4.6 Optical experimental setups with PSTricks] %</stylefile> % %<*driver> @@ -1048,7 +1048,7 @@ %\fi \begin{LTXexample}[linerange={1-3,6-6}] \begin{pspicture}[showgrid](0,-0.3)(3,2.3) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \lens(A)(B) \psset{style=Refline}\color{Refline} \psdot(A)\uput[90](A){A}\psdot(B)\uput[90](B){B} @@ -1583,10 +1583,9 @@ % \begingroup % \catcode`\*=13 % \def*{}% -\begin{LTXexample}[style=example, linerange={1-5,7-7}] +\begin{LTXexample}[style=example, linerange={1-4,6-6}] *\ON*\begin{pspicture}[showgrid](4.7,2) - \pnode(0.7,1){A}\pnode(1,1){B}\pnode(2.8,1){C} - \pnode(4,1.5){D}\pnode(4,0.5){E}*\OFF* + \pnodes(0.7,1){A}(1,1){B}(2.8,1){C}(4,1.5){D}(4,0.5){E}*\OFF* \psset{optboxwidth=0.7, labelstyle=\scriptsize} \optbox[position=start, label=0, fiber](A)(B){LD}*\ON* \psset{style=Refline}\psdot(A)\psdot(B)\psdot(C)\psdot(D)\psdot(E) @@ -1606,10 +1605,9 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[style=example, linerange={1-6,8-8}] +\begin{LTXexample}[style=example, linerange={1-5,7-7}] *\ON*\begin{pspicture}[showgrid](4.7,2) - \pnode(0.7,1){A}\pnode(1,1){B}\pnode(2.8,1){C} - \pnode(4,1.5){D}\pnode(4,0.5){E} + \pnodes(0.7,1){A}(1,1){B}(2.8,1){C}(4,1.5){D}(4,0.5){E} \psset{optboxwidth=0.7, labelstyle=\scriptsize} \optbox[position=start, label=0, fiber](A)(B){LD}*\OFF* \optmzm(B)(C)*\ON* @@ -1632,10 +1630,9 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[style=example, linerange={1-7,9-9}] +\begin{LTXexample}[style=example, linerange={1-6,8-8}] *\ON*\begin{pspicture}[showgrid](4.7,2) - \pnode(0.7,1){A}\pnode(1,1){B}\pnode(2.8,1){C} - \pnode(4,1.5){D}\pnode(4,0.5){E} + \pnodes(0.7,1){A}(1,1){B}(2.8,1){C}(4,1.5){D}(4,0.5){E} \psset{optboxwidth=0.7, labelstyle=\scriptsize} \optbox[position=start, label=0, fiber](A)(B){LD} \optmzm(B)(C)*\OFF* @@ -1672,10 +1669,9 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[style=example, caption={caption}, label={ex:fiber-setup}, linerange={1-9,11-11}] +\begin{LTXexample}[style=example, caption={caption}, label={ex:fiber-setup}, linerange={1-8,10-10}] *\ON*\begin{pspicture}[showgrid](4.7,2) - \pnode(0.7,1){A}\pnode(1,1){B}\pnode(2.8,1){C} - \pnode(4,1.5){D}\pnode(4,0.5){E} + \pnodes(0.7,1){A}(1,1){B}(2.8,1){C}(4,1.5){D}(4,0.5){E} \psset{optboxwidth=0.7, labelstyle=\scriptsize} \optbox[position=start, label=0, fiber](A)(B){LD} \optmzm(B)(C) @@ -1769,8 +1765,7 @@ \def*{}% \begin{LTXexample}[style=example, hsep=8mm, numbers=left, numberstyle=\footnotesize, caption={caption}, label=ex:michelson] \begin{pspicture}(3.2,5) - \pnode(0,3){A}\pnode(1,3){BS}\pnode(3,3){M1}*\label{l:ex2-nodes1}* - \pnode(1,5){M2}\pnode(1,1){PD}*\label{l:ex2-nodes2}* + \pnodes(0,3){A}(1,3){BS}(3,3){M1}(1,5){M2}(1,1){PD}*\label{l:ex2-nodes}* \psset{mirrortype=extended, mirrordepth=0.2}*\label{l:ex2-set}* \begin{optexp}*\label{l:ex2-begin}* \beamsplitter[bsstyle=plate, compname=BS](A)(BS)(PD)*\label{l:ex2-bs}* @@ -1790,7 +1785,7 @@ % % \ifGERMAN % Wir beginnen wieder, indem wir die Referenzknoten definieren -% (\prettyref{l:ex2-nodes1}--\ref{l:ex2-nodes2}) und ein paar +% (\prettyref{l:ex2-nodes}) und ein paar % grundlegende Einstellungen setzen (\prettyref{l:ex2-set}). % % Dann werden der Reihe nach alle Komponenten platziert @@ -1813,7 +1808,7 @@ % \fi % \ifENGLISH % We start with definition of the reference nodes -% (\prettyref{l:ex2-nodes1}--\ref{l:ex2-nodes2}) and setting some basic +% (\prettyref{l:ex2-nodes}) and setting some basic % parameters (\prettyref{l:ex2-set}). % % Following, all components are positioned @@ -2135,7 +2130,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]{position}}, linerange={1-4,8-8}] \begin{pspicture}(3,2) - \pnode(0.5,1){A}\pnode(2.5,1){B}\psdot(A)\psdot(B) + \pnodes(0.5,1){A}(2.5,1){B}\psdot(A)\psdot(B) \optbox[optboxsize=0.5 0.5, position=start](A)(B) \lens[position=end](A)(B) \psline[style=Refline](A)(B) @@ -2158,7 +2153,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]{position}}, linerange={1-4,8-8}] \begin{pspicture}(3,2) - \pnode(0.5,1){A}\pnode(2.5,1){B}\psdot(A)\psdot(B) + \pnodes(0.5,1){A}(2.5,1){B}\psdot(A)\psdot(B) \optbox[optboxsize=0.5 0.5, position=0](A)(B) \lens[position=1](A)(B) \psline[style=Refline](A)(B) @@ -2241,7 +2236,7 @@ % \fi \begin{LTXexample}[linerange={1-2,4-4,10-10}, morekeywords={[21]{angle}}] \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(2.7,1){B} + \pnodes(0,1){A}(2.7,1){B} \optbox[addtoOptComp={style=Refline, linestyle=dashed}](A)(B) \optbox[angle=20, innerlabel](A)(B){box} \psline[style=Refline](\oenodeRefA{})(\oenodeRefB{}) @@ -2273,7 +2268,7 @@ % \fi \begin{LTXexample}[linerange={1-2,4-4,10-10}, morekeywords={[21]{angle,rotateref}}] \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(2.7,1){B} + \pnodes(0,1){A}(2.7,1){B} \optbox[addtoOptComp={style=Refline, linestyle=dashed}](A)(B) \optbox[angle=20, rotateref=bl, innerlabel](A)(B){box} \psline[style=Refline](\oenodeRefA{})(\oenodeRefB{}) @@ -2302,7 +2297,7 @@ % \fi \begin{LTXexample}[linerange={1-3,10-10}, morekeywords={[21]{compshift}}] \begin{pspicture}(4,2) - \pnode(0.4, 0.5){A}\pnode(3.6,0.5){B} + \pnodes(0.4, 0.5){A}(3.6,0.5){B} \lens[lens=2 2 2, compshift=0.5](A)(B) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -2314,7 +2309,7 @@ \end{LTXexample} \begin{LTXexample}[linerange={1-3,9-9}, morekeywords={[21]{compshift}}] \begin{pspicture}(4,2) - \pnode(0.4,1.2){A}\pnode(3,0.2){B} + \pnodes(0.4,1.2){A}(3,0.2){B} \mirror[compshift=0.5](A)(B|A)(B) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}|\oenodeRefA{})(\oenodeRefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -2347,7 +2342,7 @@ % \fi \begin{LTXexample}[linerange={1-3,10-10}, morekeywords={[21]{compoffset}}] \begin{pspicture}(4,2) - \pnode(0.4, 1){A}\pnode(3.6, 1){B} + \pnodes(0.4, 1){A}(3.6, 1){B} \lens[lens=2 2 2, compoffset=0.5](A)(B) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -2359,7 +2354,7 @@ \end{LTXexample} \begin{LTXexample}[linerange={1-3,9-9}, morekeywords={[21]{compoffset}}] \begin{pspicture}(4,2) - \pnode(0.4,1.2){A}\pnode(3,0.2){B} + \pnodes(0.4,1.2){A}(3,0.2){B} \mirror[compoffset=0.5](A)(B|A)(B) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}|\oenodeRefA{})(\oenodeRefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -3443,7 +3438,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(4,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \glanthompson[glanthompsongap=0.2, glanthompsonsize=2 1](A)(B) \optplane[angle=90](2,0)\optplane[angle=90](2,2) \addtopsstyle{Beam}{ArrowInside=->, arrowscale=1.5} @@ -3964,7 +3959,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]{gratingalign}}] \begin{pspicture}(3,2) -\pnode(0.5,0){A}\pnode(0.5,1.5){B}\pnode(2,1.5){C}\pnode(2,0){D} +\pnodes(0.5,0){A}(0.5,1.5){B}(2,1.5){C}(2,0){D} \psset{unit=1.5, labeloffset=0.4} \begin{optexp} \optgrating[gratingalign=top](A)(B)(C){top} @@ -4044,16 +4039,27 @@ % Das Transmissiongitter unterstützt alle Optionen von % \Lcomp{optgrating}. Der Strahlengang wird so berechnet, dass der % Strahl an einer Ebene senkrecht zum dargestellten Gitter reflektiert -% wird. +% wird. Diese Ebene ist im folgenden Beispiel dargestellt: % \fi % \ifENGLISH % The transmission grating supports all options of % \Lcomp{optgrating}. The beam path is calculated such, that the beam is -% reflected at an interface which is perpendicular to the drawn grating. +% reflected at an interface which is perpendicular to the drawn grating. This virtual interface is shown in the following example: % \fi % -% \begin{pspicture}(2.6,2.4) -% \pnode(0,1.3){A}\pnode(2,1.3){B}\pnode(1,0.3){C} +% \hspace*{\fill}% +% \begin{pspicture}(3,3) +% \transmissiongrating[beam, label=0 . . relative](0,1)(1.5,1)(3,0.5){\psline[linewidth=0.7\pslinewidth, linestyle=dashed](0,-1)(0,1)} +% \ifENGLISH +% \rput[lB](0,2.4){\parbox{3cm}{virtual reflection interface}} +% \fi +% \ifGERMAN +% \rput[lB](0,2.4){\parbox{3cm}{Virtuelle \\ Reflexionsebene}} +% \fi +% \end{pspicture} +% \hspace*{\fill}% +% \begin{pspicture}(3.5,3) +% \pnodes(0,1.3){A}(2,1.3){B}(1,0.3){C} % \optgrating[reverse, gratingcount=9](A)(B)(C) % \optplane[angle=45](C) % \addtopsstyle{Beam}{ArrowInside=->, ArrowInsidePos=0.8, arrowinset=0, arrowscale=1.5} @@ -4062,12 +4068,17 @@ % \drawbeam[linecolor=green]{1-2} % \drawbeam[linecolor=red, beamangle=15]{1-2} % \drawbeam[linecolor=blue, beamangle=-15]{1-2} -% \rput[lB](0,2){\ifENGLISH reflection grating\fi\ifGERMAN Reflexionsgitter\fi} +% \ifENGLISH +% \rput[lB](0,2.4){\parbox{5cm}{reflection grating\\\Lcomp{optgrating}}} +% \fi +% \ifGERMAN +% \rput[lB](0,2.4){\parbox{5cm}{Reflexionsgitter\\\Lcomp{optgrating}}} +% \fi % \end{pspicture} -% \hspace*{2cm} -% \begin{pspicture}(5,2.4) -% \pnode(0,1.3){A}\pnode(2,1.3){B}\pnode(4,1){C} -% \transmissiongrating[reverse, gratingcount=9](A)(B)(C){TG} +% \hspace*{\fill}% +% \begin{pspicture}(4,3) +% \pnodes(0,1.3){A}(2,1.3){B}(4,1){C} +% \transmissiongrating[reverse, gratingcount=9](A)(B)(C) % \optplane[angle=-30](C) % \addtopsstyle{Beam}{ArrowInside=->, ArrowInsidePos=0.8, arrowinset=0, arrowscale=1.5} % \drawbeam[linecolor=black](A){1} @@ -4075,8 +4086,14 @@ % \drawbeam[linecolor=green]{1-2} % \drawbeam[linecolor=red, beamangle=5]{1-2} % \drawbeam[linecolor=blue, beamangle=-5]{1-2} -% \rput[lB](0,2){\ifENGLISH transmission grating\fi\ifGERMAN Transmissionsgitter\fi} +% \ifENGLISH +% \rput[lB](0,2.4){\parbox{5cm}{transmission grating\\\Lcomp{transmissiongrating}}} +% \fi +% \ifGERMAN +% \rput[lB](0,2.4){\parbox{5cm}{Transmissionsgitter\\\Lcomp{transmissiongrating}}} +% \fi % \end{pspicture} +% \hspace*{\fill}% % % \ifENGLISH If this is not what you want, you may e.g. rotate the % component further with \Lkeyword{angle}, and then adjust also the @@ -4092,7 +4109,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,1.4) - \pnode(0,1){A}\pnode(1,1){B}\pnode(3,0.6){C} + \pnodes(0,1){A}(1,1){B}(3,0.6){C} \transmissiongrating[angle=-10, reverse](A)(B)(C){TG} \addtopsstyle{Beam}{ArrowInside=->, ArrowInsidePos=0.8, arrowinset=0, arrowscale=1.5} \drawbeam[linecolor=black](A){1} @@ -4194,7 +4211,7 @@ % \fi \begin{pspicture}(0,-0.5)(14,3.2) \footnotesize - \pnode(0,1){A}\pnode(2,2){B}\pnode(4,1){C} + \pnodes(0,1){A}(2,2){B}(4,1){C} \psdot(A)\uput[90](A){A} \psdot(B)\uput[90](B){B} \psdot(C)\uput[90](C){C} @@ -4207,7 +4224,7 @@ \rput[t](\oenodeCenter{}|0,0.2){% \begin{tabular}{@{}c@{}}\opt{prismalign=auto}\\\opt{prismtype=transmittive}\end{tabular}} - \pnode(5,1){A}\pnode(7,2){B}\pnode(9,1){C} + \pnodes(5,1){A}(7,2){B}(9,1){C} \psdot(A)\uput[90](A){A} \psdot(B)\uput[90](B){B} \psdot(C)\uput[90](C){C} @@ -4220,7 +4237,7 @@ \rput[t](\oenodeCenter{}|0,0.2){% \begin{tabular}{@{}c@{}}\opt{prismalign=center}\\\opt{prismtype=transmittive}\end{tabular}} - \pnode(10,2){A}\pnode(12,1){B}\pnode(14,2){C} + \pnodes(10,2){A}(12,1){B}(14,2){C} \psdot(A)\uput[90](A){A} \psdot(B)\uput[-90](B){B} \psdot(C)\uput[90](C){C} @@ -4271,7 +4288,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3.5,2) - \pnode(0,2){A}\pnode(2.5,0.5){G}\pnode(0,1.5){B} + \pnodes(0,2){A}(2.5,0.5){G}(0,1.5){B} \begin{optexp} \rightangleprism[beam, showifcnodes, showoptdots](A)(G)(B){RA} \end{optexp} @@ -4295,18 +4312,18 @@ % \fi % % \begin{pspicture}(0,-0.5)(13,2) -% \pnode(0,1.6){A}\pnode(0,0.4){B} +% \pnodes(0,1.6){A}(0,0.4){B} % \rightangleprism(A)(2,1)(B)\psdot(\oenodeCenter{}) % \drawbeam(A){}(B) -% \pnode(3,1.2){A}\pnode(3,0.8){B} +% \pnodes(3,1.2){A}(3,0.8){B} % \rightangleprism(A)(5,1)(B)\psdot(\oenodeCenter{}) % \drawbeam(A){}(B) % \rput[t](3,0){\opt{raprismalign=auto}} % \psset{raprismalign=center} -% \pnode(7,1.6){A}\pnode(7,0.4){B} +% \pnodes(7,1.6){A}(7,0.4){B} % \rightangleprism(A)(9,1)(B)\psdot(\oenodeCenter{}) % \drawbeam(A){}(B) -% \pnode(10,1.2){A}\pnode(10,0.8){B} +% \pnodes(10,1.2){A}(10,0.8){B} % \rightangleprism(A)(12,1)(B)\psdot(\oenodeCenter{}) % \drawbeam(A){}(B) % \rput[t](10,0){\opt{raprismalign=center}} @@ -5074,7 +5091,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(4,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \psset[optexp]{fiber=none} \wdmsplitter[position=0.2, coupleralign=b](A)(B) \wdmcoupler[position=0.8, coupleralign=t](A)(B) @@ -6090,7 +6107,7 @@ % \fi \begin{LTXexample}[pos=t, linerange={1-3, 4-7}] \begin{pspicture}(5,1) - \pnode(0.5,0.5){A}\pnode(4.5,0.5){B} + \pnodes(0.5,0.5){A}(4.5,0.5){B} \optbox(A)(B) \psline[style=Refline](\oenodeRefA{})(\oenodeRefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -6122,7 +6139,7 @@ % \fi \begin{LTXexample}[pos=t, linerange={1-3,5-9}] \begin{pspicture}(5,1.8) - \pnode(0.5,0.5){A}\pnode(4.5,0.5){B} + \pnodes(0.5,0.5){A}(4.5,0.5){B} \optbox[compshift=0.5, angle=10](A)(B) \psline[style=Refline](\oenodeTrefA{})(\oenodeTrefB{}) \psdot(\oenodeRefA{})\uput[-90](\oenodeRefA{}){RefA} @@ -6261,7 +6278,7 @@ % \begin{pspicture}(6,2.5) % \addtopsstyle{Beam}{beaminside=false, arrows=->, arrowinset=0, arrowscale=1.5} % \psset{optboxsize=2.5 1.5}\ttfamily -% \pnode(0,1.25){A}\pnode(6,1.25){B} +% \pnodes(0,1.25){A}(6,1.25){B} % \optbox[beam, extnode=tl](A)(B) % \psdot(\oenodeExt{})\uput[135](\oenodeExt{}){tl} % \backlayer{% @@ -6358,6 +6375,39 @@ % \iffalse %</ignore> % \fi +% +% \valitem{extnodes}{list} +% \ifGERMAN Erlaubt die Definition mehrerer externer Knoten, \prm{list} +% ist eine Liste von \prm{refpoint}, wie sie von \Lkeyword{extnode} +% verwendet werden. Der erste Knoten kann wie gewohnt mit +% \Lcs{oenodeExt} angesprochen werden (ist äquivalent zu +% \Lcs{oenode}{\{Ext\}} und \Lcs{oenode}{\{Ext1\}}). Für alle weiteren +% Knoten muss \Lcs{oenode} mit den Knotenbezeichnungen +% \opt{Ext}\prm{num} verwendet werden: \Lcs{oenode}\opt{\{Ext1\}} für den +% ersten, \Lcs{oenode}{\{Ext2\}} für den zweiten usw. +% \fi +% \ifENGLISH +% Define multiple external nodes, with their \prm{refpoints} given in +% the \prm{list} and separated by commas. The first node can be accessed +% as usual with \Lcs{oenodeExt} (is equivalent to \Lcs{oenode}{\{Ext\}} +% and \Lcs{oenode}{\{Ext1\}}). All additional nodes must be accessed +% with \Lcs{oenode} and the node label \opt{Ext}\prm{num}: +% \Lcs{oenode}{\{Ext1\}} for the first one, \Lcs{oenode}{\{Ext2\}} for +% the second, etc. +% \fi +% \iffalse +%<*ignore> +% \fi +\begin{LTXexample}[morekeywords={[21]extnodes}, linerange={1-3,5-5}] +\begin{pspicture}(3,2) + \optbox[extnodes={tl,tr,br,bl}](0,1)(3,1) + \multido{\i=1+1}{4}{\psdot[dotstyle=o](\oenode{Ext\i}{})}% + \multido{\i=1+1,\ii=135+-90}{4}{\uput[\ii](\oenode{Ext\i}{}){Ext\i}}% +\end{pspicture} +\end{LTXexample} +% \iffalse +%</ignore> +% \fi % \end{optionlist} % % \ifGERMAN\section{Grenzflächenknoten}\fi @@ -6527,7 +6577,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(0,0)(3,2) - \pnode(0,1){A}\pnode(1.6,1){B} + \pnodes(0,1){A}(1.6,1){B} \optbox[position=end](A)(B) \drawbeam[beaminsidelast=false](A){1} \psdot(\oenodeBeam{}) @@ -6561,7 +6611,7 @@ % \fi \begin{LTXexample}[linerange={1-6,10-10}] \begin{pspicture}(0,0)(3,2) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \lens[abspos=1, lensradius=-2](A)(B) \addtopsstyle{Beam}{% fillstyle=solid, fillcolor=green, opacity=0.3} @@ -6593,7 +6643,7 @@ % \fi \begin{LTXexample}[linerange={1-6,10-10,14-14}] \begin{pspicture}(0,0)(3,2) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \lens[abspos=1, n=2](A)(B) \addtopsstyle{Beam}{% fillstyle=solid, fillcolor=green, opacity=0.3} @@ -6619,12 +6669,12 @@ % \fi \begin{LTXexample}[linerange={1-6,8-8,15-15}] \begin{pspicture}(0,-1)(4,2) - \pnode(0,1.5){A}\pnode(2,1.5){B}\pnode(2.8,0){C} + \pnodes(0,1.5){A}(2,1.5){B}(2.8,0){C} \mirror[mirrorwidth=1.2, mirrortype=extended](A)(B)(C) \addtopsstyle{Beam}{% fillstyle=solid, fillcolor=green, opacity=0.3} \drawwidebeam[beamwidth=0.5](A){} - \pnode(\oenodeBeamUp{}){Up1}\pnode(\oenodeBeamLow{}){Low1} + \pnodes(\oenodeBeamUp{}){Up1}(\oenodeBeamLow{}){Low1} \drawwidebeam[loadbeam]{}(C) \psdot(\oenodeBeamUp{})\psdot(\oenodeBeamLow{}) \uput[90](\oenodeBeamUp{}){\rput[lb](0,0){BeamUp}} @@ -6696,7 +6746,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(0,0)(3,2) - \pnode(0,1){A}\pnode(1.6,1){B} + \pnodes(0,1){A}(1.6,1){B} \optbox[position=end](A)(B) \psset{beaminsidelast=false} \drawbeam[linecolor=red, beampos=0.3](A){1} @@ -6810,7 +6860,7 @@ % \fi \begin{LTXexample}[linerange={1-9,11-11}] \begin{pspicture}(3,3) - \pnode(0,1.5){A}\pnode(3,1.5){B} + \pnodes(0,1.5){A}(3,1.5){B} \lens[abspos=1, lens=5 5 3, n=2.0](A)(B) \optplane[angle=90](B) \drawwidebeam[beamwidth=2](A){1-2} @@ -6836,7 +6886,7 @@ % \fi \begin{LTXexample}[caption={caption}, label={ex:beamcenter}] \begin{pspicture}(3.5,2.6) - \pnode(0,2){A}\pnode(1,2){B}\pnode(3,1){C} + \pnodes(0,2){A}(1,2){B}(3,1){C} \optprism(A)(B)(C) \newpsstyle{Beam}{linestyle=none, fillstyle=solid, beamwidth=0.2, beamnodealign=vector} \drawwidebeam[fillcolor=orange](A){} @@ -6870,7 +6920,7 @@ \begin{LTXexample}[pos=t, linerange={2-4,17-17}] \psset{unit=2} \begin{pspicture}(0.3,0.1)(4.8,1.6) - \pnode(0.5,0.5){A}\pnode(4.5,0.5){B} + \pnodes(0.5,0.5){A}(4.5,0.5){B} \optbox[compshift=0.5, angle=10, rotateref=tr, extnode={-0.5,1}](A)(B) \psline[style=Refline](\oenodeTrefA{})(\oenodeTrefB{}) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}) @@ -6976,7 +7026,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,1.5) - \pnode(0,1){A}\pnode(1.5,1){B} + \pnodes(0,1){A}(1.5,1){B} \optbox[position=end, labeloffset=0](A)(B){1} \drawbeam(A){1} \end{pspicture} @@ -7189,7 +7239,7 @@ %\fi \begin{LTXexample}[linerange={1-7,9-9}] \begin{pspicture}(3,2.2) - \pnode(0,1.5){A}\pnode(1,1.5){B}\pnode(3,1){C} + \pnodes(0,1.5){A}(1,1.5){B}(3,1){C} \optprism[prismsize=1.2](A)(B)(C) \optplane(C) \drawbeam[n=1, linecolor=blue](A){1}{2} @@ -7222,7 +7272,7 @@ %\fi \begin{LTXexample}[linerange={1-6,8-8}] \begin{pspicture}(4,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \doveprism[doveprismsize=1](A)(B) \drawbeam[n=1, linecolor=blue, beampos=0.1](A){1}(B) \drawbeam[n=1.5, linecolor=red](A){1}(B) @@ -7247,7 +7297,7 @@ %\fi \begin{LTXexample}[linerange={1-7,9-9}, morekeywords={[21]beampos,beamangle}] \begin{pspicture}(3.7,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \doveprism[doveprismsize=1](A)(B) \psset[optexp]{raytrace=false} \drawbeam[linecolor=blue, beampos=0.2, beamangle=-10](A){1}(B) @@ -7258,7 +7308,7 @@ \end{LTXexample} \begin{LTXexample}[linerange={1-7,9-9}, morekeywords={[21]beampos,beamangle}] \begin{pspicture}(3.7,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \doveprism[doveprismsize=1](A)(B) \psset[optexp]{raytrace=false} \drawbeam[linecolor=blue, beampos=0.2](A){1}(B) @@ -7290,7 +7340,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2) - \pnode(0,0.5){A}\pnode(2.5,0.5){B}\pnode(2.5,2){C} + \pnodes(0,0.5){A}(2.5,0.5){B}(2.5,2){C} \mirror(A)(B)(C) \psset{useNA=false} \drawbeam(A){}(C) @@ -7405,7 +7455,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,1.5) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \doveprism[n=*sqrt(5)](A)(B) \drawbeam(A){}(B) \end{pspicture} @@ -7428,7 +7478,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{n}}] \begin{pspicture}(3,3) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \optplane(A) \psset{lens=3 3 2, n=1.5} \lens[abspos=0.5](A)(B) @@ -7457,7 +7507,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{n}}] \begin{pspicture}(3,3) - \pnode(0,1.5){A}\pnode(3,1.5){B} + \pnodes(0,1.5){A}(3,1.5){B} \lens[lens=4 4 3, n=2, abspos=0.3](A)(B) \optplane[compname=Plane](B) \psset{beampos=0.6} @@ -7489,7 +7539,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{n}}] \begin{pspicture}(3,3) - \pnode(-1,0){A}\pnode(1,2.2){B}\pnode(3,0){C} + \pnodes(-1,0){A}(1,2.2){B}(3,0){C} \optplane(0,2.15) \optprism[prismalign=center, prismangle=59](A)(B)(C) \optplane(C) @@ -7517,7 +7567,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{n}}] \begin{pspicture}(0.3,0)(3.3,5.2) - \pnode(0.3,1){A}\pnode(2,1){B}\pnode(3,2){C}\pnode(2.5,5){D} + \pnodes(0.3,1){A}(2,1){B}(3,2){C}(2.5,5){D} \optplane(A) \optgrating[reverse](A)(B)(C) \pinhole[phwidth=-0.1, innerheight=0.03, abspos=0.5](D)(B) @@ -7565,7 +7615,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beampos}}] \begin{pspicture}(4,3.8) - \pnode(1.5,0.5){A}\pnode(3.5,0.5){B}\pnode(3.5,3.5){C} + \pnodes(1.5,0.5){A}(3.5,0.5){B}(3.5,3.5){C} \optbox[position=end](B)(A) \mirror[mirrortype=extended, mirrorradius=3](A)(B)(C) \optplate[position=end](B)(C) @@ -7632,7 +7682,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beamangle}}] \begin{pspicture}(4,4) - \pnode(1.5,0.5){A}\pnode(3.5,0.5){B}\pnode(3.5,3.5){C} + \pnodes(1.5,0.5){A}(3.5,0.5){B}(3.5,3.5){C} \optbox[position=end](B)(A) \mirror[mirrortype=extended](A)(B)(C) \optplate[position=end](B)(C) @@ -7674,7 +7724,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beamalign, angle}}] \begin{pspicture}(3,1.5) - \pnode(0,0.75){A}\pnode(3,0.75){B} + \pnodes(0,0.75){A}(3,0.75){B} \optbox[angle=10, showifcnodes](A)(B) \drawbeam(A){}(B) \drawbeam[linecolor=red, beamalign=abs](A){}(B) @@ -7704,7 +7754,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beampathskip}}, pos=t] \begin{pspicture}(5,2) -\pnode(0,1){A}\pnode(5,1){B}\pnode(2,0){C} +\pnodes(0,1){A}(5,1){B}(2,0){C} \begin{optexp} \glanthompson(A)(B) \optplane(B)\optplane[angle=90](C) @@ -7737,7 +7787,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beampathcount}}] \begin{pspicture}(3,2) - \pnode(0,2){A}\pnode(2,0.8){B}\pnode(4,2){C} + \pnodes(0,2){A}(2,0.8){B}(4,2){C} \optprism[compname=P, prismtype=reflective, prismangle=90](A)(B)(C) \lens[abspos=1.33](\oenodeIfc{2}{P})(A)% \drawwidebeam[beamwidth=0.2, beaminsidelast, beampathcount=4](A){2}{1} @@ -7865,7 +7915,7 @@ \begin{LTXexample}[morekeywords = {[21]{allowbeaminside}}] \begin{pspicture}(3,2) \psset{optboxwidth=0.5} - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \optbox[position=0.2](A)(B) \optbox[position=0.4, allowbeaminside=false](A)(B) \optbox[position=0.6](A)(B) @@ -7901,7 +7951,7 @@ \begin{LTXexample}[morekeywords = {[21]{forcebeaminside}}] \begin{pspicture}(3,2) \psset{optboxwidth=0.5} - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \optbox[position=0.2](A)(B) \optbox[position=0.4, forcebeaminside](A)(B) \optbox[position=0.6](A)(B) @@ -7933,7 +7983,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{stopinsidecount, startinsidecout}}] \begin{pspicture}(4,2) - \pnode(0,2){A}\pnode(2,0.8){B}\pnode(4,2){C} + \pnodes(0,2){A}(2,0.8){B}(4,2){C} \optprism[compname=P, prismtype=reflective, prismangle=90](A)(B)(C) \lens[abspos=1.33](\oenodeIfc{2}{P})(A)% \lens[abspos=1.33](\oenodeIfc{2}{P})(C)% @@ -7981,7 +8031,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(2.5,1){B} + \pnodes(0,1){A}(2.5,1){B} \lens[lens=3 3 2, n=2.5, abspos=0.5](A)(B) \multido{\r=-0.3+0.3}{3}{% \drawbeam[beampos=\r](A){}(B)} @@ -7989,7 +8039,7 @@ \end{LTXexample} \begin{LTXexample} \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \lens[abspos=0.5](A)(B) \addtopsstyle{Beam}{linecolor=black, fillstyle=solid, beamwidth=0.2, fillcolor=red, opacity=0.5, beaminside=false} \multido{\r=-0.3+0.3}{3}{\drawwidebeam[beampos=\r](A){}(B)} @@ -8017,7 +8067,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]beamnodealign}] \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \lens[abspos=0.5](A)(B) \addtopsstyle{Beam}{linecolor=black, fillstyle=solid, beamwidth=0.2, beamnodealign=vector, fillcolor=green, opacity=0.5, beaminside=false} \multido{\r=-0.3+0.3}{3}{\drawwidebeam[beampos=\r](A){}(B)} @@ -8047,14 +8097,14 @@ % % \hspace*{\fill}% % \begin{pspicture}(4,2.7) -% \pnode(0,0.5){A}\pnode(4,0.5){B} +% \pnodes(0,0.5){A}(4,0.5){B} % \lens[compshift=0.5, abspos=1, lens=1.5 1.5 2](A)(B) % \drawwidebeam[beamalign=absolute, linecolor=black, fillstyle=solid, beamwidth=0.6, fillcolor=green, opacity=0.5, beamnodealign=vector](A){}(B) % \rput[rb](4,0){\ttfamily vector} % \end{pspicture} % \hspace*{1cm}% % \begin{pspicture}(5,3) -% \pnode(0,0.5){A}\pnode(4,0.5){B} +% \pnodes(0,0.5){A}(4,0.5){B} % \lens[compshift=0.5, abspos=1, lens=1.5 1.5 2](A)(B) % \drawwidebeam[beamalign=absolute, linecolor=black, fillstyle=solid, beamwidth=0.6, fillcolor=red, opacity=0.5](A){}(B) % \rput[rb](5,0){\ttfamily connection} @@ -8087,7 +8137,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(2.5,1){B} + \pnodes(0,1){A}(2.5,1){B} \lens[lens=3 3 2, n=2.5, abspos=0.5](A)(B) \optplane[angle=-30](B) \multido{\r=-0.3+0.3}{3}{% @@ -8208,7 +8258,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(0,0)(3.5,2) - \pnode(0,1.5){A}\pnode(2,1.5){B}\pnode(2.8,0){C} + \pnodes(0,1.5){A}(2,1.5){B}(2.8,0){C} \mirror[mirrorwidth=1.2, mirrortype=extended](A)(B)(C) \newpsstyle{Beam}{linecolor=green, linestyle=none, fillstyle=solid, fillcolor=green, opacity=0.2} \drawwidebeam[beamwidth=0.5](A){}(C) @@ -8359,7 +8409,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beamwidth}}] \begin{pspicture}(4,4) - \pnode(1.5,0.5){A}\pnode(3.5,0.5){B}\pnode(3.5,3.5){C} + \pnodes(1.5,0.5){A}(3.5,0.5){B}(3.5,3.5){C} \optbox[position=end](B)(A) \mirror[mirrortype=extended](A)(B)(C) \optplate[position=end](B)(C) @@ -8384,7 +8434,7 @@ % \fi \begin{LTXexample}[morekeywords = {[21]{beamdiv}}, linerange={1-8,11-11}] \begin{pspicture}(3,2) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \psset{plateheight=2} \optplate[position=start](A)(B) \optplate[position=end](A)(B) @@ -8429,7 +8479,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2) - \pnode(0,0.5){A}\pnode(1,0.5){B}\pnode(2.8,2){C} + \pnodes(0,0.5){A}(1,0.5){B}(2.8,2){C} \mirror[mirrorwidth=1.5](A)(B)(C) \drawwidebeam[beamwidth=0.4](A){}(C) \end{pspicture} @@ -8447,7 +8497,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]fillstyle, linestyle}] \begin{pspicture}(3,2) - \pnode(0,0.5){A}\pnode(1,0.5){B}\pnode(2.8,2){C} + \pnodes(0,0.5){A}(1,0.5){B}(2.8,2){C} \mirror[mirrorwidth=1.5](A)(B)(C) \addtopsstyle{Beam}{fillstyle=solid, fillcolor=red!50!white, linecolor=red} \drawwidebeam[beamwidth=0.4](A){}(C) @@ -8466,7 +8516,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]fillstyle, linestyle}] \begin{pspicture}(3,2) - \pnode(0,0.5){A}\pnode(1,0.5){B}\pnode(2.8,2){C} + \pnodes(0,0.5){A}(1,0.5){B}(2.8,2){C} \mirror[mirrorwidth=1.5](A)(B)(C) \addtopsstyle{Beam}{fillstyle=solid, fillcolor=red, opacity=0.3, linestyle=none} \drawwidebeam[beamwidth=0.4](A){}(C) @@ -8512,7 +8562,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2.7) - \pnode(0,1){A}\pnode(3,1){B} + \pnodes(0,1){A}(3,1){B} \optplate[position=start](A)(B) \lens[lens=4 4 2, abspos=0.5, n=2.5](A)(B) \optplate[position=end, plateheight=0.5](A)(B) @@ -8541,7 +8591,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2.5) - \pnode(0,2){A}\pnode(3,0){B} + \pnodes(0,2){A}(3,0){B} \optplane(A) \optprism[n=1.8](A)([Xnodesep=1.5]A)(B) \optplane(B) @@ -8566,7 +8616,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2.5) - \pnode(0,2){A}\pnode(3,0){B} + \pnodes(0,2){A}(3,0){B} \optplane(A) \optprism[n=1.8](A)([Xnodesep=1.5]A)(B) \optplane(B) @@ -8591,7 +8641,7 @@ % \fi \begin{LTXexample} \begin{pspicture}(3,2.7) - \pnode(0,1){A}\pnode(2,1){B} + \pnodes(0,1){A}(2,1){B} \optplate[position=start](A)(B) \lens[lens=4 4 2, abspos=0.5, n=2.5](A)(B) \fiberdelayline[fdlsize=1 0.7, position=end, fiber=none](A)(B) @@ -8688,7 +8738,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]{savebeampoints, loadbeampoints}}] \begin{pspicture}(4,2) - \pnode(0,1){A}\pnode(4,1){B} + \pnodes(0,1){A}(4,1){B} \begin{optexp} \lens[lens=0.5 0.5 0.5, abspos=0.5](A)(B) \lens[lens=4 4 2, abspos=2](A)(B) @@ -8720,7 +8770,7 @@ \begin{LTXexample}[morekeywords={[21]{savebeampoints, loadbeampoints}}, linerange={1-12,16-16}, caption={caption}, label={ex:loadbeampoints}] \begin{pspicture}(3.5,3.5) - \pnode(0,0.5){A}\pnode(2,0.5){B}\pnode(2,3){C} + \pnodes(0,0.5){A}(2,0.5){B}(2,3){C} \nodexn{(C)-(1,0)}{C'} \nodexn{(C)(1,0)}{C''} \optgrating(A)(B)(C) @@ -8774,7 +8824,7 @@ \begin{LTXexample}[morekeywords={[21]{savebeam, loadbeam}}, linerange={1-10,14-14}, caption={caption}, label={ex:loadbeam}] \begin{pspicture}(3.5,3.5) - \pnode(0,0.5){A}\pnode(2,0.5){B}\pnode(2,3){C} + \pnodes(0,0.5){A}(2,0.5){B}(2,3){C} \optgrating(A)(B)(C) \addtopsstyle{Beam}{% fillstyle=solid, fillcolor=green, opacity=0.3} @@ -8818,7 +8868,7 @@ % \fi \begin{LTXexample}[linerange={1-6,9-9}, morekeywords={[21]{savebeam, loadbeam}}] \begin{pspicture}(3,1.5) - \pnode(0,0.5){A}\pnode(1.5,1.5){B}\pnode(3,0.5){C} + \pnodes(0,0.5){A}(1.5,1.5){B}(3,0.5){C} \beamsplitter(A)(1.5,0.5)(B) \drawbeam[beaminsidelast, savebeam](A){} \drawbeam[linecolor=red, beaminsidefirst, loadbeam]{}(B) @@ -8830,7 +8880,7 @@ \begin{LTXexample}[linerange={1-6,9-9}, morekeywords={[21]{savebeam, loadbeam}}] \begin{pspicture}(3,1.5) - \pnode(0,0.5){A}\pnode(1.5,1.5){B}\pnode(3,0.5){C} + \pnodes(0,0.5){A}(1.5,1.5){B}(3,0.5){C} \mirror[mirrortype=semitrans](A)(1.5,0.5)(B) \drawbeam[beaminsidelast, savebeam](A){} \drawbeam[linecolor=red, beaminsidefirst, loadbeam]{}(B) @@ -9005,7 +9055,7 @@ % \fi \begin{LTXexample}[linerange={1-3,10-11}] \begin{pspicture}(-1,-0.7)(7,2.7) - \pnode(0,1){A}\pnode(6,1){B} + \pnodes(0,1){A}(6,1){B} \optbox[angle=30](A)(B) \psdot(\oenodeRefA{})\uput[180](\oenodeRefA{}){RefA}% \psdot(\oenodeRefB{})\uput[0](\oenodeRefB{}){RefB}% @@ -9091,10 +9141,9 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[linerange={1-5,10-11}] +\begin{LTXexample}[linerange={1-4,9-10}] \begin{pspicture}(0,-0.8)(7,0.8) - \pnode(0,0){A}\pnode(3,0){B} - \pnode(4,0){C}\pnode(7,0){D} + \pnodes(0,0){A}(3,0){B}(4,0){C}(7,0){D} \optbox[angle=30](A)(B) \optbox[angle=-30](C)(D) \psline[style=Refline, linestyle=dashed](\oenodeTrefA{1})(\oenodeTrefB{1}) @@ -9139,10 +9188,9 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[linerange={1-5,10-11}] +\begin{LTXexample}[linerange={1-4,9-10}] \begin{pspicture}(1,-1.7)(7,1.7) - \pnode(0,0){A}\pnode(4,0){B} - \pnode(3,0){C}\pnode(7,0){D} + \pnodes(0,0){A}(4,0){B}(3,0){C}(7,0){D} \optbox[angle=30](A)(B) \optbox[angle=-30](C)(D) \psline[style=Refline, linestyle=dashed](\oenodeTrefA{1})(\oenodeTrefB{1}) @@ -9202,7 +9250,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]fiberalign}, linerange={1-3,7-8}] \begin{pspicture}(1,-1)(4.5,1) - \pnode(0,0){A}\pnode(4,0){B} + \pnodes(0,0){A}(4,0){B} \optbox[angle=30](A)(B) \psline[style=Refline, linestyle=dashed](\oenodeTrefA{})(\oenodeTrefB{}) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}) @@ -9237,7 +9285,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]fiberangleA, fiberangleB}, linerange={1-3,7-9}] \begin{pspicture}(0,-1)(4,1) - \pnode(0,0){A}\pnode(4,0){B} + \pnodes(0,0){A}(4,0){B} \optbox[angle=30](A)(B) \psline[style=Refline, linestyle=dashed](\oenodeTrefA{})(\oenodeTrefB{}) \psline[style=Refline, linestyle=dashed](\oenodeRefA{})(\oenodeRefB{}) @@ -9288,7 +9336,7 @@ \begin{LTXexample}[linerange={1-1,3-6}] \begin{pspicture}(3,2) \psset{label=0, optboxwidth=1} - \pnode(-0.5,1){A}\pnode(1.5,1){B}\pnode(3.5,1){C} + \pnodes(-0.5,1){A}(1.5,1){B}(3.5,1){C} \optbox(A)(B){Box1}\optbox(B)(C){Box2} \drawfiber{1}{2} \end{pspicture} @@ -9309,11 +9357,10 @@ % \iffalse %<*ignore> % \fi -\begin{LTXexample}[linerange={1-1,3-7}] +\begin{LTXexample}[linerange={1-1,3-6}] \begin{pspicture}(2,2) \psset{label=0} - \pnode(0,0.5){A}\pnode(2,0.5){B} - \pnode([offset=1]B){C}\pnode(A|C){D} + \pnodes(0,0.5){A}(2,0.5){B}([offset=1]B){C}(A|C){D} \optbox(A)(B){Box1}\optbox(C)(D){Box2} \drawfiber{1}{2} \end{pspicture} @@ -9342,8 +9389,7 @@ \begin{LTXexample}[morekeywords={[21]startnode}] \begin{pspicture}(2,2) \psset{label=0} - \pnode(0,0.5){A}\pnode(2,0.5){B} - \pnode([offset=1]B){C}\pnode(A|C){D} + \pnodes(0,0.5){A}(2,0.5){B}([offset=1]B){C}(A|C){D} \optbox(A)(B){Box1}\optbox(C)(D){Box2} \drawfiber[startnode=1]{1}{2} \drawfiber[startnode=N, linecolor=black]{1}{2} @@ -9366,8 +9412,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]startnode}, caption={caption}, label={ex:nalm}] \begin{pspicture}(2.1,3) - \pnode(0,0){A}\pnode(2,0){B} - \pnode(0.3,3){C}\pnode(1.7,3){D} + \pnodes(0,0){A}(2,0){B}(0.3,3){C}(1.7,3){D} \psset{fiber=none, arrowscale=1.2, arrowinset=0} \optcoupler[fiber=l, addtoFiberIn1={angleA=0, ArrowInside=->}, @@ -9435,7 +9480,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]fiberstyle}] \begin{pspicture}(3,3) - \pnode(1, 0.5){A}\pnode(2.5,0.5){B}\pnode(2.5,2){C} + \pnodes(1, 0.5){A}(2.5,0.5){B}(2.5,2){C} \psset{optboxsize=1 0.6, innerlabel} \optbox[position=start](A)(B){start} \optbox[position=end](B)(C){stop} @@ -9445,8 +9490,7 @@ \begin{LTXexample}[morekeywords={[21]fiberstyle}, label={ex:recirc-loop}, caption={caption}] \begin{pspicture}(4,2.5) - \pnode(1,2.5){In}\pnode(3,2.5){Out} - \pnode(0,2){A}\pnode(4,2){B}\pnode(4,0){C}\pnode(0,0){D} + \pnodes(1,2.5){In}(3,2.5){Out}(0,2){A}(4,2){B}(4,0){C}(0,0){D} \optcoupler[fiber=t, addtoFiber={ArrowInside=->}, coupleralign=b](In)(A)(Out)(B) \psset{fiber=none} \optamp[position=0.35](C)(D) @@ -9645,7 +9689,7 @@ \psset{fiber} \optbox(0,2.5)(3,2.5) \optmzm(0,1.5)(3,1.5) - \elecsynthesizer[position=0.5](1,0.5)(3,0.5) + \elecsynthesizer[position=0.5](0,0.5)(3,0.5) \end{pspicture} \end{LTXexample} % \iffalse @@ -10234,7 +10278,8 @@ % \fi % % \begin{ltxsyntax} -% \dipoledesc{optdipole} +% \xLdipole{optdipole}% +% \compitem{optdipole}[options](in)(out){comp}{label} % \iffalse %<*ignore> % \fi @@ -10249,7 +10294,9 @@ %</ignore> % \fi % -% \tripoledesc{opttripole} +% \xLdipole{opttripole}% +% \compitem{opttripole}[options](in)(center)(out){comp}{label} +% % \iffalse %<*ignore> % \fi @@ -10295,7 +10342,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]optdipolesize}] \begin{pspicture}(3,2) -\pnode(0,1){A}\pnode(3,1){B} +\pnodes(0,1){A}(3,1){B} \optdipole[optdipolesize=1, showifcnodes](A)(B){% \psframe[fillstyle=solid,fillcolor=black!30](-0.5,-0.5)(-0.3,0.5) \psframe(-0.5,-0.5)(0.5,0.5)}{label} @@ -10326,7 +10373,7 @@ % \fi \begin{LTXexample}[morekeywords={[21]optdipolesize}] \begin{pspicture}(3,2) -\pnode(0,1){A}\pnode(3,1){B} +\pnodes(0,1){A}(3,1){B} \optdipole[optdipolesize=1 0.2, showifcnodes](A)(B){% \psframe[fillstyle=solid,fillcolor=black!30](-0.5,-0.5)(-0.3,0.5) \psframe(-0.5,-0.5)(0.5,0.5)}{label} @@ -10338,6 +10385,65 @@ %</ignore> % \fi % +% \optitem{optdipolecomp}{\prm{macros}} +% \ifGERMAN Mit dieser Option kann die Zeichnung einer Komponente +% definiert werden, um dann mit \Lcs*{newpsobject} basierend auf +% \Lcomp{optdipole} eine neuen Komponente zu definieren. +% \fi +% \ifENGLISH +% This option defines the drawing of a component, and can be used to +% define a new component based in \Lcomp{optdiple} with +% \Lcs*{newpsobject}. +% \fi +% +% \iffalse +%<*ignore> +% \fi +\begin{LTXexample}[morekeywords={[21]optdipolecomp}] +\begin{pspicture}(3,2) +\def\phasemodulatorcomp{% + \psframe(-1,-0.4)(1,0.4) + \psframe[fillstyle=hlines](-1.3,-0.5)(1.3,-0.4) + \psframe[fillstyle=hlines](-1.3,0.5)(1.3,0.4)} +\newpsobject{phasemodulator}{optdipole}{optdipolesize=2 0.8, optdipolecomp={\phasemodulatorcomp}} +\pnodes(0,1){A}(3,1){B} +\phasemodulator(A)(B){LiNbO$_3$} +\drawwidebeam[beamwidth=0.3, beaminside=false](A){}(B) +\end{pspicture} +\end{LTXexample} +% \iffalse +%</ignore> +% \fi +% +% \optitem{opttripolecomp}{\prm{macros}} +% \ifGERMAN Mit dieser Option kann die Zeichnung einer Komponente +% definiert werden, um dann mit \Lcs*{newpsobject} basierend auf +% \Lcomp{opttripole} eine neuen Komponente zu definieren. +% \fi +% \ifENGLISH +% This option defines the drawing of a component, and can be used to +% define a new component based in \Lcomp{opttriple} with +% \Lcs*{newpsobject}. +% \fi +% +% \iffalse +%<*ignore> +% \fi +\begin{LTXexample}[morekeywords={[21]opttripolecomp}] +\begin{pspicture}(3,2) +\def\ampmodcomp{% + \psframe*[linestyle=none](-0.5,0)(0.5,0.1) + \psframe*[linestyle=none, linecolor=gray](-0.5,0.1)(0.5,0.2)} +\newpsobject{ampmod}{opttripole}{opttripolecomp={\ampmodcomp}} +\pnodes(0,0){A}(2,1.5){B}(3,0){C} +\ampmod(A)(B)(C){AM} +\drawwidebeam[beamwidth=0.3](A){}(C) +\end{pspicture} +\end{LTXexample} +% \iffalse +%</ignore> +% \fi +% % \ifGERMAN % Weitere Beispiel sind \prettyref{ex:lclv} und % \prettyref{ex:absspektr}. @@ -10398,7 +10504,7 @@ \begin{pspicture}(10,2) \newpsobject{MOLensIn}{lens}{lens=0.5 0.5 0.5} \newpsobject{MOLensOut}{lens}{lens=1.5 1.5 1.5} - \pnode(0,1){A}\pnode(10,1){B} + \pnodes(0,1){A}(10,1){B} \MOLensIn[abspos=1](A)(B)\MOLensOut[abspos=2](A)(B) \optplate[plateheight=1.5](A)(B) \MOLensOut[abspos=8](A)(B)\MOLensIn[abspos=9](A)(B) @@ -10740,8 +10846,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(0.1,0.4)(10,4.5) \psset[optexp]{lens=1 1 0.7, loadbeampoints} - \pnode(2,4){L}\pnode([Xnodesep=4]L){M} - \pnode([Xnodesep=1.5]M){IRSpec}\pnode([offset=-2.5]M){OSA} + \pnodes(2,4){L}([Xnodesep=4]L){M}([Xnodesep=1.5]M){IRSpec}([offset=-2.5]M){OSA} \begin{optexp} \optbox[position=start, innerlabel, optboxwidth=1.8](L)(M){fs laser} \lens[abspos=1](L)(M) @@ -10767,7 +10872,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(-4.2,-1)(3,3) -\pnode(-2,0){LOut}\pnode(0,0){Grat}\pnode(4;45){Out}\pnode(2.5;70){Mvar} +\pnodes(-2,0){LOut}(0,0){Grat}(4;45){Out}(2.5;70){Mvar} \newpsstyle{Beam}{linewidth=2\pslinewidth, linecolor=red!90!black} \begin{optexp} \optbox[optboxwidth=2.2, labeloffset=0, position=start](LOut)(Grat){diode laser} @@ -10784,7 +10889,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(8.5,1.9) -\pnode(1.4,1.3){Laser}\pnode(7.6,1.3){Diode} +\pnodes(1.4,1.3){Laser}(7.6,1.3){Diode} \optbox[position=start, labeloffset=0](Laser)(Diode){Laser}% \optbox[abspos=4, optboxsize=1 0.6, labeloffset=1, n=3, compname=PC, angle=-10, rotateref=l](Laser)(Diode){Photonic Crystal} @@ -10802,7 +10907,7 @@ \enlargethispage{2cm} \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(10.4,1.7) -\pnode(1.2,1){Start}\pnode(9.2,1){CCD} +\pnodes(1.2,1){Start}(9.2,1){CCD} \begin{optexp} \optbox[position=end, label=0, optboxwidth=1.2](CCD)(Start){Laser} \optbox[position=end, label=0, optboxwidth=1.2](Start)(CCD){CCD} @@ -10822,7 +10927,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(10.4,1.7) -\pnode(1.2,1){Start}\pnode(9.2,1){CCD} +\pnodes(1.2,1){Start}(9.2,1){CCD} \begin{optexp} \optbox[position=start, label=0, optboxwidth=1.2](Start)(CCD){Laser} \polarization[poltype=perp,abspos=0.5](Start)(CCD) @@ -10850,8 +10955,8 @@ \captionsetup[lstlisting]{format=poecaption} \begin{LTXexample}[pos=t, caption={\ifGERMAN Angepasst von \fi\ifENGLISH Adapted from \fi\arxivurl{1112.5270v2}}] \begin{pspicture}(0.3,0.4)(5.5,8.3) -\pnode(2,7){L}\pnode(2,5.8){Pbs}\pnode([Xnodesep=1]Pbs){Blk1}\pnode(2,2.3){Bs} -\pnode([Xnodesep=-1]Bs){Blk2}\pnode([Xnodesep=3.5]Bs){Out}\pnode(2,1.3){Slm} +\pnodes(2,7){L}(2,5.8){Pbs}([Xnodesep=1]Pbs){Blk1}(2,2.3){Bs} +\pnodes([Xnodesep=-1]Bs){Blk2}([Xnodesep=3.5]Bs){Out}(2,1.3){Slm} \begin{optexp} \optbox[position=end, innerlabel, optboxsize=1.2 0.6](Pbs)(L){Laser} \psset{labelalign=r, mirrortype=extended} @@ -10883,7 +10988,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(6.4,3.2) \addtopsstyle{Fiber}{linecolor=red}\psset{fiber=none} -\pnode(2.3,2.3){Lin}\pnode([Xnodesep=4.5]Lin){Det} +\pnodes(2.3,2.3){Lin}([Xnodesep=4.5]Lin){Det} \optbox[label=0.2, position=start, compname=L, extnode=b](Lin)(Det){% \psGauss[yunit=0.03,sigma=0.03]{-0.5}{0.5}} \optbox[label=0, compname=EAM, extnode=b, abspos=1.5](Lin)(Det){EAM} @@ -10902,7 +11007,7 @@ \enlargethispage{1cm} \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(0.2,0.6)(8.2,3.5) -\pnode(2,3){Laser}\pnode(2,1){PwMeter}\pnode(6,3){CplTop}\pnode(6,1){CplBot} +\pnodes(2,3){Laser}(2,1){PwMeter}(6,3){CplTop}(6,1){CplBot} \psset{arrowscale=1.5, arrowinset=0} \optbox[position=start, optboxsize=1.8 1, labeloffset=0](Laser)([Xnodesep=0.1]Laser){% \begin{tabular}{@{}c@{}}Nd:YAG\\[-0.4ex]cw laser\end{tabular}} @@ -10917,9 +11022,8 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(0.9,0.9)(10.4,6.1) \psset{arrowscale=1.5, arrowinset=0} -\pnode(2,5){PC1in}\pnode(4,5){PC1out}\pnode(6,5){PC2in} -\pnode(8,5){PC2out}\pnode(2,2){CplSig}\pnode(5,2){CplIn} -\pnode(2,1){CplOut}\pnode(10,4.5){Pump}\pnode(8,2){PumpSig} +\pnodes(2,5){PC1in}(4,5){PC1out}(6,5){PC2in}(8,5){PC2out}(2,2){CplSig} +\pnodes(5,2){CplIn}(2,1){CplOut}(10,4.5){Pump}(8,2){PumpSig} \optisolator[compshift=0.8, addtoFiberIn={angleA=180}, addtoFiberOut={angleB=180}, label=0.5 . l]% (CplSig)(PC1in){isolator} @@ -10940,8 +11044,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(1,1.2)(6.2,5) -\pnode(1,4){SigIn}\pnode(3,4){BS}\pnode(3,5){LO} -\pnode(5,4){Det1}\pnode(3,2){Det2} +\pnodes(1,4){SigIn}(3,4){BS}(3,5){LO}(5,4){Det1}(3,2){Det2} \begin{optexp} \optplane[compname=LO, angle=90](LO) \beamsplitter[compname=BS](SigIn)(BS)(Det2) @@ -10970,8 +11073,7 @@ \begin{pspicture}(-0.2,0)(9,5) \psset[optexp]{lens=1.2 0 1.2, n=1.72} \addtopsstyle{Beam}{fillstyle=solid, fillcolor=green, opacity=0.3} -\pnode(2.4,1){BS1}\pnode([offset=3]BS1){M1} -\pnode([Xnodesep=5.5]M1){PP}\pnode(PP|BS1){BS2} +\pnodes(2.4,1){BS1}([offset=3]BS1){M1}([Xnodesep=5.5]M1){PP}(PP|BS1){BS2} \begin{optexp} \optbox[label=0, position=start, optboxwidth=1.6]([Xnodesep=-1]BS1)(BS1){Nd:YAG} \beamsplitter[compname=BS](BS2)(BS1)(M1){BS} @@ -10997,9 +11099,8 @@ \enlargethispage{1cm} \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(0,-0.2)(8.6,5.6) -\pnode(1.5,5){Laser}\pnode(4,5){PBS}\pnode(6.5,5){PBS2}\pnode(6.5,5.7){piezo} -\pnode(4,2){BSFwd}\pnode(6.5,2){BSBwd}\pnode(2,2){BS4f}\pnode(2,0.5){M4f3} -\pnode(8,2){M4f1}\pnode(8,0.5){M4f2}\pnode(1,2){CCD} +\pnodes(1.5,5){Laser}(4,5){PBS}(6.5,5){PBS2}(6.5,5.7){piezo}(4,2){BSFwd} +\pnodes(6.5,2){BSBwd}(2,2){BS4f}(2,0.5){M4f3}(8,2){M4f1}(8,0.5){M4f2}(1,2){CCD} \psset{mirrorwidth=0.6, plateheight=0.7, outerheight=0.7, labeloffset=0.7, labelstyle=\scriptsize, lens=1.2 1.2 0.8, bssize=0.5} \optbox[position=start, optboxsize=1.5 0.7, innerlabel]% (Laser)(PBS){\parbox{1.5cm}{\centering Nd:YAG\\ 532\,nm}} @@ -11035,9 +11136,9 @@ \begin{LTXexample}[pos=t, caption={caption}, label=ex:transmission-loop] \begin{pspicture}(13,5.5) \psset{optboxwidth=1, labelstyle=\footnotesize, fiber=none} -\pnode(1,5){LD}\pnode([Xnodesep=5.5]LD){CPLin1} -\pnode([offset=-2]CPLin1){CPLin2}\pnode([Xnodesep=2.5]CPLin1){CPLout1} -\pnode([Xnodesep=2.5]CPLin2){CPLout2}\pnode([Xnodesep=3]CPLout1){RX} +\pnodes(1,5){LD}([Xnodesep=5.5]LD){CPLin1}([offset=-2]CPLin1){CPLin2} +\pnodes([Xnodesep=2.5]CPLin1){CPLout1}([Xnodesep=2.5]CPLin2){CPLout2} +\pnode([Xnodesep=3]CPLout1){RX} \optbox[position=start, label=0](LD)(CPLin1){LD} \optmzm[abspos=0.8](LD)(CPLin1){MZM} \optamp[abspos=2](LD)(CPLin1){EDFA} @@ -11050,8 +11151,7 @@ \optfilter[abspos=2](CPLout1)(RX){BPF} \optbox[position=end](CPLout1)(RX){RX} \drawfiber{8-10} -\pnode([Xnodesep=-0.5]LD|CPLin2){TL}\pnode(RX|TL){TR} -\pnode([offset=-2.5]TR){BR}\pnode(TL|BR){BL} +\pnodes([Xnodesep=-0.5]LD|CPLin2){TL}(RX|TL){TR}([offset=-2.5]TR){BR}(TL|BR){BL} \optamp[fiber=i](CPLout2)(TR){EDFA} \optfiber[label=0.3 . t, position=0.85](BL)(BR){SSMF 89.8~km} \drawfiber[fiberstyle=angle, arm=1.2, linearc=0.5, startnode=N]{11}{12} @@ -11072,7 +11172,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(12, 4) \psset{labeloffset=0.3, fiber=none} - \pnode(1.6,2){In}\pnode(12, 2){Ref} + \pnodes(1.6,2){In}(12, 2){Ref} \optplate[linestyle=dashed, plateheight=3, position=1, compname=RefPlane](In)(Ref) \addtopsstyle{Beam}{linestyle=none, beamdiv=20, beaminside=false, fillstyle=solid, fillcolor=red, opacity=0.3} \multido{\i=1+1, \ii=165+10}{4}{% @@ -11095,7 +11195,7 @@ \begin{LTXexample}[caption={caption}] \begin{pspicture}(0.5,0)(2.2,4) - \pnode(0,1){A}\pnode(1,1){BS}\pnode(2,1){G}\pnode(1,4){B} + \pnodes(0,1){A}(1,1){BS}(2,1){G}(1,4){B} \beamsplitter(G)(BS)(B) \optgrating(BS)(G)(BS) \lens[lens=2 2 1.5, compshift=0.1, n=2.25](BS)(B) \pinhole[phwidth=0.05, innerheight=0.05, position=0.8, compshift=0.18](BS)(B) @@ -11114,7 +11214,7 @@ \addtopsstyle{OptComp}{linecolor=white} \newpsstyle{Beam}{ArrowInside=->, linejoin=2, arrowscale=1.3, arrowinset=0} \addtopsstyle{ExtendedMirror}{hatchcolor=white, hatchsep=0.5\pslinewidth} -\pnode(0,3){A}\pnode(8,3){B}\pnode(3,1.5){C}\pnode(8,0){D}\pnode(0,0){E}% +\pnodes(0,3){A}(8,3){B}(3,1.5){C}(8,0){D}(0,0){E}% \psset{linewidth=1.5\pslinewidth, mirrorradius=13, mirrorwidth=1.5, gratingwidth=1.3, mirrortype=extended, phwidth=0.1, outerheight=1.5}% \begin{optexp} \pinhole[position=0.2](A)(B)% @@ -11156,8 +11256,7 @@ \begin{LTXexample}[caption={caption}] \psset{unit=1.5} \begin{pspicture}(0,1)(2.2,4.2) - \pnode(0,2){In}\pnode(1,2){G}\pnode(1,4){M1} - \pnode(2,2){M2}\pnode(1,1){S} + \pnodes(0,2){In}(1,2){G}(1,4){M1}(2,2){M2}(1,1){S} \mirror[mirrortype=semitrans](In)(G)(M1) \optbox[optboxwidth=0.15, angle=45, style=SemitransMirror](G)(M1) \mirror[mirrortype=extended](G)(M1)(G) @@ -11174,7 +11273,7 @@ \begin{LTXexample}[vsep=10mm, pos=t, caption={\ifENGLISH Adapted from \fi\ifGERMAN Angepasst von \fi\href{http://www.semibyte.de/wp/graphicslibrary/gl-physics/versuchsaufbauten-f-praktikum/}{semibyte.de}}] \begin{pspicture}(13.6,2.6) \psset[optexp]{labeloffset=1, mirrorwidth=0.5, optboxwidth=2} - \pnode(2,1){Laser}\pnode(12,2){Film}\pnode(Film|Laser){Ref} + \pnodes(2,1){Laser}(12,2){Film}(Film|Laser){Ref} \begin{optexp} \optbox[position=start](Laser)(Ref){HeNe-Laser} \pinhole[abspos=0.8](Laser)(Ref){Blende} @@ -11199,7 +11298,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(0,0.2)(6.6,3.1) \psset{mirrorwidth=0.6, useNA=false, beaminsidefirst} - \pnode(0,2){In}\pnode(1,2){BS}\pnode(1,0.5){M1}\pnode(2,1){M2}\pnode(6,1.5){Det} + \pnodes(0,2){In}(1,2){BS}(1,0.5){M1}(2,1){M2}(6,1.5){Det} \mirror[mirrortype=semitrans, n=1](In)(BS)(M1) \mirror[label=0.6 180 . absolute, compname=M](BS)(M1)(M2|M1) \mirror(M1)(M2|M1)(M2) @@ -11226,7 +11325,7 @@ \newpsobject{perppol}{polarization}{poltype=perp, linecolor=green, polsize=1} \newpsobject{parpol}{polarization}{poltype=parallel, linecolor=red, polsize=0.8} \newpsstyle{Polarization}{arrowinset=0, arrowscale=1.2} - \pnode(0,1){A}\pnode(8,1){B}\pnode(4,-0.5){C} + \pnodes(0,1){A}(8,1){B}(4,-0.5){C} \glanthompson[glanthompsongap=0.2, glanthompsonsize=2 1](A)(B) \optplane(B)\optplane[angle=90](C) \drawbeam(A){1-2} @@ -11241,7 +11340,7 @@ \begin{pspicture}(13.7,2.9) \newpsstyle{Wire}{arm=0.1, arrows=->} \psset[optexp]{optboxsize=1.2 0.8, optmzmsize=1.2 0.8, fiber=none, label=0.7} -\pnode(2,1){L}\pnode([Xnodesep=11]L){A} +\pnodes(2,1){L}([Xnodesep=11]L){A} \optbox[position=start, optboxwidth=2, label=0](L)(A){DFB-Laser} \optbox[abspos=1, label=0, compname=Eam, extnode=t](L)(A){EAM} \optmzm[abspos=4.5, compname=Mzm1, extnode=t](L)(A){MZM} @@ -11264,7 +11363,7 @@ \begin{LTXexample}[pos=t, caption={\ifGERMAN Angepasst von \fi\ifENGLISH Adapted from \fi\doiurl{10.1364/OL.37.000930}}] \begin{pspicture}(0,0.2)(13.5,4.7) \psset[optexp]{optboxsize=1 0.8, label=0, fiber=none} -\pnode(1,3.2){Scan}\pnode([offset=-1.6]Scan){Sat} +\pnodes(1,3.2){Scan}\pnode([offset=-1.6]Scan){Sat} \pnode([Xnodesep=5]Scan){ScanCpl}\pnode(ScanCpl|Sat){SatCpl} \pnode([Xnodesep=1.5,offset=-0.8]ScanCpl){Cpl}\pnode([Xnodesep=5]Cpl){PD} \pnode([Xnodesep=2.5, offset=-1.4]Cpl){Pump} @@ -11347,10 +11446,8 @@ \begin{pspicture}(5.7,2.8) \psset{mirrorwidth=0.7, bsstyle=plate, bssize=0.5, arrowinset=0, arrowscale=1.2} \newpsobject{splitterplate}{beamsplitter}{linewidth=2\pslinewidth, linecolor=gray!50} -\pnode(2.3,0){In}\pnode([offset=0.5]In){STM1} -\pnode([Xnodesep=-2]STM1){M1}\pnode([offset=1]M1){M2} -\pnode([offset=2]STM1){M3}\pnode([Xnodesep=-1]M3){M4} -\pnode(M4|M2){STM2} +\pnodes(2.3,0){In}([offset=0.5]In){STM1}([Xnodesep=-2]STM1){M1} +\pnodes([offset=1]M1){M2}([offset=2]STM1){M3}([Xnodesep=-1]M3){M4}(M4|M2){STM2} \splitterplate(In)(STM1)(M1) \mirror(STM1)(M1)(M2) \mirror(M1)(M2)(M3|M2) @@ -11409,10 +11506,9 @@ \begingroup \captionsetup[lstlisting]{format=poecaption} -\begin{LTXexample}[pos=t, caption={\ifGERMAN Angepasst von \fi\ifENGLISH Adapted from \fi\doiurl{10.1103/PhysRevLett.105.263904}}, label={ex:wgm-pdc}]] +\begin{LTXexample}[pos=t, caption={\ifGERMAN Angepasst von \fi\ifENGLISH Adapted from \fi\doiurl{10.1103/PhysRevLett.105.263904}}, label={ex:wgm-pdc}] \begin{pspicture}(0.6,2.8)(6.8,7.8) -\pnode(1,6){Laser}\pnode(1,5){M} -\pnode(3,4){PR}\pnode(5,5){PT}\pnode(6,7){D1} +\pnodes(1,6){Laser}(1,5){M}(3,4){PR}(5,5){PT}(6,7){D1} \newpsstyle{Glass}{fillcolor=blue, fillstyle=solid, opacity=0.15, linecolor=blue!30!white} \begin{optexp} \optbox[position=start, innerlabel, optboxwidth=1.8](Laser)(M){Nd:YAG} @@ -11463,7 +11559,7 @@ \begin{LTXexample}[pos=t, caption={caption}] \begin{pspicture}(5.6,3) -\pnode(0,0.5){S1}\pnode(2,2.5){S2}\pnode(3,1.5){S3}\pnode(4,0.5){S4}\pnode(4.5,1){S5} +\pnodes(0,0.5){S1}(2,2.5){S2}(3,1.5){S3}(4,0.5){S4}(4.5,1){S5} \psset{prismangle=30, mirrortype=extended} \definecolor[ps]{bl}{rgb}{tx@addDict begin Red Green Blue end}% \begin{optexp} @@ -11482,7 +11578,7 @@ \begin{LTXexample}[pos=t, caption={caption}, label=ex:dsotm] \begin{pspicture}(3,1.7) -\pnode(-1,0){A}\pnode(1,1){B}\pnode(3,0){C} +\pnodes(-1,0){A}(1,1){B}(3,0){C} \psframe*(0,0)(3,1.7) \begin{optexp} \optplane(0,0.7) @@ -12821,6 +12917,11 @@ % % \begin{changelog} %\patchcmd{\release}{\setlength{\itemsep}{0pt}}{\setlength{\itemsep}{0pt}\setlength{\parsep}{0pt}}{}{} +% \begin{release}{4.6}{2013-11-27} +% \item Added option \opt{extnodes}\see{prm:extnodes} +% \item Added option \opt{optdipolecomp}\see{prm:optdipolecomp} +% \item Added option \opt{opttripolecomp}\see{prm:opttripolecomp} +% \end{release} % \begin{release}{4.5}{2013-07-21} % \item Added option \opt{usewirestyle}\see{prm:usewirestyle} % \item Added line style \opt{fade}, with options \opt{fadeto}, @@ -13266,6 +13367,7 @@ \def\POE@str@cross{cross} \def\POE@str@cube{cube} \def\POE@str@custom{custom} +\def\POE@str@default{default} \def\POE@str@diode{diode} \def\POE@str@directional{directional} \def\POE@str@ellipse{ellipse} @@ -13298,6 +13400,7 @@ \def\POE@str@semitrans{semitrans} \def\POE@str@sine{sine} \def\POE@str@standard{standard} +\def\POE@str@symmetric{symmetric} \def\POE@str@top{top} \def\POE@str@transmittive{transmittive} \def\POE@str@transparency{transparency} @@ -13625,11 +13728,41 @@ % \end{macrocode} % This part was copied and adapted from \cs{psset@@ref} from pstricks.tex % \begin{macrocode} +\define@key[psset]{optexp}{extnodes}{% + \edef\POE@key@extnode{#1}% + \ifx\@empty\POE@key@extnode + \edef\POE@key@extnode@cnt{1}% + \edef\POE@key@extnode@xrefs{0 }% + \edef\POE@key@extnode@yrefs{0 }% + \else + \def\POE@key@extnode@xrefs{}% + \def\POE@key@extnode@yrefs{}% + \psForeach{\POE@tempD}{#1,}{% + \ifx\POE@tempD\@empty + \advance\psLoopIndex by -1 + \else + \pst@expandafter\POE@psset@@extnode{\POE@tempD}\@empty,,\@nil + \edef\POE@key@extnode@xrefs{\POE@key@extnode@xrefs\POE@key@extnode@xref\space}% + \edef\POE@key@extnode@yrefs{\POE@key@extnode@yrefs\POE@key@extnode@yref\space}% + \fi + }% + \edef\POE@key@extnode@cnt{\the\psLoopIndex}% + \fi +}% +% \end{macrocode} +% Need to have two options 'extnode' and 'extnodes' to allow extnode={-0.5,1} without +% \begin{macrocode} \define@key[psset]{optexp}{extnode}{% - \edef\POE@key@extnode{#1}% - \ifx\@empty\POE@key@extnode\else - \pst@expandafter\POE@psset@@extnode{#1}\@empty,,\@nil - \fi + \edef\POE@key@extnode{#1}% + \edef\POE@key@extnode@cnt{1}% + \ifx\@empty\POE@key@extnode + \edef\POE@key@extnode@xrefs{0 }% + \edef\POE@key@extnode@yrefs{0 }% + \else + \pst@expandafter\POE@psset@@extnode{#1}\@empty,,\@nil + \edef\POE@key@extnode@xrefs{\POE@key@extnode@xref}% + \edef\POE@key@extnode@yrefs{\POE@key@extnode@yref}% + \fi }% \def\POE@key@extnode@xref{0}% \def\POE@key@extnode@yref{0}% @@ -14285,7 +14418,17 @@ \fi \pst@checknum{#1}\POE@key@optdipolewidth }% -\psset[optexp]{optdipolesize=0 0}% +\define@key[psset]{optexp}{optdipolecomp}{% + \def\POE@key@optdipolecomp{#1}% +} +\define@key[psset]{optexp}{opttripolecomp}{% + \def\POE@key@opttripolecomp{#1}% +} +\psset[optexp]{% + optdipolesize=0 0, + optdipolecomp=, + opttripolecomp=% +}% % \subsection{Parameters of fiber-optical components} % \subsubsection{fiber} % \begin{macrocode} @@ -17206,6 +17349,7 @@ \pnode(!\POE@tempc \POE@tempd \POE@dict{VecAdd 0.5 VecScale} \tx@UserCoor){\oenodeRefB{}} + \POE@regNodes@ \POE@Verb{% gsave STV CP T @@ -17367,9 +17511,19 @@ \def\POE@regNodes#1#2{% \pnode(#1){\oenodeRefA{}} \pnode(#2){\oenodeRefB{}} + \POE@regNodes@ +\ignorespaces}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\POE@regNodes@} +% Some additional work which needs to be done in \cs{POE@regNodes}, but must be +% called separately in some cases (e.g. \cs{fiberbox}). +% \begin{macrocode} +\def\POE@regNodes@{% \POE@Verb{% - /@xref \POE@key@extnode@xref\space def - /@yref \POE@key@extnode@yref\space def + /@xref [\POE@key@extnode@xrefs] def + /@yref [\POE@key@extnode@yrefs] def /@@ang \ifx\POE@key@innercompalign\POE@str@absolute /N@\POE@refnodeA\space /N@\POE@refnodeB\space SlopeAngle @@ -17386,9 +17540,6 @@ }% \fi \ignorespaces}% -% \end{macrocode} -% \end{macro} -% % \begin{macro}{\POE@pnode@shiftedrot} % Define a new node \#3 shifted by (\#1) relative to existing node \#2. % Aditionally rotate the new node by \#4 degree around existing node as origin. @@ -17596,19 +17747,49 @@ % \begin{macro}{\optdipole} % \begin{macrocode} \def\optdipole{\pst@object{optdipole}} -\def\optdipole@i(#1)(#2)#3{% +\def\optdipole@i(#1)(#2){% \@ifnextchar\bgroup% - {\optdipole@ii(#1)(#2){#3}}% - {\optdipole@ii(#1)(#2){#3}{}}% + {\optdipole@iii(#1)(#2)}% + {\optdipole@ii(#1)(#2)}% }% -\def\optdipole@ii(#1)(#2)#3#4{% +\def\optdipole@ii(#1)(#2){% + \optdipole@v(#1)(#2){}{}% +}% +\def\optdipole@iii(#1)(#2)#3{% + \@ifnextchar\bgroup% + {\optdipole@iv(#1)(#2){#3}}% + {\optdipole@v(#1)(#2){#3}}% +}% +\def\optdipole@iv(#1)(#2)#3#4{% \addbefore@par{innercompalign=relative}% \begin@OptexpObj \ifPOE@backlayer - \POE@regNodes{#1}{#2} + \POE@regNodes{#1}{#2}% \fi \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{#3}}% - \POE@drawcomponent{optdipole}{#4} + \POE@drawcomponent{optdipole}{#4}% + \ifPOE@backlayer + \POE@InternalConn + \fi + \end@OptexpObj +}% +% \end{macrocode} +% Only one argument given, decide if this is supposed to be the label, +% or the component. +% \begin{macrocode} +\def\optdipole@v(#1)(#2)#3{% + \addbefore@par{innercompalign=relative}% + \begin@OptexpObj + \ifPOE@backlayer + \POE@regNodes{#1}{#2} + \fi + \ifx\POE@key@optdipolecomp\@empty + \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{#3}}% + \POE@drawcomponent{optdipole}{} + \else + \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{\POE@key@optdipolecomp}}% + \POE@drawcomponent{optdipole}{#3} + \fi \ifPOE@backlayer \POE@InternalConn \fi @@ -17632,12 +17813,20 @@ % \begin{macro}{\opttripole} % \begin{macrocode} \def\opttripole{\pst@object{opttripole}} -\def\opttripole@i(#1)(#2)(#3)#4{% - \@ifnextchar\bgroup% - {\opttripole@ii(#1)(#2)(#3){#4}}% - {\opttripole@ii(#1)(#2)(#3){#4}{}}% +\def\opttripole@i(#1)(#2)(#3){% + \@ifnextchar\bgroup + {\opttripole@iii(#1)(#2)(#3)}% + {\opttripole@ii(#1)(#2)(#3)}% +}% +\def\opttripole@ii(#1)(#2)(#3){% + \opttripole@v(#1)(#2)(#3){}{}% }% -\def\opttripole@ii(#1)(#2)(#3)#4#5{% +\def\opttripole@iii(#1)(#2)(#3)#4{% + \@ifnextchar\bgroup + {\opttripole@iv(#1)(#2)(#3){#4}}% + {\opttripole@v(#1)(#2)(#3){#4}}% +}% +\def\opttripole@iv(#1)(#2)(#3)#4#5{% \addafter@par{ref@angle=0} \begin@OptexpTripole \ifPOE@backlayer @@ -17651,6 +17840,28 @@ \fi \end@OptexpTripole }% +% \end{macrocode} +% Only one argument given, decide if this is supposed to be the label, or the component +% \begin{macrocode} +\def\opttripole@v(#1)(#2)(#3)#4{% + \addafter@par{ref@angle=0} + \begin@OptexpTripole + \ifPOE@backlayer + \POE@calcNodes{#1}{#2}{#3}% + \POE@regNodes{#1}{#3}% + \fi + \ifx\POE@key@opttripolecomp\@empty + \def\opttripole@comp{#3}% + \POE@drawcomponent{opttripole}{}% + \else + \def\opttripole@comp{\POE@key@opttripolecomp}% + \POE@drawcomponent{opttripole}{#4}% + \fi + \ifPOE@backlayer + \POE@InternalConn + \fi + \end@OptexpTripole +}% \def\opttripole@nodes{\POE@tripole@nodes} % \end{macrocode} % \end{macro} @@ -17734,10 +17945,13 @@ \fi \ifx\POE@key@extnode\@empty\else \ifPOE@backlayer - \pnode(! \POE@dict{ - \POE@key@extnode@xref\space - \POE@key@extnode@yref\space - DefineExtNode}){\oenodeExt{}}% + \multido{\i=1+1}{\POE@key@extnode@cnt}{% + \pnode(! \POE@dict{ + @xref \i\space 1 sub get + @yref \i\space 1 sub get + DefineExtNode}){\oenode{Ext\i}{}}% + \pnode(\oenode{Ext1}{}){\oenodeExt{}}% + }% \POE@Verb{% tx@NodeDict begin /N@\oenodeExt{} load \ifnum9<1\POE@key@compname @@ -18581,15 +18795,17 @@ \POE@dict{ exch@ref@\oenode{}{} { -90 }{ 90 } ifelse } \POE@key@angle\space add }% - \edef\POE@temp{\POE@key@extnode@xref}% - \edef\POE@key@extnode@xref{% - \POE@dict{% - \POE@key@extnode@yref\space - exch@ref@\oenode{}{} { -1 mul } if } }% - \edef\POE@key@extnode@yref{% - \POE@dict{% - \POE@temp\space - exch@ref@\oenode{}{} { -1 mul } if } }% + \POE@Verb{% + @xref @yref + exch@ref@\oenode{}{} { + [ exch { neg } forall ] + } if + /@xref ED + exch@ref@\oenode{}{} { + [ exch { neg } forall ] + } if + /@yref ED + }% }% % \end{macrocode} % \end{macro} @@ -19347,8 +19563,8 @@ \egroup \else \psline[arrows=-, ArrowInside=-, linewidth=1.5\pslinewidth]% - (! \POE@dict{@@x} -0.6 mul @lw add @lw)% - (! \POE@dict{@@x 0.6 mul @@y 0.6 mul})% + (! \POE@dict{@@x} -0.6 mul @lw add @lw 0.5 mul)% + (! \POE@dict{@@x 0.45 mul @@y 0.6 mul})% \pscircle(! \POE@dict{@@x} -0.6 mul 0){\pslinewidth}% \psdot[dotsize=3\pslinewidth](! \POE@dict{@@x} 0.6 mul 0)% \fi @@ -20504,8 +20720,8 @@ tx@OptexpDict begin /@@y 0 def /@@x0 0 def /@@y0 0 def - /@xref 0 def - /@yref 0 def + /@xref [0] def + /@yref [0] def /RefFac 1 def } bind def % \end{macrocode} @@ -21124,11 +21340,11 @@ tx@OptexpDict begin % if the ambiguous interface is the first, always draw to it % \begin{macrocode} IfcCntTmp IfcCnt eq { true }{ draw } ifelse - ] cvx + ] cvx (C) name 4 -1 roll connectifc { bgRefIndex }{ name GetRefIndex } ifelse CurrTmp CurrVecTmp - 10 dict begin HandleInterface end pop + 10 dict begin HandleInterface end pop ToVec /CurrVecTmp ED ToVec /CurrTmp ED % \end{macrocode} % now check which is the outgoing plane diff --git a/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.ins b/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.ins index 60aad32a277..45a986f5f1c 100644 --- a/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.ins +++ b/Master/texmf-dist/source/latex/pst-optexp/pst-optexp.ins @@ -53,7 +53,7 @@ This is a generated file. Project: pst-optexp -Version: 4.5 (2013/07/21) +Version: 4.6 (2013/11/27) Copyright (C) 2007-2013 by Christoph Bersch <usenet@bersch.net> diff --git a/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty b/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty index c8b7a378dbd..9602efcbc19 100644 --- a/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty +++ b/Master/texmf-dist/tex/latex/pst-optexp/pst-optexp.sty @@ -9,7 +9,7 @@ %% This is a generated file. %% %% Project: pst-optexp -%% Version: 4.5 (2013/07/21) +%% Version: 4.6 (2013/11/27) %% %% Copyright (C) 2007-2013 by Christoph Bersch <usenet@bersch.net> %% @@ -31,7 +31,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesPackage{pst-optexp} - [2013/07/21 v4.5 Optical experimental setups with PSTricks] + [2013/11/27 v4.6 Optical experimental setups with PSTricks] \RequirePackage{ifthen} \RequirePackage{pstricks} \RequirePackage{pst-xkey} @@ -136,6 +136,7 @@ \def\POE@str@cross{cross} \def\POE@str@cube{cube} \def\POE@str@custom{custom} +\def\POE@str@default{default} \def\POE@str@diode{diode} \def\POE@str@directional{directional} \def\POE@str@ellipse{ellipse} @@ -168,6 +169,7 @@ \def\POE@str@semitrans{semitrans} \def\POE@str@sine{sine} \def\POE@str@standard{standard} +\def\POE@str@symmetric{symmetric} \def\POE@str@top{top} \def\POE@str@transmittive{transmittive} \def\POE@str@transparency{transparency} @@ -457,11 +459,38 @@ \fi }% {\PackageError{pst-optexp}{Unknown value '\val' for extnodealign}} +\define@key[psset]{optexp}{extnodes}{% + \edef\POE@key@extnode{#1}% + \ifx\@empty\POE@key@extnode + \edef\POE@key@extnode@cnt{1}% + \edef\POE@key@extnode@xrefs{0 }% + \edef\POE@key@extnode@yrefs{0 }% + \else + \def\POE@key@extnode@xrefs{}% + \def\POE@key@extnode@yrefs{}% + \psForeach{\POE@tempD}{#1,}{% + \ifx\POE@tempD\@empty + \advance\psLoopIndex by -1 + \else + \pst@expandafter\POE@psset@@extnode{\POE@tempD}\@empty,,\@nil + \edef\POE@key@extnode@xrefs{\POE@key@extnode@xrefs\POE@key@extnode@xref\space}% + \edef\POE@key@extnode@yrefs{\POE@key@extnode@yrefs\POE@key@extnode@yref\space}% + \fi + }% + \edef\POE@key@extnode@cnt{\the\psLoopIndex}% + \fi +}% \define@key[psset]{optexp}{extnode}{% - \edef\POE@key@extnode{#1}% - \ifx\@empty\POE@key@extnode\else - \pst@expandafter\POE@psset@@extnode{#1}\@empty,,\@nil - \fi + \edef\POE@key@extnode{#1}% + \edef\POE@key@extnode@cnt{1}% + \ifx\@empty\POE@key@extnode + \edef\POE@key@extnode@xrefs{0 }% + \edef\POE@key@extnode@yrefs{0 }% + \else + \pst@expandafter\POE@psset@@extnode{#1}\@empty,,\@nil + \edef\POE@key@extnode@xrefs{\POE@key@extnode@xref}% + \edef\POE@key@extnode@yrefs{\POE@key@extnode@yref}% + \fi }% \def\POE@key@extnode@xref{0}% \def\POE@key@extnode@yref{0}% @@ -1024,7 +1053,17 @@ \fi \pst@checknum{#1}\POE@key@optdipolewidth }% -\psset[optexp]{optdipolesize=0 0}% +\define@key[psset]{optexp}{optdipolecomp}{% + \def\POE@key@optdipolecomp{#1}% +} +\define@key[psset]{optexp}{opttripolecomp}{% + \def\POE@key@opttripolecomp{#1}% +} +\psset[optexp]{% + optdipolesize=0 0, + optdipolecomp=, + opttripolecomp=% +}% \define@key[psset]{optexp}{fiberloops}{% \pst@checknum{#1}\POE@key@fiberloops } @@ -3292,6 +3331,7 @@ \pnode(!\POE@tempc \POE@tempd \POE@dict{VecAdd 0.5 VecScale} \tx@UserCoor){\oenodeRefB{}} + \POE@regNodes@ \POE@Verb{% gsave STV CP T @@ -3394,9 +3434,12 @@ \def\POE@regNodes#1#2{% \pnode(#1){\oenodeRefA{}} \pnode(#2){\oenodeRefB{}} + \POE@regNodes@ +\ignorespaces}% +\def\POE@regNodes@{% \POE@Verb{% - /@xref \POE@key@extnode@xref\space def - /@yref \POE@key@extnode@yref\space def + /@xref [\POE@key@extnode@xrefs] def + /@yref [\POE@key@extnode@yrefs] def /@@ang \ifx\POE@key@innercompalign\POE@str@absolute /N@\POE@refnodeA\space /N@\POE@refnodeB\space SlopeAngle @@ -3546,19 +3589,45 @@ \newOptexpTripole[ref@angle=45]{rightangleprism} \newOptexpTripole[ref@angle=45]{optprism} \def\optdipole{\pst@object{optdipole}} -\def\optdipole@i(#1)(#2)#3{% +\def\optdipole@i(#1)(#2){% \@ifnextchar\bgroup% - {\optdipole@ii(#1)(#2){#3}}% - {\optdipole@ii(#1)(#2){#3}{}}% + {\optdipole@iii(#1)(#2)}% + {\optdipole@ii(#1)(#2)}% }% -\def\optdipole@ii(#1)(#2)#3#4{% +\def\optdipole@ii(#1)(#2){% + \optdipole@v(#1)(#2){}{}% +}% +\def\optdipole@iii(#1)(#2)#3{% + \@ifnextchar\bgroup% + {\optdipole@iv(#1)(#2){#3}}% + {\optdipole@v(#1)(#2){#3}}% +}% +\def\optdipole@iv(#1)(#2)#3#4{% \addbefore@par{innercompalign=relative}% \begin@OptexpObj \ifPOE@backlayer - \POE@regNodes{#1}{#2} + \POE@regNodes{#1}{#2}% \fi \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{#3}}% - \POE@drawcomponent{optdipole}{#4} + \POE@drawcomponent{optdipole}{#4}% + \ifPOE@backlayer + \POE@InternalConn + \fi + \end@OptexpObj +}% +\def\optdipole@v(#1)(#2)#3{% + \addbefore@par{innercompalign=relative}% + \begin@OptexpObj + \ifPOE@backlayer + \POE@regNodes{#1}{#2} + \fi + \ifx\POE@key@optdipolecomp\@empty + \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{#3}}% + \POE@drawcomponent{optdipole}{} + \else + \def\optdipole@comp{\psrotate(0,0){!\POE@dict{@@ang}}{\POE@key@optdipolecomp}}% + \POE@drawcomponent{optdipole}{#3} + \fi \ifPOE@backlayer \POE@InternalConn \fi @@ -3572,12 +3641,20 @@ }% }% \def\opttripole{\pst@object{opttripole}} -\def\opttripole@i(#1)(#2)(#3)#4{% - \@ifnextchar\bgroup% - {\opttripole@ii(#1)(#2)(#3){#4}}% - {\opttripole@ii(#1)(#2)(#3){#4}{}}% +\def\opttripole@i(#1)(#2)(#3){% + \@ifnextchar\bgroup + {\opttripole@iii(#1)(#2)(#3)}% + {\opttripole@ii(#1)(#2)(#3)}% +}% +\def\opttripole@ii(#1)(#2)(#3){% + \opttripole@v(#1)(#2)(#3){}{}% +}% +\def\opttripole@iii(#1)(#2)(#3)#4{% + \@ifnextchar\bgroup + {\opttripole@iv(#1)(#2)(#3){#4}}% + {\opttripole@v(#1)(#2)(#3){#4}}% }% -\def\opttripole@ii(#1)(#2)(#3)#4#5{% +\def\opttripole@iv(#1)(#2)(#3)#4#5{% \addafter@par{ref@angle=0} \begin@OptexpTripole \ifPOE@backlayer @@ -3591,6 +3668,25 @@ \fi \end@OptexpTripole }% +\def\opttripole@v(#1)(#2)(#3)#4{% + \addafter@par{ref@angle=0} + \begin@OptexpTripole + \ifPOE@backlayer + \POE@calcNodes{#1}{#2}{#3}% + \POE@regNodes{#1}{#3}% + \fi + \ifx\POE@key@opttripolecomp\@empty + \def\opttripole@comp{#3}% + \POE@drawcomponent{opttripole}{}% + \else + \def\opttripole@comp{\POE@key@opttripolecomp}% + \POE@drawcomponent{opttripole}{#4}% + \fi + \ifPOE@backlayer + \POE@InternalConn + \fi + \end@OptexpTripole +}% \def\opttripole@nodes{\POE@tripole@nodes} \def\fibercollimator{\pst@object{fibercollimator}} \def\fibercollimator@i(#1)(#2){% @@ -3658,10 +3754,13 @@ \fi \ifx\POE@key@extnode\@empty\else \ifPOE@backlayer - \pnode(! \POE@dict{ - \POE@key@extnode@xref\space - \POE@key@extnode@yref\space - DefineExtNode}){\oenodeExt{}}% + \multido{\i=1+1}{\POE@key@extnode@cnt}{% + \pnode(! \POE@dict{ + @xref \i\space 1 sub get + @yref \i\space 1 sub get + DefineExtNode}){\oenode{Ext\i}{}}% + \pnode(\oenode{Ext1}{}){\oenodeExt{}}% + }% \POE@Verb{% tx@NodeDict begin /N@\oenodeExt{} load \ifnum9<1\POE@key@compname @@ -4288,15 +4387,17 @@ \POE@dict{ exch@ref@\oenode{}{} { -90 }{ 90 } ifelse } \POE@key@angle\space add }% - \edef\POE@temp{\POE@key@extnode@xref}% - \edef\POE@key@extnode@xref{% - \POE@dict{% - \POE@key@extnode@yref\space - exch@ref@\oenode{}{} { -1 mul } if } }% - \edef\POE@key@extnode@yref{% - \POE@dict{% - \POE@temp\space - exch@ref@\oenode{}{} { -1 mul } if } }% + \POE@Verb{% + @xref @yref + exch@ref@\oenode{}{} { + [ exch { neg } forall ] + } if + /@xref ED + exch@ref@\oenode{}{} { + [ exch { neg } forall ] + } if + /@yref ED + }% }% \def\transmissiongrating@nodes{% \newOptexpComp{% @@ -4778,8 +4879,8 @@ \egroup \else \psline[arrows=-, ArrowInside=-, linewidth=1.5\pslinewidth]% - (! \POE@dict{@@x} -0.6 mul @lw add @lw)% - (! \POE@dict{@@x 0.6 mul @@y 0.6 mul})% + (! \POE@dict{@@x} -0.6 mul @lw add @lw 0.5 mul)% + (! \POE@dict{@@x 0.45 mul @@y 0.6 mul})% \pscircle(! \POE@dict{@@x} -0.6 mul 0){\pslinewidth}% \psdot[dotsize=3\pslinewidth](! \POE@dict{@@x} 0.6 mul 0)% \fi |