Miktex/XeLaTeX – 无法使用的包装图像(wrapfigure)

Miktex/XeLaTeX – 无法使用的包装图像(wrapfigure)

我搜索了数百个有关同一问题的论坛,但没有任何可行的解决方案。

我想将图像插入到文档页面的右侧,然后文本从左侧包裹它们。

经过几个小时,我构建了下面的一段代码,但它仍然无法正常工作,尽管大多数问题现在都已解决:

\begin{wrapfigure}{r}{.3/textwidth}
\centering
\vspace{-11pt} % Kill unwanted space above
\includegraphics[height=4cm]{name.jpg}
\caption{Some description}
\end{wrapfigure}
\paragraph{}\vspace*{-\parskip}
Some text which should wrap the image.

不良行为

  • 图像区域的宽度基于页面宽度,但这是不可接受的

    • 我需要根据图像宽度而不是页面宽度设置图像区域宽度
    • 原因:使用外部脚本将图像导入 .tex 文件,图像宽度是可变的 - 我不知道它们的宽度是多少。我只需要指定它们的高度并且必须计算宽度。它适用于图像本身,但不适用于环绕图形区域。
  • 如果图像(或其标题)超出分页符,wrapfigure 根本不起作用

    • 如果我使用 {r} 设置 wrapfigure,则图像将显示在页面外的文本下方,并在下一页的顶部生成虚拟空间
    • 如果我使用许多论坛中推荐的 {R} 设置,第一次溢出后的输出绝对是无意义的 - 虽然没有
      像 {r} 所述的那样在文本区域下方溢出,但从
      第一次出现交叉图像和分页符开始,所有其他图像都显示在页面下方的无意义位置 - 不仅是垂直方向,还有水平方向 - 在某些情况下,图像居中
      ,在其他情况下,它与左侧对齐
    • 所需的行为是在图像和换行文本开始之前分页,我不想以任何方式分割图像和上面提到的“一些应该包装图像的文本”。(例如,
      在上一页开始文本,然后在下一页显示图像是
      不必要的。文本和图像必须从同一行开始,当然,预计上一页的空白高度大约与图像的高度相同)。

首先要问的问题:

  • wrapfigure 是如何显示文本包裹的图像的正确方法吗?
  • 如果上述任何要求无法满足(我基本上需要宽度检测和正确的分页符),我应该使用什么来代替wrapfigure?

如果 wrapfigure 可以满足以上所有要求,那么如何解决基于包含的图像宽度和非工作分页符的 wrapfigure 宽度检测?

答案1

你可以测量要放置在环境中的物体wrapfigure。这里我添加了 2em 的 padding。

\documentclass{article}
\usepackage{wrapfig,graphicx}

\newsavebox{\wrapboxitem}
\newenvironment{xwrapfigure}[2][]
 {%
  \sbox{\wrapboxitem}{\includegraphics[#1]{#2}}%
  \wrapfloat{figure}{r}{\dimexpr\wd\wrapboxitem+2em}
  \centering
  \usebox{\wrapboxitem}
 }
 {\endwrapfloat}

\begin{document}

some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 

\begin{xwrapfigure}[height=4cm]{example-image}
\caption{Some description}
\end{xwrapfigure}

some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 
some text some text some text some text some text some text 

\end{document}

在此处输入图片描述

相关内容