获取 write18 接受/扩展命令

获取 write18 接受/扩展命令

我正在尝试使用 write18 裁剪 pdf。代码是

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}

\usepackage{graphicx}

\newcommand{\filename}{}
\newcommand{\croppedfilename}{}

\begin{document}

    \makeatletter
    \renewcommand{\filename}{mypath/myimage.pdf}
    \filename@parse{mypath/myimage.pdf}
    \renewcommand{\croppedfilename}{\filename@area\[email protected].\filename@ext}
    \makeatother

    filename: \filename

    croppedfilename: \croppedfilename

    \immediate\write18{pdfcrop mypath/myimage.pdf \croppedfilename}%

    \immediate\write18{pdfcrop \filename \croppedfilename}%

    \the\pdfshellescape

\end{document}

\the\pdfshellescape是 1。

该行\immediate\write18{pdfcrop mypath/myimage.pdf \croppedfilename}确实生成了我裁剪的 pdf,但\immediate\write18{pdfcrop \filename \croppedfilename}实际上没有。当然,我需要第二个版本才能将其放入命令中。

答案1

如果你检查日志,你会看到

runsystem(pdfcrop mypath/myimage.pdf mypath/myimage.cropped.pdf)...executed.

runsystem(pdfcrop mypath/myimage.pdfmypath/myimage.cropped.pdf)...executed.

注意第二行缺少空格。这是 TeX 的常见行为,即跳过宏名称后的空格:在你的情况下\filename。因此你需要确保那里“看到”一个空格:

\immediate\write18{pdfcrop \filename\space\croppedfilename}

相关内容