\rule 或 \hrule 延伸至 mdframed 框的 innerrightmargin

\rule 或 \hrule 延伸至 mdframed 框的 innerrightmargin

我有一个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 厘米以适应规则。

有什么建议么?

上面的 MWE 输出

答案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}

相关内容