我正在创建一个表格,其中包含针对不同资格问题的解决方案。每个解决方案占用不同的长度,但我不想浪费任何空白。
我想放置其他minipages
将与其上方的任何物体末端相接的物体minipage
。我当前的设置是
\documentclass{article}
\usepackage[margin = 0.1in]{geometry}
\begin{document}
\noindent % left out of MWE but in real doc
\begin{minipage}{0.965\linewidth}
% had to play with this value so the pages wouldnt go out of bounds
\fbox{
\begin{minipage}[t]{0.33\linewidth}
text
\end{minipage}
}
\fbox{
\begin{minipage}[t]{0.33\linewidth}
text
\par\bigskip
text
\par\medskip
text
\end{minipage}
}
\fbox{
\begin{minipage}[t]{0.33\linewidth}
text
\end{minipage}
}
\end{minipage}
\end{document}
- 我怎样才能继续堆叠
minipages
以便它们能够填满空白处? - 无需先尝试
minipages
linewidth
,我可以告诉 LaTeX 我希望每个minipage
都占用0.33
可用空间吗?
期望的结果(不局限于解决方案的规模)将是这样的
多列建议产生
从使用 3 列的建议来看,我遇到了更多问题。从下面的裁剪图像来看,minipage
第二列中的 可以完全容纳在第一列下方的第一列中minipage
,但它被强行塞入第二列,而minipage
应该在第二列中的第三列超出了范围。
mdframed 建议产生
使用时,框架mdframed
会被切断multicol
,第一列的顶部边距不受尊重,并且第二个框架环境不会再次堆叠在第一个框架下,即使有空间
答案1
\documentclass{article}
\usepackage[margin = 0.1in]{geometry}
\usepackage{multicol}
\setlength\columnsep{0pt}
\setlength\parskip{0pt}
\setlength\parindent{0pt}
\setlength\lineskip{0pt}
\raggedcolumns
\begin{document}
\begin{multicols}{3}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\par\bigskip
text
\par\medskip
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\par\bigskip
text
\par\medskip
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text\\text2\\text3\\text4
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\par\bigskip
text
\par\medskip
text
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text\\text2
\end{minipage}}
\fbox{%
\begin{minipage}[t]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}
text
\end{minipage}}
\end{multicols}
\end{document}
答案2
如果你接受 2 列,下面的代码应该可以工作,使用mdframed
\documentclass[11pt,a4paper,twocolumn]{report}
\usepackage{mdframed}
\usepackage{lipsum}
\setlength{\columnsep}{0pt}
\setlength{\columnseprule}{0pt}
\begin{document}
\begin{mdframed}[linewidth=1pt,leftmargin=0pt,rightmargin=0pt]
\lipsum[1-2]
\end{mdframed}
\begin{mdframed}[linewidth=1pt,leftmargin=0pt,rightmargin=0pt]
\lipsum[1-2]
\end{mdframed}
\end{document}
附言:必须注意两个框之间的垂直空间。也许需要一些负空间。