我想在 中的同一页上获得两个不同的页码LaTeX
。例如,我想在页脚中显示总页码,在页眉中显示章节页码。我想知道如何获得这个。任何帮助都将不胜感激。谢谢。
% Document Class
\documentclass[a4paper,12pt]{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage{lastpage}
\fancypagestyle{Special}{%
\fancyhf{}% Clear fancy header/footer
\renewcommand{\headrulewidth}{0.7pt}
\renewcommand{\footrulewidth}{0.7pt}
\fancyhead[r]{Page \thepage\ of \pageref{LastPage}}
\fancyfoot[r]{Page \thepage\ of \pageref{LastPage}}
}
% Begin Document
\begin{document}
\tableofcontents
\mainmatter
\pagestyle{Special}
\chapter{First Chapter}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
% Blind Text
\blindtext[1]
\section{Material \& Method}
% Blind Text
\blindmathpaper
\chapter{Second Chapter}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
% Blind Text
\blindtext[1]
\section{Material \& Method}
% Blind Text
\blindmathpaper
% End Document
\end{document}
答案1
我引入了一个\newcounter{pagecntr}[chapter]
,它将在每个新章节中设置为零。我没有设法将其直接设置为 1。这就是为什么\setcounter{temp}{\thepagecntr}\stepcounter{temp}\thetemp
每次我想打印它时我都需要做丑陋的事情。我想,有更好的方法,但是......没关系,它有效。
最后的技巧是使用everyshi
每页都使我的新计数器增加一的包。
% arara: pdflatex
\documentclass[a4paper,12pt]{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{everyshi}
\newcounter{pagecntr}[chapter]
\EveryShipout{\stepcounter{pagecntr}}
\newcounter{temp}
\fancypagestyle{Special}{%
\fancyhf{}% Clear fancy header/footer
\renewcommand{\headrulewidth}{0.7pt}
\renewcommand{\footrulewidth}{0.7pt}
\fancyhead[r]{Page \setcounter{temp}{\thepagecntr}\stepcounter{temp}\thetemp}
\fancyfoot[r]{Page \thepage\ of \pageref{LastPage}}
}
\begin{document}
\tableofcontents
\mainmatter
\pagestyle{Special}
\chapter{First Chapter}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
\blindtext[1]
\section{Material \& Method}
\blindmathpaper
\chapter{Second Chapter}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
\blindtext[1]
\section{Material \& Method}
\blindmathpaper
\end{document}
注意:我建议写类似的内容,\thetemp\ of Ch.\ \thechapter
因为如果不解释的话,一页上有两个数字会造成混淆。
答案2
这里还有一个建议,scrlayer-scrpage
改为使用fancyhdr
。页面样式scrheadings
的定义中不包含页眉中的章节页码,并且Normal
为此页面样式设置了一个别名。然后,scrheadings
将其克隆到页面样式中,Special
并在页眉中添加章节页码。onbackground
的钩子@everystyle@
用于在每一页上逐一显示章节页码。
\documentclass[a4paper,12pt]{book}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{lastpage}
\newcounter{pagecntr}[chapter]
\setlength\headheight{14.5pt}
\usepackage[
automark,
markcase=upper,
headsepline=.7pt,
footsepline=.7pt
]{scrlayer-scrpage}
\AddToLayerPageStyleOptions{@everystyle@}{onbackground={\stepcounter{pagecntr}}}
\clearpairofpagestyles
\cfoot[\usekomafont{pagenumber}\thepage]{}
\refoot{\pagemark}
\rofoot{\pagemark}
\renewcommand*\pagemark{%
\usekomafont{pagenumber}Page \thepage{} of \pageref{LastPage}%
}
\addtokomafont{pageheadfoot}{\upshape}
\DeclareNewPageStyleAlias{Normal}{scrheadings}
\newpairofpagestyles[scrheadings]{Special}{%
\rohead{Page~\thepagecntr}%
\rehead{Page~\thepagecntr}%
}
\begin{document}
\tableofcontents
\mainmatter
\chapter{First Chapter}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
\blindtext[1]
\section{Material \& Method}
\blindmathpaper
\chapter{Second Chapter}
\pagestyle{Special}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
\blindtext[1]
\section{Material \& Method}
\blindmathpaper
\chapter{Second Chapter}
\pagestyle{Normal}
\section{Introduction}
\subsection{Intro1}
\subsection{Intro2}
\blindtext[1]
\section{Material \& Method}
\blindmathpaper
\end{document}