automático \texorpdfstring para \ref en marcadores pdf (títulos de sección)

automático \texorpdfstring para \ref en marcadores pdf (títulos de sección)
\section{Proof of Theorem~\ref{thm:main}}

no produce el marcador de pdf correcto (usando el hyperrefpaquete).

\section{Proof of \texorpdfstring{Theorem~\ref{thm:main}}{Theorem 3.1.7}}

daría el resultado deseado (\texorpdfstring y configuración de encabezado), pero como " 3.1.7" está codificado, tengo que cambiar esta línea de código cada vez que reorganizo mi texto.

Entiendo que muchas fórmulas matemáticas no se pueden usar como cadenas de pdf (marcadores de pdf) ya que no tienen una representación Unicode (Agregue automáticamente \texorpdfstring para el modo matemático en los títulos de las secciones).

Pero el "Teorema 3.1.7" sólo contiene símbolos ASCII simples. Entonces, al menos en teoría, debería ser posible implementar una solución automática para esto.

Idealmente me gustaría tener un código que me permita simplemente escribir:

\section{Proof of \Cref{thm:main}}

(usando el cleverefpaquete, pero una solución \refya sería muy útil también)

Ejemplo:

\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\newtheorem{theorem}{Theorem}[section]


\begin{document}

    \begin{theorem}\label{thm:main}
        text
    \end{theorem}

many pages

\section{Proof of \Cref{thm:main}}  
\end{document}

(este código no proporciona los marcadores de pdf correctos)

(PD: creo que sería genial incluir dicho código en hypperrefo en el cleverefpaquete)

Respuesta1

Puedes usar la versión destacada de \ref:

\documentclass{article}
\newtheorem{theorem}{theorem}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{Proof of Theorem~\texorpdfstring{\ref{thm:main}}{\ref*{thm:main}}}
\begin{theorem}
  \label{thm:main} some theorem
\end{theorem}
\end{document}

Respuesta2

@Phelype Oleinik vinculado a una muy buena soluciónhttps://tex.stackexchange.com/a/485979/128042

\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\newtheorem{theorem}{Theorem}[section]
\usepackage{crossreftools}

\pdfstringdefDisableCommands{%
    \let\Cref\crtCref
    \let\cref\crtcref
}
\begin{document}

    \begin{theorem}\label{thm:main}
        text
    \end{theorem}

many pages

\section{Proof of \Cref{thm:main}}  
\end{document}

Esta solución a la pregunta diferente.Ocultar enlaces de Cleveref en el título de la secciónResponde perfectamente a esta pregunta.

La solución de Ulrike Fischerhttps://tex.stackexchange.com/a/504969/128042es una gran alternativa si no puedes utilizar el crossreftoolspaquete.

información relacionada