ps2pdf -dEPSCrop 用 pstricks \uput 突然停止

ps2pdf -dEPSCrop 用 pstricks \uput 突然停止

基本上ps2pdf -dEPSCrop没有裁剪到指定的完整范围,而是停在某个神秘的点。我试图修剪图像左侧的空白,但-dEPSCrop无论我为 pspicture 环境变量的左下边界框坐标赋予什么值,它都会立即停止。

请在以下位置找到不太 MWE:http://pastebin.com/MYAJtLUu

以下文件删除了除\uput's 之外的所有内容:

    \documentclass[english,landscape,a4paper]{slides}

    \usepackage{graphics}
    \usepackage{graphicx}
    \usepackage{babel}
    \usepackage{pst-eps}
    \usepackage{pstricks}
    \usepackage{multido}
    \usepackage{pst-node}
    \usepackage{pst-math}
    \usepackage{pstricks-add}

    \begin{document}
        \begin{TeXtoEPS}
            \begin{pspicture}(2,-2.966)(12.064,0)
            \psset{linejoin=1}
            \newcommand{\verysmall}{\fontsize{9}{9pt}\selectfont}
            \verysmall
                    \uput{0.2mm}[180](2.349,-1.66){$s$}
                    \uput{1mm}[225](2.522,-2.043){$c$}
                    \uput{1mm}[-110](4.067,-.9){$b$}
                    \uput{0.25mm}[-45](8.405,-2.671){$a$}
                    \uput{0mm}[0](11.808,-1.66){$t$}
                    \uput{1mm}[100](4.799,-1.199){$d$}
                    \uput{0.5mm}[90](8.653,-2.597){$e$}        
            \end{pspicture}
        \end{TeXtoEPS}
    \end{document} 

我正在尝试从 pstricks 图形创建裁剪的 PDF 图像。我的工作流程如下:

    latex NoSoMWE.tex
    dvips -E NoSoMWE.dvi
    ps2pdf -dEPSCrop NoSoMWE.ps NoSoMWE.pdf

然而,最近,ps2pdf -dEPSCrop当 pstricks 文件使用\uput指令时,它不再起作用。但是,当\uput从不太 MWE 中删除所有 时,裁剪会起作用。如果最多 \uput指令被使用。

请指教,谢谢。

答案1

如果你的目标是

  • 获得独立的 PDF 输出,周围没有过多的空白,并且
  • 从主 (La)TeX 输入文件中导入生成的 PDF

那么剩下的段落可能对你有用。

在此回答中,我假设您是 Windows 用户。如果不是,则必须调整给定的 MS-DOS 批处理文件(在其他操作系统中也称为 make 文件)。

警告:我还假设用于生成独立 PDF 输出的 TeX 输入文件不会加载animate包。为什么?因为独立 PDF 输出中的动画将不再\includepdf{}当使用或将其导入到您的主 TeX 文件中时,它就可以工作\includegraphics{}

我将在这个答案中使用下面的图像,并将其命名hen.jpg

在此处输入图片描述

我将根据用于生成独立 PDF 输出的输入文件是否导入图像来分为两种情况。如果您在用于生成独立 PDF 输出的输入文件中不导入图像,那么划分并不重要,但您应该选择更快的一种!

情况1

此编译比案例 2 中讨论的编译快得多。但是,如果您的输入文件导入了任何 PDF、PNG 和/或 JPG 类型的图像,则您无法使用此工作流程。如果您只导入 EPS 图像或不导入任何图像,则应选择此工作流程,因为编译速度要快得多!

创建一个批处理文件,将其命名为DevLa.bat,以编译用于生成独立 PDF 输出的输入文件。

rem It takes an input file name WITHOUT extension.
echo off

del %1.pdf

rem latex %1
latex %1
dvips -D10000 -t unknown %1
gswin32c -r10000 -dCompatibilityLevel=1.5 -dAutoRotatePages=/None -dPDFSETTINGS=/prepress -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%1.pdf %1.ps

del %1.log
del %1.aux
del %1.dvi
del %1.ps

为了简单起见,您可以将其保存在输入文件所在的同一目录中。如果您想将此批处理重新用于其他项目,则需要设置 PATH 环境变量。

以下 MWE withoutimage.tex(不导入图像)可以编译DevLa.bat

% withoutimage.tex
\documentclass{article}
\usepackage{pstricks,multido}
\SpecialCoor
\psset
{
    linecolor=red,
    arrows=->,
    arrowscale=1.5 0.75
}

\usepackage[active,tightpage]{preview}
\PreviewBorder=0pt
\PreviewEnvironment{pspicture}

\begin{document}
    \begin{pspicture}(-2,-2)(2,2)
        \psframe[linecolor=red](-2,-2)(2,2)
        \multido{\i=0+30}{12}
        {%
            \psline(0.9;\i)
            \uput{1}[\i]{\i}(0,0){$\i^\circ$}%
        }
    \end{pspicture}
\end{document}

通过调用

DevLa withoutimage

您将获得如下紧密的 PDF 输出。

在此处输入图片描述

案例 2

此编译比案例 1 中讨论的编译慢得多。但是,如果您的输入文件导入了任何类型的 PDF、PNG、JPG 和/或 EPS 图像,则可以使用此工作流程。如果您只导入 EPS 图像或不导入任何图像,则应选择案例 1 中的工作流程,因为它的编译速度要快得多!

创建一个批处理文件,将其命名为DevXe.bat,以编译用于生成独立 PDF 输出的输入文件。

rem It takes an input file name WITHOUT extension.

echo off

del %1.pdf

rem xelatex %1
xelatex %1

del %1.log
del %1.aux

为了简单起见,您可以将其保存在输入文件所在的同一目录中。如果您想将此批处理重新用于其他项目,则需要设置 PATH 环境变量。

以下 MWE withimage.tex(导入 JPG 图像)可以使用以下方法进行编译DevXe.bat

% withimage.tex
\documentclass{article}
\usepackage{graphicx}
\usepackage{pstricks,multido}
\SpecialCoor
\psset
{
    linecolor=red,
    arrows=->,
    arrowscale=1.5 0.75
}

\usepackage[active,tightpage]{preview}
\PreviewBorder=0pt
\PreviewEnvironment{pspicture}

\begin{document}
    \begin{pspicture}(-2,-2)(2,2)
        \psframe[linecolor=red](-2,-2)(2,2)
        \multido{\i=0+30}{12}
        {%
            \psline(0.9;\i)
            \uput{1}[\i]{\i}(0,0){\includegraphics[scale=0.1]{hen}}% please adapt it!
        }
    \end{pspicture}
\end{document}
DevXe withimage

您将获得如下紧密的 PDF 输出。

在此处输入图片描述

导入独立 PDF 输出

获取独立的 PDF 输出后,您可以按如下方式从主输入文件中导入它们。

% main.tex
\documentclass{article}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[hbtp]
\centering
\includegraphics[width=0.75\linewidth]{withoutimage}
\caption{This is a nice image.}
\end{figure}
\lipsum[2]
\begin{figure}[hbtp]
\centering
\includegraphics[scale=1.5]{withimage}
\caption{This is a nice image too.}
\end{figure}
\lipsum[3]
\end{document}

并且可以使用xelatex或进行编译pdflatex

如果main.tex还有其他带标签的 PSTricks 代码,则使用,xelatex因为pdflatexauto-pst-pdf破坏标签。

结果如下。

在此处输入图片描述

相关内容