修复包含方程式的 mdframed 溢出的 \hbox

修复包含方程式的 mdframed 溢出的 \hbox

当用创建一个盒装环境时mdframed,我遇到了一个带有方程式的问题,这也恰好是定义的第一行。

dA 从盒子中伸出

有没有办法自动修复问题,而无需使用\linebreak?如果没有,最佳实践解决方案是什么?

完整 MWE:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mdframed}

\theoremstyle{definition}
\newtheorem{defn}{Definition}
\surroundwithmdframed[leftmargin=20pt,rightmargin=20pt]{defn}

\begin{document}
\begin{defn}
The double integral of $f$ on $R$, denoted as $\iint_R f(x,y) \, \operatorname{d}\!A$
\end{defn}
\end{document}

答案1

首先要说的是:算法很可能永远不会一次覆盖所有用例。一个好的经验法则是假设 LaTeX 文档在没有任何直接干预的情况下平均能达到最终质量的 90%。也就是说,在\linebreak这里或那里插入一个不应该是世界末日,即

\begin{defn}
  The double integral of $f$ on $R$, denoted as \linebreak $\iint_R f(x,y) \, \operatorname{d}\!A$
\end{defn}

将会完美运行。

如果您确实想自动化此操作,您可以将定义文本包装到\parbox具有固定宽度的定义中:

\documentclass{article}
\usepackage{lipsum}
\usepackage{amsmath}
\usepackage{amsthm}
  \theoremstyle{definition}
  \newtheorem{definition}{Definition}
\usepackage{mdframed}
\usepackage{environ}

\makeatletter
\parindent\z@
\NewEnviron{defn}{%
  \mdframed[leftmargin=20\p@, rightmargin=20\p@]
    \centering
    \parbox[c]{\hsize}{\definition\BODY\enddefinition}
  \endmdframed
}
\makeatother

\begin{document}
\lipsum[1]

\begin{defn}
  The double integral of $f$ on $R$, denoted as $\iint_R f(x,y) \, \operatorname{d}\!A$
\end{defn}

\lipsum[2]
\end{document}

输出剪切

但是,我认为你不需mdframed要这样做。你可能想尝试以下定义defn

\NewEnviron{defn}{%
  \vskip10\p@
  \begingroup\centering
    \fbox{%
      \hskip5\p@
      \parbox[c]{\dimexpr\hsize-60\p@\relax}{%
        \definition\BODY\enddefinition}
      \hskip5\p@}
    \par
  \endgroup
  \vskip10\p@
}

答案2

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{mdframed}
\theoremstyle{definition}
\newtheorem{defn}{Definition}
\surroundwithmdframed[leftmargin=-10pt,rightmargin=20pt]{defn}
\begin{document}
\begin{defn}
The double integral of $f$ on $R$, denoted as $\iint_R f(x,y) \, 
\operatorname{d}\!A$
\end{defn}
\end{document}
Same code only left margin is assigned with -10pt   

框架

相关内容