我可以使用 latex 和 pdflatex <-shell-escape> 在 TL-2019(linux)上编译(无错误)以下 MWE(file.tex) :
\documentclass{article}%
%
\usepackage[on]{pstricks-pdf}%
\usepackage{lipsum,pst-rputover,tcolorbox}%
%
\begin{document}
\lipsum[1]
\par\bigskip
\begin{tcolorbox}[center,colback=gray!20]%
\begin{pspicture*}(-4.5,-1.25)(4.5,2.5)%
\pspolygon[fillstyle=solid,fillcolor=yellow!20](-2,2)(0,0)(4,0)%
\psline[linewidth=1.2pt](-2,2)(0,0)%
\psline[linewidth=1.2pt](-2,2)(4,0)%
\psline[linewidth=1.2pt](0,0)(4,0)%
\psline[linecolor=blue](-2,2)(2,0)% AM
\psdots[linecolor=blue,dotsize=2pt 0](2,0)%
\rput[tl](1.8,-0.15){$M$}%
\psdots[linecolor=blue,dotstyle=*](4,0)%
\rput[bl](3.87,-0.4){$\mathbf{C}$} %
\psdots[linecolor=blue,dotstyle=*](0,0)%
\rput[bl](-0.14,-0.4){$\mathbf{B}$}%
\psdots[dotstyle=*,linecolor=blue](-2,2)%
\rput[bl](-2.15,2.15){$\mathbf{A}$}%
\pnode(0,-0.75){U}%
\pnode(2,-0.75){V}%
\pnode(4,-0.75){X}%
%
\rputover(U)(V){$m$}%
\rputover(V)(X){$n$}%
\coverable{%
\pcline[linewidth=0.2pt,tbarsize=5pt]{|-}(U)(V)%
\pcline[linewidth=0.2pt,tbarsize=5pt]{|-|}(V)(X)%
}%
%% uncoverable version
%\pcline[linewidth=0.2pt,tbarsize=5pt]{|-}(U)(V)\ncput*{$m$}%
%\pcline[linewidth=0.2pt,tbarsize=5pt]{|-|}(V)(X)\ncput*{$n$}%
%
\end{pspicture*}%
\end{tcolorbox}%
\par\bigskip
\lipsum[2]
\end{document}
evince file.pdf 和 xpdf file.pdf 都显示完美的输出。
gv file.ps 显示损坏的输出:
错误:恢复时进行类型检查
...
Ghostscript 9.26:无法恢复的错误,退出代码 1
(显示第一段和图片,第二段消失;
evince file.ps 显示空白页)
注释掉%begin{tcolorbox}...%\end{tcolorbox}
或
%\coverable{%
...
%}%
将会消除该错误,但输出会有所不同,如 file.pdf 中所示。
有人能重现这种错误并告诉我们发生了什么吗?
蒂亚,埃德。
答案1
dvips
的驱动程序有TikZ
缺陷。使用总是 pdflatex --shell-escape
或者xelatex
使用自己的框架宏:
\documentclass{article}%
\usepackage{auto-pst-pdf}%
\usepackage{lipsum,pst-rputover,tcolorbox}%
\def\PBox#1{%
\psframebox[fillcolor=gray!20,fillstyle=solid,framearc=0.1,linewidth=2pt,linecolor=black!60]{%
\makebox[\dimexpr\linewidth-2\psframesep-4pt]{#1}}}
\begin{document}
\lipsum[1]
\par\bigskip\noindent
\PBox{%
\begin{pspicture*}(-4.5,-1.25)(4.5,2.5)%
\pspolygon[fillstyle=solid,fillcolor=yellow!20](-2,2)(0,0)(4,0)%
\psline[linewidth=1.2pt](-2,2)(0,0)%
\psline[linewidth=1.2pt](-2,2)(4,0)%
\psline[linewidth=1.2pt](0,0)(4,0)%
\psline[linecolor=blue](-2,2)(2,0)% AM
\psdots[linecolor=blue,dotsize=2pt 0](2,0)%
\rput[tl](1.8,-0.15){$M$}%
\psdots[linecolor=blue,dotstyle=*](4,0)%
\rput[bl](3.87,-0.4){$\mathbf{C}$} %
\psdots[linecolor=blue,dotstyle=*](0,0)%
\rput[bl](-0.14,-0.4){$\mathbf{B}$}%
\psdots[dotstyle=*,linecolor=blue](-2,2)%
\rput[bl](-2.15,2.15){$\mathbf{A}$}%
\pnode(0,-0.75){U}%
\pnode(2,-0.75){V}%
\pnode(4,-0.75){X}%
%
\rputover(U)(V){$m$}%
\rputover(V)(X){$n$}%
\coverable{%
\pcline[linewidth=0.2pt,tbarsize=5pt]{|-}(U)(V)%
\pcline[linewidth=0.2pt,tbarsize=5pt]{|-|}(V)(X)%
%% uncoverable version
%\pcline[linewidth=0.2pt,tbarsize=5pt]{|-}(U)(V)\ncput*{$m$}%
%\pcline[linewidth=0.2pt,tbarsize=5pt]{|-|}(V)(X)\ncput*{$n$}%
%
}
\end{pspicture*}%
}%
\par\bigskip
\lipsum[2]
\end{document}