列挙項目リスト内の 1 つの項目のラベルを変更する方法

列挙項目リスト内の 1 つの項目のラベルを変更する方法

リスト内の 1 つの項目のラベルを変更したいです。私はこのenumitemパッケージを使用しており、とても気に入っているので、使い続けなければなりません (他の多くのコードが壊れてしまいます)。

MWE:

\documentclass[a4paper,10pt]{article}

\usepackage[]{enumitem}

\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
\end{enumerate}
\begin{enumerate}[resume,label={(*\arabic*)}]
        \item xyzzy
\end{enumerate}
\begin{enumerate}[resume,label={(\arabic*)}]
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

結果はリストです

 (1) baz
(*2) xyzzy
 (3) quux

しかし、私は次のようなことをしたいのです

\documentclass[a4paper,10pt]{article}

\usepackage[]{enumitem}

\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
        \staritem xyzzy
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

enumitemパッケージによって次のようなコードが作成できれば非常に便利です\item[label=(*\arabic*)]。しかし、私の知る限り、簡単な解決策はありません。

\staritemあなたならどうしますか?回答でコマンドを定義してください。これは、ドキュメントのテキストに直接ハッキングするよりも直交的なソリューションになります。または、\itemオプションを受け入れるようにハッキングすると ( のように\item[label=(*\arabic*)]) 素晴らしいでしょう。

答え1

ラベルの仕様にアスタリスクを付けます:

\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}

\newcommand{\staritem}{\global\asterisktrue\item}
\newcommand{\perhapsasterisk}{%
  \ifasterisk*\global\asteriskfalse\fi
}
\newif\ifasterisk

\begin{document}
Foobar

\begin{enumerate}[label={(\protect\perhapsasterisk\arabic*)}]
\item baz
\staritem xyzzy
\item quux
\staritem xxx
\end{enumerate}

Lorem ipsum
\end{document}

ここに画像の説明を入力してください

答え2

これがあなたが達成したいことかどうかはわかりませんが、アイテムのラベルを明示的に設定することはできます。

\documentclass[a4paper,10pt]{article}

\usepackage{enumitem}


\begin{document}
Foobar

\begin{enumerate}[label={(\arabic*)}]
        \item baz
        \item[\refstepcounter{enumi}(*\number\value{enumi})] xyzzy
        \item quux
\end{enumerate}

Lorem ipsum
\end{document}

ラベルを手動で設定するとカウンターが進まないため、\refstepcounter内のステートメントは必要だと思います。[]

ここに画像の説明を入力してください

関連情報