下面的代码生成
我想知道是否可以在子节标题上将子节显示为 i、ii 等(因为当它们显示时,它们属于哪个节就一目了然了),但在我引用它们时则显示为 1.i、1.ii 等。(例如,这样读者就可以区分 1.i 和 2.i。)
可能性:
- 当我引用它时,只需手动输入节号。这是最糟糕的,因为它对重新编号节不可靠。
- 找到一种方法来存储 的节号
Fruit Section
,并在引用时使用它。这没问题,但对于更改哪个节Apples
是其中的一部分,它不够稳定。 - 在 中
Apples
,以某种方式获取当前部分,存储它,然后引用它。这很可靠,但每次我想进行这样的引用时都必须这样做。 - 最好一劳永逸地解决这个问题。
。
\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}
看到结果后,我可能不会这样做,特别是如果小节可以更长的话,并且还会在标题中包含小节的节号。