
次の MWE を検討してください。
\documentclass[
a4paper
]{article}
\usepackage{pdfpages}
\newcount\firstmaxpages
\newcount\secondmaxpages
\newcount\curpage
\newcount\untilpage
\makeatletter
\newif\if@pdfdingsSecondFin
\newcount\@pdfdingsPages
\newcommand*\@incpdfdings[5][]{%
\includepdf[
nup = #5,
pages = {#2-#3},
#1
]{#4}}
\newcommand*\@@incpdfdings{}%
\def\@@incpdfdings#1x#2;{%
\@pdfdingsPages=#1%
\multiply\@pdfdingsPages by #2%
\advance\@pdfdingsPages by -1%
}
\newcommand*\incpdfdings[4][]{%
\ifx\relax#1\relax%
\pdfximage{#3}%
\firstmaxpages=\pdflastximagepages%
\pdfximage{#4}%
\secondmaxpages=\pdflastximagepages%
\ifnum\firstmaxpages<\secondmaxpages%
\@latex@error{incpdfdings: Fail!}{}%
\fi%
\else%
\firstmaxpages=#1%
\fi%
\curpage=0%
\@@incpdfdings#2;%
\loop\ifnum\firstmaxpages>\curpage%
\advance\curpage by 1%
\untilpage=\numexpr\curpage+\@pdfdingsPages\relax%
\ifnum\untilpage>\firstmaxpages%
\untilpage=\firstmaxpages%
\fi%
\@incpdfdings[frame=true]{\the\curpage}{\the\untilpage}{#3}{#2}%
\ifnum\secondmaxpages>\untilpage\else%
\untilpage=\secondmaxpages%
\fi%
\if@pdfdingsSecondFin\else%
\@incpdfdings{\the\curpage}{\the\untilpage}{#4}{#2}%
\fi%
\ifnum\secondmaxpages=\untilpage%
\@pdfdingsSecondFintrue%
\fi%
\advance\curpage by \@pdfdingsPages%
\repeat%
}
\makeatother
\begin{document}
\incpdfdings{3x6}%
{A.pdf}%
{B.pdf}
\end{document}
上記のコードを含むファイルと同じディレクトリにA.pdf
、と という名前の 2 つの PDF ファイルがあるとします。 を使用してコードをコンパイルするとすべて正常に動作しますが、 を使用してコンパイルすると、次のエラー メッセージが表示されます。B.pdf
.tex
pdflatex
lualatex
\incpdfdings ...>\ifx \relax #1\relax \pdfximage
{#3}\firstmaxpages =\pdfla...
l.68 {B.pdf}
質問
エンジンを使用してコンパイルできるように上記のコードを変更するにはどうすればよいですかlualatex
?
アップデート
%
David の提案に従って、すべての s を削除してみました。これで正しいでしょうか?
\newcommand*\@incpdfdings[5][]{%
\includepdf[
nup = #5,
pages = {#2-#3},
#1
]{#4}}
\newcommand*\@@incpdfdings{}%
\def\@@incpdfdings#1x#2;{%
\@pdfdingsPages=#1
\multiply\@pdfdingsPages by #2
\advance\@pdfdingsPages by -1
}
\newcommand*\incpdfdings[4][]{%
\ifx\relax#1\relax
\saveimageresource{#3}%
\firstmaxpages=\lastsavedimageresourcepages
\saveimageresource{#4}%
\secondmaxpages=\lastsavedimageresourcepages
\ifnum\firstmaxpages<\secondmaxpages
\@latex@error{incpdfdings: Der er ikke nok forsider.}{}%
\fi
\else
\firstmaxpages=#1
\fi
\curpage=0
\@@incpdfdings#2;%
\loop\ifnum\firstmaxpages>\curpage
\advance\curpage by 1
\untilpage=\numexpr\curpage+\@pdfdingsPages\relax
\ifnum\untilpage>\firstmaxpages
\untilpage=\firstmaxpages
\fi
\@incpdfdings[frame=true]{\the\curpage}{\the\untilpage}{#3}{#2}%
\ifnum\secondmaxpages>\untilpage\else
\untilpage=\secondmaxpages
\fi
\if@pdfdingsSecondFin\else
\@incpdfdings{\the\curpage}{\the\untilpage}{#4}{#2}%
\fi
\ifnum\secondmaxpages=\untilpage
\@pdfdingsSecondFintrue
\fi
\advance\curpage by \@pdfdingsPages
\repeat
}
答え1
\usepackage{luatex85}
luatex プリミティブの観点から pdftex 名のほとんどを定義する を使用できます。