引用部分标题

引用部分标题

关于如何引用,已经有很好的答案了章节标题; 和章节标题和章节编号

我想要做的是使用标题的一部分;而不是整个标题。

\documentclass{book}
\usepackage{hyperref}
\begin{document}
\chapter{Introduction: this is the first theory}
\label{intro}
In the  \nameref{intro}...
\end{document}

我想要“在介绍”而不是“在简介:这是第一个理论“。

答案1

如果不应该使用命令的可选参数\chapter而是使用“任何”其他自由文本,则有一些方法,例如重新定义\@currentlabelname\nameref继续使用。

我通过强大的包为名为和zref的新命令 提供了一种方法,并建立了一个新的标签属性并具有更多的灵活性。\labelshort[optional text]{labelname}\nameshortrefshorttitle

使用可选参数\nameshortref添加更多解释性文字或正确的语法。

\documentclass{book}
\usepackage{xparse}
\usepackage[user,hyperref]{zref}
\usepackage{hyperref}

\makeatletter
\providecommand{\@currentshorttitle}{}
\zref@newprop{shorttitle}{\@currentshorttitle}
\zref@addprop{main}{shorttitle}

\NewDocumentCommand{\labelshort}{om}{%
  \begingroup
  \IfValueT{#1}{%
    \renewcommand{\@currentshorttitle}{#1}%
    \zlabel{#2}%
  }%
  \endgroup
  \label{#2}%
}

\NewDocumentCommand{\nameshortref}{O{}m}{%
  \zref@ifrefundefined{#2}{%
  }{%
    \hyperlink{\zref@extract{#2}{anchor}}{#1\zref@extract{#2}{shorttitle}}%
  }%
}

\begin{document}
\chapter{Introduction: this is the first theory}
\labelshort[Introduction]{intro}

\section{Foo section}\labelshort[Foo]{foosect}

\clearpage

See \nameshortref[In the ]{intro} or \nameref{intro} or \nameshortref[in the ]{foosect}
\end{document}

在此处输入图片描述

答案2

\chapter宏采用可选参数,用于代替目录和参考文献中的正确标题(用于打印)。因此,要打印\nameref{intro}Introduction只需提供这个简短标题作为可选参数:

\documentclass{book}
\usepackage{hyperref}
\begin{document}
\chapter[Introduction]{Introduction: this is the first theory}
\label{intro}
In the  \nameref{intro}...
\end{document}

在此处输入图片描述

相关内容