LuaLaTeX で pdfpages コードをコンパイルする

LuaLaTeX で pdfpages コードをコンパイルする

次の 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.texpdflatexlualatex

\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 名のほとんどを定義する を使用できます。

関連情報