假设我有不同种类的食物,如下所示嵌套:
1 水果
1.1 苹果
1.2 橙子
2 蔬菜
2.1 番茄
2.2 洋葱
食物的顺序很重要,我不想用名字来指代它们,只想用编号来指代它们。例如,在我的乳胶代码中,我想写一些类似的东西Food \ref{onion}
,然后它会打印食物 2.2。此外,当我后来意识到西红柿实际上是一种水果并将其移到水果列表中时,Food \ref{onion}
会打印食物 2.1。
我该如何设置?我只熟悉章节和方程式的交叉引用。
编辑:该列表是“秘密”的,不应出现在文档中,也就是说,我没有在任何地方开始enumerate
。为了提供一些背景信息,我正在编写一个不能明确提及成分的食谱。该人只会收到标有“食物 1.1”、“食物 1.2”等的食谱和成分盒。
答案1
(在 OP 澄清底层枚举嵌套是“秘密”或“不可见”后完全重写了答案)
像这样?请注意,我已突出显示 的输出\ref{onion}
。
\documentclass{article}
\renewcommand{\theenumii}{\arabic{enumii}} % default is \alph
\makeatletter
\renewcommand\p@enumii{\theenumi.} % prefix to be used in cross-references
\@addtoreset{enumii}{enumi} % reset 'enumii' whenever 'enumi' is incremented
\makeatother
\begin{document}
%% \refstepcounter and \label directives create no visible output
\refstepcounter{enumi} \label{fruit}
\refstepcounter{enumii} \label{apple}
\refstepcounter{enumii} \label{orange}
\refstepcounter{enumii} \label{tomato}% 'tomato' is a fruit...
\refstepcounter{enumi} \label{vegetable}
\refstepcounter{enumii} \label{onion}
\ref{fruit} \ref{apple} \ref{orange} \ref{tomato}
\ref{vegetable} \ref{onion}
\end{document}