包裹的图表在部分之后与文本级别发生偏离

包裹的图表在部分之后与文本级别发生偏离

我有一个大问题。我想打印一本包含报告文学的书。每篇报告文学都有一个标题(由 section 命令创建)、一个摘要和一篇文章。摘要应该是换行文本,并且应该与文章处于同一级别。当我省略 section 命令(如第一个 \teaser 中所示)时,这种方法有效。一旦我添加章节行,摘要和报告文学级别就会出现分歧。有人知道如何解决这个问题吗?这里有一个例子:

\documentclass{article}

\usepackage{wrapfig}

\newcommand{\teaser}[1]{\begin{wrapfigure}{l}{0.5\textwidth}\textbf{#1}\end{wrapfigure}}

\begin{document}

\teaser{sdfaasdfasdf asfasfa asdfasdf asdfasf  asfasfasdfaasdfasdf aasdfasf }
 asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfassdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf

 \section{adf}
\teaser{sdfaasdfasdf asfasfa asdfasdf asdfasf  asfasfasdfaasdfasdf aasdfasf }
 asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfassdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf asdfasdf asdfasf  asfasfasdfaasdfasdf

\end{document}

答案1

我不知道是什么导致了这种奇怪的行为;但是,您可以使用方便的垂直跳过来防止它;这不是最佳解决方案,因为如果命令\teaser开始一个新页面,它会产生不良结果。但是,既然您说您的报道总是以标题(使用该\section命令创建)开头,您可以尝试一下:

\documentclass{article}
\usepackage{wrapfig}

\newcommand{\teaser}[1]{%
  \begin{wrapfigure}{l}{0.5\textwidth}\vspace*{-1\baselineskip}%
  \textbf{#1}\end{wrapfigure}}

\begin{document}

\section{Test section}
\teaser{teaser text teaser text teaser text teaser text teaser text teaser text} text text text  text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text

\end{document}

答案2

空格是\intextsep。它插入到每个 wrapfig 之前。您在第一个预告片中看不到它,因为它位于页面的开头,而垂直空格则在此消失。intextsep由 latex 格式声明/定义,它用于在文本中插入带有“h”的浮点数中。因此,如果您将其全局设置为 0pt,它也会影响此类浮点数。

答案3

您可以使用titlesec包而不是wrapfig。此代码的唯一难题是,如果节后没有文本,则后面的子节标题的垂直间距是错误的。通过\leavevmode在节和子节之间插入 可以解决这个问题。

\documentclass{article}
\usepackage{titlesec}
\usepackage[nopar]{lipsum} % for dummy text.

\titleformat{\subsection}[wrap] {\normalfont\bfseries\filright} {}{0em}{}
\titlespacing*{\subsection} {.5\textwidth}{0ex}{1pc}

\begin{document}

\section{A section}
\leavevmode % required if no text between \section and \subsection
\subsection{Lorem ipsum dolor sit amet, consectetuer adipiscing elit.}
\lipsum[1]

\end{document}

输出

相关内容