\documentclass[a4paper,10pt]{article}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\usepackage{multicol}
\mdfdefinestyle{graybox}{
splittopskip=0,%
splitbottomskip=0,%
frametitleaboveskip=0,
frametitlebelowskip=0,
skipabove=0,%
skipbelow=0,%
leftmargin=0,%
rightmargin=0,%
innertopmargin=2mm,%
innerbottommargin=2mm,%
roundcorner=2mm,%
backgroundcolor=gray!20}
\begin{document}
\begin{mdframed}[style=graybox]
\begin{multicols}{2}
\lipsum[1]
\columnbreak
\lipsum[2]
\end{multicols}
\end{mdframed}
\end{document}
结果:
我如何删除 mdframe 内的顶部边距?
已经尝试过这个但是没有用:
\begin{document}
\begin{mdframed}[style=graybox]
\begin{multicols}{2}
\vskip -2\baselineskip
\lipsum[1]
\columnbreak
\vskip -2\baselineskip
\lipsum[2]
\end{multicols}
\end{mdframed}
\end{document}
答案1
您需要调整\multicolsep
变量:
\documentclass[a4paper,10pt]{article}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\usepackage{multicol}
\mdfdefinestyle{graybox}{
splittopskip=0,%
splitbottomskip=0,%
frametitleaboveskip=0,
frametitlebelowskip=0,
skipabove=0,%
skipbelow=0,%
leftmargin=0,%
rightmargin=0,%
innertopmargin=2mm,%
innerbottommargin=2mm,%
roundcorner=2mm,%
backgroundcolor=gray!20}
\begin{document}
\begin{mdframed}[style=graybox]
\setlength{\multicolsep}{2pt}
\begin{multicols}{2}
\lipsum[1]
\columnbreak
\lipsum[2]
\end{multicols}
\end{mdframed}
\end{document}
来自以下文档multicol
:
作为其第一个动作,multicols 环境测量当前页面以确定是否有足够的空间容纳多列输出的某些部分。这由 ⟨dimen⟩ 变量控制,
\premulticols
用户可以使用普通的 LATEX 命令更改该变量。如果空间小于,则开始一个新页面。否则,将添加\premulticols
\vskip 。\multicolsep
\multicolsep
正在启动,这multicols
是环境中的第一件事。默认情况下\multicolsep
为12pt plus 4pt minus 3pt
,其数量级与标准文档中的基线跳过/空白行相同。