带有 mdframed 的背景颜色:这种行为正常吗?

带有 mdframed 的背景颜色:这种行为正常吗?

介绍

在...的帮助下这个答案,我尝试为类似定理的环境定义半透明背景。这是我的解决方案:

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}

\mdfdefinestyle{myStyle}{%
tikzsetting={draw=blue,fill=red,fill opacity=0.5},
backgroundcolor=none
}

\mdtheorem[style=myStyle]{test}{Test}

\begin{document}
\pagecolor{blue}
\begin{test}
This is a test
\end{test}
\end{document}

在此处输入图片描述

奇怪的行为

但在寻找此解决方案时,我遇到了 的奇怪行为mdframed。我想为社区发布有关它的信息,也许可以获得更多信息。如果我不提供选项,则会发生以下情况backgroundcolor=none。请比较两个代码和两个图像,看看奇怪的行为是什么。

\documentclass{article}
\usepackage[framemethod=tikz]{mdframed}

\mdfdefinestyle{myStyle}{%
tikzsetting={draw=blue,fill=red,fill opacity=0.5}
}

\mdtheorem[style=myStyle]{test}{Test}

\begin{document}
\pagecolor{blue}
\begin{test}
This is a test
\end{test}
\end{document}

问题

所以,我的问题是:这是正常的吗?

在此处输入图片描述

答案1

绘制顺序:

  1. 整个框架(包括框架标题)的背景由 填充 backgroundcolor。默认backgroundcolor为白色。backgroundcolor=none表示fill=none
  2. 然后tikzsetting对整个帧执行。
  3. 最后,frametitlebackground 由 填充frametitlebackgroundcolor。如果没有frametitlebackgroundcolor设置,backgroundcolor也用于frametitlebackgroundcolor

因此,为了获得半透明的背景,你可以使用

\mdfdefinestyle{myStyle}{%
  backgroundcolor=none,% both the background of the whole frame and the background of the frame title are not filled
  tikzsetting={fill=red,fill opacity=0.5},% 
}

在此处输入图片描述

或者你可以使用

\mdfdefinestyle{myStyle}{%
  apptotikzsetting={%
  \tikzset{mdfbackground/.append style={fill=red,fill opacity=0.5}}% the background of the whole frame is filled red with opacity=0.5
  frametitlebackgroundcolor=none% the background of the frametitle is not filled 
}

相关内容