pst-optexp:将梁置于元素后面的问题

pst-optexp:将梁置于元素后面的问题

所以,我最近遇到了一些麻烦pst-optexp。我的草图似乎存在一些编译问题,因为它无法正确显示元素。我当前的代码是

\documentclass{standalone}
    \usepackage{pstricks-add}
    \usepackage{pst-optexp}
        \let\clipbox\relax

\begin{document}
    \begin{pspicture}[showgrid](0,-0.3)(9,2.3)
        \pnode(1.8,1){A}\pnode(4.5,1){B}\pnode(7,1){C}\pnode(8,1){D}
        \begin{optexp}
            \optbox[position=start, labeloffset=0](A)(B){Fonte}
            \lens[n=1.3, lensradius=-1 -1, lensheight=1](A)(B)
            \lens[n=2, lensradius=2 2, lensheight=2](B)(C)
            \pinhole[position=end, innerheight=0, outerheight=1.5](B)(D)
            \drawwidebeam[beamwidth=0.3,fillstyle=solid, fillcolor=green!40](A){2-3}(D)
        \end{optexp}
    \end{pspicture}
\end{document}

此代码产生以下结果(在 Overleaf v2 上使用 XeLaTeX 编译时): 在此处输入图片描述

如果我删除optexp环境,即使用以下代码:

\documentclass{standalone}
    \usepackage{pstricks-add}
    \usepackage{pst-optexp}
        \let\clipbox\relax

\begin{document}
    \begin{pspicture}[showgrid](0,-0.3)(9,2.3)
        \pnode(1.8,1){A}\pnode(4.5,1){B}\pnode(7,1){C}\pnode(8,1){D}
            \optbox[position=start, labeloffset=0](A)(B){Fonte}
            \lens[n=1.3, lensradius=-1 -1, lensheight=1](A)(B)
            \lens[n=2, lensradius=2 2, lensheight=2](B)(C)
            \pinhole[position=end, innerheight=0, outerheight=1.5](B)(D)
            \drawwidebeam[beamwidth=0.3,fillstyle=solid, fillcolor=green!40](A){2-3}(D)
    \end{pspicture}
\end{document}

然后我会得到这个结果: 在此处输入图片描述

我在其他 PSTricks 图表上也遇到过类似的问题,这些问题在放入文档的某些页面时似乎可以编译,但在其他地方却无法编译。我该如何解决这个问题?

如果这是一个已知问题或类似问题,我很抱歉,我已经在网上搜索了很长时间,但就是找不到解决方案。另外,如果这篇文章中存在不良风格问题,请告诉我,到目前为止,我在这里问了几个问题。

答案1

pst-optexp无法与 配合使用xelatex。使用latex->dvips->ps2pdf或打包auto-pst-pdfpdflatex --shell-escape <file>

\documentclass{article}
\usepackage{auto-pst-pdf}
\usepackage{pst-optexp}

\begin{document}
\begin{pspicture}[showgrid](0,-0.3)(9,2.3)
    \pnodes(1.8,1){A}(4.5,1){B}(7,1){C}(8,1){D}
    \begin{optexp}
    \optbox[position=start, labeloffset=0](A)(B){Fonte}
    \lens[n=1.3, lensradius=-1 -1, lensheight=1](A)(B)
    \lens[n=2, lensradius=2 2, lensheight=2](B)(C)
    \pinhole[position=end, innerheight=0, outerheight=1.5](B)(D)
    \drawwidebeam[beamwidth=0.3,fillstyle=solid, fillcolor=green!40](A){2-3}(D)
    \end{optexp}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容