我尝试将图形文件放入 pspicture 中,如下所示:
\documentclass{article}
\usepackage[crop=off]{pstricks}
\usepackage{auto-pst-pdf}
\usepackage{graphicx}
\psset{unit=1mm}
\begin{document}
\begin{pspicture}(100,100)
\psframe[fillcolor=green,fillstyle=solid](0,0)(70,70)
\rput(10,10){
\includegraphics[width=50mm,height=50mm]{graphics.jpg}
}
\end{pspicture}
\end{document}
PDF 文件仅显示一个绿色方块,并且我收到一条错误消息:
Error: /undefined in Operand stack: Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1977 1 3 %oparray_pop 1976 1 3 %oparray_pop 1960 1 3 %oparray_pop 1852 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- Dictionary stack: --dict:1199/1684(ro)(G)-- --dict:0/20(G)-- --dict:120/200(L)-- --dict:96/300(L)-- --dict:46/200(L)-- Current allocation mode is local Last OS error: No such file or directory Current file position is 88848 GPL Ghostscript 9.18: Unrecoverable error, exit code 1
system returned with code 256
当我将“includegraphics”行放在“pspicture”外面时,我没有收到错误消息,但图形与绿色方块分开显示。
我怎样才能使 includegraphics 在 pspicture 中工作?
答案1
众所周知的方法如下。用 进行编译xetex
。
\documentclass[pstricks,preview,margin=10mm]{standalone}
\usepackage{graphicx}
\newbox\temp
\savebox\temp{\includegraphics[scale=.5]{bobo.jpg}}
\psset
{
xunit=\dimexpr\wd\temp/10\relax,
yunit=\dimexpr\ht\temp/10\relax
}
\begin{document}
\begin{pspicture}[showgrid=top](-5,-5)(5,5)
\rput(0,0){\usebox\temp}
\psframe[linecolor=red](-5,-5)(5,5)
\end{pspicture}
\end{document}
答案2
经过阅读和谷歌搜索后,我找到了以下解决方案:
- 将图像转换为 eps 格式(例如使用 gimp)
- 使用“epsfig”而不是“includegraphics”。
以下是编辑后的示例,其中标记了修改后的行:
\documentclass{article}
\usepackage[crop=off]{pstricks}
\usepackage{auto-pst-pdf}
\usepackage{epsfig} %%%%%%%%%%%%%%
\psset{unit=1mm}
\begin{document}
\begin{pspicture}(100,100)
\psframe[fillcolor=green,fillstyle=solid](0,0)(70,70)
\rput[bl](10,10){
\epsfig{file=graphics.eps,width=50mm,height=50mm}%%%%%%%%%%%%%%
}
\end{pspicture}
\end{document}