Управление выводом LaTeX от Doxygen для создания PDF документации - PullRequest
8 голосов
/ 28 февраля 2010

Я использую Doxygen для генерации документации для своего кода. Мне нужно сделать PDF-версию этого, и использование вывода LaTeX в Doxygen, похоже, является способом сделать это.

Однако я столкнулся с рядом досадных проблем, и, ничего не зная о LaTeX ранее, на самом деле не получил много идей о том, как к ним подойти, и бесчисленные ссылки на вещи, связанные с LaTeX, не сильно помогают. ..

Я работал над тем, как создать собственный стиль в файле стилей и как заставить Doxygen использовать его. После долгих поисков я узнал, как с помощью этого установить поля страницы и т. Д., И я предполагаю, что, возможно, это файл, который я хочу делать для других вещей, которые я хочу, но я не могу найти какие-либо команды для doign что я хочу: (

  1. Оглавление в начале документа содержит много элементов, а скорее нет, так как делает содержимое очень длинным. Есть ли какой-то способ ограничить это содержимое только двумя первыми уровнями, вместо того, чтобы иметь записи для каждой отдельной функции, переменной и т. Д.? Однако я бы очень хотел сохранить все закладки. Я попробовал опцию «COMPACT_LATEX», но, удалив элементы на страницах содержимого, он удалил закладки и списки участников в начале каждого раздела, которые я действительно хочу сохранить.

  2. Есть ли способ изменить порядок вещей, например поместить полное описание класса в начале раздела, а не после всех членов и атрибутов?

Ответы [ 3 ]

7 голосов
/ 01 марта 2010

Ух ты, это своего рода зло Doxygen.

Хорошо, чтобы обойти проблему со счетчиком tocdepth, добавьте следующую строку в ваш файл .sty:

\AtBeginDocument{\setcounter{tocdepth}{2}}% or whatever level you want

Для глубины закладок PDF можно установить отдельное значение:

% requires you \usepackage{hyperref} first
\hypersetup{
  bookmarksdepth = section, % of whatever level you want
}

Также обратите внимание, что если у вас есть список рисунков / таблиц, tocdepth должно быть не менее 2, чтобы они отображались.

Я не вижу способа переупорядочить эти элементы в файлах LaTeX - Doxygen просто выводит их наружу, поэтому мы не можем ничего сделать. Вам придется изучить документацию по Doxygen, чтобы узнать, есть ли способ указать порядок, который я предполагаю. (Здесь надеемся!)

1 голос
/ 01 марта 2010

Вы можете написать скрипт Perl / Awk, чтобы просто удалить ненужные строки из оглавления. Для файла burble.tex Latex сгенерирует файл burble.toc, который будет содержать строки, такие как:

\contentsline {subsection}{Class F rewrites}{38}
\contentsline {subsection}{Class M rewrites}{39}
\contentsline {section}{\numberline {7}Definition and properties of the translation}{44}
\contentsline {paragraph}{Well-formedness}{54}

Простые регулярные выражения определяют, к каким уровням относится каждая строка, и вы можете фильтровать файл на основании этого. Как только вы получите оглавление, как вам нужно, вставьте \nofiles в соответствующее место (таблицу стилей?), Что означает, что Latex будет читать вспомогательные файлы, но не перезаписывать их.

1 голос
/ 28 февраля 2010

Ты , поэтому близко.

Поиск в Google по «уровню содержания латекса» привел меня к LaTeX - настройка глубины оглавления для различных частей тезиса , который предлагает

\setcounter{tocdepth}{n}

, где n начинается с нуля только для деления самого высокого уровня. Предполагается, что это определено во всех стилях по умолчанию, но стоит попробовать в doxygen.

...