我有一个图书类,我想在书的最后一页添加一个 pdf 页面。在我的 latex 末尾,我有:
\includepdf[pages={1}]{mylastpdf}
\end{document}
但是我不知道为什么,在编译 latex 之后,我的书的末尾仍然有一个空白页,而我的 pdf 就包含在那之前。我怎样才能将我的 pdf 包含在最后一页?
编辑
我意识到只有当我的 tex 文件中有以下包时才会出现这种情况:chapterbib
和 。但我需要这些包。你能帮我吗float
?minitoc
这是一个完整的例子:
\documentclass[12pt,twoside,a4paper]{book}
\usepackage{chapterbib} %% Required
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{float}%% Required
\usepackage{lipsum}
\usepackage{pdfpages}
\usepackage{minitoc} %% Required
\begin{document}
\chapter{Conclusion générale.}
\lipsum[50]
\includepdf[pages={1}]{backcover/resume}
\end{document}
答案1
\AtEndDocument
可用于将包含的页面放置在其他包可能添加之后的稍后位置:
\documentclass[12pt,twoside,a4paper]{book}
\usepackage{chapterbib} %% Required
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{float}%% Required
\usepackage{lipsum}
\usepackage{pdfpages}
\usepackage{minitoc} %% Required
\begin{document}
\chapter{Conclusion générale.}
\lipsum[50]
\AtEndDocument{\includepdf[pages={1}]{example-image-a}}
\end{document}
原因是 中有几个错误minitoc
。有时它会\mtc@hints@checklongext
在 中执行\AtEndDocument
。它包含很多内容:
\if@mtc@<package>Loaded\else
\if@mtc@<package>Loaded@a@
\mtc@PackageWarningNoLine[...]{...}{...}
\fi
\fi
应该对最后一个参数后的行尾\mtc@PackageWarningNoLine
进行注释,以防止潜在的空格泄漏。
然而,真正的问题是以下模式:
\if@mtc@<package>Loaded@\
\mtcPackageInfo[...]{...}{...}
\fi
看起来像是复制/粘贴错误。本意是删除\else
,但反斜杠仍然存在。与正常的行尾组合后,它变成了\␣
(反斜杠和空格),这会强制使用空格,这是不是在垂直模式下被忽略,但它会强制用这个空格创建一个新段落。垂直列表现在不再为空,TeX 会设置一个带有一些空格的附加页面。