僅在 LaTeX 的最外層具有列分隔線的嵌套多列

僅在 LaTeX 的最外層具有列分隔線的嵌套多列

我在文件中使用了包含 3 個欄位的 multicols 環境(主要 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}

如果您隨後決定更改外列的規則長度,那麼您會遇到更少的麻煩。

相關內容