\firstmark на \tableofcontents дает неожиданный результат

\firstmark на \tableofcontents дает неожиданный результат

Итак, я работаю над довольно небольшим документом Latex и не могу объяснить поведение \firstmarkна table of contentстранице.

Скажите мне, если я ошибаюсь, но в моем понимании \firstmarkсодержит заголовок первого раздела на текущей странице. На \tableofcontentsстранице это должно быть CONTENTS, я думаю.

В table of contentзаголовке это становится CONTENTSCONTENTS, а на самой странице это становится просто ничем. CONTENTSСлева от заголовка не имеет значения. Я мог бы легко это удалить, но я просто оставил это там, чтобы получить минимальный источник.

Я получил этот небольшой исходный .tex-файл, воспроизводящий это поведение:

\documentclass{article}

\usepackage{fancyhdr}

\pagestyle{fancy}

\fancyhead[R]{\firstmark}

\begin{document}
    \tableofcontents

    foo

    \firstmark

    bar
\end{document}

И вот какой PDF-файл я получил: PDF, который я получил после компиляции указанного исходного .tex

Как вы можете видеть в заголовке вверху справа, CONTENTSCONTENTSвместо одного CONTENTSи там, где вы должны видеть CONTENTSмежду fooи bar, нет абсолютно ничего.

Я также скопировал этот источник вОснова латекса, чтобы исключить возможность того, что это ошибка на моем компьютере.

Может ли кто-нибудь объяснить мне такое поведение?

решение1

Не используйте низкий уровень \firstmarkс latex. В latex метка разделена на две части, и доступ к левой и правой части осуществляется с помощью \leftmarkи \rightmark. Метки следует использовать только в верхнем и нижнем колонтитулах, а не в тексте, поскольку они надежны только при отправке страницы.

\documentclass{article}

\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{Leftmark: \leftmark, rightmark: \rightmark, firstmark: \firstmark}

\begin{document}
 \markboth{AAAA}{BBBB}

 some text
\end{document}

введите описание изображения здесь

Связанный контент