在同一行添加第二个枚举项?

在同一行添加第二个枚举项?

我正在编写一个包含大量包含简短枚举项的列表的文档,并且我希望能够 [手动] 将多个项放在一行上。因此,例如,我想说

  \begin{enumerate}
    \item Goes on first line.
    \samelineitem Also goes on first line.
    \item Goes on second line.
  \end{enumerate}

我很高兴自己做出一行/两行的决定(事实上,我更喜欢这样),所以我所寻找的只是一个宏,它可以确定当前的枚举计数器,对水平间距做正确的处理,并打印该项目。如果它可以与枚举、描述和逐项列表(或一般列表)一起使用,那就太好了。(对于描述列表,我猜是这样的\samelineitem[newlabel] Text of item)。

有没有具有此功能的软件包,或者有人愿意告诉我怎么做?谢谢。

答案1

这是使用该包的通用解决方案enumitem。您想要的会产生一些看起来奇怪的列表,所以我不确定我是否建议使用它。它适用于所有三种类型的列表。该enumitem包还为所有三种列表类型实现了内联列表。我在这里添加了一个示例来展示这一点。

对于 enumerateitemize列表,任何标签参数都会被忽略,因此您不应该对这些类型的列表使用任意指定的标签。

\documentclass{article}
\usepackage[inline]{enumitem}   
\makeatletter
% This command ignores the optional argument for itemize and enumerate lists
\newcommand{\inlineitem}[1][]{%
\ifnum\enit@type=\tw@
    {\descriptionlabel{#1}}
  \hspace{\labelsep}%
\else
  \ifnum\enit@type=\z@
       \refstepcounter{\@listctr}\fi
    \quad\@itemlabel\hspace{\labelsep}%
\fi}
\makeatother
\parindent=0pt
\begin{document}

% Pure inline list
This is an inline list.
\bigskip 

\begin{enumerate*}
    \item First item.
    \item Second item.
    \item Third item.
    \item Fourth item.
\end{enumerate*}

\bigskip

% Combined inline list
This is a combined inline enumerated list.
\begin{enumerate}
    \item First item \inlineitem Second item\inlineitem Third item.
    \item Fourth item
    \item Fifth item
\end{enumerate}

\bigskip

% Works with itemize
This is a combined inline itemized list.
\begin{itemize}
    \item First item \inlineitem Second item \inlineitem Third item. 
    \item Fourth item
    \item Fifth item
\end{itemize}

\bigskip
% Works with description lists
This is a combined inline description list.
\begin{description}
    \item[Foo] First item \inlineitem[Bar]Second item\inlineitem[FooBar] Third item.
    \item[Bar] Fourth item
    \item[Foo] Fifth item
\end{description}

\bigskip
% Showing that it can be embedded and works with modified labels
The new command works with arbitrary labels and embedding.
\begin{enumerate}
    \item
    \begin{enumerate}[label=\Alph*.]
        \item First item\inlineitem Second item \inlineitem Third item. 
        \item Fourth item
        \item Fifth item
    \end{enumerate}
\end{enumerate}
\end{document}

代码输出

答案2

您还可以使用行列表来列出要内联的部分,然后使用resume以下功能开始一个新列表:包裹enumitem

在此处输入图片描述

笔记:

  • 如果您的文档中有多个这样的内容,您还应该start=1在开始新列表时添加选项以重置标签计数器。

进一步增强:

  • 内联版本适用于段落中前面有文本的情况,列表开头会添加一个额外的空格。因此,它与后面的非内联列表无法正确对齐。我添加了before=\hspace{-0.6ex}似乎可以进行必要调整的 。但是,可能有更好的方法可以做到这一点,而不是硬编码一个特定的值。否则,在某些情况下可能需要进行调整。

代码:

\documentclass{article}
\usepackage[inline]{enumitem}

\begin{document}
  \begin{enumerate*}[series=MyList, before=\hspace{-0.6ex}]
    \item Goes on first line.
    \item Also goes on first line.
  \end{enumerate*}
  \begin{enumerate}[resume=MyList]
    \item Goes on second line.
  \end{enumerate}
\end{document}

答案3

我找到多色包通过封装 itemize、description 或 enumerate 环境提供了一个简单的解决方案。例如:

\usepackage{multicol}

\begin{multicols}{2}
\begin{enumerate}
    \item \( \varphi(x,t)= A \mathrm{e}^{- \alpha (x- c t) } \)
    \item \( \varphi(x,t)= A \mathrm{e}^{- 2 \alpha (x- c t) } \)
    \item \( \varphi(x,t)= A \ln \left( k (x- c t) \right) \)
    \item \( \varphi(x,t)= A \left( x- c t \right) \)
    \item \( \varphi(x,t)= A \left( x- c t \right)^n \)
    \item \( \varphi(x,t)= A \sin \left( k (x- c t) \right) \)
    \item \( \varphi(x,t)= A \sin \left( \alpha (x^2- c^2 t^2) \right) \)
    \item \( \varphi(x,t)= A \left( x+ c t \right)^{1/2} \)
\end{enumerate}
\end{multicols}

请注意多色在定义环境时使用。

答案4

使用$\bullet$作品作为内联项目符号。示例:

\begin{itemize}
  \item MacOS $\bullet$ Windows $\bullet$ Linux
\end{itemize}

上述语法打印

• MacOS • Windows • Linux

相关内容