如以下最小示例所示,环绕图片的文本从第一行开始环绕。wrapfigure
在文本中包含会导致奇怪的段落中断。
%----
\documentclass[bibliography=totoc,listof=totoc,12pt,a4paper,oneside]{scrbook}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}
%----
\begin{document}
\begin{wrapfigure}[]{l}{0pt}
\vspace{-30pt}
\includegraphics{test}
\end{wrapfigure}
\textbf{Lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr (1)}. Now starts text \lipsum[1]
\end{document}
有什么建议可以避免第一行像以下方案一样环绕图片?
编辑:
picinpar
我已经找到了一种使用最小示例和环境解决问题的方法window
。
\begin{window}[<number of lines>, <align>, \includegraphics[]{<file>}, {<caption-text>}]
%---
\documentclass[bibliography=totoc,listof=totoc,12pt,a4paper,oneside]{scrbook}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
\usepackage{picinpar}
%---
\begin{document}
\begin{window}[1, l, \includegraphics[]{test}, {}]
\textbf{Lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr (1)}.
Now starts text \lipsum[1]
\end{window}
\end{document}
但我仍然想用schemeref
它在图片内添加编号,因此我需要一个figure
环境,但没有这样的解决方案window
。
对此有什么想法吗?
答案1
解决方案是将图像稍微向下推一点,然后像下面这样对第一行使用负缩进。我将代码放入宏中,\parwithleftwrapfig
因为正确地结束图前后的段落并重置原始缩进很重要...
请注意,您必须明确指定环绕图形的宽度才能使此宏起作用......
编辑:我插入了一个可选参数来表明您仍然可以使用任意代码。
EDIT2:调整解决方案以访问内部wrapfig
-var,从而实现自动宽度调整。请注意,软件包的内部变量可能会在更新时发生变化,恕不另行通知。
%----
\documentclass[bibliography=totoc,listof=totoc,12pt,a4paper,oneside]{scrbook}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
\usepackage{wrapfig}
%----
\makeatletter
\newlength{\oldparindent}
\newcommand{\parwithleftwrapfig}[4][]
{ %
\par %
\begin{wrapfigure}{l}{#2} %
\vspace*{\baselineskip} %
\includegraphics{#3} %
#1 %
\end{wrapfigure} %
\setlength{\oldparindent}{\parindent} %
% % To allow automatic width adjustment we access internal spacing var of package wrapfig:
\addtolength{\parindent}{-\wd\WF@box} %
% % instead of using the provided width:
% \addtolength{\parindent}{-#2} %
\addtolength{\parindent}{-\columnsep} %
#4 \par %
\setlength{\parindent}{\oldparindent} %
\par %
}
\makeatother
\begin{document}
\textbf{First paragraph}. \lipsum[1]
%
\parwithleftwrapfig[{\caption{This is a figure.}\label{fig:afigure}}]{0\textwidth}{test}
{\textbf{Lorem-ipsum-dolor-sit-amet-consetetur-sadipscing-elitr (1)}. Now starts text with references to figure \ref{fig:afigure}. \lipsum[1]}
\textbf{Another paragraph}. \lipsum[1]
\end{document}