为什么这个简单的条件代码在 tufte-book 类中不起作用?

为什么这个简单的条件代码在 tufte-book 类中不起作用?

这是后续问题如果则否则奇数页/偶数页

为什么这个简单的条件代码在课堂上不起作用tufte-book?它在每个页面上都显示Even!但它在课堂上运行良好book

\documentclass{tufte-book}
\usepackage{ifthen}
\newcounter{mycount}

\begin{document}
\noindent\whiledo{\themycount<130}{%
  \label{mylabel\themycount}%
  \ifthenelse{\isodd{\pageref{mylabel\themycount}}}%
    {Odd\\}%
    {Even\\}%
  \stepcounter{mycount}%
}
\end{document}

答案1

这样比较好,但并不完美——页面的第一次检查总是错误的!

OP 不起作用的原因是\pageref不可扩展,即其输出不能用于\ifthenelse或任何其他\if....应检查数字的条件,因此输出分支总是到 false branch,即Even

\getpagerefnumber但是,从refcount包中可以扩展。

\documentclass{tufte-book}
\usepackage{ifthen}
\newcounter{mycount}
\usepackage{refcount}

\begin{document}
\noindent\whiledo{\themycount<130}{%
  \refstepcounter{mycount}%
  \label{mylabel\number\value{mycount}}%
  \ifodd\getpagerefnumber{mylabel\number\value{mycount}}
  Odd

  \else

  Even
  \fi
}
\end{document}

答案2

\documentclass{tufte-book}
\usepackage{ifoddpage}
\newcounter{mycount}

\begin{document}
\parindent=0pt
\loop
  \mbox{\checkoddpage
  \ifoddpage Odd \else Even \fi}\\
  \ifnum\themycount<130 \stepcounter{mycount}%
\repeat
\end{document}

相关内容