Tengo docenas de figuras en mi látex con nombres diferentes. Quiero ponerlos en un único archivo PDF y llamar a cada figura desde allí mediante algo como \includegraphics[page="label3"]{foo}
en lugar de \includegraphics[page=3]{foo}
. En otras palabras, quiero llamar figuras de un PDF según su etiquetado adecuado [asignado al crear este único archivo PDF que contiene todas las figuras].
Respuesta1
Puede hacerlo definiendo las etiquetas de las macros que se expanden hasta el número de página. Usaría una macro personalizada para crear primero el PDF de varias páginas y luego, con una definición diferente, para crear la lista de etiquetas.
Debido a que esto es difícil de entender, aquí hay algún código:
Cree un .tex
archivo que contenga solo lo siguiente:
% filelist.tex
\myimagelist{some label}{some path/pdffile1}
\myimagelist{some other label}{some path/pdffile2}
% ....
Para crear el documento de varias páginas utilice el siguiente documento:
% allpdfs.tex
\documentclass{article}
\usepackage{pdfpages}
\newcommand{\myimagelist}[2]{\includepdf[fitpaper=true]{#2}}
\begin{document}
\input{filelist}
\end{document}
Esto colocará cada PDF (una sola página) como una página del PDF resultante, donde cada página todavía tiene el tamaño original.
En su documento real podría verse así:
\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}
No pude probar el código porque actualmente estoy sentado en una PC familiar sin LaTeX instalado, pero deberías tener una idea principal.