转换为 HTML,将 {arabtext} 部分呈现为图像

转换为 HTML,将 {arabtext} 部分呈现为图像

我刚刚开始研究使用乳胶来生成嵌入阿拉伯语片段的电子书,并且我使用以下简单文档:

\documentclass{article}
\usepackage{arabtex}
\usepackage{utf8}
\begin{document}

Hello world

\setcode{utf8}
\begin{arabtext}
السَلامُ عَليكم
\end{arabtext}

Goodbye World!

\end{document}

以下是 pdflatex 的输出:

pdflatex 输出

当我尝试转换为 html 时,输出结果乱码如下:

hlatex 输出

生成的 HTML 源代码:

<!--l. 7--><p class="noindent" >Hello world
                                                        <span 
class="xnsh-14"></span><span 
class="xnsh-14">J</span><!--l. 13--><p class="indent" >
<span 
class="xnsh-14"></span><span 
class="xnsh-14"></span><!--l. 13--><p class="indent" >
<span 
class="xnsh-14"></span><span 
class="xnsh-14"></span> <!--l. 13--><p class="indent" >
   <span 
class="xnsh-14"></span> <span 
class="xnsh-14"></span><span 
class="xnsh-14">C</span> <!--l. 13--><p class="indent" >
      <span 
class="xnsh-14"></span> <span 
class="xnsh-14"></span><span 
class="xnsh-14">@</span>
<!--l. 16--><p class="indent" >   Goodbye World!

我想要的是将阿拉伯语渲染为图像(看起来像 pdf 渲染版本),并将该图像放在 html 源代码中。类似于:

<span>Hello world</span>
<img src="foo.png" />
<span>Goodbye World!</span>

解决这个问题的最佳方法是什么?我对乳胶完全陌生,但如果解决方案需要我进行一些预处理编程,我并不介意。

答案1

生成任何环境内容的图像非常容易。任何 TeX 内容都可以用\Picture+ ... \EndPicture命令转换为图像,因此我们只需要配置arabtext环境即可使用这些命令。将以下代码保存为arab.cfg

\Preamble{xhtml}
\ConfigureEnv{arabtext}{\HCode{<div class="arabtext">}\Picture+{}}{\EndPicture\HCode{</div>}}{}{}
\Css{.arabtext{text-align:right;}}
\begin{document}
\EndPreamble

此代码将创建<div class="arabtext">元素并将环境中的所有内容转换为图像。然后使用 CSS 将图像右对齐。

使用以下方式编译

htlatex filename arab

结果:

在此处输入图片描述

相关内容