Wrapfig 未检测到新页面

Wrapfig 未检测到新页面

梅威瑟:

\documentclass[a4paper]{article}
\usepackage{mwe}
\usepackage{wrapfig}
\usepackage{blindtext}

\begin{document}

\blindtext \blindtext \blindtext \blindtext 

\begin{wrapfigure}{l}{0.5\textwidth}
\centering
\includegraphics[height=150pt,width=0.5\textwidth]{example-image-a}
\caption{A caption}
\end{wrapfigure}

\blindtext 

\end{document}

图片

新页面上的不必要空间

我希望 wrapfig 检测新页面并从页面的左边距开始文本。但结果却是,左边距就像图形仍然在那里一样

我更喜欢自动化解决方案,而不是使用可选参数wrapfig手动指定窄线的数量。我经常在wrapfig之前更改文本。

答案1

使用包needspace然后:

\documentclass[a4paper]{article}
\usepackage{mwe}
\usepackage{wrapfig}
\usepackage{blindtext}
\usepackage{needspace}

\begin{document}

\blindtext \blindtext \blindtext \blindtext 

\Needspace{150pt}%% Same as image height 
\begin{wrapfigure}{l}{0.5\textwidth}
\centering
\includegraphics[height=150pt,width=0.5\textwidth]{example-image-a}
\caption{A caption}
\end{wrapfigure}
\blindtext 

\end{document}

我仅使用了图像高度\needspace。实际上它应该包括标题高度。

在此处输入图片描述

答案2

L无需l指定wrapfig可以将图形移动到适合的位置

\documentclass[a4paper]{article}
\usepackage{mwe}
\usepackage{wrapfig}
\usepackage{blindtext}

\begin{document}

\blindtext \blindtext \blindtext \blindtext 

\begin{wrapfigure}{L}{0.5\textwidth}
\centering
\includegraphics[height=150pt,width=0.5\textwidth]{example-image-a}
\caption{A caption}
\end{wrapfigure}

\blindtext 

\end{document}

答案3

只是为了好玩:

\documentclass[a4paper]{article}
\usepackage{mwe}
\usepackage{caption}
\usepackage{blindtext}

\begin{document}

\blindtext \blindtext \blindtext \blindtext 

\noindent\rlap{\raisebox{-\height}[0pt][0pt]{\begin{minipage}{0.5\textwidth}
\centering
\includegraphics[height=150pt,width=\textwidth]{example-image-a}
\captionof{figure}{A caption}
\end{minipage}}}

\hangindent=\dimexpr 0.5\textwidth+\marginparsep\relax
\hangafter=-8
\blindtext 

\end{document}

相关内容