我正在尝试在文本中使用枚举。它看起来像这个例子:
“宠物中最常见的是(i)狗、(ii)猫和(iii)兔子。
(i)狗是非常可爱的动物。但是它们需要每天遛几次……[连续的长段落跨越多行](ii) 猫通常被认为是比较容易相处的动物,但是……
[...]”
我想我不需要多次引用每个段落,所以我也可以只输入括号和数字。但是,使用 LaTeX 时只输入“(ii)”似乎不太好。有没有一种更简单、更优雅的方法来像示例中那样进行枚举?
答案1
\documentclass{article}
\usepackage[inline]{enumitem}
\begin{document}
Among pets the most common ones are \begin{enumerate*}[label=(\roman*)]
\item dogs,\label{item:dogs}
\item cats and \label{item:cats}
\item rabbits.\label{item:rabbits}
\end{enumerate*}
\ref{item:dogs} Dogs are very nice animals. However they need to be walked several times a day\ldots [continuous long passage spreading over multiple lines]
\ref{item:cats} Cats are often considered easier animals but\ldots
\end{document}
答案2
使用包的替代解决方案paralist
:
\documentclass{article}
\usepackage{paralist}
\begin{document}
Among pets the most common ones are
\begin{inparaenum}[(i)]
\item dogs,
\item cats and
\item rabbits.
\end{inparaenum}
\begin{enumerate}[(i)]
\item Dogs are very nice animals. However they need to be walked several times a day\ldots [continuous long passage spreading over multiple lines]
\item Cats are often considered easier animals but\ldots
\item \ldots
\end{enumerate}
\end{document}
答案3
我会用不同的方法做这件事。我不会使用列表环境来记录动物名称的第一次出现,而是将其用于主要描述,并使用参考资料来记录初始列表。这样做的一个优点是,如果您忘记实际描述初始列表中的任何动物,TeX 会发出警告。但大多数情况下,这对我来说似乎是更自然的方法,因为您真正想要格式化为列表的是描述。
接下来,我使用enumitem
来定义一个新列表。然后,我animals
为主描述列表定义一个新环境,并为初始列表定义一个新命令。在环境中重新定义\animalref
常规以接受标签(动物组),该标签用于自动设置我们可以在 的定义中引用的标签。结果如下:\item
animals
\animalref
- 环境
animals
需要一个可选参数。如果使用可选参数,其内容基本上会传递给 的enumitem
环境enumerate
。如果您想要更改列表格式,则只需担心这一点。 \item[]{}
之内animals
仅限接受一个可选参数和一个强制参数。可选参数是 的常用可选参数。强制参数是或 之\item
类的标签。dogs
cats
\animalsref{}
接受一个强制参数。此参数旨在与主列表中项目的标签集相对应,例如dogs
或cats
。它将排版相关项目标签,后跟标签本身。因此,您将得到例如“(i) 狗”或“(ii) 猫”。如果您传递主列表中未出现的标签,您将得到问号,例如“?? 兔子”,并且 TeX 将输出警告。
这听起来比实际要复杂得多。
\documentclass{article}
\usepackage{enumitem, xparse, kantlipsum}
\newlist{animalslist}{enumerate}{1}
\setlist[animalslist]{label=(\roman*)}
\global\let\olditem\item
\NewDocumentCommand\animalsitem { o m }{%
\IfNoValueTF{#1}{%
\olditem\label{animals:#2}}{%
\olditem[#1]\label{animals:#2}}%
}
\newenvironment{animals}[1][]{%
\let\item\animalsitem
\begin{animalslist}[#1]%
}{%
\end{animalslist}%
}
\newcommand*\animalsref[1]{\ref{animals:#1} #1}
\begin{document}
Among pets the most common ones are \animalsref{dogs}, \animalsref{cats} and \animalsref{rabbits}.
\begin{animals}
\item{dogs} Some people consider dogs very nice animals. However they need to be walked several times a day and tend to eat your shoes.
\kant[1]
\item{cats} Cats are nicer animals but need to be worshipped several times a day and tend to walk over your keyboard.
\kant[2]
\end{animals}
\end{document}
如您所见,“??”表示我实际上没有记得说任何有关兔子的事情,而猫和狗则得到了相应的标签。编译两次以稳定引用。