根据乳胶标签从 PDF 页面中提取图形

根据乳胶标签从 PDF 页面中提取图形

我的 latex 中有几十个图形,名称各不相同。我想将它们放入一个 PDF 文件中,然后通过类似 而不是 的方式从中调用每个图形。\includegraphics[page="label3"]{foo}换句话说\includegraphics[page=3]{foo},我想根据正确的标签从 PDF 中调用图形 [在创建包含所有图形的单个 PDF 文件中分配]。

答案1

您可以通过将标签定义为扩展到页码的宏来实现这一点。我会使用自定义宏首先创建多页 PDF,然后使用不同的定义创建标签列表。

由于这有点难以理解,这里有一些代码:

创建一个.tex仅包含以下内容的文件:

% filelist.tex
\myimagelist{some label}{some path/pdffile1}
\myimagelist{some other label}{some path/pdffile2}
% ....

要创建多页文档,请使用以下文档:

% allpdfs.tex
\documentclass{article}
\usepackage{pdfpages}
\newcommand{\myimagelist}[2]{\includepdf[fitpaper=true]{#2}}

\begin{document}
\input{filelist}
\end{document}

这会将每个(单页)PDF 作为结果 PDF 的一页,其中每个页面仍具有原始大小。

在您的真实文档中可能看起来像这样:

\documentclass{book}
\usepackage{graphicx}
\newcommand{\mylabel}[1]{\csname mylabel #1\endcsname}
\newcounter{mycounter}
\newcommand{\myimagelist}[2]{%
  \stepcounter{mycounter}%
  \expandafter\edef\csname mylabel #1\endcsname{\arabic{mycounter}}%
}
\input{filelist}

\begin{document}

\includegraphics[page=\mylabel{some label}]{allpdfs}

or use:

\newcommand{\imagebylabel}[2][]{\includegraphics[page=\mylabel{#2},#1]{allpdfs}}

\imagebylabel{some other label}

\end{document}

我无法测试代码,因为我目前坐在一台没有安装 LaTeX 的家用电脑上,但你应该明白其主要思想。

相关内容