mdframed 导致“浮点数过多”错误

mdframed 导致“浮点数过多”错误

我为正在写的一本书定义了一个新环境examples。我希望示例带有灰色边框,并使用以下构造

%----------------------------------------------------------------------------
% EXAMPLES
%----------------------------------------------------------------------------
\newlistof[chapter]{examples}{exp}{\listexamples}
\newcommand{\bex}[1]{%
\begin{mdframed}[linewidth=2, leftmargin=0, rightmargin=0, backgroundcolor=gray, linecolor=black, splittopskip=\topskip, skipbelow=\baselineskip, skipabove=\baselineskip]
\refstepcounter{examples}
\par\noindent\sqrblt\underline{\textbf{Example \theexamples. #1}}
\addcontentsline{exp}{examples}
{\protect\numberline{\theexamples}#1}\par}
\cftsetindents{examples}{0em}{2em} % for example numbers which are greater than 9
% Solution
\newcommand{\sol}{\begin{center}\underline{{\bf Solution:}}\end{center}}
% End of Example
\newcommand{\eex}{
\noindent \hbox{~~}\hfill \hbox{~~} \sqrblt
\end{mdframed}
}

如果我激活mdframed,我会得到“不在外部模式”的结果。如果我评论该mdframed部分,一切都很好

答案1

这是一个有效的解决方案。

欢迎您的反馈。

\setcounter{errorcontextlines}{999}
\documentclass[openany]{book}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage[framemethod=default]{mdframed}
\usepackage{tocloft}
%----------------------------------------------------------------------------
% EXAMPLES
%----------------------------------------------------------------------------
\newlistof[chapter]{examples}{exp}{\listexamples}
\cftsetindents{examples}{0em}{2em}
\newcommand*\listexamples{List of Examples}

\newcommand{\sqrblt}{\rule{0.1in}{0.1in}\hspace{.05in}}

\mdfdefinestyle{example}{%
   linewidth=2,
   leftmargin=0,
   rightmargin=0,
   backgroundcolor=gray,
   linecolor=black,
   splittopskip=\topskip,
   skipbelow=\baselineskip,
   skipabove=\baselineskip,
   frametitlefont=\bfseries,}

\newenvironment{examplesenv}[1]%
   {\refstepcounter{examples}%
    \addcontentsline{exp}{examples}{\protect\numberline{\theexamples}#1}
    \begin{mdframed}[style=example,frametitle={\sqrblt Example \theexamples.~#1}]
   }{\mbox{}\hspace{0.2in}\mbox{}\hfill\llap{\sqrblt}\end{mdframed}}

\let\bex\examplesenv
\let\eex\endexamplesenv

\usepackage{showframe,lipsum}
\begin{document}
\listofexamples
\chapter{foo}
\lipsum[1]

\begin{examplesenv}{Example one}
\lipsum[1]
\end{examplesenv}
\clearpage
\bex{Example two}
\lipsum[1]
\eex
\end{document}

编辑

在评论中赞帕诺他写道插入一个浮动环境。这行不通。如果在英国 TeX 常见问题列表

这当然是矛盾的:图形和表格被设计为浮动,并且总是有可能出现在您要求的位置之外。因此,您必须找到一种方法来获得标题和其他效果,而不允许图形或表格浮动。

为了在此内容中使用captions,我更喜欢方法captionof(由KOMA-script或由包caption或提供capt-of

\begin{center}
 \includegraphics{picture}
  \captionof{figure}{foo}
\end{center}

在此处输入图片描述

相关内容