2010-02-28 12 views
8

Estoy usando Doxygen para generar documentación para mi código. Necesito hacer una versión en PDF de esto y usar la salida LaTeX de Doxygen parece ser la manera de hacerlo.Controlar la salida LaTeX de Doxygen para hacer documentación en PDF

Sin embargo, me he encontrado con una serie de problemas molestos, y no saber nada sobre LaTeX anteriormente realmente no tengo mucha idea de cómo abordarlos, y las innumerables referencias de cosas relacionadas con LaTeX no son de mucha ayuda ...

He trabajado sobre cómo crear un estilo personalizado en un archivo sty y cómo obtener Doxygen para usarlo. Después de mucha búsqueda descubrí cómo establecer los márgenes de página, etc. a través de esto, y supongo que quizás este es el archivo que quiero para hacer las otras cosas que quiero, pero no puedo encontrar ningún comando para hacerlo. lo que quiero :(

  1. la tabla de contenido al principio del documento contiene una gran cantidad de artículos preferiría que no, ya que hace que los contenidos mucho tiempo. ¿hay alguna manera de limitar este contenido a simplemente diga los dos primeros niveles, en lugar de tener entradas para cada función individual, variable, etc. Me gustaría guardar todos los marcadores. Intenté la opción "COMPACT_LATEX" pero también eliminé los elementos en las páginas de contenido. , eliminó los marcadores y las listas de miembros al comienzo de cada sección, lo que de verdad quiero conservar.

  2. ¿Hay alguna manera de cambiar el orden de las cosas, como poner la descripción de clase completa al comienzo de la sección, en lugar de después de todos los miembros y atributos?

Respuesta

7

Wow, eso es una especie de maldad de Doxygen.

bien, a evitar el problema contador tocdepth, agregue la siguiente línea a su archivo .sty:

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

Es posible ajustar la profundidad marcadores de PDF a un valor separado:

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

también tenga en cuenta que si tiene una lista de figuras/tablas, el tocdepth debe tener al menos 2 para que se muestren.

No veo ninguna forma de reorganizar esos elementos dentro de los archivos LaTeX --- Doxygen simplemente los muestra, así que no podemos hacer mucho. Tendrás que hurgar en la documentación de Doxygen para ver si hay alguna forma de especificar el orden, supongo. (¡Aquí está la esperanza!)

+0

+1 Esto debería solucionar el problema con la sugerencia de dmckee, y es más sólido que mi sugerencia. Quién sabe, tal vez incluso funcione ... –

1

Eres tan cerca.

buscar en Google sobre "nivel de contenidos de látex" me llevó a LaTeX - customizing the depth of the table of contents for different parts of the thesis que sugiere

\setcounter{tocdepth}{n} 

donde n comienza en cero por sólo la división de más alto nivel. Esto es presumiblemente definido en todos los estilos predeterminados, pero vale la pena intentarlo en doxygen.

+0

Intenté poner eso en mi hoja de estilos, pero no tuvo ningún efecto. Después de buscar un poco más descubrí que Doxygen está poniendo "\ setcounter {tocdepth} {3}" justo después de un comando "\ makeindex", que es el turno después de la inclusión de paquetes personalizados. ¿Así que estoy de vuelta a la edición del archivo cada vez que Doxygen lo genera a menos que haya algo que impida que Doxygen agregue eso, o evito que el látex deje que los últimos invaliden el mío? –

+0

TI también afecta la profundidad de los marcadores, que a la id le gustaría conservar si es posible, ya que la estructura de árbol contraíble lo hace más adecuado para la lista completa. Sin embargo, todo lo que he encontrado parece tratarlos igual :( –

+2

Muchos de los que usamos LaTeX para la documentación utilizamos archivos para controlar la publicación, con scripts personalizados que realizan bits de sed y awk (y otras utilidades) para hacer el tipo de edición usted describe. Por supuesto, muchos de nosotros somos usuarios de Unix/Linux desde hace mucho tiempo para quienes esto es tan natural como respirar y el enfoque puede no ajustarse a sus necesidades o antecedentes. –

1

Puede escribir una secuencia de comandos Perl/Awk para simplemente eliminar las líneas no deseadas de la tabla de contenido. Para el archivo burble.tex, Látex va a generar el archivo burble.toc, que contendrá las líneas tales como:

 
\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} 

expresiones regulares simples identificarán qué niveles cada línea pertenece a, y se puede filtrar el archivo basado en eso. Una vez que tenga la tabla de contenidos de la forma que desee, inserte \nofiles en el lugar apropiado (¿la hoja de estilos?), Lo que significa que Latex leerá los archivos auxiliares pero no los sobrescribirá.

Cuestiones relacionadas