Вложенные многоколоночные элементы с разделительной линией только в самом внешнем слое в LaTeX

Вложенные многоколоночные элементы с разделительной линией только в самом внешнем слое в LaTeX

Я использую среду multicols с 3 столбцами в моем документе (основные multicols). Мне удалось получить разделение строк между столбцами с помощью \setlength{\columnseprule}{0.4pt}среды \begin{multicols*}{3}.

Теперь мне нужно использовать окружение вложенных многоколонок внутри основных многоколонок, в котором нет разделителя строк. Я пробовал использовать \setlength{\columnseprule}{0pt}внутри вложенных многоколонок, но во вложенных многоколонках все равно появляется разделительная линия. Как мне нарисовать разделительную линию только в основных многоколонках, но не во вложенных?

Я использую следующий код:

\documentclass[a4paper, 6pt, landscape]{scrartcl}

\usepackage{multicol}


\begin{document}
\begin{multicols*}{3}
\setlength{\columnseprule}{0.4pt}
     Here follows some text with a separation line between the columns...
     \begin{multicols*}{2}
     \setlength{\columnseprule}{0pt}
       Text in the nested multicols that should be without separation lines...
     \setlength{\columnseprule}{0.4pt}
     \end{multicols*}
\end{multicols*}

\end{document}

решение1

Не всегда легко узнать, когда столбцы окружения multicolsдействительно установлены. Перемещение \setlengthкоманд за пределы внутреннего multicolsокружения решает вашу проблему:

\documentclass[a4paper, 6pt, landscape]{scrartcl}

\usepackage{multicol}
\usepackage{lipsum}

\begin{document}
\setlength{\columnseprule}{0.4pt}
\begin{multicols*}{3}
     Here follows some text with a separation line between the columns...
     \setlength{\columnseprule}{0pt}
     \begin{multicols*}{2}
       Text in the nested multicols that should be without separation lines...
     \end{multicols*}
     \setlength{\columnseprule}{0.4pt}
     \lipsum
\end{multicols*}

\end{document}

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

решение2

Обратите внимание: если вы делаете это часто, может быть удобнее создать пользовательскую среду, которая будет автоматически восстанавливать длину внешнего правила с помощью локальной группы.

\newenvironment{innermulticol}[1]
    {\begingroup\setlength{\columnseprule}{0pt}\begin{multicols*}{#1}}
    {\end{multicols*}\endgroup}

У вас будет меньше проблем, если впоследствии вы решите изменить длину линейки внешних столбцов.

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