Como alinhar o parágrafo com os rótulos antes de retomar a lista de enumitem

Como alinhar o parágrafo com os rótulos antes de retomar a lista de enumitem

Eu tenho uma lista enumerada criada com enumitema qual interrompo e depois retomo. Entre o último item antes da interrupção e o primeiro após a retomada, insiro um parágrafo de texto. Como posso alinhar horizontalmente esse parágrafo para que:

  1. A primeira linha desse parágrafo está alinhada horizontalmente com oesquerdaextremidades dos rótulos dos itens (conforme indicado na saída mostrada no final aqui); e ao invés
  2. Toda a borda esquerda do parágrafo está alinhada com oesquerdaextremidades dos rótulos dos itens.

Aqui está o que eu tentei:

\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}

Alinhamento desejado do parágrafo intermediário.

Acredito que quero alguma combinação aritmética de comprimentos, como em...

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

...e eu esperaria usar algum comando do pacote calcpara fazer isso, mas: (a) não sei como combinar esses comprimentos; e (b) não vejo exatamente quais comprimentos preciso combinar.

Responder1

isso parece funcionar:

\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}

saída do código de exemplo

Responder2

Você tem a ideia certa! Porém, em vez de usar o calcambiente, enumitemele pode lidar com isso sozinho. Para referência, aqui está a figura das dimensões na enumitemdocumentação do pacote:

insira a descrição da imagem aqui

Parece que você deseja que a margem esquerda seja definida como zero e a largura do rótulo igual ao recuo do item.

Isto é conseguido com os seguintes ajustes no enumerateambiente:

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

É o que parece no seu documento. Era isso que você procurava?

insira a descrição da imagem aqui

MWE:

\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}

informação relacionada