私の LaTeX には、すべて異なる名前が付けられた数十の図があります。それらを 1 つの 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 がインストールされていない家庭用 PC を使用しているため、コードをテストすることはできませんでしたが、基本的な考え方は理解できるはずです。