Abbildungen aus PDF-Seiten entsprechend ihrer Beschriftung in Latex

Abbildungen aus PDF-Seiten entsprechend ihrer Beschriftung in Latex

Ich habe Dutzende von Abbildungen in meinem Latex, die alle unterschiedlich benannt sind. Ich möchte sie in eine einzelne PDF-Datei packen und jede Abbildung von dort aus über etwas wie \includegraphics[page="label3"]{foo}anstelle von aufrufen \includegraphics[page=3]{foo}. Mit anderen Worten, ich möchte Abbildungen aus einer PDF entsprechend ihrer richtigen Beschriftung aufrufen [zugewiesen bei der Erstellung dieser einzelnen PDF-Datei, die alle Abbildungen enthält].

Antwort1

Sie könnten dies tun, indem Sie die Beschriftungen als Makros definieren, die sich auf die Seitenzahl erweitern. Ich würde ein benutzerdefiniertes Makro verwenden, um zuerst die mehrseitige PDF-Datei zu erstellen und dann, mit einer anderen Definition, die Beschriftungsliste zu erstellen.

Da dies schwer zu verstehen ist, hier etwas Code:

Erstellen Sie eine .texDatei, die nur Folgendes enthält:

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

Um das mehrseitige Dokument zu erstellen, verwenden Sie das folgende Dokument:

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

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

Dadurch wird jede (einzelne) PDF-Datei als Seite der resultierenden PDF-Datei eingefügt, wobei jede Seite weiterhin ihre Originalgröße haben muss.

In Ihrem tatsächlichen Dokument könnte es so aussehen:

\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}

Ich konnte den Code nicht testen, da ich derzeit an einem Familien-PC ohne installiertes LaTeX sitze, aber Sie sollten eine grundsätzliche Idee davon haben.

verwandte Informationen