Я хотел бы использоватьheadings
стиль страницыизмемуары, но LaTeX жалуется на отсутствие ссылок из-за некоторых разделов, названных как Proof of Theorem~\ref{theorem_label}
. Есть ли способ исправить это, кроме как жестко закодировать номер теоремы через необязательные аргументы команды \section
?
Обновление 1:Похоже, что виновником являетсягиперрефpackage. Вот минимальный рабочий пример; обратите внимание, что они \clearpage
необходимы для принудительного создания страницы со ссылкой в заголовке, так как в противном случае документ компилируется без проблем.
\documentclass{memoir}
\usepackage{amsthm}
\usepackage{hyperref}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}
\pagestyle{headings}
\begin{document}
\chapter{A theorem}
\begin{theorem}
\label{thm:fermat}
There are no non-trivial integer solutions to $x^n + y^n = z^n$ for $n > 2$.
\end{theorem}
\clearpage
\section{Proof of Theorem~\ref{thm:fermat}}
\clearpage
See Wiles.
\end{document}
Я все еще в растерянности. Единственное, что я могу найти в руководствемемуарызаключается в том, чтоmemhfixcпакет необходим для исправления несовместимости сгиперреф, который загружается автоматически. Однако даже его явная загрузка не решает проблему.
Обновление 2:Проблема, похоже, связана с заглавными буквами в названии. Каким-то образомгиперрефискажает \uppercaseheads
макрос измемуары, который определяется с помощью \MakeTextUppercase
изтекстовый регистр. В качестве обходного пути можно использовать \nouppercaseheads
, хотя это кажется неоптимальным решением.
решение1
К сожалению, проблема возникла из-за ошибки вгиперреф. Существует по крайней мере два возможных решения, которые сохраняют общее ощущение стиля headings
страницы:
- Используйте заголовки с малыми заглавными буквами:
\nouppercaseheads % Disable automatic capitalisation
\pagestyle{headings}
\makeevenhead{headings}{\thepage}{}{\slshape\scshape\leftmark}
\makeoddhead{headings}{\slshape\scshape\rightmark}{}{\thepage}
- Как предложил @barbarabeeton в комментариях, используйте заглавные буквы в заголовках мест, где произошла ошибка.