这与如何将 \pageref{foo} 用作数字?但略有不同:
\documentclass{scrreprt}
\usepackage{blindtext}
\renewcommand*\thepage{A\arabic{page}}
%This type of pagenumbering is required by the customer
\begin{document}
This document consist of \pageref{LastPage} pages.\\
%Needed in this case: "This document consist of 4 pages."
%(Length of document varies each time of course)
\blindtext[15]
\label{LastPage}
\end{document}
我需要一种方法来将例如“A4”转换为“4”,而不会破坏文档中页码的格式。我尝试使用 \StrSubstitute,但失败了,因为它确实尝试替换 \pageref 命令中的某些内容,而不是使用其值“A4”执行操作。我还尝试了所有建议的解决方案如何将 \pageref{foo} 用作数字?但没有成功。
您将如何解决这个问题?我似乎无法正确理解如何从 \pageref 读取值并使用它(即使用 \StrSubstitute 消除“A”)。
任何帮助都将不胜感激。非常感谢!
答案1
附带totpages
包装:
\documentclass{scrreprt}
\usepackage{blindtext}
\renewcommand*\thepage{A\arabic{page}}
\usepackage{totpages}
%This type of pagenumbering is required by the customer
\begin{document}
This document consist of \ref{TotPages} pages.\\
%Needed in this case: "This document consist of 4 pages."
%(Length of document varies each time of course)
\blindtext[15]
\label{LastPage}
\end{document}
减去标题页:
\documentclass{scrreprt}
\usepackage{blindtext}
\renewcommand*\thepage{A\arabic{page}}
\usepackage{totpages}
\begin{document}
\addtocounter{TotPages}{-1}
This document consist of \ref{TotPages} pages.
\blindtext[15]
\end{document}
答案2
不要重新定义\thepage
但是\pagemark
:
\documentclass{scrreprt}
\usepackage{blindtext}
\renewcommand*{\pagemark}{\usekomafont{pagenumber}{A\thepage}}
\begin{document}
This document consist of \pageref{LastPage} pages.
\blindtext[15]
\label{LastPage}
\end{document}