Multicols aninhados com linha de separação de coluna apenas na camada mais externa em LaTeX

Multicols aninhados com linha de separação de coluna apenas na camada mais externa em LaTeX

Estou usando o ambiente multicols com 3 colunas no meu documento (os principais multicols). Consegui obter a separação das linhas entre as colunas \setlength{\columnseprule}{0.4pt}dentro do \begin{multicols*}{3}ambiente.

Agora preciso usar um ambiente multicols aninhado dentro dos multicols principais que não possui separação de linhas. Tentei usar \setlength{\columnseprule}{0pt}dentro dos multicols aninhados, mas ainda assim aparece uma linha de separação nos multicols aninhados. Como posso desenhar a linha de separação apenas nos multicols principais, mas não nos aninhados?

Estou usando o seguinte código:

\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}

Responder1

Nem sempre é fácil descobrir quando as colunas dos multicolsambientes estão realmente definidas. Mover os \setlengthcomandos para fora do ambiente interno multicolsresolve seu problema:

\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}

insira a descrição da imagem aqui

Responder2

Observe que se você fizer isso com frequência, pode ser mais conveniente criar um ambiente personalizado que restaurará automaticamente o comprimento da regra externa com um grupo local.

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

Você terá menos problemas se decidir alterar posteriormente o comprimento da regra das colunas externas.

informação relacionada