将HTML实体(如&)转换为Latex

时间:2012-09-13 19:01:16

标签: java html encoding utf-8 latex

我正在编写一个应用程序,使用Java和JSOAP从网站抓取一些文章。该应用程序将文章的某些部分编译为.tex(LaTeX)文档,然后使用PDFLatex将其转换为PDF。

某些网页包含HTML实体,例如&或“这些在PDF转换期间导致错误。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你将utf8字符与html实体混淆, 你真正想要的(似乎)是将这些实体转换为乳胶字符。

this question on tex-exchangeneat conversion list的链接。 列是(按顺序):

  1. html实体(忽略大小写),没有&;
  2. 对应的unicode字符
  3. 相应的乳胶命令(如果有)。没有\
  4. 用这个列表作为起点编写一些转换代码应该很容易。

答案 1 :(得分:0)

HTML使用标记构建数据,这些标记由一系列字符定义。这些标签以某些字符开头并包含某些字符,如果您想使用其中一个字符来分隔标记的某些部分,则需要使用character entity来表示它们。

这意味着&不是单个字符的某种奇怪的编码,它实际上是五个字符,它们组合是HTML渲染器(如Web浏览器)的信号,只有字符{{ 1}}将被显示。

Tex,是一个不同的野兽,它对HTML使用“裸”&没有相同的限制,所以在用Tex处理这些数据之前,你需要做一个字符串替换所有带有常规字符的HTML字符实体。

请注意,有两个类型的字符实体。一组包括“命名”实体,分别为&&gt;&lt;>,而第二组是“编号”实体。编号实体看起来像<,本例中的“32”表示ISO-8859-1字符代码(本例中为空格)。