我想在页脚中放置指向下一节的链接。我正在使用fancyhdr
和hyperref
。
有趣的是,这是一个家庭作业文件,因此我需要在各个部分之间(以及在各个书之间)跳转,因此编号没有固定的模式。
我希望有一个“设置并忘记”的解决方案,不需要任何维护。
我在下面附上了我的文档的大纲,其中包含 Lipsum 文本。
任何帮助,将不胜感激。
\documentclass[14pt]{extreport}
%\usepackage[utf8]{inputenc}
%\usepackage{amsmath, amsthm, amsfonts, amssymb}
\usepackage[a4paper, total={6.5in, 8.75in}]{geometry}
%\usepackage[mode=buildnew]{standalone}% requires -shell-escape
%\usepackage[dvipsnames]{xcolor}
%\usepackage{tikz}
%\usepackage{cancel}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\thepage}
\fancyfoot[C]{\hyperlink{toc}{\small Table of Contents}}
%\fancyfoot[L] LINK TO PREVIOUS SECTION
%\fancyfoot[R] LINK TO NEXT SECTION
\title{Stack Exchange Question}
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black,
pdftitle=STEC-2500-2 Exercises,
pdfauthor=Neil P,
bookmarksopen=true
}
\begin{document}
\maketitle
\setcounter{tocdepth}{3}%Sets TOC to handle subsubsections (which is where notes and problems are stored.)
\addtocontents{toc}{\protect\hypertarget{toc}{}} %A link to the toc itself
\tableofcontents
\newpage
\chapter{Even More Techniques on Proofs}
\setcounter{chapter}{6}
\setcounter{section}{3}
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{7}
\setcounter{section}{0}
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{0}
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\chapter{Finite and Infinite Sets}
\setcounter{chapter}{9}
\setcounter{section}{0}
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{5}
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{9}
\setcounter{section}{1}
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{3}
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\setcounter{section}{6}
\section{test}
\lipsum[15]
\newpage
\section{test}
\lipsum[15]
\newpage
\end{document}
答案1
根据要求,这里有一个完全自动完成的解决方案。如果你真的不喜欢写,你可以写\mysection
和命令。\mysection*
\advancesec
\documentclass[14pt]{extreport}
%\usepackage[utf8]{inputenc}
%\usepackage{amsmath, amsthm, amsfonts, amssymb}
\usepackage[a4paper, total={6.5in, 8.75in}]{geometry}
%\usepackage[mode=buildnew]{standalone}% requires -shell-escape
%\usepackage[dvipsnames]{xcolor}
%\usepackage{tikz}
%\usepackage{cancel}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{\rightmark}
\fancyhead[R]{\thepage}
\fancyfoot[C]{\hyperlink{toc}{\small Table of Contents}}
\fancyfoot[L]{\hyperlink{\prevlabel}{\contentsname}}
\fancyfoot[R]{\hyperlink{\nextlabel}{\autoref{\nextlabel}}}
\title{Stack Exchange Question}
\usepackage{hyperref}
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black,
pdftitle=STEC-2500-2 Exercises,
pdfauthor=Neil P,
bookmarksopen=true
}
\newcounter{currsec}
\setcounter{currsec}{0}
\newcounter{nextsec}
\setcounter{nextsec}{1}
\newcommand\advancesec{%
\edef\prevlabel{sec:\thecurrsec}%
\addtocounter{currsec}{1}%
\label{sec:\thecurrsec}%
\addtocounter{nextsec}{1}%
\edef\nextlabel{sec:\thenextsec}%
}
\newcommand\prevlink%
{\fancyfoot[L]{\hyperlink{\prevlabel}{\autoref{\prevlabel}}}}
\newcommand\nonextlink{\fancyfoot[R]{}}
\begin{document}
\maketitle
\setcounter{tocdepth}{3}%Sets TOC to handle subsubsections (which is where notes and problems are stored.)
\addtocontents{toc}{\protect\hypertarget{toc}{}} %A link to the toc itself
\tableofcontents\label{sec:0}
\newpage
\chapter{Even More Techniques on Proofs}
\setcounter{chapter}{6}
\setcounter{section}{3}
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{7}
\setcounter{section}{0}
\section{test}\advancesec\prevlink
\lipsum[15]
\newpage
\section{test}
\label{sec:7.2}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{0}
\section{test}\advancesec
\edef\nextsec{sec:1.2}
\lipsum[15]
\newpage
\section{test}\advancesec
\lipsum[15]
\newpage
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\chapter{Finite and Infinite Sets}
\setcounter{chapter}{9}
\setcounter{section}{0}
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{5}
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{9}
\setcounter{section}{1}
\section{test}\advancesec
\lipsum[15]
\newpage
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{chapter}{1}
\setcounter{section}{3}
\section{test}\advancesec
\lipsum[15]
\newpage
\section{test}\advancesec
\lipsum[15]
\newpage
\setcounter{section}{6}
\section{test}\advancesec
\lipsum[15]
\newpage
\section{test}\advancesec\nonextlink
\lipsum[15]
\end{document}
编辑:这首先将上一节的标题设置为目录,直到您将其更改为第二节的节名。(我想您也可以将它们命名为“上一节”和“下一节”。)
它还修复了与 Javier Bezos 交谈时出现的一个问题,我突然想起自己也做过类似的事。本地化包(包括babel
和polyglossia
)可能会\arabic
在当前语言中重新定义。用于\arabic
以编程方式生成标签名称的代码将中断。我更改了代码以\the...
改为使用。