我如何从这个布尔命令中排除页面?

我如何从这个布尔命令中排除页面?

我使用的代码来自Harish Kumar 对这个问题的精彩回答创建指向目录的链接。但是,我想对其进行修改,以便链接不会出现在前两页。

我尝试使用该\everypage包创建一个钩子,以便从函数中排除前两页,但我不确定如何嵌套该钩子以适应 \ifthenelse。我尝试以各种组合方式组合一个钩子,但每次都导致编译错误。

下面是代码,我再次从之前链接的优秀答案中提取了它:

\documentclass{article}
\usepackage{blindtext}
\usepackage{eso-pic}
\usepackage{hyperref}
\usepackage{ifthen}
\newboolean{linktoc}
\setboolean{linktoc}{true}  %%% uncomment to show answers properly
%\setboolean{linktoc}{false}  %%% comment to show answers properly

\newcommand\AtPageUpperRight[1]{\AtPageUpperLeft{%
 \put(\LenToUnit{\paperwidth},\LenToUnit{-0.3\paperheight}){#1}%
 }}%
\newcommand\AtPageLowerRight[1]{\AtPageLowerLeft{%
 \put(\LenToUnit{\paperwidth},\LenToUnit{0.3\paperheight}){#1}%
 }}%

\ifthenelse{\boolean{linktoc}}%
{%
\AddToShipoutPictureBG{%
   \AtPageUpperRight{\put(-70,0){\hyperref[toc]{Go to TOC}}}
   \AtPageLowerRight{\put(-70,0){\hyperref[toc]{Go to TOC}}}
    }%
}%
{}%


\begin{document}
  \tableofcontents\label{toc}
  \Blinddocument
\end{document}

(我对使用条件句还比较陌生,所以如果我的标题或问题使用了错误的术语,我深感抱歉——如果是这样,请告诉我,以便我可以编辑它并使我的问题更清楚)

答案1

您可以根据计数器的值进行调节page,因为您在发货时添加内容(当计数器page正确时):

在此处输入图片描述

\documentclass{article}

\usepackage{blindtext}
\usepackage{eso-pic,hyperref}

\newif\iflinktoc
\linktoctrue%%% uncomment to show answers properly
%\linktocfalse%%% comment to show answers properly

\newcommand\AtPageUpperRight[1]{\AtPageUpperLeft{%
  \put(\LenToUnit{\paperwidth},\LenToUnit{-0.3\paperheight}){#1}%
}}%
\newcommand\AtPageLowerRight[1]{\AtPageLowerLeft{%
  \put(\LenToUnit{\paperwidth},\LenToUnit{0.3\paperheight}){#1}%
}}%

\newcommand{\addlinktotoc}{\hyperref[toc]{Go to ToC}}
\iflinktoc
  \AddToShipoutPictureBG{%
    \ifnum\value{page}<3\else
      \AtPageUpperRight{\put(-70,0){\addlinktotoc}}%
      \AtPageLowerRight{\put(-70,0){\addlinktotoc}}%
    \fi
  }%
\fi

\begin{document}

\tableofcontents\label{toc}
\Blinddocument

\end{document}

我已经不再使用ifthen, 基于该包为何ifthen过时了?如何跟上软件包并知道哪些已经过时了?

相关内容