Недопустимые символы в сгенерированных источниках латекса в Doxygen? - PullRequest
0 голосов
/ 27 февраля 2009

Я запускаю doxygen (1.5.8) в проекте C # вне Visual Studio 2008 на компьютере под управлением Windows XP. При создании латексного кода, некоторые недопустимые последовательности включены. Он всегда включает следующую последовательность: «ï» ¿(латиница-i с диерезисом, что-то вроде бинарного оператора сдвига и испанский знак вопроса с открытым вопросом). Я видел это в контексте «ï» ¿using {\ bf System} », но, возможно, есть и другие.

Сгенерированный латексный файл читает

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

В то время как источник просто:

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

Какой-то странный персонаж Windows BOF? Кажется, это только перед использованием системы; директива (первая каждого файла).

РЕДАКТИРОВАТЬ: Спасибо всем. Как было указано в моем принятом ответе ниже, это символ BYTE_ORDER_MARK. Очевидно и неудивительно, что Visual Studio разворачивается. Хорошо, что есть способ сохранять файлы в UTF-8 без подписи спецификации. Файл -> Дополнительные параметры сохранения -> Кодировка (UTF-8 без подписи) - Кодовая страница 65001. Плохо то, что, похоже, нет способа сохранить все существующие файлы решения с этой кодировкой, так сказать, в пакетном режиме, и каждый файл должен быть сохранен независимо. Я обнаружил еще одну причуду (по крайней мере, в моем случае), что File -> Advanced Save Options недоступен, пока вы дважды не щелкнете по классу и файл не откроется в редакторе. Ну да ладно ...

Ответы [ 3 ]

2 голосов
/ 27 февраля 2009

ï »¿

Это представление ISO-8859-1 закодированного символа UTF-8 U + FEFF, БАЙТА ЗАКАЗ. Спецификация предназначена для использования в качестве первой кодовой точки в файлах UTF-16 и не должна использоваться в файлах UTF-8, но есть некоторые очень глупые инструменты, которые создают ее по умолчанию, к сожалению. И если вы создаете файлы путем объединения фрагментов текста из других файлов, вы можете даже получить спецификации в середине документа.

Найдите редактор, который сохраняет файлы как «UTF-8 с спецификацией», и запишите его.

ETA повторно обновленный вопрос:

ï »¿используя {\ bf System}

В то время как источник просто:

с использованием системы;

Проверьте этот источник в шестнадцатеричном редакторе на наличие скрытой поддельной спецификации перед «использованием».

0 голосов
/ 27 февраля 2009

Для меня это похоже на проблему кодировки символов.

Эта трехсимвольная последовательность является меткой порядка байтов Unicode 0xfeff, закодированной в UTF-8, хотя я не уверен, почему метка порядка байтов будет появляться в середине вашей документации ... может быть значительным или это может быть просто совпадение.

0 голосов
/ 27 февраля 2009

У вас есть идеи, как должен выглядеть текст ?

Есть несколько возможностей, наиболее очевидным из которых является то, что у вас есть какой-то случайный Unicode, и это те символы, которые вы получаете из шрифта TeX.

...