выравнивание текста с помощью paracol и enumitem

выравнивание текста с помощью paracol и enumitem

Думая над ответом наэтот вопросвключая параллельный переведенный текст с пронумерованными абзацами, мое первоначальное (наивное) решение работает отлично, за исключением того, что текст столбца не выровнен должным образом. В нескольких местах текст выступает на поля. Вот код:

\documentclass{article}
\usepackage{lipsum,paracol,enumitem}
\newcommand{\mynewpara}{\switchcolumn*\item}
\newcommand{\myswitch}{\switchcolumn\item[]}

\begin{document}

\begin{enumerate}[label={[\arabic*]}]
\begin{paracol}{2}
\item \lipsum[1][1-5]
\myswitch
\lipsum[2]
\mynewpara
\lipsum[8]
\myswitch
\lipsum[4][1-5]
\end{paracol}
\end{enumerate}

\end{document}

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

Это не случай \switchcolumnсреды внутри спискавнутрипаракольная среда, против которой предостерегаютздесьи впараколдокументация.

Учитывая, что в среде enumerate или paracol текст сам по себе выравнивается правильно, почему эта конкретная комбинация заставляет текст выступать?

Приложение

В столбцах аналогичного размера с использованием enumerateи multicolsрезультат выглядит намного лучше:

\documentclass{article}
\usepackage{lipsum,enumitem,multicol}

\begin{document}
\begin{multicols}{2}
\begin{enumerate}
\item \lipsum[1]
\item \lipsum[2]
\item \lipsum[3]
\end{enumerate}
\end{multicols}
\end{document}

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

Обратите внимание, что здесь среда «columns» находится за пределами среды «list» (это не рекомендуется для paracol).

решение1

Спасибо тем, кто оставил комментарии, и после прочтенияmulticolдокументации, способ исправить это, имея выровненные столбцы, — изменить значение \tolerance. \sloppyКоманда устанавливает \toleranceзначение 10000 (для TeX, то же самое, что и бесконечность), поэтому multicolsустанавливает его на 9999, что допускает плохой интервал, но не является абсолютно худшим, хотя в моих простых тестах я не смог привести пример, где это отличалось бы от \sloppy. Кроме того, поскольку латинские шаблоны переносов не действуют при использовании lipsumв английском документе, вы можете использовать kantlipsumдля лучшего представления о том, как будут выглядеть ваши столбцы.

\documentclass{article}
\usepackage{lipsum,kantlipsum,paracol,enumitem}
\newcommand{\mynewpara}{\switchcolumn*\item}
\newcommand{\myswitch}{\switchcolumn\item[]}

\newenvironment{numberedparas}{%
    \begin{enumerate}[label={[\arabic*]}]%
    \begin{paracol}{2}%
    \tolerance=9999%
    \item%
    }%
    {%
    \end{paracol}%
    \end{enumerate}%
    }%


\begin{document}

\begin{numberedparas}
\kant[1][1-5]
\myswitch
\kant[2]
\mynewpara
\kant[8]
\myswitch
\kant[4][1-5]
\end{numberedparas}

\newpage

\begin{numberedparas}
\lipsum[1][1-5]
\myswitch
\lipsum[2]
\mynewpara
\lipsum[8]
\myswitch
\lipsum[4][1-5]
\end{numberedparas}

\end{document}

столбцы

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