使用 ifthen 隱藏某些具有頁碼樣式(例如羅馬字體)的頁面上的頁碼

使用 ifthen 隱藏某些具有頁碼樣式(例如羅馬字體)的頁面上的頁碼

在我的文件中,我想使用隱藏頁首/頁尾中的某些內容ifthen(而不是定義新的頁面樣式)。例如,我想隱藏前幾頁的頁碼:

\cfoot{\ifthenelse{\thepage<11}{}{\thepage}}

這將隱藏小於 11 的頁面(即第 1 至 10 頁)中的頁碼,如果頁碼為 11 或以上,則在中間頁腳中顯示頁碼。

然而,這似乎只有在頁碼是阿拉伯語的情況下才有效。假設我想將前五頁的頁碼更改為羅馬字體。然後我的頁面將編號如下:

i, ii, iii, iv, v, 1, 2, 3, 4, 5, 6, ...

這會弄亂我的ifthen條件,因為,例如,對於第一頁,表達式 in\cfoot將計算為以下內容:

\ifthenelse{i<11}{}{\thepage}

並且i<11沒有意義。

我現在的問題是,是否有更好的計數器可以使用,而不是\thepage,如果頁碼是羅馬的,它可以是非數字值?

答案1

\value{page}而不是使用\thepage, 來對頁面計數器的值執行數值測試,而不是對其輸出定義(無論如何在某些情況下都會失敗)。

在我看來,沒有必要使用\ifthenelse. TeX 原語\ifnum在這裡就足夠了。

\documentclass{article}

\usepackage{fancyhdr}

\usepackage{blindtext}
\def\pagethreshold{10}

\fancypagestyle{plain}{%
  \renewcommand{\headrulewidth}{0pt}
  \fancyhf{}
   \cfoot{%
   \ifnum\pagethreshold<\value{page}
     \arabic{page}% or \thepage
    \else
    % Do something else
   \fi
 }
}

\pagestyle{plain}

\begin{document}
\blindtext[100]
\end{document}

更新可能的\pagenumbering用途

\documentclass{article}

\usepackage{fancyhdr}

\usepackage{blindtext}


\newif\ifshowpagenumbers
\showpagenumbersfalse% Don't show them
\def\pagetreshold{10}

\fancypagestyle{plain}{%
  \renewcommand{\headrulewidth}{0pt}
  \fancyhf{}
  \cfoot{%
    \ifshowpagenumbers
    \thepage
    \else
    \ifnum\pagetreshold<\value{page}
    \arabic{page}% or \thepage
    \else
    %
    \fi
    \fi
  }
}

\pagestyle{plain}

\begin{document}
\pagenumbering{roman}
\blindtext[50]
\clearpage
\showpagenumberstrue% Show them!
\pagenumbering{arabic}
\blindtext[50]

\end{document}    

相關內容