如何全局设置enumerate和enumerate*的标签?

如何全局设置enumerate和enumerate*的标签?

在我的文档中,我有两种类型的enumerate列表。我使用的enumerate列表如下:

1.物品

2.物品

3....

对于enumerate*类似这样的列表:

(A)物品,(二)物品,(C)...

我全局设置了enumerateusing\setlist[enumerate]{label=\bfseries\arabic*.}但无法全局设置enumerate*using \setlist[enumerate*]{label=\bfseries(\alph*)}。如何全局设置enumerate*环境标签?

附加问题:我如何全局设置enumerate*在每个项目后自动添加逗号并在最后一项前自动添加单词“and”?

\documentclass[12pt,a4paper]{article}
\usepackage{blindtext}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[inline]{enumitem}
\setlist[enumerate]{label=\bfseries\arabic*.}
%\setlist[enumerate*]{label=\bfseries(\alph*)}
\begin{document}
\begin{enumerate}
\item Item 1
\item Item 2
\item Item 3
\end{enumerate}

\begin{enumerate*}
\item Item 1
\item Item 2
\item Item 3
\end{enumerate*}

\begin{enumerate*}[label=\bfseries(\alph*)]
\item Item 1
\item Item 2
\item Item 3
\end{enumerate*}
\end{document}

答案1

itemjoin设置项目之间的格式,而 键itemjoin*设置最后一个项目之前的格式,并覆盖该itemjoin设置。

为了保持显示列表按数字显示而内联列表按字母顺序显示,您必须创建一个新列表,因为\enumerate\enumerate*环境共享相同的设置。

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\newlist{inlinelist}{enumerate*}{1}
\setlist[inlinelist]{label=\bfseries(\alph*), itemjoin={{, }}, itemjoin*={{, and }}} % <-------------
\setlist[enumerate]{label=\bfseries\arabic*.}

\begin{document}
    \begin{enumerate}
        \item Item 1
        \item Item 2
        \item Item 3
    \end{enumerate}

    \begin{inlinelist}
        \item Item 1
        \item Item 2
        \item Item 3
    \end{inlinelist}

    \begin{inlinelist}
        \item Item 1
        \item Item 2
        \item Item 3
    \end{inlinelist}
\end{document}

在此处输入图片描述

相关内容