在 htlatex 中配置 minipage

在 htlatex 中配置 minipage

我想在 htlatex 中使用 minipage,因为我想要一个带有图形的 minipage,靠近一个带有一些文本的 minipage,然后我想要一些必须在新行上且全宽的其他文本。

我使用了答案的cfg模板:

配置 minipage 环境以合并宽度

我用

\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

注意,我将其改为Preamblexhtml删除了 HtmlPar不必要且不正确的配置,删除了cssmargin中的声明.minipage并添加了 的 css div,figure。现在结果好多了:

在此处输入图片描述

相关内容