我希望我的 tcolorboxes 可以在多色环境中使用可破坏的。但它们不会破坏。另外:
\documentclass[a4paper, twocolumn]{article}
对我来说不起作用,因为对于某些部分,我需要整个页面,而对于某些部分,我想要多列。
我的标题是:
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multicol}
\usepackage[svgnames]{xcolor} % colour extension
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes} % Todo notes
\usepackage[sfdefault,thin]{roboto} % Roboto font
\usepackage{fullpage}
\usepackage{longtable}
\usepackage{tcolorbox} % Colored boxes
\usepackage{xparse} % For squeezing of section titles
\tcbuselibrary{skins,breakable} % breakable for tcolorboxes
我的 tcolorbox 是:
\newenvironment{tada}
{\begin{tcolorbox}[colback=Green!14!white,
colframe=Green!10!blue!29!white,
sharp corners, breakable]}{\end{tcolorbox}}
我这样称呼它:
\begin{multicols}{2}
\begin{tada}
** Here should be written the lipsum text **
\end{tada}
\end{multicols}
现在,如果那是在页面的末尾,那么长的 lipsum 文本就不会因为 tcolorbox 的分割而被打断,而应该由命令易碎多于。
有人知道如何解决这个问题吗?
答案1
我的一个文档也遇到了同样的问题,解决此问题的方法是来自 egreg 的这个答案,所以我也在这里包含了代码。
\RenewDocumentEnvironment{multicols}{mO{}}
{%
\ifnum#1=1
#2%
\else % More than 1 column
\multicolmulticols{#1}[#2]
\fi
}
{%
\ifnum#1=1
\else % More than 1 column
\endmulticolmulticols
\fi
}
我希望这就是您所寻找的(完整的 MWE 如下)。
\documentclass[a4paper,]{article}
\usepackage{lipsum} %to use lipsum
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{multicol}
\usepackage[svgnames]{xcolor}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}
\usepackage[sfdefault,thin]{roboto}
\usepackage{fullpage}
\usepackage{longtable}
\usepackage[many]{tcolorbox}
\usepackage{xparse}
\tcbuselibrary{skins,breakable}
\newenvironment{tada}
{\begin{tcolorbox}[enhanced jigsaw, colback=Green!14!white,
colframe=Green!10!blue!29!white,
sharp corners, breakable]}{\end{tcolorbox}}
%
\let\multicolmulticols\multicols
\let\endmulticolmulticols\endmulticols
\RenewDocumentEnvironment{multicols}{mO{}}
{%
\ifnum#1=1
#2%
\else % More than 1 column
\multicolmulticols{#1}[#2]
\fi
}
{%
\ifnum#1=1
\else % More than 1 column
\endmulticolmulticols
\fi
}
%
\begin{document}
\begin{multicols}{1}
\begin{tada}
\lipsum[1]
\end{tada}
\lipsum[1]
\end{multicols}
\begin{multicols}{2}
\lipsum[1]
\begin{tada}
\lipsum[2-4]
\end{tada}
\lipsum[5]
\end{multicols}
\end{document}