Рисунки со страниц PDF в соответствии с их маркировкой в ​​латексе

Рисунки со страниц PDF в соответствии с их маркировкой в ​​латексе

У меня в латексе есть десятки фигур, названных по-разному. Я хочу поместить их в один файл 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, но основную идею вы должны уловить.

Связанный контент