我有一个mdframed
很大的盒子innerrightmargin
(在我使用它的地方,它将包含各种\marginpar
条目,并且我需要保留此功能)。
我想要一条横跨(大部分)宽度的规则innerrightmargin
。为了达到特定目的,在下面的 MWE 中,我想要一条横跨除两边 0.2cm 以外的所有宽度的规则。
\documentclass{article}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\newmdenv[linewidth=1pt,innerrightmargin=2.2cm,innerleftmargin=0.2cm,
linecolor=black,backgroundcolor=yellow!20]{yellowbox}
\begin{document}
% Box without rules for comparison
\begin{yellowbox}
\lipsum[2]
\end{yellowbox}
% Box with \rule looks right, but returns overfull hbox
\begin{yellowbox}
\lipsum[2]
\noindent\rule{\dimexpr\textwidth+2cm}{2pt}
\end{yellowbox}
% Box with \hrule makes the yellowbox wider
\begin{yellowbox}
\lipsum[2]
\hrule height 2pt width \dimexpr\textwidth+2cm
\end{yellowbox}
\end{document}
\rule
输出结果见下图:第一个框仅用于比较。第二个框中使用的看起来正确,但返回的水平框过满。最后一个框使用\hrule
。最后一个框是我首选的方法,但它目前会导致框的宽度扩大 2 厘米以适应规则。
有什么建议么?
答案1
\documentclass{article}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{lipsum}
\newmdenv[linewidth=1pt,innerrightmargin=2.2cm,innerleftmargin=0.2cm,
linecolor=black,backgroundcolor=yellow!20]{yellowbox}
\begin{document}
% Box without rules for comparison
\begin{yellowbox}
\lipsum[2]
\end{yellowbox}
% Box with \rule looks right
\begin{yellowbox}
\lipsum[2]
\noindent\rlap{\rule{\dimexpr\textwidth+2cm}{2pt}}%
\end{yellowbox}
\end{document}