我想使用 mdframed 创建一个离题图。我希望它有圆角,所以我用选项 [framemethod=tikz] 加载它。因此,出现了一个问题,即我为 tikzpictures 使用的标准框架框也放在了 mdframed-box 周围,导致出现非常丑陋的双框架。我尝试了在这问题,但我无法将 TikZ 密钥传递给 mdframed。
我最终想要实现的是一个具有圆角和灰色背景的框架。这是我的 MWE:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[framemethod=tikz]{mdframed}
\tikzset{every picture/.style={framed,background rectangle/.style={draw=black!80,rounded corners=.5ex}}}
\begin{document}
\begin{mdframed}[backgroundcolor=black!10!white]
Plain text.
Or something else.
\end{mdframed}
\end{document}
如何防止外框?
答案1
由于您想要禁用every picture
的样式mdframe
,您可以使用:
\AtBeginEnvironment{mdframed}{%
\tikzset{every picture/.style={}}%
}
然后将\mdfsetup{}
其应用roundcorner
到 mdframe:
\mdfsetup{roundcorner=.5ex}
这样,tikzpicture
环境仍然可以获得所需的帧,并且mdframe
不会受到影响:
代码:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{backgrounds}
\usepackage[framemethod=tikz]{mdframed}
\tikzset{every picture/.style={framed,background rectangle/.style={draw=red!80,rounded corners=.5ex, inner sep=0pt}}}%
\AtBeginEnvironment{mdframed}{%
\tikzset{every picture/.style={}}%
}
\mdfsetup{roundcorner=.5ex}
\begin{document}
\noindent
\begin{tikzpicture}
\draw [fill=yellow] (0,0) rectangle (2,3);
\end{tikzpicture}
\begin{mdframed}[backgroundcolor=black!10!white]
Plain text.
Or something else.
\end{mdframed}
\end{document}