除第一行外,将文字环绕在图片周围

除第一行外,将文字环绕在图片周围

如以下最小示例所示,环绕图片的文本从第一行开始环绕。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}

相关内容