多列意外行为

多列意外行为

我在编写数学速查表模板时遇到了一个问题。该模板应具有多列设置,边距非常小,并使用该包提供一些简单的定理环境。除了命令之外,tcolorbox我还使用了带星号的 4 列多列环境,这样列就不会被强制为等高。multicols*\raggedcolumns

我的问题是,我得到了一些大块(看似)随机的空白。我不明白是什么原因导致了这样的事情。以下是一个例子:

在此处输入图片描述 在此处输入图片描述

如您所见,第四节后面有一个很大的空白,这是我不想要的。此外,如果您查看第二个(或第五个)定义,您会发现我已启用breakable定义 tcbtheorem 的属性。第四节标题后面有相当多的空间,因此大部分定义环境应该可以容纳。

以下是屏幕截图的代码(以及产生其他空白块的一些盲文):

\documentclass[a4paper,8pt]{extarticle}

\usepackage[landscape,margin=5mm]{geometry}
\usepackage{blindtext}
\usepackage{multicol}
\usepackage[most]{tcolorbox}

\tcbset{
  enhanced,
  breakable,
  frame hidden,
  boxrule=0pt,
  sharp corners,
  detach title,
  fonttitle=\bfseries\sffamily,
  before upper*={\tcbtitle},
  terminator sign colon,
  top=1mm,
  left=0mm,
  right=0mm,
  bottom=1mm,
  coltitle=black,
  colback=gray!10,
  borderline north={0.5pt}{0pt}{black},
  borderline south={0.5pt}{0pt}{black},
}

\newtcbtheorem[]{definition}{Definition}{}{def}

\setlength\parindent{0mm}
\raggedcolumns

\begin{document}  
\begin{multicols*}{4}
  
\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
\end{definition}

\end{multicols*}
\end{document}

答案1

只是一个想法。tcolorbox不会破坏多列环境内的框,但您可以构建一个狭窄的文档(tcolorbox可以在其中工作)并使用pdfpages包在另一个文档上组织结果页面。

\documentclass[a4paper,8pt]{extarticle}

\usepackage[paperwidth=74.25mm, paperheight=210mm, margin=5mm]{geometry}
\usepackage{blindtext}
\usepackage{multicol}
\usepackage[most]{tcolorbox}

\tcbset{
  enhanced,
  breakable,
  frame hidden,
  boxrule=0pt,
  sharp corners,
  detach title,
  fonttitle=\bfseries\sffamily,
  before upper*={\tcbtitle},
  terminator sign colon,
  top=1mm,
  left=0mm,
  right=0mm,
  bottom=1mm,
  coltitle=black,
  colback=gray!10,
  borderline north={0.5pt}{0pt}{black},
  borderline south={0.5pt}{0pt}{black},
}

\newtcbtheorem[]{definition}{Definition}{}{def}

\setlength\parindent{0mm}
\raggedcolumns

\begin{document}  
%\begin{multicols*}{4}
  
\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}
\blindtext

\begin{definition}{}{}
  \blindtext
\end{definition}

\blindtext
\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
  \blindtext
\end{definition}

\section{Section}

\blindtext
\blindtext
\blindtext

\section{Section}

\begin{definition}{}{}
  \blindtext
  \blindtext
\end{definition}

%\end{multicols*}
\end{document}

此文档生成一列窄页

在此处输入图片描述

如果这个文档的名字是 631320.pdf,那么就可以将这些页面排列成多列页面,

\documentclass[a4paper]{article}
\usepackage{geometry}
\usepackage{pdfpages}

\begin{document}
\includepdf[pages=-,nup=1x4,landscape]{631320}
\end{document}

结果如下

在此处输入图片描述

相关内容