正确编码 htlatex 中 `alt` 属性中的 `

正确编码 htlatex 中 `alt` 属性中的 `

使用以下文档编译时,htlatex test.tex "xhtml,mathml"生成的 HTML 文档的图像属性<中包含未编码的内容alt,不符合 XML 标准。

我可以在配置文件中添加什么内容才能使 htlatex<像属性&lt;中一样正确编码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

我在编译您的代码时还注意到了另一个问题:pstrickspng 失败并出现错误。我尝试了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> 

在此处输入图片描述

相关内容