我正在使用以下代码生成页脚以显示页码
\documentclass[twoside,a4paper,10pt]{article}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}%
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\sectionmark}[1]{%
\markright{#1}{}}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyfoot[R]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\leftmark}
\fancyfoot[R]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
由于我安装了该软件包,因此这在我的本地计算机上有效lastpage
。但我需要在服务器上运行 LaTeX,而服务器上没有该软件包lastpage
,也没有安装该软件包的权限。那么有没有办法在没有软件包的情况下实现同样的事情lastpage
?
在这里我上传了完整的代码,但我发现如果有任何 \newpage 命令,它将无法编译,有什么办法可以解决这个问题吗?
\documentclass[twoside,a4paper,10pt]{article}
\usepackage{hyperref}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\sectionmark}[1]{
\markright{#1}{}}
\fancypagestyle{plain}{
\fancyhf{}
\fancyfoot[R]{\thepage/\pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\leftmark}
\fancyfoot[R]{\thepage/\pagenum{LastPage}}
\renewcommand{\headrulewidth}{0.1pt}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
\title{XXX}
\author{YYY}
\maketitle
This is first page
%\newpage % it won't compile if \newpage was there
This is second page
%\newpage % if won't compile if \newpage was there
This is last page
\end{document}
答案1
您有以下几种选择:
运行 latex
lastpage.dtx
创建lastpage.sty
。将其保存在服务器上的工作文件夹中;无需安装它。使用
pageslts
包裹模拟(并扩展)lastpage
。它不仅提供LastPage
参考,还具有VeryLastPage
,以防未处理的浮点数\AtEndDocument
。在文档末尾手动插入标签:
\label{LastPage}
如果有未处理的浮点数,则将其
\label
作为最后一个浮点数的一部分插入。
答案2
您可以尝试将页码引用放在最后一页
\label{mylastpage}
编译两次之后,您应该能够获得正确的页面。
我认为在某些情况下,这可能会给出错误的页码。我会进一步研究一下。