在我的文件中,我想使用隱藏頁首/頁尾中的某些內容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}