Как выровнять абзац с метками перед списком резюме enumitem

Как выровнять абзац с метками перед списком резюме enumitem

У меня есть список перечислений, созданный с помощью enumitemкоторого я прерываю и затем возобновляю. Между последним элементом перед прерыванием и первым после возобновления я вставляю текстовый абзац. Как мне выровнять этот абзац по горизонтали, чтобы:

  1. Первая строка этого абзаца выровнена по горизонтали.левыйконцы меток элементов (как указано в выходных данных, показанных здесь в конце); и вместо этого
  2. Весь левый край абзаца выравнивается полевыйконцы этикеток товара.

Вот что я попробовал:

\documentclass[12pt]{article}
\usepackage{calc}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*}}

\begin{document}

\noindent Here is a list.

\begin{myenum}
  \item
    One
  \item
    Two
\end{myenum}

\hspace{\the\labelindent}%
Some other text will go here that may or may not fill out more than a single line of text on the page.

\begin{myenum}[resume*]
  \item 
    Three
  \item
    Four
\end{myenum}

\end{document}

Желаемое выравнивание промежуточного абзаца.

Я полагаю, что мне нужна некая арифметическая комбинация длин, например...

\hspace{\the\labelwidth-\the\labelsep}

...и я бы ожидал использовать какую-то команду из пакета, calcчтобы сделать это, но: (a) я не знаю, как объединить такие длины; и (b) я не вижу, какие именно длины мне нужно объединить.

решение1

Кажется, это срабатывает:

\documentclass[12pt]{article}
\usepackage{calc}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*}}

\newdimen\midlistindent
\settowidth{\midlistindent}{(1)\kern-\labelindent\kern-\labelsep}
\newcommand{\midlist}[1]{%
  \begingroup
  \leftskip\midlistindent
  \noindent #1\unskip\par
  \endgroup}

\begin{document}

\noindent Here is a list.

\begin{myenum}
  \item
    One
  \item
    Two
\end{myenum}

\midlist{%
Some other text will go here that may or may not fill out more than a single line of text on the page.
}

\begin{myenum}[resume*]
  \item 
    Three
  \item
    Four
\end{myenum}

\end{document}

вывод примера кода

решение2

У вас правильная идея! Однако, вместо того, чтобы использовать calcсреду, enumitemможно справиться с ней самостоятельно. Для справки, вот рисунок размеров в enumitemдокументации пакета:

введите описание изображения здесь

Похоже, вы хотите установить левое поле равным нулю, а ширину метки — равной отступу элемента.

Это достигается за счет следующих изменений в enumerateокружающей среде:

\begin{enumerate}[
    align=left, 
    leftmargin=0pt, 
    itemindent=\labelwidth, 
    labelsep=0pt
]
\end{enumerate}

Это выглядит так в вашем документе. Это то, что вы искали?

введите описание изображения здесь

МВЭ:

\documentclass[12pt]{article}
\usepackage{enumitem}

\newlist{myenum}{enumerate}{1}
\setlist[myenum,1]{label= \upshape(\arabic*), ref={\arabic*},
    align=left, 
    leftmargin=0pt, 
    itemindent=\labelwidth, 
    labelsep=0pt}

\begin{document}

    \noindent Here is a list.
    
    \begin{myenum}
      \item One
      \item Two
    \end{myenum}
    
    \noindent Some other text will go here that may or may not fill out more than a single line of text on the page.
    
    \begin{myenum}[resume*]
      \item Three
      \item Four
    \end{myenum}

\end{document}

Связанный контент