检查附录中的偶数/奇数页

检查附录中的偶数/奇数页

我有一个命令可以检查标签的页码是奇数还是偶数,使用\ifthenelse{\isodd{\pageref{mylabel}}}...这个命令效果很好。我刚刚遇到一种情况,我尝试在附录中使用相同的命令,但我的命令失败了。

这是因为我改变了附录编号。我使用

\appendix
\pagenumbering{arabic}\renewcommand{\thepage}{A.\arabic{page}}

创建像 A.1、A.2 等的页码。该\isodd命令对所有这些页码都返回 false。

我想要一个命令,能够在两种情况下检查偶数/奇数 - 常规和附录页码。

可能对附录中不同的页码编号方案持开放态度,但它需要与常规页码编号有明显的区别。

编辑:以下是显示我看到的效果的最小代码。在第 3 页上,它显示它知道哪个标签位于偶数/奇数页上。在第 6 页上,它错误地显示两个标签都在偶数页上。

\documentclass{book}
\usepackage{ifthen}
\newcommand{\pagecheck}[1]{\ifthenelse{\isodd{\pageref{#1}}}{ The label is on an odd page. }{ The label is on an even page. }}
\begin{document}
\section{One}\label{firstsection}
\clearpage
\section{Two}\label{secondsection}
\clearpage
\pagecheck{firstsection}\pagecheck{secondsection}
\clearpage
\appendix
\pagenumbering{arabic}\renewcommand{\thepage}{A.\arabic{page}}
\section{Appendix A}\label{appA}
\clearpage
\section{Appendix B}\label{appB}
\clearpage
\pagecheck{appA}\pagecheck{appB}
\end{document}

答案1

此解决方案假设.数字前面有一个单数(当不是整数时)。

顺便说一句,如果你想确定当前页面是奇数还是偶数,可以使用 ifoddpage 包。它使用\arabic{page}而不是\thepage

\documentclass{book}
\usepackage{ifthen}
\usepackage{refcount}% or hyperref
\usepackage{xstring}
\newcommand{\pagecheck}[1]{\edef\mystring{\getpagerefnumber{#1}}%
  \IfInteger{\mystring}{}{\StrBehind{\mystring}{.}[\mystring]}%
  \ifthenelse{\isodd{\mystring}}{ The label is on an odd page. }{ The label is on an even page. }}
\begin{document}
\section{One}\label{firstsection}
\clearpage
\section{Two}\label{secondsection}
\clearpage
\pagecheck{firstsection}\pagecheck{secondsection}
\clearpage
\appendix
\pagenumbering{arabic}\renewcommand{\thepage}{A.\arabic{page}}
\section{Appendix A}\label{appA}
\clearpage
\section{Appendix B}\label{appB}
\clearpage
\pagecheck{appA}\pagecheck{appB}
\end{document}

相关内容