有没有办法隐藏 multicol 中由 \columnseprule 绘制的线的一部分?

有没有办法隐藏 multicol 中由 \columnseprule 绘制的线的一部分?

我的整个文档都采用三列multicol布局,并且在文档的最开始处有一些特殊文本(如标题),如下所示:

原来的

使用三列是因为我正在编写的文档的空间限制。上面的文档是使用以下代码生成的:

\documentclass[a4paper,landscape]{article}

\usepackage{multicol}
\usepackage[margin=0.7cm,bottom=1.3cm,footskip=0.7cm]{geometry}
\usepackage{lipsum}
\setlength{\columnseprule}{0.4pt}

\begin{document}
\begin{multicols*}{3}
\raggedright
{\huge \textbf{Long Long Very Long Title Abcdefg}}
\section*{Limits}
\lipsum\lipsum
\end{multicols*}
\end{document}

标题变成了两行,很难看。

我知道我要求的有点奇怪,但是有没有办法将标题强制放到一行,从而“吃掉”相邻的列(从而删除第一列和第二列之间的列分隔符,并将第二列上的文本向下推)?

(注意:第三列不要被往下推。)

将第二列的文本向下推是次要问题,因为我可以通过vspace在正确的位置添加一些文本来手动完成此操作,但我没有解决方法来删除与标题重叠的列分隔符部分。

我曾尝试使用mbox,即:

\mbox{\huge \textbf{Long Long Very Long Title Abcdefg}}

但这(正如预期的那样)不会摆脱列分隔符:

框

“Title”这个词不太明显,但列分隔符确实在那里。理想情况下,分隔符应该从标题底部以下约 1cm 处开始,与“Limits”子部分名称的高度相同。

我也尝试过设置的背景颜色mbox,但列分隔符是绘制的超过,所以mbox我无法用这种方法隐藏列分隔符。

关于如何实现这一目标,有什么建议吗?

答案1

multicol如果不对其内部列平衡例程进行重大重写,则无法单独更改 的列大小。使用最新版本multicolrule(1.2) 可以手动缩小列分隔符,我今天早些时候发布了该版本,应该会在第二天左右进入您的 CTAN 镜像。(如果您不耐烦,可以立即在github

这两个命令是解决方案的核心:

\DeclareMCRulePattern{shrink-me}{extend-top=-\reservespace-\baselineskip}
\SetMCRule{width=thin,line-style=solid,patterns=shrink-me,pattern-for=1}

它的工作原理是声明列分隔符的模式,然后将该模式仅应用于第一个分隔符。

梅威瑟:

\documentclass[a4paper,landscape]{article}
\usepackage[margin=0.7cm,bottom=1.3cm,footskip=0.7cm]{geometry}
\usepackage{lipsum}
\usepackage{multicolrule}

\newsavebox{\mytitle}
\newlength{\reservespace}
\savebox{\mytitle}{\textbf{\huge Long Long Very Long Title Abcdefg}}
\setlength{\reservespace}{\ht\mytitle}
\addtolength{\reservespace}{\dp\mytitle}
\addtolength{\reservespace}{\baselineskip}
\addtolength{\reservespace}{-\topskip}
\DeclareMCRulePattern{shrink-me}{extend-top=-\reservespace-\baselineskip}
\SetMCRule{width=thin,line-style=solid,patterns=shrink-me,pattern-for=1}
\raggedright

\begin{document}
\begin{multicols*}{3}
\usebox{\mytitle}
\section*{Limits}
\lipsum[1-3]

\columnbreak\vspace*{\reservespace}

\lipsum[4-7]
\lipsum
\end{multicols*}
\end{document}

结果:

在此处输入图片描述

相关内容