Я хотел бы, чтобы мои были \item
перечислены в особом порядке, непоследовательно. В примере ниже (который является моим текущим проектом) всегда ровно 3 \item
s.
(Для обработки пользовательских ошибок, когда \item
счетчик превышает заданное максимальное число, он может выводить (красный) текст ошибки для \item
(s), чтобы привлечь внимание к тому, что список перечисления содержит слишком много \item
s.)
В этом случае я использовал код для обведенного текста изХороший способ сделать \textcircled числа?
Я хотел бы напечатать
\begin{CircleProcedure}
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\item \lipsum[1][1-2]
\end{CircleProcedure}
вместо «полного» аргумента, как показано в MWE ниже.
Другой возможный выход, о котором я думаю, связан с математическим индексом, показанным как образец № 2.
Ниже я показываю предлагаемый вклад в 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 наoverleaf.com)
решение1
Вы можете создать свой собственный список, а затем указать, какие счетчики должны быть представлены, и связать их (используя \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
Один метод без использования 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}