答案1
mdframed
@cmhughes 已经给出了答案,我很高兴在此确认 :-)和之间的外边距原理略有不同tcolorbox
。在 中tcolorbox
,您可以操纵边界框来实现多种效果,例如与页边距重叠等。
要获得与 中相同的外边距mdframed
,您必须将边界框扩大到四个方向。由于您不希望框与页边距重叠,因此必须相应地缩小宽度。这就是grow to left by
和键grow to right by
自动执行的操作(此处:它们缩小框)。对于顶部和底部,框的高度不必改变;只需放大边界框:
\documentclass{article}
\usepackage{lipsum}
\usepackage[many]{tcolorbox}
\begin{document}
\lipsum[1]
\begin{tcolorbox}[enhanced,colframe=blue,
grow to left by=-2cm,% equivalent to negative mdframed 'leftmargin'
grow to right by=-2cm,% equivalent to negative mdframed 'rightmargin'
enlarge top by=1cm,% equivalent to mdframed 'skipabove'
enlarge bottom by=1cm,% equivalent to mdframed 'skipbelow'
show bounding box,% display the bounding box
overlay app={% draw the green arrow lines
\begin{scope}[very thick,<->,green!50!black]
\draw (frame.west) -- node[above] {2cm} ++(-2cm,0);
\draw (frame.east) -- node[above] {2cm} ++(2cm,0);
\draw (frame.north) -- node[right] {1cm} ++(0,1cm);
\draw (frame.south) -- node[right] {1cm} ++(0,-1cm);
\end{scope}}]
\lipsum[2]
\end{tcolorbox}
\lipsum[3]
\end{document}
答案2
一种方法是使用按键grow to left by=<length>
和grow to right by=<length>
\begin{tcolorbox}[grow to left by=-1cm,grow to right by=-2cm]
这是一个完整的 MWE,可供使用。
% arara: pdflatex
\documentclass{article}
\usepackage[showframe=true]{geometry}
\usepackage{tcolorbox}
\usepackage{lipsum}
\begin{document}
\begin{tcolorbox}[grow to left by=-1cm,grow to right by=-2cm]
\lipsum[1]
\end{tcolorbox}
\begin{tcolorbox}[right=3cm]
\lipsum[2]
\end{tcolorbox}
\end{document}
可能还有其他方法可以做到这一点 — — 也许作者会顺便过来确认一下,他是该网站的常客。