Innertopmargin 与 mdframed 和 amsthm 冲突

Innertopmargin 与 mdframed 和 amsthm 冲突

我用框架包来突出显示我的 latex 文档中的环境。但是,将 mdframed 与 amsthm 一起使用时似乎存在错误。在这种情况下,参数内上边距似乎被忽略了(蓝线结束于并且不在同一高度。

这是 MWE

\documentclass[a4paper]{article}
\usepackage{amsthm}
\usepackage[framemethod=tikz]{mdframed}
\usepackage{tikz}

\newmdtheoremenv[
  hidealllines=true,
  leftline=true,
  innermargin=0pt,
  innerrightmargin=10pt,
  innertopmargin=0pt,
  linewidth=1.5pt,
  linecolor=blue,
]{example}[section]{Example}

\usepackage{lipsum}
\begin{document}
    \begin{example}
        \lipsum[1]
    \end{example}
\end{document}

有人知道如何解决这个问题吗?

答案1

引用amsthm文档

上下空间:[...] 对于作为单独包使用的 amsthm,它是 \topsep 的本地值。

因此,您可以通过设置innertopmargin来补偿这个额外的空间-\topsep

\documentclass[a4paper]{article}

\usepackage[framemethod=tikz]{mdframed}
\usepackage{tikz}

\usepackage{amsthm} 

\newmdtheoremenv[
  hidealllines=true,
  leftline=true,
  innermargin=0pt,
  innerrightmargin=10pt,
  innertopmargin=-\topsep,
  linewidth=1.5pt,
  linecolor=blue,
]{example}[section]{Example}



\usepackage{lipsum}
\begin{document}
    \begin{example}
        \lipsum[1]
    \end{example}
\end{document}

或者,您也可以更改的值\topsep(警告:这也会影响所有其他使用的内容\topsep):

\documentclass[a4paper]{article}

\usepackage[framemethod=tikz]{mdframed}
\usepackage{tikz}

\usepackage{amsthm} 

\setlength{\topsep}{0pt}

\newmdtheoremenv[
  hidealllines=true,
  leftline=true,
  innermargin=0pt,
  innerrightmargin=10pt,
  innertopmargin=0pt,
  linewidth=1.5pt,
  linecolor=blue,
]{example}[section]{Example}



\usepackage{lipsum}
\begin{document}
    \begin{example}
        \lipsum[1]
    \end{example}
\end{document}

在此处输入图片描述

相关内容