minipages:多种尺寸的 minipages,使用纸张上的所有空间并自动缩放

minipages:多种尺寸的 minipages,使用纸张上的所有空间并自动缩放

我正在创建一个表格,其中包含针对不同资格问题的解决方案。每个解决方案占用不同的长度,但我不想浪费任何空白。 在此处输入图片描述

我想放置其他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}
  1. 我怎样才能继续堆叠minipages以便它们能够填满空白处?
  2. 无需先尝试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}

在此处输入图片描述

在此处输入图片描述

附言:必须注意两个框之间的垂直空间。也许需要一些负空间。

相关内容