PDF 북마크의 \ref에 대한 자동 \texorpdfstring(섹션 제목)

PDF 북마크의 \ref에 대한 자동 \texorpdfstring(섹션 제목)
\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"는 하드 코딩되어 있으므로 텍스트를 재정렬할 때마다 이 코드 줄을 변경해야 합니다.

나는 많은 수학적 포럼이 유니코드 표현(섹션 제목에 수학 모드에 대한 \texorpdfstring 자동 추가).

그러나 "정리 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 북마크를 제공하지 않습니다)

hypperref(PS: 이러한 코드를 패키지에 포함하면 정말 좋을 것 같습니다 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}

다른 질문에 대한 이 솔루션섹션 제목에서 Cleveref 링크 숨기기이 질문에도 완벽하게 대답합니다.

울리케 피셔 솔루션https://tex.stackexchange.com/a/504969/128042패키지 를 사용할 수 없는 경우 훌륭한 대안입니다 crossreftools.

관련 정보