我为正在写的一本书定义了一个新环境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}