从使用 xelatex 创建的包含马拉雅拉姆语文本的 PDF 中复制文本

从使用 xelatex 创建的包含马拉雅拉姆语文本的 PDF 中复制文本

当我使用 pdflatex 创建包含英文文本的 pdf 文件时,我可以从中复制文本,并在文本编辑器中粘贴时获得相当不错的文本。但是,当我对使用 xelatex 创建的马拉雅拉姆语文本的 pdf 执行相同操作时,粘贴的文本有几个间隙,而且经常出现错误的字符。我的印象是,使用 xelatex 创建的 pdf 也会有 Unicode 文本,然后可以搜索、索引和复制。至少,这是我从阅读有关 xelatex 的文章中得到的印象。另一方面,我发现可以从 Libre Office Writer 创建的 pdf 中清楚地复制马拉雅拉姆语文本。我对 XeLaTeX 的印象是错误的,还是我对 pdf 格式的理解是错误的?还是我在其他地方弄错了?如果有人对此有了解,我将不胜感激。

答案1

马拉雅拉姆语是一种与梵语相关的文字,单个字符从输入到输出经历了相当大的变化。特别是,一些元音被放置在相应的辅音和字形被组合成复合字,即所谓的连字。参见https://en.wikipedia.org/wiki/Malayalam_script有关连字和元音位置的示例(还有更多!)。

在字体方面,这些辅音复合词通常是预先组合好的,即单独绘制以使其看起来正确。在排版过程中,字符会被替换为字体中预先组合好的代码点,但这些代码点通常没有文本表示。

有解决方法,并且字体可以声明从代码点到字符序列的映射,但这通常不可用。

答案2

这似乎是 XeLaTeX 引擎的技术限制。问题是 PDF 中嵌入的字体的 CMAP(字符映射)不完整。最新版本的luahbtex可以生成包含复杂脚本文本的 PDF,这些文本可以正确地复制粘贴回文本编辑器。以下是此类文档的一个示例:http://books.sayahna.org/ml/pdf/bbh-web.pdf

相关内容