在我的文字中我有一些自定义的内容,例如
\begin{definition} (say this is def. 2)
\begin{itemize}
\item[2.1] foo
\item[2.2] bar
\end{itemize}
\end{definition}
(some plaintext)
\begin{definition} (say this is def. 3)
\begin{itemize}
\item[3.1] foo
\item[3.2] bar
\end{itemize}
\end{definition}
等等。
你意识到这是一个坏主意,此时你友好的审阅者建议第 1 章中的 blabla。(虽然再也没有使用过)也应该得到这种处理。哎哟,我们开始重命名吧。
显然,通过巧妙使用枚举,这应该是完全自动化的。(请注意,我的所有定义都分散在文本中,因此我不能只在它们周围编写一个枚举块。)因此,LaTeX 将从定义(由 提供amsthm
)环境中获取计数器变量,从枚举环境中添加一个点和计数器变量,并将其用作项目标签。顺便说一下,我的 documentclass 是llncs
。
如果你只能轻松完成 3a、3b、3c,那也是可以接受的。
答案1
我知道您使用了llncs
文档类,它提供了自己对definition
环境的定义。(双关语。)
我建议您使用该enumitem
包创建一个定制的枚举类环境,如下defenum
例所示,definition
仅供在环境内使用。观察 、 的使用\upshape
,以确保合数3.1
、3.2
等作为枚举列表的结构元素被区分出来,而不是作为运行文本的一部分出现。
\documentclass{llncs}
% llncs provides its own 'definition' environment
% Create a bespoke enumerate-like environment:
\usepackage{enumitem}
\newlist{defenum}{enumerate}{1}
\setlist[defenum]{label=\upshape\thedefinition.\arabic*}
\begin{document}
\addtocounter{definition}{2} % just for this example
\begin{definition}[Some big definition] Consider:
\begin{defenum}
\item foo \label{item:defbig:1}
\item bar
\end{defenum}
\end{definition}
According to item \ref{item:defbig:1}, \dots
\end{document}