我在编写数学速查表模板时遇到了一个问题。该模板应具有多列设置,边距非常小,并使用该包提供一些简单的定理环境。除了命令之外,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}
结果如下