如何在 tex4ht 中的标签中添加 xmlns

如何在 tex4ht 中的标签中添加 xmlns

根据亚马逊的 Kindle 出版指南,我需要在我的 html 文件中添加标签xmlns:mbp="http://www.kreutzfeldt.de/mmc/mbp"<html>

我尝试过以下多种变体:

\documentclass{article}
  \input{tex4ht.sty}
  \Preamble{xhtml}
\begin{document}
    \Configure{PROLOG}{HTML+,HTML,@HTML}
%    \Configure{HTML+}{\HCode{plus-html test}}
%    \Configure{@HTML}{\HCode{at-html test}}
%    \Configure{HTML}{\HCode{naked-html test}}
    \Configure{*XML-STYLESHEET}{\HCode{xmlss test}}
    \Configure{@HEAD}{\HCode{head test} }
    \HCode{<meta name="parameter" content="content">}
    \Configure{TITLE+}{This is my title}
  \EndPreamble

Content
\end{document}

其中大多数都成功地在<head>部分中插入了一些内容,但标签中没有任何内容<html>\Configure{PROLOG}似乎没有什么区别。当我不注释掉该\Configure{HTML}行时,我收到一个错误:

! Argument of \Configure has an extra }.
<inserted text> 
                \par 
l.16 \end{document}

显然,我可以手动插入它,但似乎 tex4ht 就是为此而设置的。 <rant>在 tex4ht 所有记录不全的功能中,与之有关的内容\Configure{PROLOG}似乎是我迄今为止遇到的最糟糕的。</rant>

答案1

\Configure{HTML}有两个参数,而您的示例中只有一个参数,因此这可能是错误来源。请注意,没有\Configure{@HTML}用于将代码插入<html ...>xml:lang默认情况下会插入正确语言的代码,因此您需要自己提供。最后,您不需要使用\Configure{PROLOG}

简单.cfg文件:

\Preamble{xhtml}
\Configure{@HTML}{xml:lang="en" xmlns:mbp="http://www.kreutzfeldt.de/mmc/mbp" \Hnewline}
\begin{document}
\EndPreamble

结果是:

<html xml:lang="cs" xml:lang="en" xmlns:mbp="http://www.kreutzfeldt.de/mmc/mbp"
xmlns="http://www.w3.org/1999/xhtml"
> 

答案2

为了能够正确处理它们,应该将语句\Configure放在前面,例如:\begin{document}tex4ht

\documentclass{article}
\input{tex4ht.sty}
\Preamble{xhtml}
\Configure{HTML}
  {\HCode{<html xmlns="http://www.w3.org/1999/xhtml" xmlns:mbp="http://www.kreutzfeldt.de/mmc/mbp">}}
  {\HCode{</html>}}
\Configure{@HEAD}{\HCode{<meta name="parameter" content="content">}}
\Configure{TITLE+}{This is my title}

\begin{document}
  \EndPreamble
  Content
\end{document}

相关内容