使用以下文档编译时,htlatex test.tex "xhtml,mathml"
生成的 HTML 文档的图像属性<
中包含未编码的内容alt
,不符合 XML 标准。
我可以在配置文件中添加什么内容才能使 htlatex<
像属性<
中一样正确编码alt
?
\documentclass[12pt]{article}
\usepackage{pst-all}
\begin{document}
$\begin{pspicture}(0.8,1)
\psgrid(1,1)\end{pspicture}$
\end{document}
生成的 html 文档的主体是(带有一些格式):
<p class="noindent" >
<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline" >
<img src="test0x.png" alt="<mi>P</mi><mi>I</mi><mi>C</mi>" class="pspicture" />
</math>
</p>
答案1
默认替代文本,PIC
是在pspicture
转换为图像时生成的。由于您在数学内部使用它,因此此替代文本被视为数学文本,并且每个字符都被<mi>
元素包围。我们有两个选择 - 将替代文本放在\HCode
命令内部,这将阻止将文本处理为 mathml,或者将其完全删除。
pspicture
对于alt text有一个特殊的配置,pspictureAlt
您可以尝试以下配置文件:
\Preamble{xhtml,mathml}
\Configure{pspictureAlt}{\HCode{pspicture figure}}
\begin{document}
\EndPreamble
我在编译您的代码时还注意到了另一个问题:pstricks
png 失败并出现错误。我尝试了dvipng
- dvips
> ghostscript
。似乎只dvisvgm
有效。如果您使用更新的TL 2016
发行版,您可以dvisvgm
在配置文件中添加以下行来请求编译:
\Configure{Picture}{.svg}
您可以使用以下方式编译文档:
make4ht -um draft -c configfilename.cfg test.tex
结果如下:
<!--l. 4--><p class="noindent" ><!--l. 4--><math
xmlns="http://www.w3.org/1998/Math/MathML"
display="inline" ><!--width="22.76227pt" height="28.45274pt"--><img
src="sample0x.svg" alt="pspicture figure" class="pspicture" /></math>
</p>