ifthen を使用して、ローマンなどのページ番号スタイルで特定のページのページ番号を非表示にする

ifthen を使用して、ローマンなどのページ番号スタイルで特定のページのページ番号を非表示にする

私の文書では、ヘッダー/フッターから特定の項目を非表示にしたいのですが、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}    

関連情報