我有一本两栏的书,我想有一个横跨整个页面的简单易碎的 tcolorbox。但是我发现很多垂直空间被插入到了不应该出现的地方。这是一个最小的工作示例。
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[twocolumn,a4paper,10pt]{book}
\usepackage{tikz}
\usepackage{cuted}
\usepackage{lipsum}
\usepackage{tcolorbox}\tcbuselibrary{breakable}\tcbuselibrary{skins}
\newtcolorbox{wideframeddbox}[2][]{
enhanced,
breakable,
before upper={\parindent15pt}
}
\newenvironment{wideframed}{\begin{strip}\begin{wideframeddbox}}{\end{wideframeddbox}\end{strip}}
\begin{document}
\lipsum[1-3]
\begin{wideframed}
\lipsum[1-3]
\end{wideframed}
\lipsum[3]
\end{document}
这导致第一页上的文本与宽框的开头之间有很大间隙,并且宽框内每隔几行就会出现不必要的垂直空间。我做错了什么?
答案1
您可以使用以下键进行游戏break at = some length
:
\documentclass[twocolumn,a4paper,10pt]{book}
\usepackage{tikz}
\usepackage{cuted}
\usepackage{lipsum}
\usepackage{tcolorbox}\tcbuselibrary{breakable}\tcbuselibrary{skins}
\newtcolorbox{wideframeddbox}[2][]{
enhanced,
breakable,
before upper={\parindent15pt},
break at = 25\baselineskip
}
\newenvironment{wideframed}{\begin{strip}\begin{wideframeddbox}}{\end{wideframeddbox}\end{strip}}
\begin{document}
\raggedbottom
\lipsum[1-3]
\begin{wideframed}
\lipsum[1-3]
\end{wideframed}
\lipsum[3]
\end{document}
答案2
也许您可以考虑编写一份one column
包含一些multicolumn
片段的文档:
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode
\documentclass[a4paper,10pt]{book}
\usepackage{tikz}
%\usepackage{cuted}
\usepackage{lipsum}
\usepackage{tcolorbox}
\usepackage{multicol}
\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\newtcolorbox{wideframeddbox}[2][]{
enhanced,
breakable,
before upper={\parindent15pt}
}
%\newenvironment{wideframed}{\begin{strip}\begin{wideframeddbox}}{\end{wideframeddbox}\end{strip}}
\begin{document}
\begin{multicols}{2}
\lipsum[1-3]
\end{multicols}
\begin{wideframeddbox}{}
\lipsum[1-3]
\end{wideframeddbox}
\begin{multicols}{2}
\lipsum[3]
\end{multicols}
\end{document}