tex4ht:将多个段落包装在 div 标签内

tex4ht:将多个段落包装在 div 标签内

我想用自定义类将几个段落包装在 div 内,但是当新段落开始时,div 会在生成的 HTML 中自动关闭。

这显示了问题:

\documentclass{article}
\begin{document}
\Hcode{<div class='FOO'>}
\begin{center}
test
\end{center}
\Hcode{</div>}
\end{document}

'FOO'-div 在 'center'-div 打开之前关闭。

tex4ht 教程开始解释我认为我需要什么,但结尾却说“这个练习会更难一些”。

有谁知道我怎样才能实现这个目标?

答案1

必须处理段落以特定方式在 中tex4ht。它们必须在块元素开始之前关闭。详细信息请参阅链接的答案。

在这种情况下,我将引入一个自定义环境:

\documentclass{article}
\newenvironment{myblock}{\center}{\endcenter}
\begin{document}

\begin{myblock}
test

another paragraph
\end{myblock}
\end{document}

然后可以在.cfg文件中进行配置:

\Preamble{xhtml}
\ConfigureEnv{myblock}
{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="foo">}\par}
{\ifvmode\IgnorePar\fi\EndP\HCode{</div>}\par}{}{}
\Css{.foo{text-align:center;}}
\begin{document}
\EndPreamble

\ConfigureEnv命令可用于配置任何环境,\ifvmode\IgnorePar\fi\EndP将处理块元素开始或结束之前的段落关闭。\par命令将确保在环境内部和之后打开一个新段落。

这是最终的 HTML:

<body>
   <div class="foo">
<!--l. 6--><p class="noindent" >test
</p><!--l. 8--><p class="noindent" >another paragraph
</p>
</div>

</body> 

相关内容