Как диагностировать ошибки в LaTeX, сгенерированные Doxygen 1.8.x: LT @ LL @ FM @ cr

Я успешно использую Doxygen для создания PDF-документации для большого проекта Fortran 90, начиная с версии 1.6. После недавнего обновления до Doxygen 1.8 pdflatex задыхается из-за ошибки, которую я не могу понять. Из refman.log:

.
.
.
<use classfate__source_a022bf629bdc1d3059ebd5fb86d13b4f4_icgraph.pdf>
Package pdftex.def Info: classfate__source_a022bf629bdc1d3059ebd5fb86d13b4f4_ic
graph.pdf used on input line 607.
(pdftex.def)             Requested size: 350.0pt x 65.42921pt.
)
(./classm__aerosol.tex
! Undefined control sequence.
<recently read> \LT@LL@FM@cr 

l.25 ...1833ffa6f2fae54ededb}{ia\-\_\-nsize}), \\*

? ?
Type <return> to proceed, S to scroll future error messages,
R to run without stopping, Q to run quietly,
I to insert something, E to edit your file,
1 or ... or 9 to ignore the next 1 to 9 tokens of input,
H for help, X to quit.

Глядя на первые 25 строк classm__aerosol.tex, ничего явно не соответствует сообщению об ошибке:

\hypertarget{classm__aerosol}{\section{m\-\_\-aerosol Module Reference}
\label{classm__aerosol}\index{m\-\_\-aerosol@{m\-\_\-aerosol}}
}


Contains general aerosol-\/related constants and routines.  


\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
subroutine \hyperlink{classm__aerosol_aa06c1f39c6bd34f22be92d21535f0320}{aerdis} (I\-A\-E\-R\-O, M\-A\-E\-R\-O, V\-O\-L, A\-R\-E\-A, M\-U, T\-G\-A\-S, R\-H\-O, A\-G\-A\-M\-M\-A, X\-L\-A\-E\-R, D\-M\-E\-A\-N, N\-A\-E\-R, X\-N\-D\-A\-E\-R, L\-S\-D\-A\-E\-R)
\begin{DoxyCompactList}\small\item\em Return aerosol mass given a volume, based on aerosol size distribution function. \end{DoxyCompactList}\item 
real(kind=wp) function \hyperlink{classm__aerosol_a2dff4ff413057e8788fba7270a30c093}{lamsed} (V\-O\-L, H, M\-U\-G, R\-H\-O\-A\-E\-R, A\-G\-A\-M\-M\-A, A\-C\-H\-I, A\-F\-E\-O, K\-O, M\-A\-E\-R, F\-M\-A\-E\-R, F\-A\-E\-R\-S\-S, F\-S\-E\-D\-D\-K)
\begin{DoxyCompactList}\small\item\em Calculate aerosol removal constant and interpolation factor between steady-\/state and decaying aerosol correlations. \end{DoxyCompactList}\item 
pure real(kind=wp) function \hyperlink{classm__aerosol_a6d0a04004f49c404c67e0aa69dd39ee1}{fdbend} (V\-E\-L, H\-S\-E\-D, T\-G, R\-H\-O\-G, M\-U\-G, R\-H\-O\-P\-A\-R, C\-A\-E\-R\-O, X\-D\-B\-E\-N\-D, N90\-J)
\begin{DoxyCompactList}\small\item\em Find total impaction efficiency for aerosol deposition considering 90-\/degree bends in a flow path. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
integer, parameter \hyperlink{classm__aerosol_a8f604b7ffe3c1833ffa6f2fae54ededb}{ia\-\_\-nsize} = 30
\item 
integer, parameter \hyperlink{classm__aerosol_ae71813ecf0c7768af9d6292efb14774f}{ia\-\_\-nmass} = 10
\item 
real(kind=wp), dimension(\hyperlink{classm__aerosol_a8f604b7ffe3c1833ffa6f2fae54ededb}{ia\-\_\-nsize}), \\*

Ничто явно не соответствует недавно прочитанному фрагменту "\ LT @ LL @ FM @ cr", и я не знаю достаточно низкоуровневого TeX, чтобы преобразовать его во что-то, что действительно могло бы присутствовать в исходном тексте.

Подозревая, что это могло быть исправлено в более поздней версии Doxygen, чем та, которая поставляется с Linux Mint (v1.8.1.2), я собрал и установил v1.8.3.1 из исходного кода, обновил свой doxyfile, удалил старую документацию и восстановил Это. Я получаю ту же загадочную ошибку.

В refman.log нет ничего очевидного, что указывало бы на отсутствующие или сломанные пакеты LaTeX, и я совершенно не понимаю, что это вызывает.


person arclight    schedule 04.05.2013    source источник
comment
Начните с добавления \errorcontextlines=9999 в начало файла TeX и перезапустите TeX, затем обновите ответ расширенным сообщением об ошибке. Но ИМХО это надо адресовать авторам doxygen.   -  person Martin Schröder    schedule 04.05.2013


Ответы (2)


Поскольку это все еще находит популярность в Google при поиске: doxygen missing $ inserted Я хотел бы кое-что добавить.

Не используйте PROJECT_NAME, содержащий символы подчеркивания (_)!

После краткого ознакомления с текущей документацией doxygen (я использую 1.8.4) он не делает этого явным.

person Walter    schedule 23.11.2015

это будет сложно решить, если вы не предоставите немного больше информации - возможно, используя \errorcontextlines=9999, как предлагается в комментариях к вопросу.

в качестве первого краткого названия последовательности управления, которую невозможно найти (например, \LT@LL@FM@cr), определяется longtable package (документация, стр.15) - добавив таким образом:

\usepackage{longtable}

к преамбуле документа может помочь.

Если это так, согласно документации doxygen здесь, добавив следующее в вашу конфигурацию файл должен помочь:

EXTRA_PACKAGES=longtable
person greyshade    schedule 05.08.2014