tex4ht \Css 代码使用标准书籍类有效,但使用 koma-script scrbook 类无效

tex4ht \Css 代码使用标准书籍类有效,但使用 koma-script scrbook 类无效

我使用的\Css配置是将标题置于图形下方,这要归功于 如何在使用 tex4ht 时使标题位于表格下方中央

现在我发现,如果我将文档类更改为 koma-script,这不起作用!

这是 MWE

%\documentclass[11pt]{scrbook}
\documentclass[11pt]{book}

\usepackage{graphicx}
\usepackage{float}

\begin{document}

\begin{figure}[H]
\centering
\includegraphics[width=0.5\textwidth]{example-image-b}
\caption{test image}
\end{figure}

\end{document}

现在使用make4ht -c my.cfgwhere my.cfgis进行编译

\Preamble{xhtml}
\Css{div.caption{text-align:center;}}
\Css{div.figure img {text-align:center;display:block;margin-left:auto; margin-right: auto;}}
\begin{document}
\EndPreamble

给出预期的输出

Mathematica 图形

现在将文档更改为

\documentclass[11pt]{scrbook}

不做任何其他更改并使用相同命令再次编译,得到

Mathematica 图形

为什么更改文档类会导致CSS配置无效?

2018 年

答案1

如果你比较生成的 HTML 文件,你会发现,tex4ht 在以下情况下会在标题中添加一个表格scrbook

<div class="caption">
  <table class="caption">
    <tr style="vertical-align:baseline;" class="caption">
      <td class="id">Figure&#x00A0;0.1: </td>
      <td class="content">test image</td>
    </tr>
  </table>
</div>

(我改变了换行符和缩进,以使其更易于阅读)。

使用此代码,不仅表格text-align对齐而且表格对齐也负责对齐。因此,您还需要一行 css 代码:

div.caption table{margin: auto;}

这还会改变表格的边距。因此

\Preamble{xhtml}
\Css{div.caption{text-align:center;}}
\Css{div.figure img {text-align:center;display:block;margin-left:auto; margin-right: auto;}}
\Css{div.caption table{margin: auto;}}
\begin{document}
\EndPreamble

你会得到你想要的。

相关内容