在嵌套的多列环境中,如何仅设置最内层的分隔标尺?

在嵌套的多列环境中,如何仅设置最内层的分隔标尺?

我的问题是这个在一对嵌套multicols环境中,我希望内部环境具有分离规则,即以下 mwe 中的“检查”:

\documentclass{article}
\usepackage{multicol}

\begin{document}
\begin{multicols}{2} 
Test Test   Test Test Test Test Test Test Test Test

\begin{multicols}{2}\setlength{\columnseprule}{0.4pt}
Check Check Check Check Check Check Check Check 
\end{multicols} 
Test Test   Test Test   Test Test Test Test Test Test 
\end{multicols}
\end{document}

我尝试对上述柱子进行二元化,并删除外面的\setlength,如上面的代码所示。但这样根本不会出现分隔标尺。

答案1

就像你之前提供链接的帖子一样,\setlength{\columnseprule}{0.4pt}必须运行该指令multicols它应该影响的环境。

为了将范围限制\setlength{\columnseprule}{0.4pt}在“内部”实例中,我建议通过和指令将该指令和内部multicols环境放在单独的 TeX 组中。\begingroup\endgroup

在此处输入图片描述

\documentclass{article}
\usepackage{multicol} % for 'multicols' environment

\begin{document}
\raggedright % just for this example

\begin{multicols}{2} 
Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1 Test1

\begingroup
\setlength{\columnseprule}{0.4pt}
\begin{multicols}{2}
Checka Checka Checka Checka 
Checkb Checkb Checkb Checkb 
\end{multicols} 
\endgroup

Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2 Test2
\end{multicols}

\end{document}

答案2

我会定义一个合适的环境。

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}

\newenvironment{rmulticols}[2][0.4pt]{%
  \setlength{\columnseprule}{#1}\begin{multicols}{#2}%
}{\end{multicols}}

\begin{document}

\begin{multicols}{2} 
\lipsum[1][1-2]

\begin{rmulticols}{2}
\lipsum[2][1-4]
\end{rmulticols} 
\lipsum[3]
\end{multicols}

Or the other way around

\begin{rmulticols}{2} 
\lipsum[1][1-2]

\begin{rmulticols}[0pt]{2}
\lipsum[2][1-4]
\end{rmulticols} 
\lipsum[3]
\end{rmulticols}

\end{document}

在此处输入图片描述

相关内容