我正在排版一本手册,使用正常的段落缩进。页面上有很多图片和表格,我想让表格和图片后面的段落不缩进。目前我只使用\noindent
,但我确定有更简单的方法吗?
有人能解释一下如何在各节之后实现这一点吗?这可能会给我一个关于如何编写宏来执行此操作的提示。
答案1
您问过如何对部分进行操作:\section
使用\@afterheading
代码来\everypar
抑制第一段的缩进,然后将其自身内容重置为空,以便后续段落。LaTeX 内核还有一个\@doendpe
命令,例如,如果列表后面没有空行/\par
后面的内容,则使用该命令抑制列表后面的缩进。这里有两个示例,说明您如何自己使用此代码(但我怀疑它们是否可以在真实浮点数的情况下使用。)
\documentclass{article}
\usepackage{lipsum}
\makeatletter
%Variant 1:
\newif\ifafterpar
\newcommand\afterparnoindent{%
\afterpartrue
\everypar{%
\ifafterpar
\afterparfalse
{\setbox\z@\lastbox}%
\else
\everypar{}%
\fi}}
%Variant 2:
% will suppress indentation if there is no
% empty line behind \afterparnoindent
%\renewcommand\afterparnoindent{\par\@doendpe}
\makeatother
\begin{document}
\lipsum[1]
abc\afterparnoindent
first paragraph \lipsum[1]
the next \lipsum[1]
\end{document}
答案2
在任何“常规” TeX 应用中,主文本和浮动框都是在组合成实际页面之前独立创建的。因此,当知道浮动框在最终组合页面上的位置时,正文段落已经排版完毕,无法重新缩进。
因此,除非您只使用“此处”浮点数,否则手动\noindent
是浮点数的最佳选择。
对于“此处”浮动、节标题和显示块(如引文),可以通过编程方式执行此操作。我知道这在原则上是可行的,因为 ConTeXt 可以做到这一点,但我不知道是否有针对此类情况的 LaTeX 包或配置选项。
答案3
这与问题类似在 LaTeX 中抑制环境后的缩进。
那里的第一个答案适用于引文,并且可能为不浮动的表格和图形(即直接放置在文本中而不是浮动环境中)提供良好的答案。
答案4
我不确定您在寻找什么,但是您尝试过使用 parskip 吗?
\usepackage[parfill]{parskip}