我正在尝试使用 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}