%20.png)
\section{Proof of Theorem~\ref{thm:main}}
не создает правильную закладку PDF (используя пакет hyperref
).
\section{Proof of \texorpdfstring{Theorem~\ref{thm:main}}{Theorem 3.1.7}}
даст желаемый результат (\texorpdfstring и настройка заголовка), но поскольку " 3.1.7
" жестко закодировано, мне приходится менять эту строку кода каждый раз, когда я переставляю текст.
Я понимаю, что многие математические форумы не могут быть использованы в качестве строк PDF (закладок PDF), поскольку они не имеют представления Unicode (Автоматически добавлять \texorpdfstring для math-mode в заголовки разделов).
Но "Теорема 3.1.7" содержит только простые символы ASCII. Так что, по крайней мере, теоретически, должно быть возможно реализовать автоматическое решение для этого.
В идеале я хотел бы иметь код, который позволял бы мне просто написать:
\section{Proof of \Cref{thm:main}}
(используя cleveref
пакет, но решение для \ref
уже было бы очень полезно)
Пример:
\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}
(этот код не дает правильных закладок PDF)
(P.S.: Я думаю, было бы здорово включить такой код в hypperref
или в cleveref
пакет)
решение1
Вы можете использовать отмеченную звездочкой версию \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}
решение2
@Phelype Oleinik дал ссылку на очень хорошее решениеhttps://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}
Это решение другого вопросаСкрыть умные ссылки в заголовке разделатакже прекрасно отвечает на этот вопрос.
Решение Ульрике Фишерhttps://tex.stackexchange.com/a/504969/128042является прекрасной альтернативой, если вы не можете использовать пакет crossreftools
.