非連続的な特別な順序で列挙したいと思います\item
。以下の例 (現在のプロジェクト) では、常に 3\item
個あります。
(カウンターが定義された最大数を超えた場合のユーザー エラーを処理するために、列挙リストに が多すぎることを注意させるために、\item
に対して (赤色の) エラー テキストを出力することができます。)\item
\item
この場合、私は丸で囲んだテキストのコードを使用しています\textcircled 数字を作成する良い方法はありますか?
入力したい
\begin{CircleProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{CircleProcedure}
以下の MWE に示されている 'full' 引数の代わりに使用します。
私が考えているもう1つの可能な出力は、サンプル番号2に示すように、数学的なインデックスを使用することです。
以下に、MWE での推奨入力を示しますが、ここで[]
は避けたい引数も示します。
(シンプルで統一された入出力環境が使用されるため)
MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{enumitem}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\newenvironment{CircleProcedure}
{\begin{enumerate}[labelwidth=16mm,leftmargin=16mm,labelsep=2mm]}
{\end{enumerate}}
\newenvironment{IndexProcedure}
{\begin{enumerate}[align=left,labelwidth=9mm,leftmargin=10mm,labelsep=1mm]}
{\end{enumerate}}
\begin{document}
\lipsum[1][1-5]
\begin{CircleProcedure}
\item[\circled{1}] \lipsum[1][1-2]
\item[\circled{2}] \lipsum[1][1-2]
\item[\(\circled{1}+\circled{2}\)] \lipsum[1][1-2]
\end{CircleProcedure}
\lipsum[1][1-5]
\begin{IndexProcedure}
\item[\(\textbf{P}_{1}\)] \lipsum[1][1-2]
\item[\(\textbf{P}_{2}\)] \lipsum[1][1-2]
\item[\(\textbf{P}_{1+2}\)] \lipsum[1][1-2]
\end{IndexProcedure}
\lipsum[1][1-5]
\end{document}
(私はpdfLaTeX 2023をオーバーリーフ)
答え1
独自のリストを生成し、表現するカウンターを指定して、2 つをリンクすることができます ( を使用\AddEnumerateCounter
)。カウンター表現は、1、2、3 の数字の外観を定義し、\item
4 (またはそれ以上) の場合はエラー (「カウンターが大きすぎます」) を引き起こします。
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{enumitem}
\NewDocumentCommand{\circled}{m}{%
\tikz[baseline=(char.base)]{%
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\newlist{CircleProcedure}{enumerate}{1}
\setlist[CircleProcedure]{%
labelwidth=16mm,
leftmargin=16mm,
labelsep=2mm,
label=\circledenum*,
}
\newlist{IndexProcedure}{enumerate}{1}
\setlist[IndexProcedure]{%
align=left,
labelwidth=15mm,
leftmargin=15mm,
labelsep=0mm,
label=\indexenum*
}
\makeatletter
\newcommand*{\circledenum}[1]{%
\expandafter\@circledenum\csname c@#1\endcsname%
}
\newcommand*{\@circledenum}[1]{%
$\ifcase#1\or\circled{1}\or\circled{2}\or\circled{1}+\circled{2}%
\else\@ctrerr\fi$%
}
\AddEnumerateCounter{\circledenum}{\@circledenum}{1}
\newcommand*{\indexenum}[1]{%
\expandafter\@indexenum\csname c@#1\endcsname%
}
\newcommand*{\@indexenum}[1]{%
$\ifcase#1\or\textbf{P}_1\or\textbf{P}_2\or\textbf{P}_1+\textbf{P}_2%
\else\@ctrerr\fi$%
}
\AddEnumerateCounter{\indexenum}{\@indexenum}{1}
\makeatother
\begin{document}
\lipsum[1][1-5]
\begin{CircleProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{CircleProcedure}
\lipsum[1][1-5]
\begin{IndexProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{IndexProcedure}
\lipsum[1][1-5]
\end{document}
\label
必要に応じておよびも使用できます\ref
。
答え2
を使用しない1つの方法enumitem
:
\documentclass{article}
\usepackage{tikz}
\usepackage{lipsum}
\newcommand*\circled[1]{\tikz[baseline=(char.base)]{
\node[shape=circle,draw,inner sep=2pt] (char) {#1};}}
\newcounter{CircledProcedure}
\newenvironment{CircledProcedure}%
{\begin{list}{}{
\labelwidth 16mm%
\leftmargin 16mm%
\labelsep 2mm%
\let\makelabel\CircledProcedureLabel
\usecounter{CircledProcedure}
}}{\end{list}}
\newcommand*{\CircledProcedureLabel}{%
\ifnum\value{CircledProcedure}<3 \hfill\circled{\theCircledProcedure} \else \(\circled{1}+\circled{2}\) \fi}
\begin{document}
\begin{CircledProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{CircledProcedure}
\end{document}