tcolorbox 和 mdframed 各自的优缺点是什么?

tcolorbox 和 mdframed 各自的优缺点是什么?

我认为实际上我们不会在一个输入文件中同时使用tcolorboxmdframed。如果我错了,请纠正我。所以我们必须选择或tcolorboxmdframed然而,如果不知道两者的优缺点,我们只能通过赌博来选择其中一个。

简单来说,这两个软件包的优缺点是什么?这些问题的答案确实影响了我在 TeX 的职业生涯。

答案1

我理解tcolorbox功能是的超集mdframed。虽然mdframed尝试为您提供创建彩色框架的工具,但与tcolorbox它们相比,它们对我来说显得苍白和简单。

我认为只要有足够的tikz忍者技能,你就可以通过这两种方式实现你想要的目标,但tcolorbox对我来说,语法和选项更简单。

此外,tcolorbox具有这种所缺乏的“上部/下部”功能mdframed,并且使用创建带有标题的简单彩色框架似乎更简单tcolorbox

根据文献框架

\mdfdefinestyle{theoremstyle}{%
linecolor=red,middlelinewidth=2pt,%
frametitlerule=true,%
apptotikzsetting={\tikzset{mdfframetitlebackground/.append style={%
shade,left color=white, right color=blue!20}}},
frametitlerulecolor=green!60,
frametitlerulewidth=1pt,
innertopmargin=\topskip,
}
\mdtheorem[style=theoremstyle]{definition}{Definition}
\begin{definition}[Inhomogeneous linear]
\ExampleText
\end{definition}
\begin{definition*}[Inhomogeneous linear]
\ExampleText
\end{definition*}

框架定理

相当于彩色盒子文档:

\tcbuselibrary{theorems}
\newtcbtheorem[number within=section]{mytheo}{My Theorem}%
{colback=green!5,colframe=green!35!black,fonttitle=\bfseries}{th}

\begin{mytheo}{This is my title}{theoexample}
This is the text of the theorem. The counter is automatically assigned and,
in this example, prefixed with the section number. This theorem is numbered with
\ref{th:theoexample} and is given on page \pageref{th:theoexample}.
\end{mytheo}

tcolorbox 定理

@claudio-fiandrino 提到,mdframe 框可以用 tikz 进行自定义。tcolorbox 也是如此,因为它依赖于 tikz。

\tcbset{colback=Salmon!50!white,colframe=FireBrick!75!black, width=(\linewidth-8mm)/2,before=,after=\hfill,equal height group=ske}
\begin{tcolorbox}[adjusted title=My title]
This is my content.
\end{tcolorbox}
\begin{tcolorbox}[skin=beamer,beamer,adjusted title=My title]
This is my content.
\end{tcolorbox}

tcolorbox 定制

答案2

值得一提的是:我已经使用了mdframed很长时间了……我都不知道它tcolorbox的存在!浏览了tcolorbox几分钟的文档后,我迫不及待地想要转换我的文档。

在我看来,这是一个制作精良的软件包。它本身基于pgf,并pgfkeys正确使用以提供自己的一系列选项,在我看来,这是质量的标志。它还提供了一套库来扩展功能,例如全面tikz支持。

相比之下,mdframed界面对我来说总是感觉有点笨拙和令人沮丧。对自定义 TikZ 选项的支持似乎是“附加的”,而不是正确实现的。此外,我不止一次遇到过它与其他软件包发生冲突的情况。

答案3

我读了一些关于的文档tcolorbox,还有一些关于的文档mdframed,我主要用mdframed在我的环境中。在我看来,人们可以轻松地mdframed使用来更改框架线tikz/pgf,上面有很多插图stackchange给出贡萨洛·梅迪纳和其他人。至于tcolorbox,似乎示​​例代码很少,但是tcolorbox的文档制作得非常精美。

答案4

另一点反对意见mdframed:易碎的盒子有时会造成严重损坏。

请参见下面的示例。

(例子取自如何防止 mdframed 排版包含带有彩色背景的少量 vspace 的寡妇线?

各种各样的评论建议改用tcolorbox

相关内容