У меня есть список перечислений, созданный с помощью enumitem
которого я прерываю и затем возобновляю. Между последним элементом перед прерыванием и первым после возобновления я вставляю текстовый абзац. Как мне выровнять этот абзац по горизонтали, чтобы:
- Первая строка этого абзаца выровнена по горизонтали.левыйконцы меток элементов (как указано в выходных данных, показанных здесь в конце); и вместо этого
- Весь левый край абзаца выравнивается полевыйконцы этикеток товара.
Вот что я попробовал:
\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}