我正在将一些 HTML 格式的文档转换为 LaTeX 格式,以便获得更好的打印输出。
(与我之前的问题相同的项目。) 该文档使用通常的 HTML/CSS 浮动图像(有时图像位于浮动图像内,div
包括标题。)
我想保留这种行为,因此我使用了这个wrapfig
包,但是我注意到浮点数不能很好地流过分页符、脚注(以及假定的其他页脚)等。
完整样本如下存储在 Github。不过我在这里附上一个简短的版本:
\documentclass[10pt]{article}
\usepackage{graphicx,wrapfig}
\newlength{\px}%
\setlength{\px}{0.26mm}
\begin{document}
\section{Lorem ipsum \& rose}
\begin{wrapfigure}{l}{300\px}\centering
\includegraphics[width=300\px,height=197\px]{rose300.jpg}
\caption{Lorem ipsum dolor sit amet}
\end{wrapfigure}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.\footnote{%
from \emph{http://lipsum.net}} Mauris in tortor eu risus convallis
pharetra. Suspendisse potenti. Ut malesuada sed lorem molestie volutpat.
Vivamus volutpat eu tortor non tempor.
\begin{wrapfigure}{r}{240\px}\centering
\includegraphics[width=240\px,height=158\px]{rose240.jpg}
\caption{Aenean feugiat justo nisi}
\end{wrapfigure}
Aenean feugiat justo nisi, eget blandit ligula tristique non. Nam non
lectus est. Curabitur vel scelerisque urna. Sed auctor molestie leo ac
luctus. Quisque ornare tellus tortor, vel convallis purus elementum id.
Vestibulum lectus nibh, ultrices placerat aliquam vel, accumsan ut elit.
\end{document}
较长的版本将产生以下输出:
乙
请注意,第三个图形位于与脚注重叠的底部边距之外,并且第二页开头的文本为不存在的图像保留了空间。
该项目有超过 167 个不同的文档(帖子),目前已编译超过 609 页,并包含 168 张图片(目前环境中有 40 个wrapfigure
,但当我完成转换脚本时,这个数字可能会更高)。目前无法进行手动调整。
那么:如何才能使图表在页面之间顺利流动,同时尽可能保留帖子的原始格式?
答案1
这在 LaTeX 中并不容易,正如这个答案的第一点。
进行第一次编译,其中每个图形的外部盒子都有所修改,使得其表面不变但其宽度为\textwidth
。
从 .log 文件中记录每个图形所在的页面,以及句子流中的分页符的位置。
然后,在每个分页符处,将页面的所有图形自由地放置在\begin{picture}(0,0)(0,0)
以第一个单词为锚点的相同环境中。并\parshape
在之后使用\end{picture}
,其中包含每个文本行的边距列表。