在我得到许多“不要这样做,因为它看起来不太好”之前,我的文档有两种模式:
- 最终模式:其中只有一层嵌套
mdframed
- 审阅模式:其中嵌套有多个级别
mdframed
,每个级别都指示与文本相关的审查过程中所需的信息mdframed
。
因此,此请求的用途仅适用于我的审核模式。
下面的代码产生
但是,取消注释代码中的两行会产生
LaTeX 错误:嵌套太深。
我想获得更多的嵌套数量?
代码:
\documentclass{article}
\usepackage{xcolor}
\usepackage{mdframed}
\begin{document}
\begin{mdframed}[frametitle={Outer Title 1},backgroundcolor=orange!25]
\begin{mdframed}[frametitle={Inner Title 2},backgroundcolor=cyan!25]
\begin{mdframed}[frametitle={Inner Title 3},backgroundcolor=yellow!25]
%\begin{mdframed}[frametitle={Inner Title 4},backgroundcolor=green]
%\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{document}
答案1
mdframed.sty
有
\ifnum\mdf@envdepth >\tw@\@toodeep\else
在定义中\mdf@preenvsetting
,这可以防止超过三层嵌套。您可以使用以下命令进行修改:
\documentclass{article}
\usepackage{xcolor}
\usepackage{xpatch}
\usepackage{mdframed}
\makeatletter
\xpatchcmd{\mdf@preenvsetting}
{\mdf@envdepth >\tw@}
{\mdf@envdepth >20}
{}
{}
\makeatother
\begin{document}
\begin{mdframed}[frametitle={Outer Title 1},backgroundcolor=orange!25]
\begin{mdframed}[frametitle={Inner Title 2},backgroundcolor=cyan!25]
\begin{mdframed}[frametitle={Inner Title 3},backgroundcolor=yellow!25]
\begin{mdframed}[frametitle={Inner Title 4},backgroundcolor=green]
\begin{mdframed}[frametitle={Inner Title 5},backgroundcolor=magenta!20]
\begin{mdframed}[frametitle={Inner Title 6},backgroundcolor=olive!20]
\begin{mdframed}[frametitle={Inner Title 7},backgroundcolor=red!80!black]
\begin{mdframed}[frametitle={Inner Title 8},backgroundcolor=gray!50]
\begin{mdframed}[frametitle={Inner Title 9},backgroundcolor=blue!40]
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{mdframed}
\end{document}