指定參考名稱

指定參考名稱

請參閱下面的 MWE。我想實現這一點,將\nameref{c}列印為Appendixnot as Some 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}

請注意,由於某些原因我想使用\renewcommand\thechapter{}而不是\chapter*{...}plus \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}

PS:這也適用於\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:第三個變體是因為問題改變了。

的名稱 title\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}

相關內容