将表放入定理环境中会将其发送到文档的最末尾

将表放入定理环境中会将其发送到文档的最末尾

我想\begin{example} \lipsum[2] \end{example}用一个表格来说明,但将表格添加到环境中会将其发送到文档的最末尾:

\documentclass{article}
\usepackage{wrapfig, lipsum, amsthm, thmtools}
\declaretheorem[style=remark,name=Example]{example}
\begin{document}

\begin{example}

\begin{wraptable}{r}{5.5cm}
    \begin{tabular}{cc}
    \hline
    header-a & header-b \\ 
    1 & 2 \\ 
    3 & 4 \\  
    \hline
    \end{tabular}
\end{wraptable} 

\lipsum[2]

\end{example}

\lipsum[2]

\end{document}

它看起来是这样的: 桌子

答案1

这是一个使用集合中的通用宏的 hack insbox.tex。我定义了一个\InsertExampleR命令,它可以在右侧插入(几乎)任何框,并且有 2 个强制参数和 1 个可选参数:强制参数是长度保持不变的行数和要插入的框。可选参数是要缩短的补充行数,以防框高度计算不准确。它可以适用于任何类似定理的环境,但取决于定理标签。

\documentclass{article}
\usepackage{wrapfig, lipsum, amsthm, thmtools, caption, xcolor, makebox}
\declaretheorem[style=remark,name=Example]{example}
\input{insbox.tex}

\newcommand{\InsertExampleR}[3][]{%
\leavevmode\vspace*{-\baselineskip}
\InsertBoxR{#2}{\enspace#3}[#1]
\hspace*{-\parindent}\makebox*{\textit{Example} \theexample.$\:$}{}
}%

\makeatletter
\newcommand*\InsertBoxMargin[1]{\@InsertBoxMargin = #1}
\makeatother

\begin{document}

\begin{example}
\InsertExampleR{0}{%
\begin{tabular}{cc}
 \hline
 header-a & header-b \\
 1 & 2 \\
 3 & 4 \\
 \hline
 \end{tabular}}
\lipsum[2]%
\end{example}

\end{document}

在此处输入图片描述

相关内容