참조 이름 지정

참조 이름 지정

아래 MWE를 참조하세요. 나는 그것을 달성하고 싶습니다. 는 가 아닌 \nameref{c}것으로 인쇄됩니다 .AppendixSome Stuff

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}
\begin{document}
\chapter{First Chapter}
\lipsum[1]

We refer to the \nameref{c}.

\lipsum

\begin{appendices}

\renewcommand\thechapter{}
\chapter{Some stuff}\label{c}
\lipsum
\end{appendices}
\end{document}

어떤 이유로 나는 plus \renewcommand\thechapter{}대신 사용하고 싶습니다 .\chapter*{...}\addcontentsline...

이건 좀 특별한 상황인 것 같습니다. 그러나 다음 MWE는 매우 자주 발생하는 애플리케이션을 보여줍니다.

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}
\begin{document}
\chapter{First Chapter}
\lipsum[1]

This is explained in the next chapter. 
%I want to set a link on "next chapter" which points to the second chapter

\lipsum[2]

\chapter{Second Chapter}
\lipsum[3]
\end{document}

주의: 원래 질문을 다시 작성했습니다. 이제는 훨씬 더 요점이 명확해지고 다른 사람들에게도 더 흥미로울 수 있습니다.

답변1

\nameref문제가 해결되면 아래 예제도 재정의 없이 작동하며 \thechapter목차와 책갈피에 항목을 추가합니다.

\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{numbered}

\begin{document}
\tableofcontents

\chapter{First Chapter}
\lipsum[1]

We refer to the \nameref{chap:second}.

\lipsum

\cleardoublepage
\addcontentsline{toc}{chapter}{Second Chapter}
\chapter*{Second Chapter}
\label{chap:second}
\lipsum
\end{document}

\renewcommand*{\thechapter}{}추신: 솔루션에서 해당 장의 제목이 참조되기 때문에 이는 에서도 작동합니다 . 나는 당신이 장 제목 위의 장 시작 부분에 숫자 없이 "Chapter"라는 문자열을 원한다고 가정하고 그럼에도 불구하고 번호 매기기는 계속됩니다.

\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{numbered}

\begin{document}
\tableofcontents

\chapter{First Chapter}
\lipsum[1]

We refer to the \nameref{chap:second}.

\lipsum

\renewcommand*{\thechapter}{}
\chapter{Second Chapter}
\label{chap:second}
\lipsum
\end{document}

PPS: 질문이 변경되었기 때문에 세 번째 변형입니다.

의 이름 제목은 \nameref내부적으로 에 저장됩니다 \@currentlabelname. 이는 다음 에서 읽을 새 문자열로 재정의될 수 있습니다 \label.

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}

\makeatletter
\newcommand*{\SetNameTitle}[1]{%
  \def\@currentlabelname{#1}%
}
\makeatother

\begin{document}
\chapter{First Chapter}
\lipsum[1]

We refer to the \nameref{c}.

\lipsum

\begin{appendices}

\renewcommand\thechapter{}
\chapter{Some stuff}
\SetNameTitle{\appendixname}
\label{c}
\lipsum
\end{appendices}
\end{document}

그리고 참조 텍스트가 대신 대체되는 변형입니다.

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}

\begin{document}
\chapter{First Chapter}
\lipsum[1]

We refer to the \hyperref[c]{\appendixname}.

\lipsum

\begin{appendices}

\renewcommand\thechapter{}
\chapter{Some stuff}\label{c}
\lipsum
\end{appendices}
\end{document}

답변2

가능한 해결책은 다음과 같습니다.

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}
\begin{document}
\chapter{First Chapter}
\lipsum[1]

We refer to the \hyperlink{c}{Appendix}.

\lipsum

\begin{appendices}

\renewcommand\thechapter{}

\cleardoublepage
\phantomsection\hypertarget{c}{}
\chapter{Some stuff}\label{c}
\lipsum

\end{appendices}

\end{document}

... 두 번째 MWE의 경우:

\documentclass{book}
\usepackage{lipsum}
\usepackage{appendix}
\usepackage{hyperref}
\begin{document}
\chapter{First Chapter}
\lipsum[1]

This is explained in the \hyperlink{c}{next chapter}. 
%Now the link points to the second chapter and is printed as "next chapter"

\lipsum[2]

\cleardoublepage
\phantomsection\hypertarget{c}{}
\chapter{Second Chapter}
\lipsum[3]
\end{document}

관련 정보