\label{LastPage}
我在把 放到之后 的时候遇到了这个问题\include{chapter}
。我发现编译的时候\ref{LastPage}
变成了。我测试了一下原因,知道放到 之后就会变成。这是我的代码??
latexmk -pdf
\label
\clearpage
\ref
??
% label after \clearpage
\documentclass{article}
% \usepackage{lastpage}
\begin{document}
this is main file. \pageref{LastPage}
\clearpage
\label{LastPage}
\end{document}
我得到了输出
我想知道是什么原因导致了这个问题?
答案1
文档的最后一页实际上是包含 的页面,this is main file. \pageref{LastPage}
因为它是通过调用 发送出去的\clearpage
。由于\label
不会导致设置任何可打印内容,因此没有其他页面要发送出去。而且,由于\label
仅在页面发送期间“处理”(为了获得页面的适当值\pageref
- 对内容的异步处理),您的最后一页\label
永远不会被处理,而只能\pageref
搜索未知的(页面)引用LastPage
。
这lastpage
包裹做一些工作来规避与您的类似的设置,允许以下最小示例按预期工作,即使它与您的设置相匹配:
\documentclass{article}
\usepackage{lastpage}
\begin{document}
this is main file. \pageref{LastPage}
\clearpage
\end{document}
其他选择包括使用atveryend
将\label
s 放置在文档末尾。
答案2
我认为这可能是因为在最后一个之后实际上没有创建新页面\clearpage
,因为没有内容。添加\null
或\hbox{}
可解决此问题。
\documentclass{article}
% \usepackage{lastpage}
\begin{document}
this is main file. \pageref{LastPage}
\clearpage
\null
\label{LastPage}
\end{document}