引用当前章节、小节

引用当前章节、小节

我正在写一份长报告,我想在每个章节、小节等中通过\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

答案2

section为什么不简单地使用和计数器的当前值subsection

\documentclass{article}
\begin{document}
\section{A section}
This is section \arabic{section}.
\subsection{A subsection}
This is subsection \arabic{section}.\arabic{subsection}
\end{document}

计数器

相关内容