将章节编号放在小节的参考处,但不放在标题中

将章节编号放在小节的参考处,但不放在标题中

下面的代码生成

在此处输入图片描述

我想知道是否可以在子节标题上将子节显示为 i、ii 等(因为当它们显示时,它们属于哪个节就一目了然了),但在我引用它们时则显示为 1.i、1.ii 等。(例如,这样读者就可以区分 1.i 和 2.i。)

可能性:

  1. 当我引用它时,只需手动输入节号。这是最糟糕的,因为它对重新编号节不可靠。
  2. 找到一种方法来存储 的节号Fruit Section,并在引用时使用它。这没问题,但对于更改哪个节Apples是其中的一部分,它不够稳定。
  3. 在 中Apples,以某种方式获取当前部分,存储它,然后引用它。这很可靠,但每次我想进行这样的引用时都必须这样做。
  4. 最好一劳永逸地解决这个问题。

\documentclass{article}
\usepackage{hyperref}
\renewcommand\thesubsection{\roman{subsection}}
\begin{document}
\section{Fruit Section}
\subsection{Apples} \label{Apples-subsec} 
\subsection{Bananas} \label{Bananas-subsec}
\section{Vegetable Section}
\subsection{Kale}
\section{Conclusion}
 As we recall from sections \ref{Apples-subsec} and \ref{Bananas-subsec}, apples and bananas are healthy to eat.
\end{document}

答案1

您可以使用\p@<counter>在引用中实际计数器值之前添加一些内容。引用source2e(第 22.1 条)

\p@foo扩展为计数器 foo 的打印“引用前缀”的宏。执行命令时,任何\ref由计数器 foo 创建的值都会产生扩展。\p@foo\thefoo\label

所以

\makeatletter
\renewcommand*{\p@subsection}{\thesection.}
\makeatother

每当您引用某个小节时,都会添加该节和一个点。

\documentclass{article}
\usepackage{hyperref}
\renewcommand\thesubsection{\roman{subsection}}
\makeatletter
\renewcommand*{\p@subsection}{\thesection.}
\makeatother
\begin{document}
\section{Fruit Section}
\subsection{Apples} \label{Apples-subsec} 
\subsection{Bananas} \label{Bananas-subsec}
\section{Vegetable Section}
\subsection{Kale}
\section{Conclusion}
 As we recall from sections \ref{Apples-subsec} and \ref{Bananas-subsec}, apples and bananas are healthy to eat.
\end{document}

在此处输入图片描述

看到结果后,我可能不会这样做,特别是如果小节可以更长的话,并且还会在标题中包含小节的节号。

相关内容