如何在 mdframed 环境中获得 3 级以上的嵌套?

如何在 mdframed 环境中获得 3 级以上的嵌套?

在我得到许多“不要这样做,因为它看起来不太好”之前,我的文档有两种模式:

  1. 最终模式:其中只有一层嵌套mdframed
  2. 审阅模式:其中嵌套有多个级别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}

在此处输入图片描述

相关内容