Итак, я работаю над довольно небольшим документом 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-файл я получил:
Как вы можете видеть в заголовке вверху справа, 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}