我正在写一份长报告,我想在每个章节、小节等中通过\ref{}
(如果没有超引用,仅仅打印章节名称或编号是不够的)引用该章节、小节等本身,如下例所示。
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\newcommand{\sectionlabel}{}
\newcommand{\newSection}[2]{
\section{#1}
\label{Section:#2}
\renewcommand{\sectionlabel}{Section:#2}}
\newcommand{\sectionref}[1]{Section~\ref{#1}}
\begin{document}
\newSection{Title 1}{Section:1}
\newSection{Title 2}{Section:2}
\subsection{Subsection}
This is Section~\ref{\sectionlabel}.
\end{document}
是否可以直接访问当前部分、子部分等的标签名称,而无需定义命令\newSection
或任何等效命令?更准确地说,我对\thisSectionLabel
可以用作
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\begin{document}
\section{Title 1}
\label{Section:1}
\section{Title 2}
\label{Section:2}
\subsection{Subsection}
This is Section~\ref{\thisSectionLabel}.
\end{document}
并产生与第一个例子相同的输出。
答案1
支持超链接的更自动化的版本:
\documentclass{article}
\usepackage{xcolor}
\usepackage{hyperref}
\makeatletter
\newcommand\refthis{%
\hyperlink\@currentHref\@currentlabel
}
\newcommand\refthistype[1]{%
\begingroup
\Hy@localanchornametrue
\hyper@makecurrent{#1}%
\hyperlink\@currentHref{\csname the#1\endcsname}%
\endgroup
}
\makeatother
\begin{document}
\section{Title 1}
\section{Title 2}
\subsection{Subsection}
This is Subsection~\refthis\ in Section~\refthistype{section}.
\end{document}
这里\refthis
始终指最近的可引用命令,与是否存在无关\label
。