Mdframed 的问题

Mdframed 的问题

我只是从mdframed文档中复制了一种样式。

p4 p5

由于“pt”出现在 Theo 上方,我无法找出我的错误所在。

  1. 我确实将蓝色改为灰色。
  2. 我使用 Xetex 来编译我的 unicode tex。
  3. 我尝试过将两者都放在序言和之后。
  4. 我修改了\frametitleaboveskip-> -15pt [因为原来的那个对我来说不起作用]

    \documentclass[showframe,10pt,a5paper]{article}
    \usepackage[utf8]{inputenc}
    \usepackage{amsmath}
    \usepackage{amsfonts}
    \usepackage{amssymb}
     \usepackage[framemethod=tikz]{mdframed}
    
    
    \begin{document}
      \newcounter{theo}
        \newenvironment{theo}[1][]{%
    \stepcounter{theo}%
    \ifstrempty{#1}%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0]\node[anchor=east,rectangle,fill=gray]
                { Theorem~\thetheo};}}
    }%
    {\mdfsetup{%
            frametitle={%
                \tikz[baseline=(current bounding box.east),outer sep=0]
                \node[anchor=east,rectangle,fill=gray]
                { Theorem~\thetheo:~#1};}}%
    }%
    \mdfsetup{innertopmargin=7pt,linecolor=gray!20,linewidth=2pt,topline=true,
        frametitleaboveskip=-15pt\relax,}
    \begin{mdframed}[]\relax%
    }{\end{mdframed}}
    
    
     %Where I start.
    
    \begin{theo}
     hi\end{theo}
     \end{document}
    

pt 在上面!!!

我不明白为什么会有“pt”。我应该在哪里省略它?

谢谢!

答案1

使用frametitleaboveskip=-15pt\relax这种方式不再被识别为维度值,即,-15pt而是分解成-15pt,然后留在输入中。

\stepcounter应该能够\refstepcounter进行交叉引用。

showframe这里没有用到因此我将其删除了。

我还建议在之前定义新环境\begin{document}...

\documentclass[10pt,a5paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[framemethod=tikz]{mdframed}


\newcounter{theo}
\newenvironment{theo}[1][]{%
  \refstepcounter{theo}%
  \ifstrempty{#1}%
  {\mdfsetup{%
      frametitle={%
        \tikz[baseline=(current bounding box.east),outer sep=0]
        \node[anchor=east,rectangle,fill=gray]
        { Theorem~\thetheo};}}
  }%
  {\mdfsetup{%
      frametitle={%
        \tikz[baseline=(current bounding box.east),outer sep=0]
        \node[anchor=east,rectangle,fill=gray]
        { Theorem~\thetheo:~#1};}}%
  }%
  \mdfsetup{innertopmargin=7pt,linecolor=gray!20,linewidth=2pt,topline=true,
    frametitleaboveskip=-15pt}
  \begin{mdframed}[]\relax%
  }{%
\end{mdframed}%
}


% Where I start.

\begin{document}
\begin{theo}
  hi
\end{theo}
\end{document}

在此处输入图片描述

相关内容