Использование ifthen для скрытия номера страницы на определенных страницах со стилем нумерации страниц, например, римским

Использование ifthen для скрытия номера страницы на определенных страницах со стилем нумерации страниц, например, римским

В моем документе я хочу скрыть определенные элементы из верхних/нижних колонтитулов с помощьюifthen(вместо определения новых стилей страниц). Например, я хотел бы скрыть номер страницы на первых нескольких страницах:

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

Это позволит скрыть номер страницы на страницах, которые меньше 11 (то есть страницы с 1 по 10), и отобразить номер страницы, если номер страницы 11 или больше, в центральном нижнем колонтитуле.

Однако, похоже, это работает только если нумерация страниц арабская. Допустим, я хочу изменить нумерацию первых пяти страниц на римскую. Тогда мои страницы будут пронумерованы следующим образом:

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}    

Связанный контент