介绍
在...的帮助下这个答案,我尝试为类似定理的环境定义半透明背景。这是我的解决方案:
\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
绘制顺序:
- 整个框架(包括框架标题)的背景由 填充
backgroundcolor
。默认backgroundcolor
为白色。backgroundcolor=none
表示fill=none
- 然后
tikzsetting
对整个帧执行。 - 最后,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
}