\pageref
无论您返回哪张幻灯片,链接始终指向幻灯片~0 \pageref
。这似乎是一个反向问题。而且没有幻灯片 0。
我附加了一份 MWE,其中有两张幻灯片来展示该问题。
处理幻灯片的相同代码\documentclass{powersem}
会生成正确的反向引用。但是,我没有使用任何其他幻灯片文档类的选项。
感谢您的帮助。
路易斯· A.
\documentclass{slides}
%\documentclass{powersem}
\usepackage[landscape]{geometry}
\begin{document}
%--------------------------------------------
\begin{slide}{}\centering{\textbf{Title for Slide One}}
\begin{itemize}
\item~\label{slide:this.is.slide.one}
Here I page-referenced Slide-Two using \newline \verb+Slide~\pageref{slide:this.is.slide.two}.+
But I got the wrong page-reference: Slide~\pageref{slide:this.is.slide.two}.\newline
It should read: Slide~2.
\end{itemize}
\end{slide}
%--------------------------------------------
%--------------------------------------------
\begin{slide}{}\centering{\textbf{Title for Slide Two}}
\begin{itemize}
\item~\label{slide:this.is.slide.two}
Here I page-referenced Slide-One using \newline \verb+Slide~\pageref{slide:this.is.slide.one}.+
But I got the wrong page-reference: Slide~\pageref{slide:this.is.slide.one}.\newline
It should read: Slide~1.
\end{itemize}
\end{slide}
%--------------------------------------------
\end{document}
答案1
我希望我没有忽略一些太明显的东西,但据我所知,你不能使用正常的页面计数器slides
,因为——根据包文档——它被设置为零“除非为幻灯片、注释或覆盖放出额外的页面。”因此,在你的情况下\thepage
总是返回 0(而幻灯片编号由 返回\theslide
)。
和宏\label
需要\ref
宏\refstepcounter
。但是包在输出新幻灯片时显然不会调用此宏。因此,我在包代码中插入了这个宏:
\documentclass{slides}
%\documentclass{powersem}
\usepackage{etoolbox}
\newcounter{slidenum}
\patchcmd{\slide}{\stepcounter{slide}}{\stepcounter{slide}\refstepcounter{slidenum}}{}{}
\usepackage[landscape]{geometry}
\begin{document}
%--------------------------------------------
\begin{slide}\label{slide:this.is.slide.one}
\begin{center}\textbf{Title for Slide One}\end{center}
\begin{itemize}
\item
Here I page-referenced Slide-Two using \newline \verb+Slide~\pageref{slide:this.is.slide.two}.+
But I got the wrong page-reference: Slide~\ref{slide:this.is.slide.two}.\newline
It should read: Slide~2.
\end{itemize}
\end{slide}
%--------------------------------------------
%--------------------------------------------
\begin{slide}
\begin{center}\textbf{Title for Slide Two}\end{center}
\begin{itemize}
\item\label{slide:this.is.slide.two}
Here I page-referenced Slide-One using \newline \verb+Slide~\pageref{slide:this.is.slide.one}.+
But I got the wrong page-reference: Slide~\ref{slide:this.is.slide.one}.\newline
It should read: Slide~1.
\end{itemize}
\end{slide}
%--------------------------------------------
\end{document}