多列分栏符上方的框架

多列分栏符上方的框架

大家好,使用 TeX 的人,

例如,使用包时,是否有可能在列分隔符上绘制框架multicol

我已经尝试了几种可能的方法,并进行了广泛的网络搜索。有趣的是,似乎有几个人遇到了这个问题,但网络上没有可用的解决方案。

不幸的是,根据手册,framedmdframed包无法与该包一起使用。multicol

列表包似乎有一个错误:它确实正确地将文本拆分到不同的列上,但是颜色突出显示了错误的部分:

\documentclass[landscape,a4paper]{article}
\usepackage{color,lipsum,listings,multicol}
\lstset{%
  backgroundcolor=\color{green},
  escapechar={\%}
}
\begin{document}
   \begin{multicols*}{4}
     \colorbox{green}{
     \begin{lstlisting}
       %
       \section{First section}
       \lipsum
       %
     \end{lstlisting}
     }
   \end{multicols*}
\end{document}

如有任何关于解决方案的提示,我将不胜感激。

朝着正确方向迈出的另一步可能是以下这个boites方案:

\documentclass[a0,landscape]{a0poster}
\usepackage{boites,color,lipsum,multicol}
\begin{document}
\begin{multicols}{4}
\begin{breakbox}
\lipsum
\end{breakbox}
\end{multicols}
\end{document}

但这不允许使用 pdflatex 进行背景着色。

答案1

在此处输入图片描述

\documentclass[landscape,a4paper]{article}
\usepackage{color,lipsum,multicol}
\advance\columnsep3pt
\makeatletter
\def\foo#1\full@width#2#3!!{
\def\page@sofar{#1\full@width{%
\vrule
{\color{green}\leaders\vrule\hskip\full@width}\kern-\full@width
\kern3\p@
#2%
 \kern3\p@\vrule}%
#3}}
\expandafter\foo\page@sofar!!

\makeatother

\begin{document}

\lipsum[1]

   \begin{multicols*}{4}
       \section{First section}
       \lipsum
   \end{multicols*}

\lipsum[2]

\end{document}

沃纳在聊天中评论说,这个答案没有完整的记录。

\page@sofarmulticol负责将生成的列框与列间规则和空间一起组装成页面一行的内部宏。这只会插入一条黑色规则和两侧的一些空间。(参数\intercolumnsep会稍微增加一点以便为这些规则留出空间)并在框的开头添加一条全宽绿色规则,然后插入负空间以便列框位于顶部。

相关内容