Home > OS >  Inserting a PDF page at a logical page break in LaTeX
Inserting a PDF page at a logical page break in LaTeX

Time:08-20

I'd like to include a pdf using pdfpages in a document I'm working on. However, since it's prose, I'd like the page breaks that LaTeX generates to remain in place and have the PDF inserted at the next logical page break.

For example, I have a file illustration.pdf that I'd like to include in this document. Without including the file, LaTeX breaks the page after tincidunt in the final paragraph, but inserting the PDF there starts a new paragraph, which I don't want. Putting the include command before the paragraph breaks the page there, as well, which I don't want either.

\documentclass{memoir}

\usepackage[demo]{pdfpages}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit nec mi sed mollis. Nullam feugiat auctor risus et consequat. Donec id justo vitae felis vehicula volutpat. Aenean consequat risus odio, non hendrerit odio hendrerit at. Sed dapibus, tellus in commodo dignissim, turpis lectus porttitor enim, at molestie nunc nibh eget mauris. Mauris tincidunt egestas sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc sit amet ante nec magna pharetra condimentum. Pellentesque consectetur ipsum vel lectus molestie dignissim. Maecenas pharetra interdum odio.

Nulla congue lacus vitae justo sagittis, eu tristique neque pulvinar. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin non nisl quis risus maximus suscipit. Aliquam vestibulum molestie metus, in dictum elit tincidunt eu. In hac habitasse platea dictumst. Vestibulum vel urna quis metus luctus tempor. Proin venenatis sapien ac ipsum vestibulum, eget tempor dui rhoncus. Integer ultrices massa in tincidunt eleifend. In tempor non nisi id iaculis. Cras efficitur elit nunc, vitae consequat turpis sodales ut. Curabitur vehicula vehicula faucibus. Donec blandit feugiat magna et dapibus. Cras vel lacus nisi. Maecenas quis nisl quis massa vestibulum vestibulum. Fusce vulputate commodo pellentesque. Nullam dignissim ex ligula, nec porta nunc rutrum sit amet.

Vivamus lectus justo, vestibulum eu auctor ut, pretium sit amet purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi quis condimentum odio. Curabitur porttitor rhoncus massa ut vehicula. Curabitur ac venenatis mi, ac aliquam eros. Nulla porta magna purus, egestas vestibulum felis aliquet vitae. Suspendisse id bibendum justo. Nulla ultricies arcu sed tincidunt auctor. Suspendisse semper est non venenatis fermentum. Curabitur aliquet pharetra viverra. Sed tempor, quam ac bibendum faucibus, nisi tellus tempor metus, elementum interdum nunc ante at tellus. In rutrum pretium molestie. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vivamus imperdiet, mauris ac convallis auctor, arcu sapien consectetur nisl, nec placerat est mi et quam. Suspendisse elementum euismod mi, in fringilla ligula consequat quis. Integer mi dui, dictum vel facilisis dictum, semper eu est.

Donec eu justo augue. Nulla consequat ipsum est, a pellentesque neque condimentum quis. Nullam sit amet diam id est fringilla posuere. Vivamus ullamcorper iaculis nibh, a pulvinar felis ornare eget. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis lobortis neque vitae nisl luctus, et blandit libero vestibulum. Proin aliquet ante eleifend, rhoncus lacus euismod, gravida lectus. Quisque sit amet sapien ligula. Phasellus erat nulla, maximus vitae cursus non, pellentesque sit amet est. Vivamus nec urna urna.

Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed pretium mi. Cras pharetra dictum ante eu faucibus. Nulla eu maximus metus. Sed laoreet commodo orci sit amet volutpat. Sed et diam ac nulla volutpat finibus id at leo. Donec sagittis vehicula libero eget imperdiet. Etiam at nisl sed augue molestie volutpat. Sed aliquam tincidunt \includepdf[pages={1}]{illustration.pdf}\ purus, eu aliquet mi pretium eu. Curabitur at ex orci. Aenean fringilla turpis non nibh volutpat pellentesque. Sed ultricies eros id lacus condimentum pellentesque id a lacus. Cras urna ex, blandit ullamcorper consequat at, sodales a lacus. Vestibulum eu nisl dolor. Morbi enim lorem, dictum at enim nec, euismod tempus tortor. Etiam maximus luctus arcu, in eleifend justo efficitur ut. 
\end{document}

