![\@abspage@last не может набрать число в заголовке](https://rvso.com/image/449626/%5C%40abspage%40last%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%BD%D0%B0%D0%B1%D1%80%D0%B0%D1%82%D1%8C%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE%20%D0%B2%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%B5.png)
Я попробовал набрать общее количество страниц в правом заголовке с помощью \@abspage@last
pagestyle . Вместо количества печатается fancy
текст . Почему? И как с этим бороться?abspage@last
МВЭ:
\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\rhead{Page \thepage\ of \makeatletter\@abspage@last\makeatother}
\begin{document}
First page:\\
total pages are: \@abspage@last\\ % typeset abspage@last. Why not give error message?
total pages are: \makeatletter\@abspage@last\makeatother % typeset the right number
\clearpage
Second page
\clearpage
Third page
\end{document}
решение1
Тебе нужно\makeatletter
вокруг \rhead{...}
, не внутри, но можно сделать лучше.
\@abspage@last
«Официального» интерфейса для использования в документе не существует , в основном потому, что он предназначен не для сохранения номера последней страницы, а для сохранения общего количества страниц, включая страницы с другой схемой нумерации.
Если вы не меняете схему нумерации, вы можете использовать ее, предварительно определив свой собственный интерфейс.
\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\makeatletter
\newcommand{\lastpagenumber}{\@abspage@last}
\makeatother
\pagestyle{fancy}
\fancyhf{}
\rhead{Page \thepage\ of \lastpagenumber}
\begin{document}
First page:
\clearpage
Second page
\clearpage
Third page
\end{document}
Значение по умолчанию — 1073741823, которое вы получите, если файл .aux
еще не существует.
Если вы хотите получить предупреждение о необходимости повторного запуска, вы можете проверить, \@abspage@last
равно ли \maxdimen
:
\documentclass[a4paper]{article}
\usepackage{fancyhdr}
\makeatletter
\newcommand{\lastpagenumber}{%
\ifnum\@abspage@last=\maxdimen
\@lastpagewarning
\else
\@abspage@last
\fi
}
\newcommand{\@lastpagewarning}{%
\@latex@warning@no@line{Could not determine last page number, rerun LaTeX}%
??\gdef\@lastpagewarning{??}%
}
\makeatother
\pagestyle{fancy}
\fancyhf{}
\rhead{Page \thepage\ of \lastpagenumber}
\begin{document}
First page:
\clearpage
Second page
\clearpage
Third page
\end{document}
Если .aux
файл отсутствует или по какой-то причине \@abspage@last
еще не определен, вы получите
LaTeX Warning: Could not determine last page number, rerun LaTeX.
Конечно, это не сработает, если в вашем документе 1073741823 страниц, но…