1

I need to list in a document enclosed items that are comprised of pdf's and images, in a certain order. The way I have approached this, is to use floats with option H[ere] for the images, and includepdf for the pdfs, and newlistof to list the items. In any case, I'm unable to get the page numbers right. Other imperfections mentioned in the code. Also, someone may know of a better approach altogether.

PS: Foo.pdf is a one page pdf

\documentclass{article}
\usepackage{tocloft}
\usepackage{keyfloat}
\usepackage{pdfpages}
\usepackage{xparse}

\newcommand{\listenclosedname}{List of enclosed items}
\newlistof[chapter]{enclosed}{encl}{\listenclosedname}

\NewDocumentCommand{\enclosedlabel}
{}
{
  %\protect something? TODO
  E{\small NCL.} \theenclosed.
}

\NewDocumentCommand{\addenclosed}
{m}
{
  \stepcounter{enclosed}
  \addcontentsline{encl}{enclosed}
  {
    %TODO: Replace
    E{\small NCL.} \theenclosed.
    % with:
    % % \enclosedlabel
    #1
  }
}

\begin{document}

\listofenclosed % BUG: Foo's page = 1 instead of 2.

\addenclosed{Baz}

\keyfigbox[H]{
  cstar={
    % enclosedlabel % TODO
  } 
}{\LARGE Baz}

\addenclosed{Foo}
\includepdf{Foo.pdf}

\addenclosed{Bar}

\keyfigbox[H]{
  cstar={}
}{\LARGE Bar}

\end{document}

output

1

The problem is that \includepdf starts a new page and fills it. If you put \addenclosed in front, it will be on the preceding page. If you put it after, it will be on the next page. You can, however, use \afterpage to put it on the correct page.

\documentclass{article}
\usepackage{tocloft}
\usepackage{keyfloat}
\usepackage{pdfpages}
\usepackage{xparse}
\usepackage{afterpage}

\newcommand{\listenclosedname}{List of enclosed items}
\newlistof[chapter]{enclosed}{encl}{\listenclosedname}

\NewDocumentCommand{\enclosedlabel}
{}
{
  %\protect something? TODO
  E{\small NCL.} \theenclosed.
}

\NewDocumentCommand{\addenclosed}
{m}
{
  \stepcounter{enclosed}
  \addcontentsline{encl}{enclosed}
  {
    %TODO: Replace
    E{\small NCL.} \theenclosed.
    % with:
    % % \enclosedlabel
    #1
  }
}

\begin{document}

\listofenclosed % BUG: Foo's page = 1 instead of 2.

\addenclosed{Baz}

\keyfigbox[H]{
  cstar={
    % enclosedlabel % TODO
  } 
}{\LARGE Baz}

\afterpage{\addenclosed{Foo}}
\includepdf{twopages}


\addenclosed{Bar}

\keyfigbox[H]{
  cstar={}
}{\LARGE Bar}

\end{document}
  • Thanks. Also, y doesn’t enclosedlabel work? I would like to label the included pdf’s with a watermark using the pkg by the same name. For that I need the cmd to get the page number of a given enclosed item. What is it? – Erwann Aug 28 '18 at 16:10
  • autopageref, I guess. – Erwann Aug 28 '18 at 17:46
  • If you use \refstepcounter and \label, you print the page number using \pageref. See also \getpagerefnumber from refcount. – John Kormylo Aug 29 '18 at 3:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.