mdframed 水平宽度不一致,仅显示数学内容

mdframed 水平宽度不一致,仅显示数学内容

更新2012-03-09:随着今天更新的版本mdframed,这个问题已经在包中得到修复,不再需要下面提供的解决方法。


mdframed 中多余的垂直空间以显示数学环境结尾,我已将内容包装mdframed在 中minipage,并打算将其作为单独的问题提交,因为我认为minipage包装器不是必需的。如果没有此包装器,如果内容包含仅有的显示数学,宽度不是完整的\linewidth

以下是输出的片段,显示了红色显示数学时输出不一致的情况。请注意,如果框架有标题,则输出正常,但如果没有框架,宽度就不一致:

在此处输入图片描述

问题:

  • 是否有mdframed设置可以调整这一点?如果没有,除了使用 之外,还有其他更好的方法可以获得所需的行为minipage吗?
  • 这是一个错误mdframed,还是一个功能?

笔记:

代码:

\documentclass{article}
\usepackage{showframe}
\usepackage{amsmath}

\usepackage[framemethod=TikZ]{mdframed}
\newenvironment{Frame}[1][]{%
    \begin{mdframed}[%
        frametitle={#1},
        skipabove=\baselineskip plus 2pt minus 1pt,
        skipbelow=\baselineskip plus 2pt minus 1pt,
        linewidth=0.5pt,
        frametitlerule=true,
        frametitlebackgroundcolor=gray!30
    ]%
    %\begin{minipage}{\linewidth}%  this should not be necessary??
}{%
    %\end{minipage}%
    \end{mdframed}
}

\begin{document}\noindent
Text
\begin{Frame}[with Title]
    Text
\end{Frame}
Text
\begin{Frame}% no Title
    Text
\end{Frame}
Text
\begin{Frame}[Einstein]
    \begin{align*}
        e & = mc^2
    \end{align*}
\end{Frame}
Text
\begin{Frame}\color{red}% no Title
    \begin{align*}
        e & = mc^2
    \end{align*}
\end{Frame}
Text
\begin{Frame}\color{red}% no Title
    \begin{align*}
        e  &= mc^2\\
        F  &= ma
    \end{align*}
\end{Frame}
Text
\begin{Frame}\color{red}% no Title
    \[
        e  = mc^2
    \]
\end{Frame}
\end{document}

答案1

我不会使用 ,minipage因为它不会破坏框架,这大概是框架的主要点mdframed,在tikz和德语之间,我不确定它是错误还是(像minipage)它是一个功能。如果内容只是垂直材料,标准 LaTeXminipage也会类似地忽略其请求的长度,只使用其内容的自然长度。(据记录,如果您放入制表符,这会起作用,minipage但通常确实如此。所以我只需通过放入规则来强制宽度:

\newenvironment{Frame}[1][]{%
    \begin{mdframed}[%
        frametitle={#1},
        skipabove=\baselineskip plus 2pt minus 1pt,
        skipbelow=\baselineskip plus 2pt minus 1pt,
        linewidth=0.5pt,
        frametitlerule=true,
        frametitlebackgroundcolor=gray!30
    ]%
    \hrule height0pt width\hsize\relax%<<<<<<<<<<<<<<FORCE WIDTH
    %\begin{minipage}{\linewidth}%  this should not be necessary??
}{%
    %\end{minipage}%
    \end{mdframed}
}

相关内容