我想添加一个
\noindent
在新段落之前,但只有当浮动图形直接放置在其上方时才可以。
我如何使用 \if 语句检查这一点?因此,查看下面的示例,如果将图放在两个段落之间,我不知道下一段是否需要缩进。
Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.
\begin{figure}[!htbp]
\begin{center}
\includegraphics[width=\textwidth]{resources/images/illustration.png}
\caption{illu}
\label{fig:my_illu}
\end{center}
\end{figure}
\noindent
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.
答案1
大多数浮动元素会拆分段落。这假设您只想在浮动\noindent
元素后显示第一个段落[h]
。请注意,当[h]
是其中一个选项时,所有其他选项都将显示在后面的页面上。
这需要运行两次才能成功。这与 egreg 的解决方案不同,因为上一段是正常结束的。
这个特殊示例提出了一个问题:\noindent
如果下一个段落位于下一页的顶部,您是否想要它?如果不是,则应使用ifoddpage 包中的\page@oddpage
和,而不是。\checkoddpage
\value{page}
\documentclass[letter]{article}
\usepackage{graphicx}
\usepackage{refcount}% or hyperref
\usepackage{lipsum}% MWE only
\begin{document}
\rule{1em}{9\baselineskip}% <9 on first page, >9 on second page.
\lipsum[1]
\begin{figure}[!htbp]% [!] doesn't do what you probably think it does
\begin{center}% \centering preferred, but I guess you want the extra space
\includegraphics{example-image}
\caption{illu}
\label{fig:my_illu}
\end{center}
\end{figure}
\ifnum\value{page}=\getpagerefnumber{fig:my_illu}\relax \noindent\fi
\lipsum[2-10]
\end{document}