为了提供一些背景信息,我正在处理一个相当大的文档,其中包含一些从链式 curl 请求到类似论坛的网页的连接输出,之后使用一堆正则表达式进行格式化(听起来很糟糕)。问题是,文本量太大,以至于浏览所有段落并逐一修改它们似乎是一项永无止境的任务。
考虑到这一点,我的输出看起来将是这样的:
(...)
\begin{wrapfigure}[9]{l}{1in}
\centering
\includegraphics[width=1in]{my_image_1}
\caption*{a caption}
\end{wrapfigure}
This is some text.\par
\begin{wrapfigure}[9]{l}{1in}
\centering
\includegraphics[width=1in]{my_image_2}
\caption*{another caption}
\end{wrapfigure}
This is another text.\par
And this time there are two paragraphs!\par
(...)
那就是无限乘以。
因此,这个想法是,每个“块”的第一个段落都与图片对齐,也就是说,两者都从同一行开始。每当文本足够大以超过图形高度时,就会发生这种情况,但当相反时则不会发生这种情况(文本在前一个文本结束时开始,但图片需要向下移动以避免与前一个文本发生冲突,因此您得到了类似这样的结果:
=======| This is some text.
First |
Picture| This is another text. <==== This should not go here
=======|
And this time there are two paragraphs!
=======| <==== It should appear here
Second |
Picture|
=======|
有没有办法实现这一点,而不必为每个块手动添加换行符?
提前致谢!
附言:我想这里应该用到表格。虽然我还不太熟悉 Latex,但每个“块”有两个单元格的表格,左边的单元格包含图片,右边的单元格包含文本,边框不可见,这样应该可以实现我想要的效果。但问题是,大文本不会包裹住图像,而这正是我想要的效果……
答案1
\usepackage{picinpar} 和 figwindow 解决了这个问题... 或多或少。Wrapfigure 不是最好的主意
\usepackage{picinpar}
\begin{figwindow}[0,l,\includegraphics[width=1in]{my_image_1},*{A Caption}]
Some text.\par
\end{figwindow}
\begin{figwindow}[0,l,\includegraphics[width=1in]{my_image_2},*{Another Caption}]
Other text.\par
\end{figwindow}
答案2
我建议使用 geometry 或 memoir 和 marginpar。下面是允许使用 1 英寸数字的示例。
\documentclass[11pt,letterpaper]{report}
\usepackage{lipsum}
\usepackage{geometry,graphicx}
\geometry{
hmargin={1in,2in}
}
\newcommand{\putmfig}[1]{%
\marginpar{
\vfill
\includegraphics[width=1in]{#1}
}
}
\begin{document}
\putmfig{my_image_1}
\lipsum[1]
\putmfig{my_image_2}
\lipsum[2]
\end{document}
这不会将内容环绕在图形周围。不过,我觉得与修复图片和文本的对齐方式相比,您不需要文本换行。