我想在 htlatex 中使用 minipage,因为我想要一个带有图形的 minipage,靠近一个带有一些文本的 minipage,然后我想要一些必须在新行上且全宽的其他文本。
我使用了答案的cfg模板:
我用
\begin{figure}
\begin{minipage}{0.6\textwidth}
\makebox[0.4\columnwidth][l]{line1}
\par
\makebox[0.4\columnwidth][l]{line2}
\par
\makebox[0.4\columnwidth][l]{line3}
\end{minipage}
\begin{minipage}{0.375\textwidth}
\centering
\includegraphics{pic.jpg}
\end{minipage}
\end{figure}
但我遇到了以下问题: minipage 环境后的文本没有转到新行,而是停留在第三列。如何强制 minipage 环境后的文本开始新行?
答案1
您没有提供完整的 mwe,因此我扩展了您的示例来说明问题:
\documentclass{article}
\begin{document}
\begin{figure}
\begin{minipage}{0.6\textwidth}
\makebox[0.4\columnwidth][l]{line1}
\par
\makebox[0.4\columnwidth][l]{line2}
\par
\makebox[0.4\columnwidth][l]{line3}
\end{minipage}
\begin{minipage}{0.375\textwidth}
\centering
%\includegraphics{pic.jpg}
image
\end{minipage}
\end{figure}
So what's the problem?
\end{document}
问题是两个应该相邻的小页面堆叠在一起,后面的文本浮动到右列,该列是为小页面保留的。第一个问题与边距有关,边距由链接问题的 OP 提供,这会导致小页面溢出。我们可以删除边距,这样小页面就会正确浮动。另一个问题是图形环境,我们需要提供 css 声明来支持封闭的浮动对象。更正后的.cfg
文件:
\Preamble{xhtml}
\makeatletter
% to strip fraction from \textwidth
\def\striptextwidth#1\textwidth{#1}
% we must refer to minipage from the css file, because tags are beeing
% written before we know dimensions
\newcount\mini@count
% save original minipage
\let\oldiimini\@iiiminipage
% redefine minipage
\def\@iiiminipage#1#2[#3]#4{%
% calculate dimensions and save it to macro
\xdef\miniwidth{\strip@pt\dimexpr(\striptextwidth#4pt)*100\relax\%}
\oldiimini{#1}{#2}[#3]{#4}
}
\ConfigureEnv{minipage}{\advance\mini@count by 1\relax\ifvmode\IgnorePar\fi\EndP\HCode{<div class="minipage" align="center" id="minipage\the\mini@count" style="border:1px solid black;">}}
{\ifvmode\IgnorePar\fi\EndP\HCode{</div>\Hnewline}%
% we must write dimension here to the css file
\Css{\#minipage\the\mini@count{width:\miniwidth;}}%
}{}{}
\makeatother
\Css{div.minipage {
float: left;
}
}
\Css{div.minipage:last-child {
clear: none;
float: right;
}
}
\Css{div.figure{clear:both;overflow:auto;width:100\%;}}
\begin{document}
\EndPreamble
注意,我将其改为Preamble
,xhtml
删除了 HtmlPar
不必要且不正确的配置,删除了cssmargin
中的声明.minipage
并添加了 的 css div,figure
。现在结果好多了: