编辑:问题来自于 Opensuse 上 texlive 的破坏性安装(某些软件包未更新,因此 texlive 是 2017 和 2021 的混合)。
似乎较新版本的 pstricks 和/或 (pdf)latex 在通过 includegraphics 和使用 pstricks 代码包含 pdf 时会中断,除非 includegraphics 隐藏在 \ifpdf ... \fi 块内。在我最近更新 texlive 之前,这一直有效。
这是一个简单的例子:
\documentclass[10pt]{article}
\usepackage{ifpdf}
\usepackage{pst-all}
\usepackage[on]{auto-pst-pdf}
\begin{document}
%\ifpdf
\includegraphics[height=3.5cm]{some_pdf_file.pdf}
%\fi
\begin{postscript}
\begin{pspicture}(0,0)(18,10)
\pspolygon[fillstyle=solid,fillcolor=lightgray,linewidth=0](0,3)(0,0)(3,0)(3,3)
\end{pspicture}
\end{postscript}
\end{document}
使用 pdflatex --shell-escape 编译会产生以下错误:
Error: /undefined in obj
Operand stack:
1 0
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1974 1 3 %oparray_pop 1973 1 3 %oparray_pop 1961 1 3 %oparray_pop 1817 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
Dictionary stack:
--dict:736/1123(ro)(G)-- --dict:0/20(G)-- --dict:191/200(L)-- --dict:97/300(L)-- --dict:45/200(L)--
Current allocation mode is local
Current file position is 146540
GPL Ghostscript 9.52: Unrecoverable error, exit code 1
system returned with code 256
PDFCROP 1.40, 2020/06/06 - Copyright (c) 2002-2020 by Heiko Oberdiek, Oberdiek Package Support Group.
!!! Warning: Empty Bounding Box is returned by Ghostscript!
!!! Page 1: 0 0 0 0
!!! Either there is a problem with the page or with Ghostscript.
!!! Recovery is tried by embedding the page in its original size.
而取消注释 \ifpdf 和 \fi 后错误消失。
答案1
我没有问题
\documentclass[10pt]{article}
\usepackage{pst-all}
\usepackage[pspdf={-dNOSAFER -dALLOWPSTRANSPARENCY}]{auto-pst-pdf}
\begin{document}
\includegraphics[height=3.5cm]{tiger.pdf}
\begin{pspicture}(0,0)(18,10)
\pspolygon[fillstyle=solid,fillcolor=lightgray,linewidth=0](0,3)(0,0)(3,0)(3,3)
\end{pspicture}
\end{document}
但是,使用它lualatex
(需要最新的 TeX 发行版)可以让生活变得更轻松......
\RequirePackage{pdfmanagement-testphase}% needed for transparency
\DeclareDocumentMetadata{}
\documentclass[10pt]{article}
\usepackage{pst-all,graphicx}
\begin{document}
\includegraphics[height=3.5cm]{tiger.pdf}
\begin{pspicture}(0,0)(3,3)
\pspolygon[fillstyle=solid,fillcolor=lightgray,linewidth=0](0,3)(0,0)(3,0)(3,3)
\end{pspicture}
\end{document}