当定理之间有图形时,定理之间的间距不正确

当定理之间有图形时,定理之间的间距不正确

我有一篇文档,其中有两个连续的定理。第一个定理有一个图表来解释一些事情。我的 MWE 是这样的。

% !TeX program = lualatex

\documentclass{report}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{caption}
\usepackage{tikz}
\usepackage{lipsum}

\theoremstyle{definition}
\newtheorem{theorem}{Theorem}

\captionsetup{tableposition=top,figureposition=bottom,font=small}
\usetikzlibrary{positioning}

\begin{document}
    \begin{theorem}
        \lipsum[1]
    \end{theorem}

    \begin{figure}[tp]
        \centering
        
        \begin{tikzpicture}
            \node (p1) at (0, 0) {\(P_1\)};
            \node (p2) [right = of p1] {\(P_2\)};
            
            \draw[->] (p1) to [bend left = 30] (p2);
            \draw[->] (p2) to [bend left = 30] (p1);
        \end{tikzpicture}%
        
        \caption{Diagram of what should happen in the first theorem.}
    \end{figure}

    \begin{theorem}
        \lipsum[1]
    \end{theorem}
\end{document}

这个结果有一个问题:两个定理之间的间距几乎是正常的两倍。 图形间距不正确

如果我figure完全移除环境,间距就正常了。正确的间距

我该怎么做才能避免这种不必要的间距?

答案1

基本上你所看到的内容可以总结如下:

\documentclass{article}
\begin{document}
First line
\vskip 5pt

% \begin{figure}\end{figure}

\vskip 5pt
Second line
\end{document}

这里的问题是figure环境对跳过并不完全透明,并且 LaTeX 无法再折叠连续跳过。因此,解决方案是将图形放在定理环境中。

\begin{theorem}
  \lipsum[1]
  \begin{figure}
    ...
  \end{figure}
\end{theorem}

\begin{theorem}
  \lipsum[1]
\end{theorem}

相关内容