【问题标题】:Invalid characters in generated latex sources生成的乳胶源中的无效字符
【发布时间】:2009-02-27 18:27:53
【问题描述】:

我在运行 XP 的 Windows 机器上的 Visual Studio 2008 的 C# 项目上运行 doxygen (1.5.8)。在生成乳胶代码时,会包含一些非法序列。它总是涉及以下序列:“”(带有分词的拉丁语-I,类似于二进制移位运算符和西班牙语开放问号)。我已经在“using {\bf System}”的上下文中看到它发生了,但也许还有其他的。

生成的latex文件读取

    \begin{CompactItemize}
    \item 
    using {\bf System}
    \end{CompactItemize}

虽然来源很简单:

using System;
using System.Collections.Generic;
using System.Linq;

一些奇怪的 Windows BOF 字符?似乎只是在使用系统之前;指令(每个文件的第一个)。

【问题讨论】:

    标签: c# latex doxygen


    【解决方案1】:

    我»¿

    这是 UTF-8 编码字符 U+FEFF(字节顺序标记)的 ISO-8859-1 表示。 BOM 旨在用作 UTF-16 文件中的第一个代码点,不应在 UTF-8 文件中使用,但不幸的是,默认情况下有一些非常愚蠢的工具会生成它。如果您通过连接来自其他文件的文本位来创建文件,您甚至可以在文档中间使用 BOM。

    找到将文件保存为“UTF-8 with BOM”的编辑器并刻录。

    ETA 重新更新问题:

    使用 {\bf 系统}

    虽然来源很简单:

    使用系统;

    在“使用”之前,在十六进制编辑器中检查该源是否有隐藏的人造 BOM。

    【讨论】:

      【解决方案2】:

      在我看来这是一个字符编码问题。

      这三个字符序列是以 UTF-8 编码的 Unicode 字节顺序标记0xfeff,尽管我不确定为什么字节顺序标记会出现在您的文档中间......可能很重要,也可能只是巧合。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-18
        • 1970-01-01
        • 2018-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多