在 `\multicols` 环境中自定义 `\columnseprule`

在 `\multicols` 环境中自定义 `\columnseprule`

在 OpenOffice 和 LibreOffice 中,可以指定多列部分中列分隔符规则的高度(深度?)。例如,它可以是列高度的 50%。我希望能够在 LaTeX 中用 做同样的事情multicol

我偶然发现了这个问题关于更改列分隔符的外观。我发现这很有趣,但这并不是我想要的。首先,我还不太了解纯 TeX,无法根据自己的需要充分修改提供的解决方案。

我怎样才能实现这样的目标:

text text text   text text text
text text text   text text text
text text text | text text text
text text text | text text text
text text text | text text text
text text text   text text text
text text text   text text text

在 OO/LibO 中,列分隔符没有跨越整个列的高度?

我希望更进一步,能够创建更精美的分隔符,例如:

text text text   text text text
text text text   text text text
text text text | text text text
text text text • text text text
text text text | text text text
text text text   text text text
text text text   text text text

或其他类似的图案,带有规则和符号(例如项目符号)。

我愿意接受基于 之外的环境的解决方案multicols,但理想情况下,它应该是一个保留 优势multicols并保留改变宽度的可能性的环境adjmulticol

答案1

这应该是一个起点。

这仅适用于整页多列。如果多列仅跨越页面的一部分,则

{\makebox[\textheight][c]{\pgfornament[color = magenta,width=.5\textheight]{88}}

需要调整。装饰品也可以根据个人喜好进行更换。

\documentclass{article}

\usepackage{multicol}
\usepackage[object=vectorian]{pgfornament} %%  http://altermundus.com/pages/tkz/ornament/index.html
\usepackage{lipsum}

%% another definition from David
%\makeatletter
%\def\columnseprulecolor\vrule\@width\columnseprule{%
%\vbox to \ht\mult@rightbox{\leaders\vbox{\kern2pt\hbox{.}\kern2pt}\vfill}}
%\makeatother

\def\columnseprulecolor{%
\rotatebox{90}{\makebox[\textheight][c]{\pgfornament[color = magenta,width=.5\textheight]{88}}}
    }%
%% Change color and ornament here.


\setlength\columnsep{60pt}

\begin{document}

\begin{multicols}{2}
\lipsum
\end{multicols}

\end{document}

在此处输入图片描述

相关内容