Я хочу создать список с отступом, в котором новые (не детализированные) абзацы внутри списка вообще не имеют отступа (то есть они выровнены по левому краю основного текста. См. изображение ниже).
Я использую enumitem
пакет со следующими опциями:
labelsep=8pt,
labelindent=0.5\parindent,
itemindent=0pt,
leftmargin=*,
listparindent=-\leftmargin
(* должно служить для вычисления значения \leftmargin
из других параметров и автоматически вычисленной ширины метки). Однако это не приводит к ожидаемому результату (см. MWE ниже). Если я установлю вместо этого
leftmargin=3cm
listparindent=-\leftmargin
это работает так, как и задумано (но я не хочу устанавливать левое поле на определенное значение, мне нужно фиксированное значение \labelindent
и \labelsep
). Вставка
\noindent\hskip-\leftmargin
в начале оскорбительного абзаца тоже работает, но не очень систематично. Как мне установить параметры, enumerate
чтобы добиться того, чего я хочу?
МВЭ
\documentclass{article}
\usepackage{enumitem}
\setlist[enumerate]{%
labelsep=8pt,%
labelindent=0.5\parindent,%
itemindent=0pt,%
leftmargin=*,%
listparindent=-\leftmargin%
}
\begin{document}
A normal paragraph of text just to show where
the left margin lies, for comparison. New paragraphs
inside enumerate should start at that left margin.
\begin{enumerate}[label=Case \arabic*:]
\item By setting the enumerate options in a
(I think) sensible manner, I don't achieve what I want
This paragraph shouldn't be indented at all!
\item I want to set the options so that new paragraphs
behave like the following one
\noindent\hskip-\leftmargin
This paragraph is indeed not indented at all!
\end{enumerate}
\begin{enumerate}[resume*,leftmargin=3cm,listparindent=-\leftmargin]
\item Setting a specific value for leftmargin also works\dots
But this is not what I want :-(
\end{enumerate}
\end{document}
Я бы не стал делать этого для всех enumerate
сред; определите для этого новый список.
решение1
Я не уверен, зачем вы хотите это сделать. Однако вот способ:
\documentclass{article}
\usepackage{showframe}
\usepackage{enumitem}
\setlist[enumerate]{
labelsep=8pt,
labelindent=0.5\parindent,
itemindent=0pt,
leftmargin=*,
before=\setlength{\listparindent}{-\leftmargin},
}
\begin{document}
A normal paragraph of text just to show where
the left margin lies, for comparison. New paragraphs
inside enumerate should start at that left margin.
\begin{enumerate}[label=Case \arabic*:]
\item By setting the enumerate options in a
(I think) sensible manner, I don't achieve what I want
This paragraph shouldn't be indented at all!
\item I want to set the options so that new paragraphs
behave like the following one
This paragraph is indeed not indented at all!
\end{enumerate}
\begin{enumerate}[resume*,leftmargin=3cm,listparindent=-\leftmargin]
\item Setting a specific value for leftmargin also works\dots
This is what I want.
\end{enumerate}
This is what I want. % just to show the left margin
\end{document}
Вам придется отложить настройку, \listparindent
когда значение \leftmargin
будет определено.
решение2
Или это не будет просто так (я считаю, что первый абзац с ненулевым левым полем и последующие абзацы в элементе с нулевым левым полем выглядят не очень хорошо):
\documentclass{article}
\usepackage{enumitem}
\setlist[enumerate]{%
wide =0.5\parindent,
listparindent=0pt%
}%
\begin{document}
A normal paragraph of text just to show where the left margin lies, for comparison. New paragraphs
inside enumerate should start at that left margin.
\begin{enumerate}[label=Case \arabic*:]
\item By setting the enumerate options in a
(I think) sensible manner, I don't achieve what I want
This paragraph shouldn't be indented at all! This paragraph shouldn't be indented at all!
\item I want to set the options so that new paragraphs
behave like the following one.
This paragraph is indeed not indented at all!
\item Setting a specific value for leftmargin also works\dots
But is this what you want?
\end{enumerate}
\end{document}