在枚举环境中自动引用产品编号

在枚举环境中自动引用产品编号

这是我想要的:

在此处输入图片描述

以下是我想要实现的方法:

就像你有\label\ref命令一样,我希望有类似的东西会自动引用特定的产品编号(我的情况是 1.2.1),而不需要我每次都明确地写出来这将是我正在写的一份大报告的一部分,因此我希望让我的工作不那么繁琐

以下是代码:

\documentclass[]{article}
\usepackage{enumerate}
%opening
\title{}
\author{}

\begin{document}

\begin{enumerate}
\item 1st item 
\begin{enumerate}[{1.}1]
\item 1st nested item
\item 2nd nested item
\begin{enumerate}[{1.2.}1]
\item Useful/Important Information
\end{enumerate}
\end{enumerate}
\item 2nd item
\end{enumerate}

\noindent In this paragraph, I talk a bit about the Useful/Important Information and then reference the item number

\end{document}

答案1

我习惯使用enumitemthan enumerate,因为它较新,并且提供更多自定义功能。作为附加工具,我建议使用cleveref进行巧妙引用,如以下代码所示:

\documentclass{article}
\usepackage{enumitem} %% for effortless customization of enumeration
\usepackage{hyperref} %% Just to provide clickable links
\usepackage{cleveref} %% for clever referencing
\crefdefaultlabelformat{(#2#1#3)}
\begin{document}
\begin{enumerate}
  \item{First item}
  \begin{enumerate}[label=\arabic{enumi}.\arabic*]
    \item{First nested item}
    \item{Second nested item}
    \begin{enumerate}[label=\arabic{enumi}.\arabic{enumii}.\arabic*]
        \item{Useful/important information} \label{item:myitem}
    \end{enumerate}
  \end{enumerate}
  \item{Second item item}
\end{enumerate}

\noindent In this paragraph, I talk a bit about the Useful/Important Information and then reference the item number~(\ref{item:myitem}).

In this paragragh, I talk and the point to some information given in~\cref{item:myitem} (Using cref)

\end{document}

在此处输入图片描述

答案2

enumerate是一个非常古老的软件包,可能正如我在评论中提到的那样,现在最好使用较新的软件包,因为它们提供了更大的灵活性(例如enumerate,比软件包旧得多keyval)。因此,您可能不应该不接受另一个答案,但为了记录...

在 latex 中实现这一点的最简单方法根本不需要使用包,也不必使用可选参数手动修改项目标签。只需声明标签计数器使用完整的点分形式,而不仅仅是最终数字。(即使用一组与通常用于章节和小节的定义类似的定义)

\documentclass[]{article}
\makeatletter
\renewcommand\theenumi{\arabic{enumi}.}
\renewcommand\theenumii{\theenumi.\arabic{enumii}.}
\let\labelenumii\theenumii
\let\p@enumii\@empty
\renewcommand\theenumiii{\theenumii.\arabic{enumiii}.}
\let\labelenumiii\theenumiii
\let\p@enumiii\@empty
\makeatother

%opening
\title{}
\author{}


\begin{document}

\begin{enumerate}
\item 1st item 
\begin{enumerate}
\item 1st nested item
\item 2nd nested item
\begin{enumerate}
\item Useful/Important Information\label{a}
\end{enumerate}
\end{enumerate}
\item 2nd item
\end{enumerate}

\noindent In this paragraph, I talk a bit about the Useful/Important Information and then reference the item number \ref{a}

\end{document}

如果您确实想使用该enumerate包和标记,则需要让它使用完整标签作为参考,而不是添加新的(不同的)前缀。

\documentclass[]{article}
\usepackage{enumerate}
%opening
\title{}
\author{}

\makeatletter

\def\thetolabel#1the{#1label}
\let\p@enumi\thetolabel
\let\p@enumii\thetolabel
\let\p@enumiii\thetolabel
\makeatother

\begin{document}

\begin{enumerate}
\item 1st item 
\begin{enumerate}[{1.}1.]
\item 1st nested item
\item 2nd nested item
\begin{enumerate}[{1.2.}1.]
\item Useful/Important Information\label{a}
\end{enumerate}
\end{enumerate}
\item 2nd item
\end{enumerate}

\noindent In this paragraph, I talk a bit about the Useful/Important Information and then reference the item number \ref{a}

\end{document}

相关内容