如何将当前页码存储到 \def 中?

如何将当前页码存储到 \def 中?

这就是我正在做的事情:

\documentclass{article}
\begin{document}
\def\start{\thepage}
some long text for 4-5 pages

Here: \start -- \thepage
\end{document}

我得到:Here 4 -- 4。我期望Here 1 -- 4。我做错了什么?

答案1

获取页码的适当(且可靠)方法是设置并通过文档的其他位置\label提取页码。\refrefcount允许您通过以下方式提取页码\getpagerefnumber(例如,如果您希望执行计算),或者您可以使用\ref前面提到的方法执行此操作:

\documentclass{article}

\usepackage{refcount}
\usepackage{lipsum}

\begin{document}

\label{start}%
\lipsum\lipsum\lipsum\lipsum\lipsum

\label{finish}%
Here: \getpagerefnumber{start} -- \getpagerefnumber{finish}

\end{document}

答案2

Ulrike 的解决方案是最有效的,但为了回答您的问题,这里有一个使用的解决方案\edef

\documentclass{article}
\usepackage{lipsum}
\begin{document}

 \lipsum\lipsum

 \edef\start{\thepage} % mark page 3
 
  Here: \start{} -- \thepage
 
 \lipsum\lipsum
 
  Here: \start{} -- \thepage

\end{document}

定义新计数器的解决方案:

\documentclass{article}
\usepackage{lipsum}
\newcounter{start}
\begin{document}

\lipsum\lipsum

\setcounter{start}{\value{page}}

Here: \thestart{} -- \thepage

\lipsum\lipsum

Here: \thestart{} -- \thepage

\end{document}

相关内容