我正在尝试创建一个简单的枚举并为其添加标签,以便我可以访问它。但我得到的唯一返回值是子节的编号。这是我的代码,似乎不起作用。
\begin{enumerate}
\label{eq_prm_1}
\item bla
\item moreBla
\end{enumerate}
有没有可能把这件作品封装成是可以參考嗎?
答案1
听起来你想要的是另一种浮动,比如图形或表格,只不过它不一定是“浮动”。幸运的是,这个float
包可以为你做到这一点。
\usepackage{float}
\newfloat{lablist}{H}{lol}
\floatname{lablist}{List}
上面的内容(在序言中)定义了一个新的浮动环境,lablist
默认情况下,它始终放置在源文本中它出现的准确位置(这就是 的作用H
),并且标记为列表n:在标题中。然后您可以在这些环境中执行任何您想做的事情,例如使用枚举列表。
例子。
\documentclass{article}
\usepackage{multicol}
\usepackage{float}
\newfloat{lablist}{H}{lol}
\floatname{lablist}{List}
\begin{document}
The following are the names of the digits in the Indo-Arabic numeral system, in English:
\begin{lablist}
\setlength\columnseprule{0.3pt}
\begin{multicols}{5}
\begin{enumerate}
\addtocounter{enumi}{-1}
\item zero \item one \item two \item three \item four
\item five \item six \item seven \item eight \item nine
\end{enumerate}
\end{multicols}
\caption{foo}
\label{list:foo}
\end{lablist}
\noindent
Refer to List~\ref{list:foo} whenever confused about the English names of numerals.
\end{document}
答案2
您可以将其封装在另一个枚举环境中:
\begin{enumerate}
\item \label{eq_prm_1}
\begin{enumerate}
\item bla
\item moreBla
\end{enumerate}
\end{enumerate}
为了使其更加复杂,您应该对外部枚举进行样式化,使其标签看起来不同,并且每次使用时都会对其标签进行计数。这可以通过包来完成enumitem
。通常鼓励使用语义命令,因此我们基于枚举定义了一个环境,我们称之为 refenum(用于枚举引用),并将我们想要引用的每个列表粘贴到该环境中。
\documentclass{article}
\usepackage{enumitem}
\usepackage{blindtext}
\newlist{refenum}{enumerate}{1}
\setlist[refenum]{label=(\arabic*),resume}
\usepackage{enumerate}
\begin{document}
\blindtext[1]
\begin{refenum}
\item \label{eq_prm_1}
\begin{enumerate}
\item bla
\item more bla
\end{enumerate}
\end{refenum}
\blindtext[1]
\begin{refenum}
\item \label{eq_prm_2}
\begin{enumerate}
\item bla
\item more bla
\end{enumerate}
\end{refenum}
Compare list~\ref{eq_prm_1} and~\ref{eq_prm_2}.
\end{document}
答案3
考虑到我的评论和您的评论以及您的原始问题,我建议您查看 float 包。它允许您创建一个带有标题的新浮点数来包装您的枚举。