Multicols anidadas con línea de separación de columnas solo en la capa más externa en LaTeX

Multicols anidadas con línea de separación de columnas solo en la capa más externa en LaTeX

Estoy usando el entorno multicols con 3 columnas en mi documento (las multicols principales). Logré conseguir la línea de separación entre las columnas con \setlength{\columnseprule}{0.4pt}el interior del \begin{multicols*}{3}entorno.

Ahora necesito usar un entorno multicols anidado dentro de las multicols principales que no tenga separación de líneas. Intenté usarlo \setlength{\columnseprule}{0pt}dentro de las multicols anidadas pero, sin embargo, aparece una línea de separación en las multicols anidadas. ¿Cómo puedo dibujar la línea de separación solo en las multicols principales pero no en las anidadas?

Estoy usando el siguiente 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}

Respuesta1

No siempre es fácil saber cuándo multicolsestán realmente configuradas las columnas de los entornos. Mover los \setlengthcomandos fuera del multicolsentorno interno resuelve su 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}

ingrese la descripción de la imagen aquí

Respuesta2

Tenga en cuenta que si hace esto con frecuencia, podría ser más conveniente crear un entorno personalizado que restaure automáticamente la longitud de la regla externa con un grupo local.

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

Tendrá menos problemas si luego decide cambiar la longitud de la regla de las columnas exteriores.

información relacionada