我只是从mdframed
文档中复制了一种样式。
由于“pt”出现在 Theo 上方,我无法找出我的错误所在。
- 我确实将蓝色改为灰色。
- 我使用 Xetex 来编译我的 unicode tex。
- 我尝试过将两者都放在序言和之后。
我修改了
\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”。我应该在哪里省略它?
谢谢!
答案1
使用frametitleaboveskip=-15pt\relax
这种方式不再被识别为维度值,即,-15pt
而是分解成-15
和pt
,然后留在输入中。
也\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}