Wyrównywanie środowisk wyliczeniowych

Aug 16 2020

Mam dwa środowiska wyliczeniowe. W MWE liczby w drugim środowisku są pozornie wyrównane do prawej strony z liczbami w pierwszym, chciałbym wyrównać do lewej liczby w drugim środowisku z liczbami w pierwszym.

Trzecie środowisko powinno również zostać wyrównane do lewej z pierwszymi dwoma środowiskami. Czwarte środowisko powinno nadal wyświetlać się zgodnie z oczekiwaniami.

MWE

\documentclass{book}
\usepackage[inline,shortlabels]{enumitem}
\setlist[enumerate]{leftmargin=4em, align=left}
\begin{document}
\begin{enumerate}
    \item Item 1
    \item Item 2
    \item Item 3
\end{enumerate}
\begin{enumerate}[label=1.\arabic*.]
        \item Item 1.1
        \item 1.2
    \end{enumerate}
\begin{itemize}
    \item Item 10
    \item Item 20
\end{itemize}
\begin{enumerate*}[label=(\roman*)]
    \item Item 100
    \item item 200
\end{enumerate*}
\end{document}

Odpowiedzi

5 Zarko Aug 16 2020 at 08:38

Zobacz, czy dodajesz

\setlist[enumerate]{leftmargin=4em, align=left}

w preambule dokumentu rozwiąż problem.

Kompletne MWE:

\documentclass{book}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=4em, align=left}

\usepackage{lipsum}

\begin{document}
\lipsum[11]
\begin{enumerate}
    \item Item 1
    \item Item 2
    \item Item 3
\end{enumerate}
\begin{enumerate}[label=1.\arabic*.]
        \item Item 1.1
        \item Item 1.2
    \end{enumerate}
\end{document}

Uzupełnienie:

Po edycji pytania sytuacja uległa znacznej zmianie. Uwaga: enumitemnie pozwala na osobne ustawienia dla list in-line (o ile wiem), jednak w takiej sytuacji radzę zdefiniować nową listę z pożądanymi funkcjami. Na przykład jako:

\newlist{inlinelist}{enumerate*}{1}
\setlist*[inlinelist,1]{label=(\roman*), 
                        before=\unskip{: }, itemjoin={{, }}, itemjoin*={{, and }}}

Biorąc to pod uwagę w pierwszej wersji odpowiedzi, możesz napisać przykładowy dokument w następujący sposób:

\documentclass{book}
\usepackage[shortlabels]{enumitem}
\setlist[enumerate]{leftmargin=4em, align=left}
\newlist{inlinelist}{enumerate*}{1}
\setlist*[inlinelist,1]{label=(\roman*),
                        before=\unskip{: }, itemjoin={{, }}, itemjoin*={{, and }}}
\usepackage{lipsum}

\begin{document}
\lipsum[11]

\begin{enumerate}
    \item Item 1
    \item Item 2
    \item Item 3: 
\end{enumerate}
\begin{enumerate}[label=1.\arabic*.]
        \item Item 1.1
        \item Item 1.2
    \end{enumerate}

\noindent%   
Some text 
\begin{inlinelist}[label=(\roman*)]
    \item Item 100
    \item item 200
    \item item 300
\end{inlinelist}.
\end{document}

co daje:

1 jsbibra Aug 16 2020 at 08:30

\documentclass{book}
\usepackage{enumitem}
\begin{document}
\begin{enumerate}[
                leftmargin=\parindent,
                align=left,
                labelwidth=\parindent,
                labelsep=10pt]
    \item Item 1
    \item Item 2
    \item Item 3
\end{enumerate}
\begin{enumerate}[
                label=1.\arabic*.,
                leftmargin=\parindent,
                align=left,
                labelwidth=\parindent,
                labelsep=10pt]
        \item Item 1.1
        \item Item 1.2
    \end{enumerate}
\end{document}