在 Plain-XeTeX 文档中,如果我将页面大小设置为大于默认页面大小(我的情况是 A4),那么超出 A4 页面大小的所有 pstricks 元素都会被裁剪掉,因此页面上只能看到图像的一部分。我尝试设置前后页面大小\input pstricks
,尝试将其放在 pspicture 中,将其放在它外面,将 pspicture 大小设置为 (0, 0)、(10, 10),改用\pspicture*
其他方法,但无法摆脱该裁剪区域,也无法在该区域之外进行绘制。我还尝试过使用 pdf 特殊命令,但徒劳无功。
我尝试使用的最终 TeX 文件如下:
%\special{papersize=500mm,500mm}
\special{pdf:pagesize width 500mm height 500mm}
\hsize=500mm\vsize=500mm
\input pstricks
%\pspicture(0,0)
\psline(-500cm,0)(1mm,0)
\psline(0,100cm)(0,-500cm)
%\endpspicture
Somewhere, over the rainbow.
\bye
我已经在最新的系统中尝试过,但都没有用:MiKTeX 2.9(64 位)、MacTeX(我相信 2013 是版本号?)
无论我怎么尝试,都可以看到以下输出。垂直线只从页面中间某个地方开始,而它应该从文本上方开始,水平线根本不可见。
我该如何解决这个问题?
答案1
XeTeX 将 pstricks 的 PostScript 代码写入临时的 PostScript 文件中,并通过在 条目中配置的命令运行结果D
,TDS:dvipdfmx/dvipdfmx.cfg
例如(TL2013):
D "rungs -q -dNOPAUSE -dBATCH -dEPSCrop -sDEVICE=pdfwrite -dCompatibilityLevel=%v -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -sOutputFile='%o' '%i' -c quit"
因为-dEPSCrop
它适用于带边界框的 EPS 图像,但 pstricks 代码没有边界框规范。因此使用 ghostscript 的默认媒体大小(例如字母)。
解决方法:
-sDEFAULTPAPERSIZE=a0
可以通过或设置更大(默认)的纸张尺寸
-sPAPERSIZE=a0
。可以在 或 的条目中指定该选项dvipdfmx.cfg
,并在命令行上使用环境变量,例如:
env GS_OPTIONS=-sDEFAULTPAPERSIZE=a0 xetex test