One solution I've considered is using pdftk to insert the page where I want it and \stepcounter{page} on the following page to increment the page number properly, but this feels clunky.

As a final note, the included PDF is an illustration that has a bleed and is thus not the same size as the pages in the document, which kept me away from \includegraphics, but maybe I'm missing something there.

How do I include a PDF using pdfpages at the pagebreak that LaTeX generates?

CodePudding user response:

You could add it to the shipout/after hook, which means that the code is executed at the end of the page:

\documentclass{memoir}

\usepackage{pdfpages}

\begin{document}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec hendrerit nec mi sed mollis. Nullam feugiat auctor risus et consequat. Donec id justo vitae felis vehicula volutpat. Aenean consequat risus odio, non hendrerit odio hendrerit at. Sed dapibus, tellus in commodo dignissim, turpis lectus porttitor enim, at molestie nunc nibh eget mauris. Mauris tincidunt egestas sem. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nunc sit amet ante nec magna pharetra condimentum. Pellentesque consectetur ipsum vel lectus molestie dignissim. Maecenas pharetra interdum odio.

Nulla congue lacus vitae justo sagittis, eu tristique neque pulvinar. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin non nisl quis risus maximus suscipit. Aliquam vestibulum molestie metus, in dictum elit tincidunt eu. In hac habitasse platea dictumst. Vestibulum vel urna quis metus luctus tempor. Proin venenatis sapien ac ipsum vestibulum, eget tempor dui rhoncus. Integer ultrices massa in tincidunt eleifend. In tempor non nisi id iaculis. Cras efficitur elit nunc, vitae consequat turpis sodales ut. Curabitur vehicula vehicula faucibus. Donec blandit feugiat magna et dapibus. Cras vel lacus nisi. Maecenas quis nisl quis massa vestibulum vestibulum. Fusce vulputate commodo pellentesque. Nullam dignissim ex ligula, nec porta nunc rutrum sit amet.

\AddToHookNext{shipout/after}{\includepdf[pages={1}]{example-image-duck}}

Vivamus lectus justo, vestibulum eu auctor ut, pretium sit amet purus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi quis condimentum odio. Curabitur porttitor rhoncus massa ut vehicula. Curabitur ac venenatis mi, ac aliquam eros. Nulla porta magna purus, egestas vestibulum felis aliquet vitae. Suspendisse id bibendum justo. Nulla ultricies arcu sed tincidunt auctor. Suspendisse semper est non venenatis fermentum. Curabitur aliquet pharetra viverra. Sed tempor, quam ac bibendum faucibus, nisi tellus tempor metus, elementum interdum nunc ante at tellus. In rutrum pretium molestie. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vivamus imperdiet, mauris ac convallis auctor, arcu sapien consectetur nisl, nec placerat est mi et quam. Suspendisse elementum euismod mi, in fringilla ligula consequat quis. Integer mi dui, dictum vel facilisis dictum, semper eu est.

Donec eu justo augue. Nulla consequat ipsum est, a pellentesque neque condimentum quis. Nullam sit amet diam id est fringilla posuere. Vivamus ullamcorper iaculis nibh, a pulvinar felis ornare eget. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Duis lobortis neque vitae nisl luctus, et blandit libero vestibulum. Proin aliquet ante eleifend, rhoncus lacus euismod, gravida lectus. Quisque sit amet sapien ligula. Phasellus erat nulla, maximus vitae cursus non, pellentesque sit amet est. Vivamus nec urna urna.

Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Ut sed pretium mi. Cras pharetra dictum ante eu faucibus. Nulla eu maximus metus. Sed laoreet commodo orci sit amet volutpat. Sed et diam ac nulla volutpat finibus id at leo. Donec sagittis vehicula libero eget imperdiet. Etiam at nisl sed augue molestie volutpat. Sed aliquam tincidunt  purus, eu aliquet mi pretium eu. Curabitur at ex orci. Aenean fringilla turpis non nibh volutpat pellentesque. Sed ultricies eros id lacus condimentum pellentesque id a lacus. Cras urna ex, blandit ullamcorper consequat at, sodales a lacus. Vestibulum eu nisl dolor. Morbi enim lorem, dictum at enim nec, euismod tempus tortor. Etiam maximus luctus arcu, in eleifend justo efficitur ut. 
\end{document}

enter image description here

  • Related