Como fazer referência a um número de teorema no cabeçalho de uma página?

Como fazer referência a um número de teorema no cabeçalho de uma página?

Eu gostaria de usar oheadings estilo de páginadelivro de memórias, mas o LaTeX reclama da falta de referências devido a algumas seções nomeadas como Proof of Theorem~\ref{theorem_label}. Existe uma maneira de corrigir isso além de codificar o número do teorema por meio dos argumentos opcionais do \sectioncomando?

Atualização 1:Parece que o culpado é ohiperrefpacote. Aqui está um exemplo mínimo de trabalho; observe que \clearpagesão necessários para forçar a criação de uma página com a referência no cabeçalho, caso contrário o documento será compilado sem problemas.

\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}

Ainda estou perdido, no entanto. A única coisa que encontro no manual dolivro de memóriasé esse omemhfixcpacote é necessário para corrigir incompatibilidades comhiperref, que é carregado automaticamente. No entanto, mesmo carregá-lo explicitamente não resolve o problema.

Atualização 2:O problema parece ser devido às letras maiúsculas do rótulo. De alguma formahiperrefdeturpa a \uppercaseheadsmacro delivro de memórias, que é definido usando \MakeTextUppercasedecaixa de texto. Como solução alternativa, pode-se usar \nouppercaseheads, embora pareça uma solução abaixo do ideal.

Responder1

Infelizmente, o problema é devido a um bug nohiperref. Existem pelo menos duas soluções possíveis que preservam a aparência geral do headingsestilo de página:

  1. Use títulos em versalete:
\nouppercaseheads           % Disable automatic capitalisation
\pagestyle{headings}
\makeevenhead{headings}{\thepage}{}{\slshape\scshape\leftmark}
\makeoddhead{headings}{\slshape\scshape\rightmark}{}{\thepage}
  1. Conforme sugerido por @barbarabeeton nos comentários, use rótulos em letras maiúsculas onde o erro ocorre.

informação relacionada