【问题标题】:Converting HTML Entities (like &) to Latex将 HTML 实体(如 &)转换为 Latex
【发布时间】:2012-09-13 19:01:16
【问题描述】:

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

某些页面包含 HTML 实体,如 & 或 ",这些在 PDF 转换过程中会导致错误。如何解决此问题?

【问题讨论】:

  • &amp 不是 UTF8 字符,它是一个 html 实体
  • UTF-8 是一种 Unicode 编码。您正在描述字符实体 - 这些是 HTML/XML/SGML 实体,与 Unicode 无关。
  • 公平地说,实体是& 而不是&amp
  • 请修正您的问题,以防止进一步投票;首先,标题应该是“将 html 实体转换为乳胶字符”。当您将事物称为& 时,请修正使用实体一词,它们不是 utf8 字符。
  • @oded 无论如何都不是真的,它们与 utf8 无关;但每个命名实体直接代表一个 unicode 字符。 unicode != utf8,即使它们被同义使用。

标签: java html encoding utf-8 latex


【解决方案1】:

This question on tex-exchange 有一个指向neat conversion list 的链接。 列是(按顺序):

  1. html 实体(忽略大小写),没有 &;
  2. 对应的unicode字符
  3. 相应的乳胶命令(如果可用)。没有\

以这个列表为起点编写一些转换代码应该很容易。

【讨论】:

  • 感谢大家的帮助。我是新来的,所以我无法添加声誉,也很抱歉。
【解决方案2】:

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

这意味着& 不是对单个字符进行某种奇怪的编码,它实际上是五个字符,它们组合起来是向 HTML 渲染器(如 Web 浏览器)发出的信号,即只有字符 & 是显示出来。

Tex 是一种不同的野兽,它没有像 HTML 那样使用“裸”& 的限制,因此在使用 Tex 处理此类数据之前,您需要对所有 HTML 进行字符串替换具有常规字符的字符实体。

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

【讨论】:

  • @user1656201 没关系,每个人都会遇到这种情况。祝你好运。
  • 对以上混淆表示抱歉。为了解决这个问题,我将所有常用实体替换为相等的乳胶代码。例如,用“'”替换“&quot”。现在它工作正常。
猜你喜欢
  • 2019-07-16
  • 2012-04-23
  • 1970-01-01
  • 2010-10-18
  • 2019-04-17
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 2011-07-26
相关资源
最近更新 更多