我刚刚开始研究使用乳胶来生成嵌入阿拉伯语片段的电子书,并且我使用以下简单文档:
\documentclass{article}
\usepackage{arabtex}
\usepackage{utf8}
\begin{document}
Hello world
\setcode{utf8}
\begin{arabtext}
السَلامُ عَليكم
\end{arabtext}
Goodbye World!
\end{document}
以下是 pdflatex 的输出:
当我尝试转换为 html 时,输出结果乱码如下:
生成的 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
结果: