对于我的目录,我需要短标题,通常使用 进行格式化,\newline
这样看起来会比较美观。因为\nameref{label}
我需要长标题而不是短标题。是否可以\nameref
使用长标题代替短标题?提前致谢。
\documentclass[headings=optiontotoc]{report}
\usepackage{nameref}
\begin{document}
\tableofcontents
\chapter[Title \newline displayed in toc]{Title displayed in header}\label{test}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. \nameref{test}
\end{document}
答案1
headings=totoc
是 KOMA-Script 选项。也许你可以使用KOMA-Script 类:
\documentclass[headings=optiontotoc]{scrreprt}
\usepackage{nameref}
\begin{document}
\tableofcontents
\chapter[tocentry={Title \newline displayed in toc}]{Title displayed in header}\label{test}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. \nameref{test}
\end{document}
请注意,即使设置了tocentry={...}
选项,如果不应使用短版本作为参考,也必须在可选参数中使用。headings=totoc
如果您加载包hyperref
(而不是仅仅nameref
),那么对章节标题的引用就会变成一个链接。
更新为了标准班
建议标准班带包装hyperref
(或仅nameref
):
\documentclass{report}
\usepackage{hyperref}% loads also nameref
\pdfstringdefDisableCommands{% to avoid the hyperref warning for \newline
\def\newline{\relax}%
}
\makeatletter
\newcommand*\referencetitle[1]{\def\@currentlabelname{#1}}
\makeatother
\begin{document}
\tableofcontents
\chapter[Title \newline displayed in toc]{Title displayed in header}
\referencetitle{Title displayed in header}\label{chap:test}
Some text
\clearpage
Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nameref{chap:test}
\end{document}
结果:
原始答案为了标准班
有标准班您可以加载包zref
:
\documentclass{report}% <- unused (unknown) option removed
\usepackage[user,titleref]{zref}
\begin{document}
\tableofcontents
\chapter[Title \newline displayed in toc]{Title displayed in header}
\ztitlerefsetup{title=Title displayed in header}\zlabel{chap:test}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. \ztitleref{chap:test}
\end{document}
结果:
标准类的附加更新,zref
包括hyperref
:
\documentclass{report}
\usepackage[user,titleref]{zref}
\usepackage{hyperref}
\pdfstringdefDisableCommands{% to avoid the hyperref warning for \newline
\def\newline{\relax}%
}
\newcommand\chapterlabel[1]{\zlabel{#1}\label{#1}}
\newcommand\chapterref[1]{\hyperref[#1]{\ztitleref{#1}}}
\begin{document}
\tableofcontents
\chapter[Title \newline displayed in toc]{Title displayed in header}
\ztitlerefsetup{title=Title displayed in header}\chapterlabel{chap:test}
Some text
\clearpage
Lorem ipsum dolor sit amet, consectetur adipiscing elit. \chapterref{chap:test}
\end{document}