是否可以\nameref
不仅显示章节的标题,还显示其编号?
\section{First Section}
\label{sec:some_sec}
\subsection*{Unnumbered subsection}
\label{sec:subsec}
[...]
As we defined in section \nameref{sec:some_sec}, yada yada yada, see section \nameref{sec:subsec}
正常情况下\nameref
我会得到:
“正如我们在第一节中定义的,等等等等,请参阅未编号的小节”
我想要的是数字的组合(如\autoref
}和部分名称,并且(如果可能)未编号的子部分应该继承父部分的编号:
“正如我们在第一节第一部分中所定义的,等等等等,请参阅第一节未编号的小节”
答案1
如何定义一个新命令\fullref
:
\documentclass{article}
\usepackage[colorlinks=true]{hyperref}
% Original definition
% \newcommand\fullref[1]{\autoref{#1} \nameref{#1}} % Two links
% Updated definition, see explanation below
\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}} % One single link
\begin{document}
\section{First Section}
\label{sec:some_sec}
\subsection*{Unnumbered subsection}
\label{sec:subsec}
[...]
As we defined in \fullref{sec:some_sec}, yada yada yada, see \fullref{sec:subsec}
\end{document}
更新
上面的定义\fullref
产生了两个链接,一个是\autoref
,另一个是\nameref
。Heiko Oberdiek 建议使用以下定义将两者合并为一个链接:
\newcommand*{\fullref}[1]{\hyperref[{#1}]{\autoref*{#1} \nameref*{#1}}}
答案2
从@herr-k的回答开始,我更进一步,定义了四 (4) 个新命令:\secref
,\subsecref
,\subsubsecref
和\parref
。
\newcommand*{\secref}[1]{\hyperref[{#1}]{Specification \ref*{#1}, \nameref*{#1}}}
\newcommand*{\subsecref}[1]{\hyperref[{#1}]{Section \ref*{#1}, \nameref*{#1}}}
\newcommand*{\subsubsecref}[1]{\hyperref[{#1}]{Section , \nameref*{#1}}}
\newcommand*{\parref}[1]{\hyperref[{#1}]{Section \ref*{#1}, \nameref*{#1}}}
这样做可以让我自定义文档每个级别的超链接文本的显示方式。
答案3
要删除section
链接文本:将 更改\autoref
为\ref
。
IE:\newcommand*{\fullref}[1]{\hyperref[{#1}]{\ref*{#1} \nameref*{#1}}} % One single link