\documentclass[]{revtex4}
\usepackage{pst-optexp}
\usepackage{pst-node}
\begin{document}
\begin{pspicture}[showgrid=true](13,14)
\pnodes(2,10){A}(3,10){MIP}(3,12.5){LIP}(3,13){MIIP}(5,13){LIIP}
\pnodes(8,13){MIIIP}(8,8){MIVP}(14,8){LIIIP}(10,8){LIVP}(12,8){MVP}(12,3){d}
\pnodes(12,1){MVIP}(10,1){LVIP}(6,1){C}
\psset{mirrortype=extended, mirrordepth=0.2}
\begin{optexp}
\optsource[innerlabel, compname = start](A)(MIP){Beam}
\mirror[compname = mi, labelangle=45](A)(MIP)(LIP){$M_1$}
\lens[compname = li, n=1.57](MIP)(LIP){$L_1$}
\mirror[compname= mii, labelangle=-45](LIP)(MIIP)(LIIP){$M_{2}$}
\lens[compname= lii, n=1.517](MIIP)(LIIP){$L_{2}$}
\mirror[compname= miii, labelangle=-45](LIIP)(MIIIP)(MIVP){$M_{3}$}
\mirror[compname= miv, labelangle=45](MIIIP)(MIVP)(LIIIP){$M_{4}$}
\lens[compname= liii, n=1.517](MIVP)(LIIIP){$L_{3}$}
\mirror[compname= mv, labelangle=-45](MIVP)(MVP)(d){$M_{5}$}
\mirror[compname= mvi, labelangle=-45](d)(MVIP)(LVIP){$M_{6}$}
\lens[compname= lensfour, n=1.517](MVIP)(LVIP){$L_{4}$}
\optsource[innerlabel](C)(C){Comp.}
\end{optexp}
\addtopsstyle{Beam}{fillstyle=solid, fillcolor=green!20!white}
\drawwidebeam[beamwidth=0.4, beaminsidelast]{1-5}
\drawwidebeam[loadbeampoints]{5-12}
\end{pspicture}
\end{document}
答え1
セットアップのデバッグ
pst-optexp
さまざまなデバッグの可能性を提供します:
- を使用すると
\psset{pswarning}
、Postscript レベルで警告を有効にすることができます。例では、「警告 pst-optexp: 上部のビームがインターフェイスを見逃しました」というメッセージが表示されます。 - デフォルトでは、
pst-optexp
コンポーネントの開口数を考慮します。外側のビームの1つが次のインターフェイスに当たらない場合は、ビームの描画が停止します。\psset{useNA=false}
これを一時的に無効にして、どのビームが問題なのかを確認できます。設定の結果は次のとおりです。
M3
ミラーが小さすぎる(またはビームが広すぎる)ため、ビームの経路が中断されていることがわかります。
考えられる解決策
ビームをニーズに合わせて調整するには、すべてのレンズの屈折率を微調整するn
か、平行部分と集束部分ごとにビームを個別に描画します。
レシピは次のとおりです。
- 最初の平行部分を で描きます
\drawwidebeam[beamwidth=0.4, stopinside]{1-3}
。これは、最初のレンズの 2 番目のインターフェイスまでビームをトレースします (最初のインターフェイスまでのみ描画します)。 - ここで、 を使用して、最初のレンズと 2 番目のレンズの間にビームを描画します
\drawwidebeam[loadbeampoints, beamdiv=-20, stopinside]{3-5}
。これにより、前の呼び出しのエンドポイントが読み込まれます\drawwidebeam
が、ビームの発散を調整できます。 - 2 番目のレンズからは、
\drawwidebeam[loadbeampoints]
以前のビームの終点を再度ロードしますが、平行光線を継続します。
等々。
\documentclass[pstricks,margin=12pt]{standalone}
\usepackage{pst-optexp}
\begin{document}
\begin{pspicture}[showgrid=true](13,14)
\pnodes(2,10){A}(3,10){MIP}(3,12.5){LIP}(3,13){MIIP}(5,13){LIIP}
\pnodes(8,13){MIIIP}(8,8){MIVP}(14,8){LIIIP}(10,8){LIVP}(12,8){MVP}(12,3){d}
\pnodes(12,1){MVIP}(10,1){LVIP}(6,1){C}
\psset{mirrortype=extended, mirrordepth=0.2}
\psset{mirrorwidth=1.1}
\addtopsstyle{Beam}{fillstyle=solid, fillcolor=green!20!white}
\begin{optexp}
\optsource[innerlabel, compname = start](A)(MIP){Beam}
\mirror[compname = mi, labelangle=45](A)(MIP)(LIP){$M_1$}
\lens[compname = li](MIP)(LIP){$L_1$}
\drawwidebeam[beamwidth=0.4, stopinside]{1-3}
\mirror[compname= mii, labelangle=-45](LIP)(MIIP)(LIIP){$M_{2}$}
\lens[compname= lii](MIIP)(LIIP){$L_{2}$}
\drawwidebeam[loadbeampoints, beamdiv=-20, stopinside]{3-5}
\mirror[compname= miii, labelangle=-45](LIIP)(MIIIP)(MIVP){$M_{3}$}
\mirror[compname= miv, labelangle=45](MIIIP)(MIVP)(LIIIP){$M_{4}$}
\lens[compname= liii](MIVP)(LIIIP){$L_{3}$}
\drawwidebeam[loadbeampoints, stopinside]{5-8}
\mirror[compname= mv, labelangle=-45](MIVP)(MVP)(d){$M_{5}$}
\mirror[compname= mvi, labelangle=-45](d)(MVIP)(LVIP){$M_{6}$}
\lens[compname= lensfour](MVIP)(LVIP){$L_{4}$}
\drawwidebeam[loadbeampoints, beamdiv=-6.3, stopinside]{8-11}
\optbox[innerlabel](C)(C){Comp.}
\drawwidebeam[loadbeampoints]{11}{12}
\end{optexp}
\end{pspicture}
\end{document}
ところで: pst-optexp
-setups をコンパイルしてもxelatex
正しく動作しません。