我曾尝试在目录中的主要作品和附录之间添加“附录”。我也不希望此目录条目显示任何页码。
到目前为止,我已经成功地编写了这样的条目:
\documentclass[11pt,a4paper]{article}
\usepackage{tocstyle}
\usetocstyle{standard}
\settocstylefeature[-1]{pagenumberbox}{\csname @gobble\endcsname}%no page numbers for part
\begin{document}
\tableofcontents
\section{Section in main text}
Bla bla bla...
\clearpage
\appendix
\addcontentsline{toc}{part}{Appendix}%TOC entry without page numbering
\section{First appendix}
Bla bla bla...
\end{document}
这给了我一个符合我要求格式的目录条目。但目录中的超链接指向附录前的最后一页。
我如何制作目录条目以便链接指向附录的第一页?
您对获取我想要的 TOC 条目的更好/更简单的方法有什么建议吗?
答案1
这个技巧就是伪造一个带有空页码的目录行。\addcontentsline
将通过使用中间文件步骤来插入页码.aux
。
\addtocontents{toc}{\protect\contentsline{part}{\appendixname}{}{}}
首先添加行
\@writefile{toc}{\contentsline {part}{Appendix}{}{}}
到.aux
文件,\@writefile
然后命令将向.toc
最后提供正确的行。
请注意\protect
,因为\contentsline
非常脆弱。
\documentclass[11pt,a4paper]{article}
\usepackage{tocstyle}
\usetocstyle{standard}
\settocstylefeature[-1]{pagenumberbox}{\csname @gobble\endcsname}%no page numbers for part
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{Section in main text}
Bla bla bla...
\clearpage
\appendix
\addtocontents{toc}{\protect\contentsline{part}{\appendixname}{}{}}
%\addcontentsline{toc}{part}{Appendix}%TOC entry without page numbering
\section{First appendix}
Bla bla bla...
\end{document}
编辑 带有指向附录开头的明确超链接的版本(在本例中,与第一个附录部分是同一页)
\documentclass[11pt,a4paper]{article}
\usepackage{tocstyle}
\usepackage{blindtext}
\usetocstyle{standard}
\settocstylefeature[-1]{pagenumberbox}{\csname @gobble\endcsname}%no page numbers for part
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{Section in main text}
\blindtext[10]
\clearpage
\hypertarget{appendixstart}{\appendix}% Make a anchor here
\addtocontents{toc}{\protect\contentsline{part}{\protect\hyperlink{appendixstart}{\appendixname}}{}{}}
\section{First appendix}
\blindtext[10]
\end{document}