Verschachtelte Multicols mit Spaltentrennlinie nur in der äußersten Schicht in LaTeX

Verschachtelte Multicols mit Spaltentrennlinie nur in der äußersten Schicht in LaTeX

Ich verwende die Multicols-Umgebung mit 3 Spalten in meinem Dokument (die wichtigsten Multicols). Ich habe es geschafft, die Zeilentrennung zwischen den Spalten \setlength{\columnseprule}{0.4pt}innerhalb der \begin{multicols*}{3}Umgebung zu erreichen.

Jetzt muss ich eine verschachtelte Multicols-Umgebung innerhalb der Hauptmulticols verwenden, die keine Zeilentrennung aufweist. Ich habe versucht, sie \setlength{\columnseprule}{0pt}innerhalb der verschachtelten Multicols zu verwenden, aber in den verschachtelten Multicols erscheint trotzdem eine Trennlinie. Wie kann ich die Trennlinie nur in den Hauptmulticols, aber nicht in den verschachtelten zeichnen?

Ich verwende den folgenden Code:

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

Antwort1

Es ist nicht immer einfach herauszufinden, wann die Spalten von multicolsUmgebungen wirklich gesetzt sind. Das Verschieben der \setlengthBefehle außerhalb der inneren multicolsUmgebung löst Ihr Problem:

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

Bildbeschreibung hier eingeben

Antwort2

Beachten Sie, dass es bei häufigem Einsatz möglicherweise bequemer ist, eine benutzerdefinierte Umgebung zu erstellen, die die äußere Regellänge automatisch mit einer lokalen Gruppe wiederherstellt.

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

Weniger Ärger wird es geben, wenn Sie die Regellänge der äußeren Spalten nachträglich ändern.

verwandte Informationen