如何在页脚中放置指向任意编号的下一节的链接

如何在页脚中放置指向任意编号的下一节的链接

我想在页脚中放置指向下一节的链接。我正在使用fancyhdrhyperref

有趣的是,这是一个家庭作业文件,因此我需要在各个部分之间(以及在各个书之间)跳转,因此编号没有固定的模式。

我希望有一个“设置并忘记”的解决方案,不需要任何维护。

我在下面附上了我的文档的大纲,其中包含 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 交谈时出现的一个问题,我突然想起自己也做过类似的事。本地化包(包括babelpolyglossia)可能会\arabic在当前语言中重新定义。用于\arabic以编程方式生成标签名称的代码将中断。我更改了代码以\the...改为使用。

相关内容