我试图在页眉中添加一行“第 X 页,共 Y 页”,但前提是有多页。我的主要问题是如何格式化 if 语句。到目前为止,我已经
\ifx \pageref{LastPage} 1
\relax
\else
\fancyhead[R]{Page \thepage\ of \pageref{LastPage}}
\fi
我认为第一行是有问题的,因为其余部分似乎有效。
答案1
您可以尝试加载引用计数包装和使用
\ifnum\getpagerefnumber{LastPage}=1
代替\ifx\pageref{LastPage}1
(由于其他原因,这是错误的)。参见这个问题。
“完整代码”:
\usepackage{refcount,lastpage}
\usepackage{fancyhdr}
\fancyhead[R]{%
\ifnum\getpagerefnumber{LastPage}=1
\else
Page \thepage\ of \pageref{LastPage}%
\fi
}
然而,Marco 建议使用参考值似乎更好:
\usepackage{fancyhdr}
\usepackage[totpages,user]{zref}
\fancyhead[R]{%
\ifnum\ztotpages=1
\else
Page \thepage\ of \ztotpages
\fi
}
\pagestyle{fancy}
答案2
我尝试了 egreg 的解决方案,但是没有用。贡萨洛·梅迪纳(见下面的评论)效果很好(见下面的例子)
我使用zref
了lastpage
\documentclass{report}
\usepackage{fancyhdr}
\usepackage[totpages,lastpage,user]{zref}
\usepackage{ifthen}
\usepackage{hyperref}
\AtBeginDocument{
\ifthenelse{\ztotpages = 1}{}{\fancyhead[R]{Page \thepage\ of \zpageref{LastPage}}}}
\pagestyle{fancy}
\begin{document}
Text \zpageref{LastPage}
\clearpage
TExt
\end{document}
egreg 的示例:
\documentclass{report}
\usepackage{fancyhdr}
\usepackage{refcount,lastpage}
\fancyhead[R]{%
\ifnum\getpagerefnumber{LastPage}=1\relax%
\else
Page \thepage\ of \pageref{LastPage}%
\fi%
}
\pagestyle{fancy}
\begin{document}
Text
\clearpage
TExt
\end{document}
@egreg: 抱歉
答案3
以下是使用 xstring 包的解决方案:
\documentclass{article}
\usepackage{lipsum}
\usepackage{refcount}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{xstring}
\pagestyle{fancy}
\fancyhead{}
\fancyfoot{}
\fancyhead[R]{\IfEq{\getpagerefnumber{LastPage}}{1}{}{Page \thepage\ of \pageref{LastPage}}}
\begin{document}
\lipsum[1-3]
\end{document}