![Wrapfig 未检测到新页面](https://linux22.com/image/326329/Wrapfig%20%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0%E6%96%B0%E9%A1%B5%E9%9D%A2.png)
梅威瑟:
\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}