我想用自定义类将几个段落包装在 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>