私の文書では、ヘッダー/フッターから特定の項目を非表示にしたいのですが、ifthen
(新しいページ スタイルを定義するのではなく) たとえば、最初の数ページのページ番号を非表示にしたいとします。
\cfoot{\ifthenelse{\thepage<11}{}{\thepage}}
これにより、11 未満のページ (つまり、ページ 1 から 10) のページ番号は非表示になり、ページ番号が 11 以上の場合は中央のフッターにページ番号が表示されます。
ただし、これはページ番号がアラビア数字の場合にのみ機能するようです。最初の 5 ページのページ番号をローマ数字に変更するとします。その場合、ページ番号は次のように付けられます。
i, ii, iii, iv, v, 1, 2, 3, 4, 5, 6, ...
これにより、条件が台無しになりますifthen
。たとえば、最初のページでは、式は\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}