编辑:我应该给出基于回忆录(我正在使用)的 MWE,其中内边距和外边距最初是不同的。我希望在新环境中边距相同。(内边距是奇数页的左边距和偶数页的右边距……或相反。)
我希望能够定义一个环境
- 改变文本的宽度;
- 改变列数;
- 添加背景颜色;
- 跨页面边界工作。
到目前为止,我能得到的最好结果是四分之三;第 2 项和第 3 项似乎是不兼容的选择。
下面是一个显示意图的 MWE。(不幸的是,如文档所述,adjusmulticols
它们mdframed
不兼容。)
\documentclass{article}
\usepackage{adjmulticol}
\usepackage{mdframed}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
%\begin{mdframed}[background=yellow]
\begin{adjmulticols}{2}{-1in}{-1in}
\lipsum
\end{adjmulticols}
%\end{mdframed}
\begin{mdframed}[backgroundcolor=yellow,leftmargin=-1,rightmargin=-1]
%\begin{adjmulticols}
\lipsum
%\end{adjmulticols}
\end{mdframed}
\end{document}
答案1
标准multicol
可以应对页边距的局部变化,因此您只需要在组装列时放入一个彩色规则,如下所示:
\documentclass{article}
\usepackage{multicol}
\usepackage{color}
\makeatletter
\newenvironment{wider}
{\list{}{\leftmargin-1cm\relax\rightmargin\leftmargin}%
\item\relax}
{\endlist}
\def\foo#1\full@width#2#3\foo{%
\def\page@sofar{%
#1%
\full@width{%
{\color{yellow}\vrule \@width \full@width}%
\kern-\full@width
#2}%
#3}}
\expandafter\foo\page@sofar\foo
\usepackage{lipsum}
\begin{document}\color{black}
\lipsum[1]
\begin{wider}
\begin{multicols}{2}
\lipsum
\end{multicols}
\end{wider}
\begin{multicols}{3}
\lipsum
\end{multicols}
\end{document}
更新
或者根据评论中的要求进行微小的变化,仅memoir
在示例中使用,并使环境在一侧更宽,并根据页面转移规则
\documentclass{memoir}
\usepackage{multicol}
\usepackage{color}
\makeatletter
\newenvironment{wider}
{\list{}{\leftmargin0pt\relax
\rightmargin-2cm\relax}%
\item\relax}
{\endlist}
\def\foo#1\moveright#2\full@width#3#4\foo{%
\def\page@sofar{%
#1%
\dimen@\multicol@leftmargin
\ifodd\c@page\else\advance\dimen@-2cm\relax\fi
\moveright\dimen@
\hbox to \full@width{%
{\color{yellow}\vrule \@width \full@width}%
\kern-\full@width
#3}%
#4}}
\expandafter\foo\page@sofar\foo
....照常休息
答案2
值得一看的一个好包是tcolorbox
,尽管遗憾的是它也不能跨页显示。
\documentclass{article}
\usepackage{multicol,lipsum}
\usepackage{tcolorbox}
\begin{document}
\begin{tcolorbox}[width=15cm]
\begin{multicols}{3}
\lipsum[1-3]
\end{multicols}
\end{tcolorbox}
\end{document}
答案3
显然,另一个解决方案是boites
使用一些pstrick
魔法,正如演示的那样这里不幸的是,我无法重现它,因为我收到一条Non-PDF special ignored!
错误消息(使用 pdflatex)。