2013年9月25日 星期三

修正 pst-diffraction 套件庫問題

pst-diffraction 套件庫可以直接畫出繞射光的模擬圖。

我第一次看到之後,就躍躍欲試,但沒想到照著說明文件輸入程式,竟然無法輸出文件!

檢查之後才發現原來是生成 .dvi 文件的時候,發生了問題。再追查下去,發現竟然是 pst-diffraction.tex 檔案有問題!

先寫個簡單的測試檔:
\documentclass{article}
\usepackage{pst-diffraction}

\begin{document}
f=2.5, $\lambda=632\,\mbox{nm}$

\begin{pspicture}*(-3.5,-3.5)(3.5,3.5)
\psdiffractionRectangle[f=2.5, lambda=632]
\end{pspicture}

\begin{pspicture}*(-4.5,-2.5)(4.5,4.5)
\psdiffractionRectangle[IIID,f=2.5]
\end{pspicture}

\end{document}
編譯後,會發現可以生成檔案,但無法開啟。 這個問題很容易修正,先找到安裝的 pst-diffraction.tex 檔案位置。
我使用 Ubuntu 12.04, 檔案位置是:
/usr/local/texlive/2013/texmf-dist/tex/generic/pst-diffraction/pst-diffraction.tex

編輯這個檔案,找到其中三行:
\psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED
...
(省略)
...
\psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED
...
(省略)
...
\psk@ThreeDplot@zMax dup \tx@ScreenCoor pop /zScale ED

在 dup 的前方,加入 \space 命令

\psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED
...
(省略)
...
\psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED
...
(省略)
...
\psk@ThreeDplot@zMax\space dup \tx@ScreenCoor pop /zScale ED

OK! 修改好之後,再測試剛才的檔案,編譯成功,而且也可以順利開啟檔案了。

沒有留言:

張貼留言