Неверные символы в созданных источниках латекса
Вопрос
Я запускаю Doxygen (1.5.8) в проекте C# Off Visual Studio 2008 на машине Windows, работающей на XP. При генерации латексного кода включены некоторые нелегальные последовательности. Это всегда включает в себя следующую последовательность: «ï» ¿»(латинская-я с дирезом, что-то вроде бинарного оператора смены и испанского открытого знака). Я видел, как это произошло в контексте «ï» ¿Использование { bf System} », но, возможно, есть другие.
Сгенерированный латексный файл считывает
\begin{CompactItemize}
\item
using {\bf System}
\end{CompactItemize}
Пока источник просто:
using System;
using System.Collections.Generic;
using System.Linq;
Какой -то странный персонаж Windows BOF? Кажется, это только до использования системы; Директива (первая из каждого файла).
Решение

Это представление ISO-8859-1 кодируемого персонажа UTF-8 U+FEFF, байтового порядка. BOM предназначен для использования в качестве первой кодовой точки в файлах UTF-16 и не должен использоваться в файлах UTF-8, но есть некоторые очень глупые инструменты, которые, к сожалению, производят его по умолчанию. И если вы создаете файлы, объединяя кусочки текста из других файлов, вы даже можете получить BOMS в середине вашего документа.
Найдите редактор, который сохраняет файлы как «UTF-8 с Bom» и сжигайте его.
ETA Re обновленный вопрос:
ï »¿Использование { bf System}
Пока источник просто:
Использование системы;
Проверьте этот источник в шестнадцатеричном редакторе для скрытого искусственного бома, прежде чем «использовать».
Другие советы
Это похоже на проблему кодирования персонажа.
Эта треххарактерная последовательность является отмечкой байтового порядка Unicode 0xfeff
Кодированный в UTF-8, хотя я не уверен, почему знак байтового порядка будет отображаться в середине вашей документации ... это может быть значительным или это может быть просто совпадением.