用罗马数字倒计时的页码

用罗马数字倒计时的页码

我希望页码为降序罗马字体。当我将页码改为罗马字体时,它无法正常工作(取消注释 MWE 中的第 9 行并查看输出)。

梅威瑟:

\documentclass{article}
\textheight1cm
\begin{document}
    1 \newpage 2 \newpage 3
    \newpage
    \setcounter{page}{1}
    \let\oldthepage\thepage
    \renewcommand{\thepage}{\number\numexpr 4-\oldthepage\relax}
%   \renewcommand{\thepage}{\roman{page}}
    iii \newpage ii \newpage i
\end{document}

答案1

\value{page}您应该在计算中使用数值:

\documentclass{article}
\textheight1cm
\begin{document}
    1 \newpage 2 \newpage 3
    \newpage
    \setcounter{page}{1}

    \renewcommand{\thepage}{\romannumeral\numexpr 4-\value{page}\relax}
   
    iii \newpage ii \newpage i
\end{document}

答案2

您可以将页码显示设置为此项,以实现一般的、递减的页码(罗马字体):

\renewcommand{\thepage}{%
  \romannumeral\numexpr
    \ifcsname @abspage@last\endcsname
      \csname @abspage@last\endcsname% Use \@abspage@last if it exists
    \else
      0% Otherwise use 0
    \fi
    -\value{page}+1%
  \relax}

它使用\@abspage@last(自 2020 年 10 月起成为 LaTeX 内核的一部分*)来捕获sabs的绝对值page。由于此值依赖于.aux,因此您必须对总页数的任何更改进行至少两次编译。

*\usepackage{xparse}如果您没有最新的 LaTeX,您可能需要添加您的序言。

相关内容