diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-01-01 20:04:54 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-08-27 13:45:02 (GMT) |
commit | 02a0c353a8947290a3191aead59db08dc84766ce (patch) | |
tree | f367cb6bf3f91c2b92160144f37eed33decdc4a0 /templates | |
parent | 56987af3987f40ac77e70cd39ebbdac3702c1ce2 (diff) | |
download | Doxygen-02a0c353a8947290a3191aead59db08dc84766ce.zip Doxygen-02a0c353a8947290a3191aead59db08dc84766ce.tar.gz Doxygen-02a0c353a8947290a3191aead59db08dc84766ce.tar.bz2 |
Started with generating LaTeX output via the template engine
Diffstat (limited to 'templates')
-rw-r--r-- | templates/html/htmlbase.tpl | 4 | ||||
-rw-r--r-- | templates/html/htmltypeconstraints.tpl | 2 | ||||
-rw-r--r-- | templates/latex/doxygen.sty | 6 | ||||
-rw-r--r-- | templates/latex/latexannotated.tpl | 9 | ||||
-rw-r--r-- | templates/latex/latexclass.tpl | 114 | ||||
-rw-r--r-- | templates/latex/latexfiles.tpl | 0 | ||||
-rw-r--r-- | templates/latex/latexinclude.tpl | 32 | ||||
-rw-r--r-- | templates/latex/latexlayout.tpl | 35 | ||||
-rw-r--r-- | templates/latex/latexmakefile.tpl | 64 | ||||
-rw-r--r-- | templates/latex/latexmodules.tpl | 0 | ||||
-rw-r--r-- | templates/latex/latexnamespaces.tpl | 0 | ||||
-rw-r--r-- | templates/latex/latexobjlink.tpl | 6 | ||||
-rw-r--r-- | templates/latex/latexrefman.tpl | 227 | ||||
-rw-r--r-- | templates/latex/latextypeconstraints.tpl | 12 |
14 files changed, 505 insertions, 6 deletions
diff --git a/templates/html/htmlbase.tpl b/templates/html/htmlbase.tpl index 5ee7f3e..84807ec 100644 --- a/templates/html/htmlbase.tpl +++ b/templates/html/htmlbase.tpl @@ -196,7 +196,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% if config.HTML_TIMESTAMP %} {{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }} {% else %} -{{ tr.generatedby }} +{{ tr.generatedBy }} {% endif %} <a href="http://www.doxygen.org/index.html"> <img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a> {{ doxygen.version }} </li> @@ -207,7 +207,7 @@ $(document).ready(function(){initNavTree('{{ page.fileName }}{% if page_postfix {% if config.HTML_TIMESTAMP %} {{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }} {% else %} -{{ tr.generatedby }} +{{ tr.generatedBy }} {% endif %}  <a href="http://www.doxygen.org/index.html"><img class="footer" src="{{ page.relPath }}doxygen.png" alt="doxygen"/></a> {{ doxygen.version }} diff --git a/templates/html/htmltypeconstraints.tpl b/templates/html/htmltypeconstraints.tpl index 12c9581..b5a8cd0 100644 --- a/templates/html/htmltypeconstraints.tpl +++ b/templates/html/htmltypeconstraints.tpl @@ -1,5 +1,5 @@ {# obj should be a class or member #} -{% if obj.typeConstraints|length>0 %} +{% if obj.typeConstraints %} <div class="typecontraint"> <dl><dt><b>{{ tr.typeConstraints }}</b></dt> <dd><table border="0" cellspacing="2" cellpadding="0"> diff --git a/templates/latex/doxygen.sty b/templates/latex/doxygen.sty index 53d198f..948acf7 100644 --- a/templates/latex/doxygen.sty +++ b/templates/latex/doxygen.sty @@ -409,10 +409,10 @@ % Used by parameter lists and simple sections \newenvironment{Desc} {\begin{list}{}{% - \settowidth{\labelwidth}{40pt}% - \setlength{\leftmargin}{\labelwidth}% + \settowidth{\labelwidth}{20pt}% \setlength{\parsep}{0pt}% - \setlength{\itemsep}{-4pt}% + \setlength{\itemsep}{0pt}% + \setlength{\leftmargin}{\labelwidth+\labelsep}% \renewcommand{\makelabel}{\entrylabel}% } }{% diff --git a/templates/latex/latexannotated.tpl b/templates/latex/latexannotated.tpl new file mode 100644 index 0000000..0b6ecb5 --- /dev/null +++ b/templates/latex/latexannotated.tpl @@ -0,0 +1,9 @@ +\section{<{ tr.classList }>} +<{ tr.classListDescription }> +\begin{DoxyCompactList} +<% for cls in classList %> +\item\contentsline{section} +{<% with obj=cls text=cls.name %><% include 'latexobjlink.tpl' %><% endwith %><% if cls.brief %>\\*<{ cls.brief }><% endif %>} +{\pageref{<{ cls.fileName|raw }>}}{} +<% endfor %> +\end{DoxyCompactList} diff --git a/templates/latex/latexclass.tpl b/templates/latex/latexclass.tpl new file mode 100644 index 0000000..7671de0 --- /dev/null +++ b/templates/latex/latexclass.tpl @@ -0,0 +1,114 @@ +<# input: compound #> +<% msg %>Generating LaTeX output for class <{ compound.name }><% endmsg %> +\hypertarget{<{ compound.fileName|raw }>}{}\section{<{ compound.title }>} +\label{<{ compound.fileName|raw }>}\index{<{ compound.name|texLabel }>@{<{ compound.name|texIndex }>}} +<# brief description #> +<% if compound.brief %> + <{ compound.brief }> + +<% endif %> +<# compound includes #> +<% if compound.includeInfo %> + <% with ii=compound.includeInfo %> + <% include 'latexinclude.tpl' %> + <% endwith %> + + +<% endif %> +<# inheritance graph #> + <% if compound.hasInheritanceDiagram %> + <{ tr.inheritanceDiagramFor:compound.name }> + <{ compound.inheritanceDiagram }> + <% else %> + <# textual inheritance list #> + <% if compound.inherits|length>0 %> + <% markers c in compound.inherits with tr.inheritsList:compound.inherits|length %> + <% with obj=c.class text=c.name %> + <% include 'latexobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + + + <% endif %> + <% if compound.inheritedBy|length>0 %> + <% markers c in compound.inheritedBy with tr.inheritedByList:compound.inheritedBy|length %> + <% with obj=c.class text=c.name %> + <% include 'latexobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + + + <% endif %> + <% endif %> +<# collaboration graph #> + <% if compound.hasCollaborationDiagram %> + <{ tr.collaborationDiagramFor:compound.name }> + <{ compound.collaborationDiagram }> + + + <% endif %> +<# member declarations #> +<% if compound.hasDetails %> + <% if compound.anchor %> + \label{<{ compound.anchor|raw }>} + <% if config.PDF_HYPERLINKS and config.USE_PDFLATEX %> + \hypertarget{<% if compound.fileName %><{ compound.fileName|raw }>_<% endif %><{ compound.anchor|raw }>}{} + <% endif %> + <% endif %> + <% if config.COMPACT_LATEX %>\subsubsection<% else %>\subsection<% endif %>{<{ tr.detailedDesc }>} + <# template specifier #> + <% if compound.language=='cpp' and compound.templateDecls %> + <% spaceless %> + \subsubsection*{ + <% for targList in compound.templateDecls %> + template$<$ + <% for targ in targList %> + <{ targ.type }><% if targ.name %><{ space }><{ targ.name }><% endif %><% if targ.defVal %><{ space }>= <{ targ.defVal }><% endif %><% if not forloop.last %>, <% endif %> + <% endfor %> + $>$\\* + <% endfor %> + <{ compound.compoundType }><{ space }><{ compound.name }> + } + <% endspaceless %> + + + <% endif %> + <% if compound.brief and config.REPEAT_BRIEF %> + <{ compound.brief }> + + + <% endif %> + <{ compound.details }> + + + <# type constraints #> + <% with obj=compound %> + <% include 'latextypeconstraints.tpl' %> + <% endwith %> + + +<% endif %> +<% msg %> + <# examples #> + <% if compound.examples %> + <dl><dt><b><{ tr.examples }></b><dd> + <% markers obj in compound.examples with tr.exampleList:compound.examples|length %> + <% with text=obj.text %> + <% include 'htmlobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + </dd></dl> + <% endif %> + <# source definition #> + <% if compound.sourceDef %> + <% markers obj in compound.sourceDef with tr.definedAtLineInSourceFile %> + <% with text=obj.text %> + <% include 'htmlobjlink.tpl' %> + <% endwith %> + <% endmarkers %> + <% endif %> +<% endmsg %> +<# detailed description #> +<# member definitions #> +<# used files #> +<# separate member pages #> diff --git a/templates/latex/latexfiles.tpl b/templates/latex/latexfiles.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexfiles.tpl diff --git a/templates/latex/latexinclude.tpl b/templates/latex/latexinclude.tpl new file mode 100644 index 0000000..c333056 --- /dev/null +++ b/templates/latex/latexinclude.tpl @@ -0,0 +1,32 @@ +<# input: ii with attributes (file,name,isImport,isLocal), compound with attribute language #> +<% spaceless %> +<% if ii.file or ii.name %> +{\ttfamily<{ space }> + <% if compound.language=='java' or compound.language=='idl' %> + import + <% else %> + <% if ii.isImport %> + \#import + <% else %> + \#include + <% endif %> + <% endif %> + <{ space }> + <% if ii.isLocal %> + \char`\"{} + <% else %> + $<$ + <% endif %> + <% if ii.name %> + <{ ii.name }> + <% else %> + <{ ii.file.name }> + <% endif %> + <% if ii.isLocal %> + \char`\"{} + <% else %> + $>$ + <% endif %> +} +<% endif %> +<% endspaceless %> diff --git a/templates/latex/latexlayout.tpl b/templates/latex/latexlayout.tpl new file mode 100644 index 0000000..290a4d5 --- /dev/null +++ b/templates/latex/latexlayout.tpl @@ -0,0 +1,35 @@ +{% msg %}----- Start generating LaTeX output for {{ config.PROJECT_NAME }} from template ----{% endmsg %} + +{% create 'refman.tex' from 'latexrefman.tpl' %} +{% create 'Makefile' from 'latexmakefile.tpl' %} + +{# module index #} +{% if moduleTree.tree %} + {% create 'modules.tex' from 'latexmodules.tpl' %} +{% endif %} + +{# namespace index #} +{% if namespaceTree.tree %} + {% create 'namespaces.tex' from 'latexnamespaces.tpl' %} +{% endif %} + +{# class index #} +{% if classTree.tree %} + {% create 'annotated.tex' from 'latexannotated.tpl' %} +{% endif %} + +{# file index #} +{% if fileTree.tree %} + {% create 'files.tex' from 'latexfiles.tpl' %} +{% endif %} + +{# TODO: pages #} +{# TODO: examples #} +{# TODO: directories #} + +{# write class documentation pages #} +{% for compound in classList %} + {% create compound.fileName|append:'.tex' from 'latexclass.tpl' %} +{% endfor %} + +{% msg %}----- End generating LaTeX output for {{ config.PROJECT_NAME }} from template ----{% endmsg %} diff --git a/templates/latex/latexmakefile.tpl b/templates/latex/latexmakefile.tpl new file mode 100644 index 0000000..ba1eb76 --- /dev/null +++ b/templates/latex/latexmakefile.tpl @@ -0,0 +1,64 @@ +{% if config.USE_PDFLATEX %} +all: refman.pdf + +pdf: refman.pdf + +refman.pdf: clean refman.tex + pdflatex refman + {{ config.MAKEINDEX_CMD_NAME }} refman.idx +{# TODO: generateBib #} + pdflatex refman + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + pdflatex refman ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + {{ config.MAKEINDEX_CMD_NAME }} refman.idx + pdflatex refman +{% else %} +all: refman.dvi + +ps: refman.ps + +pdf: refman.pdf + +ps_2on1: refman_2on1.ps + +pdf_2on1: refman_2on1.pdf + +refman.ps: refman.dvi + dvips -o refman.ps refman.dvi + +refman.pdf: refman.ps + ps2pdf refman.ps refman.pdf + +refman.dvi: clean refman.tex doxygen.sty + echo "Running latex..." + {{ config.LATEX_CMD_NAME }} refman.tex + echo "Running makeindex..." + {{ config.MAKEINDEX_CMD_NAME }} refman.idx +{# TODO: generateBib #} + echo "Rerunning latex...." + {{ config.LATEX_CMD_NAME }} refman.tex + latex_count=8 ; \ + while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ + do \ + echo "Rerunning latex...." ;\ + {{ config.LATEX_CMD_NAME }} refman.tex ;\ + latex_count=`expr $$latex_count - 1` ;\ + done + {{ config.MAKEINDEX_CMD_NAME }} refman.idx + {{ config.LATEX_CMD_NAME }} refman.tex + +refman_2on1.ps: refman.ps + psnup -2 refman.ps >refman_2on1.ps + +refman_2on1.pdf: refman_2on1.ps + ps2pdf refman_2on1.ps refman_2on1.pdf +{% endif %} + +clean: + rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf + diff --git a/templates/latex/latexmodules.tpl b/templates/latex/latexmodules.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexmodules.tpl diff --git a/templates/latex/latexnamespaces.tpl b/templates/latex/latexnamespaces.tpl new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/templates/latex/latexnamespaces.tpl diff --git a/templates/latex/latexobjlink.tpl b/templates/latex/latexobjlink.tpl new file mode 100644 index 0000000..89ecc2e --- /dev/null +++ b/templates/latex/latexobjlink.tpl @@ -0,0 +1,6 @@ +<# inputs: obj, text #> +<% if config.PDF_HYPERLINKS %> +\hyperlink{<{ obj.fileName|raw }><% if obj.anchor %>_<{ obj.anchor }><% endif %>}{<{ text }>} +<% else %> +{\bf <{ text }>} +<% endif %> diff --git a/templates/latex/latexrefman.tpl b/templates/latex/latexrefman.tpl new file mode 100644 index 0000000..27b7ea0 --- /dev/null +++ b/templates/latex/latexrefman.tpl @@ -0,0 +1,227 @@ +\documentclass[twoside]{<% if config.COMPACT_LATEX %>article<% else %>book<% endif %>} + +% Packages required by doxygen +\usepackage{fixltx2e} +\usepackage{calc} +\usepackage{doxygen} +\usepackage[export]{adjustbox} % also loads graphicx +<% for package in config.LATEX_EXTRA_STYLESHEET %> +\usepackage{<{package|stripExtension:'.sty'}>} +<% endfor %> +\usepackage{graphicx} +\usepackage[utf8]{inputenc} +\usepackage{makeidx} +\usepackage{multicol} +\usepackage{multirow} +\PassOptionsToPackage{warn}{textcomp} +\usepackage{textcomp} +\usepackage[nointegrals]{wasysym} +\usepackage[table]{xcolor} + +<# TODO: languageSupportCommand #> + +% Font selection +\usepackage[T1]{fontenc} +\usepackage[scaled=.90]{helvet} +\usepackage{courier} +\usepackage{amssymb} +\usepackage{sectsty} +\renewcommand{\familydefault}{\sfdefault} +\allsectionsfont{ + \fontseries{bc}\selectfont + \color{darkgray} +} +\renewcommand{\DoxyLabelFont}{ + \fontseries{bc}\selectfont + \color{darkgray} +} +\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + +% Page & text layout +\usepackage{geometry} +\geometry{ + <{ config.PAPER_TYPE }>paper, + top=2.5cm, + bottom=2.5cm, + left=2.5cm, + right=2.5cm +} +\tolerance=750 +\hfuzz=15pt +\hbadness=750 +\setlength{\emergencystretch}{15pt} +\setlength{\parindent}{0cm} +\setlength{\parskip}{0.2cm} +\makeatletter +\renewcommand{\paragraph}{ + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{ + \normalfont\normalsize\bfseries\SS@parafont + } +} +\renewcommand{\subparagraph}{ + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{ + \normalfont\normalsize\bfseries\SS@subparafont + } +} +\makeatother + +% Headers & footers +\usepackage{fancyhdr} +\pagestyle{fancyplain} +\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}} +\fancyhead[CE]{\fancyplain{}{}} +\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}} +\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}} +\fancyhead[CO]{\fancyplain{}{}} +\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}} +\fancyfoot[LE]{\fancyplain{}{}} +\fancyfoot[CE]{\fancyplain{}{}} +\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize <{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }>}} +\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize <{ tr.generatedAt:doxygen.date,config.PROJECT_NAME }>}} +\fancyfoot[CO]{\fancyplain{}{}} +\fancyfoot[RO]{\fancyplain{}{}} +\renewcommand{\footrulewidth}{0.4pt} +<% if not config.COMPACT_LATEX %> +\renewcommand{\chaptermark}[1]{ + \markboth{ #1}{}% +} +<% endif %> +\renewcommand{\sectionmark}[1]{ + \markright{\thesection\ #1} +} + +% Indices & bibliography +\usepackage{natbib} +\usepackage[titles]{tocloft} +\setcounter{tocdepth}{3} +\setcounter{secnumdepth}{5} +\makeindex + +<% if config.EXTRA_PACKAGES %> +% Packages requested by user +<% for package in config.EXTRA_PACKAGES %> +\usepackage{<{ package }>} +<% endfor %> +<% endif %> + +<% if config.PDF_HYPERLINKS %> +% Hyperlinks (required, but should be loaded last) +\usepackage{ifpdf} +\ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} +\else + \usepackage[ps2pdf,pagebackref=true]{hyperref} +\fi +\hypersetup{ + colorlinks=true, + linkcolor=blue, + citecolor=blue, + unicode +} +<% endif %> + +% Custom commands +\newcommand{\clearemptydoublepage}{ + \newpage{\pagestyle{empty}\cleardoublepage} +} + +%===== C O N T E N T S ===== + +\begin{document} +<# TODO: select language for greek #> + +% Titlepage & ToC +<% if config.USE_PDFLATEX and config.PDF_HYPERLINKS %> +\hypersetup{pageanchor=false, + bookmarks=true, + bookmarksnumbered=true, + pdfencoding=unicode + } +<% endif %> +\pagenumbering{roman} +\begin{titlepage} +<% tabbing %> +\vspace*{7cm} +\begin{center}% +{\Large +<% if config.PROJECT_NAME %> + <{ config.PROJECT_NAME }> +<% else %> + <{ tr.referenceManual }> +<% endif %> +<% if config.PROJECT_NUMBER %> +\\[1ex]\large <{ config.PROJECT_NUMBER }> +<% endif %> +}\\ +\vspace*{1cm}{\large <{ tr.generatedBy }> Doxygen <{ doxygen.version }>}\\ +\vspace*{0.5cm}{\small <{ doxygen.date }>}\\ +\end{center} +<% endtabbing %> +\end{titlepage} +<% if not config.COMPACT_LATEX %>\clearemptydoublepage<% endif %> + +\tableofcontents +<% if not config.COMPACT_LATEX %>\clearemptydoublepage<% endif %> +\pagenumbering{arabic} +<% if config.USE_PDFLATEX and config.PDF_HYPERLINKS %> +\hypersetup{pageanchor=true} +<% endif %> + +%--- Begin generated contents --- +<# TODO: loop over pages #> +<% if moduleTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.moduleIndex }>} +\input{modules} +<% endif %> +<% if namespaceTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.namespaceIndex }>} +\input{namespaces} +<% endif %> +<% if classTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.classIndex }>} +\input{annotated} +<% endif %> +<% if fileTree.tree %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.fileIndex }>} +\input{files} +<% endif %> +<% if moduleList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.moduleDocumentation }>} +<% for compound in moduleList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if namespaceList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.namespaceDocumentation }>} +<% for compound in namespaceList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if classList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.classDocumentation }>} +<% for compound in classList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +<% if fileList %> +<% if config.COMPACT_LATEX %>\section<% else %>\chapter<% endif %>{<{ tr.fileDocumentation }>} +<% for compound in fileList %> +\input{<{ compound.fileName|raw }>} +<% endfor %> +<% endif %> +%--- End generated contents --- + +<# TODO: write bibliography #> +% Index +<% if not config.COMPACT_LATEX %> +\backmatter +<% endif %> +\newpage +\phantomsection +\clearemptydoublepage +\addcontentsline{toc}{<% if config.COMPACT_LATEX %>section<% else %>chapter<% endif %>}{<{ tr.index }>} +\printindex + +\end{document} + + diff --git a/templates/latex/latextypeconstraints.tpl b/templates/latex/latextypeconstraints.tpl new file mode 100644 index 0000000..2853ab2 --- /dev/null +++ b/templates/latex/latextypeconstraints.tpl @@ -0,0 +1,12 @@ +<# obj should be a class or member #> +<% msg %>type constraints = <{ obj.typeConstraints|length }><% endmsg %> +<% if obj.typeConstraints %> +\begin{Desc} +\item[<{ tr.typeConstraints }>] +\begin{description} +<% for arg in obj.typeConstraints %> + \item[{\em <{ arg.name }>} : {\em <{ arg.type }>}] <{ arg.docs }> +<% endfor %> +\end{description} +\end{Desc} +<% endif %> |