【问题标题】:Equivalent of LaTeX's \label and \ref in HTML等效于 HTML 中的 LaTeX 的 \label 和 \ref
【发布时间】:2009-08-16 07:44:08
【问题描述】:

我有一个 HTML 格式的常见问题解答 (example),其中的问题经常相互引用。这意味着每当我们插入/删除/重新排列问题时,编号都会改变。 LaTeX 用 \label 和 \ref 非常优雅地解决了这个问题——你给项目简单的标签和 LaTeX 担心在最终文档中转换为数字。

人们如何在 HTML 中处理这个问题?

添加:请注意,如果您不必按编号实际引用项目,这没有问题,在这种情况下,您可以使用

设置标签

<a name="foo">

然后用

链接到它

<a href="#foo">some non-numerical way to refer to foo</a>.

但我假设“foo”有一些自动生成的数字,例如来自<ol> 列表,我想使用该数字来引用和链接到它。

【问题讨论】:

  • 我有点困惑。您希望自动生成项目编号并让链接引用这些项目吗?为什么链接引用数字很重要?如果您在<ol> 内移动东西,数字会自动更新。如果您使用refhref 属性链接到该项目,它将始终指向实际项目而不是数字。那么编号在哪里发挥作用?
  • 哎呀!不是ref 属性。 rel 属性。
  • 例如,我希望用户阅读的最终文本说“如问题 7 中所述,等等等等”。
  • 考虑一下,LATeX 需要两次遍历源代码才能实现这个技巧。

标签: html documentation latex documentation-generation


【解决方案1】:

在 HTML 中没有这样的东西。

您通常解决此问题的方法是生成链接的 HTML,通过解析 HTML 本身并插入 TOC(您可以在服务器上执行此操作,然后将 HTML 发送到浏览器,或者在客户端,通过使用一小段 ECMAScript 遍历 DOM 并简单地收集和检查所有 <a> 元素)或从更高级别的源(如数据库、XML 文档、markdown 或 - 为什么不)生成整个 HTML 文档? – 甚至 LaΤΕΧ.

【讨论】:

  • 对您提到的解决方案有任何指示吗?我最终用 PHP 破解了一些东西,如果有人感兴趣,我可以在这里发布作为答案。
【解决方案2】:

我知道浏览器并未广泛支持它,但您可以使用 CSS 计数器来实现。 另外,请考虑使用ids 而不是names 作为锚点。

【讨论】:

    【解决方案3】:

    使用 代替 \label{key}。然后使用 Link 链接。

    【讨论】:

    • 但这不会生成实际数字,是吗?
    【解决方案4】:

    PrinceXML 可以做到这一点,但仅此而已。我想最好使用服务器端脚本。

    【讨论】:

      【解决方案5】:

      这是我最终使用 php 脚本解决此问题的方法:

      http://yootles.com/genfaq

      它与 LaTeX 中的 \label 和 \ref 大致一样方便,甚至可以自动生成问题索引。 我把它放在一个 etherpad 实例上,当多人向 FAQ 提出问题时,它很方便。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2015-05-24
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多