引用标签的父级

引用标签的父级

我试图引用标签的父级,以便它输出类似“Section, Subsection”或“Section, Subsection, Subsubsection”的内容。我smartref通过执行以下操作接近目标:

\usepackage{smartref}
\addtoreflist{section}

\newcommand{\breadref}[1]{\sectionref{#1}, \fullref{#1}}

但不幸的是,这只输出了节的编号,而不是节的名称。文档smartref提到了一个\byname选项,但似乎并没有真正提供它的一个工作示例,这使得它很难实现。

这似乎应该是一件容易的事,而且是一件有用的事,特别是如果小节可能会在各节之间移动,从而使得对父母的硬编码引用变得很麻烦。

任何想法,将不胜感激。

麦克风

编辑:

理想情况下,它看起来应该是这样的:

期望输出的草图

答案1

进行一些调整!

但是,您需要使用\sectionlabel部分和\subsectionlabel小节,而不仅仅是\label,因为我们需要添加功能。

\documentclass{article}
\usepackage[byname]{smartref}

\makeatletter
\newcommand{\subsectionlabel}[1]{%
  \label{#1}%
  \@bsphack
  \protected@write\@auxout{}{\string\newparent{#1}{\@currentsectionlabel}}%
  \@esphack
}
\newcommand{\sectionlabel}[1]{%
  \label{#1}%
  \@bsphack\gdef\@currentsectionlabel{#1}\@esphack
}
\newcommand{\newparent}[2]{%
  \global\@namedef{parent@#1}{#2}%
}

\newcommand{\broadref}[1]{%
  \byname{\@nameuse{parent@#1}}, \byname{#1}~(\ref{#1})%
}
\makeatother


\begin{document}

\section{My section}\sectionlabel{sec:mysection}

Some text.

\subsection{My subsection}\subsectionlabel{subsec:mysubsection}

Some text.

\section{Reference section}

This is a reference to the subsection:
\broadref{subsec:mysubsection}

\end{document}

在此处输入图片描述

相关内容