Кто-нибудь может рассказать мне что-нибудь о doxygen.sty?

#latex #doxygen

#Латекс #doxygen

Вопрос:

Я использую Doxygen для создания PDF-документа. Поэтому мне также нужно использовать LaTeX. Я сгенерировал файл стиля LaTeX по умолчанию, то есть doxygen.sty. Я хочу использовать списки пакетов latex, чтобы сделать блок кода (обернутый командами Doxygen @code и @endcode ) лучше, но когда я внес изменения в эту часть, появится ошибка LaTeX, и ни один файл PDF не может быть успешно выведен. Я где-то ошибаюсь? Как правильно добавить новый стиль в doxygen.sty ? Заранее спасибо!

Ниже приведен контент по умолчанию в doxygen.sty :

 % Used by @code ... @endcode
newenvironment{DoxyCode}{%
  par%
  scriptsize%
  begin{alltt}%
}{%
  end{alltt}%
  normalsize%
}
  

Ниже приведены изменения, которые я внес для DoxyCode среды:

 RequirePackage{listings}
RequirePackage[table]{xcolor}
...
% Used by @code ... @endcode
newenvironment{DoxyCode}{%
  par%
  lstset{numbers=left,numberstyle=tiny}%
  scriptsize%
  begin{lstlisting}[language=C]%
}{%
  end{lstlisting}%
  normalsize%
}
  

Комментарии:

1. Первый вопрос, который возникает, — какая версия doxygen? Какие сообщения об ошибках вы получаете от pdflatex? Обратите внимание, что код внутри DoxyCode среды набирается и использует другие конкретные команды, такие как DoxyCodeLine , поэтому я не знаю, может ли пакет listings дать / даст хорошие результаты. Также не рекомендуется изменять doxygen.sty (поскольку вы, вероятно, столкнетесь с возможными проблемами в будущих версиях), лучше создать файл для измененных / новых настроек и использовать LATEX_EXTRA_STYLESHEET

2. Привет, @albert, спасибо за твой ответ! Я использую Doxygen 1.8.5, и сообщение об ошибке не кажется мне чем-то особенным : ! Emergency stop. <*> ./refman.tex *** (job aborted, no legal end found) . Итак, если я хочу добавить некоторые новые атрибуты стиля к блокам кода в выходных данных PDF, каков правильный способ добиться этого? Поскольку Doxygen по умолчанию передает блок кода с набором текста, указанным в первом фрагменте, который я извлек выше, я думаю, что сначала необходимо удалить этот набор текста.

3. Ну, во-первых, doxygen 1.8.5 немного устарел (23 августа 2013 года), поэтому я бы определенно посоветовал вам обновиться до текущей (1.8.20) версии doxygen. Я думаю, что с 1.8.5 также многое изменилось в отношении списка, созданного doxygen, а также были исправлены другие проблемы (также в отношении LaTeX, какую версию LaTeX вы используете?).

4. Я использую MikTeX2.9 на Windows10 (64bit). Он тоже немного устарел? Если да, я обновлю их все, чтобы попробовать. Спасибо!

5. Это также может быть так, я не знаю, когда у вас есть MiKTeX 2.9, см. В файле журнала, например, в каталоге latex, полученном в результате ваших проектов (моя версия, которая достаточно обновлена, сообщает «Это pdfTeX, версия 3.14159265-2.6-1.40.21 (MiKTeX 20.7) (предварительно загруженный формат =pdflatex 2020.9.10)»)