diff options
Diffstat (limited to 'src/latexgen.cpp')
-rw-r--r-- | src/latexgen.cpp | 945 |
1 files changed, 477 insertions, 468 deletions
diff --git a/src/latexgen.cpp b/src/latexgen.cpp index e06a3a2..593ca69 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -128,7 +128,9 @@ static void writeLatexMakefile() << "\t echo \"Rerunning latex....\" ;\\" << endl << "\t " << latex_command << " refman.tex ;\\" << endl << "\t latex_count=`expr $$latex_count - 1` ;\\" << endl - << "\t done" << endl << endl + << "\t done" << endl + << "\t" << mkidx_command << " refman.idx" << endl + << "\t" << latex_command << " refman.tex" << endl << endl << "refman_2on1.ps: refman.ps" << endl << "\tpsnup -2 refman.ps >refman_2on1.ps" << endl << endl @@ -154,7 +156,9 @@ static void writeLatexMakefile() << "\t echo \"Rerunning latex....\" ;\\" << endl << "\t pdflatex refman ;\\" << endl << "\t latex_count=`expr $$latex_count - 1` ;\\" << endl - << "\t done" << endl << endl; + << "\t done" << endl + << "\t" << mkidx_command << " refman.idx" << endl + << "\tpdflatex refman" << endl << endl; } t << endl @@ -204,6 +208,8 @@ static void writeMakeBat() t << "goto :repeat\n"; t << ":skip\n"; t << "endlocal\n"; + t << mkidx_command << " refman.idx\n"; + t << latex_command << " refman.tex\n"; t << "dvips -o refman.ps refman.dvi\n"; t << "gswin32c -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite " "-sOutputFile=refman.pdf -c save pop -f refman.ps\n"; @@ -234,6 +240,8 @@ static void writeMakeBat() t << "goto :repeat\n"; t << ":skip\n"; t << "endlocal\n"; + t << mkidx_command << " refman.idx\n"; + t << "pdflatex refman\n"; } #endif } @@ -259,287 +267,287 @@ static void writeDefaultHeaderPart1(FTextStream &t) { // part 1 + // Handle batch mode + if (Config_getBool("LATEX_BATCHMODE")) + t << "\\batchmode\n"; + + // Set document class depending on configuration + QCString documentClass; + if (Config_getBool("COMPACT_LATEX")) + documentClass = "article"; + else + documentClass = "book"; + t << "\\documentclass[twoside]{" << documentClass << "}\n" + "\n"; + + // Load required packages + t << "% Packages required by doxygen\n" + "\\usepackage{calc}\n" + "\\usepackage{doxygen}\n" + "\\usepackage{graphicx}\n" + "\\usepackage[utf8]{inputenc}\n" + "\\usepackage{makeidx}\n" + "\\usepackage{multicol}\n" + "\\usepackage{multirow}\n" + "\\usepackage{textcomp}\n" + "\\usepackage[table]{xcolor}\n" + "\n"; + + // Language support + QCString languageSupport = theTranslator->latexLanguageSupportCommand(); + if (!languageSupport.isEmpty()) + { + t << "% NLS support packages\n" + << languageSupport + << "\n"; + } + + // Define default fonts + t << "% Font selection\n" + "\\usepackage[T1]{fontenc}\n" + "\\usepackage{mathptmx}\n" + "\\usepackage[scaled=.90]{helvet}\n" + "\\usepackage{courier}\n" + "\\usepackage{amssymb}\n" + "\\usepackage{sectsty}\n" + "\\renewcommand{\\familydefault}{\\sfdefault}\n" + "\\allsectionsfont{%\n" + " \\fontseries{bc}\\selectfont%\n" + " \\color{darkgray}%\n" + "}\n" + "\\renewcommand{\\DoxyLabelFont}{%\n" + " \\fontseries{bc}\\selectfont%\n" + " \\color{darkgray}%\n" + "}\n" + "\n"; + + // Define page & text layout QCString paperName; - if (Config_getBool("LATEX_BATCHMODE")) t << "\\batchmode" << endl; QCString &paperType=Config_getEnum("PAPER_TYPE"); - if (paperType=="a4wide") - paperName="a4"; - else + // "a4wide" package is obsolete (see bug 563698) + if (paperType=="a4wide") + paperName="a4"; + else paperName=paperType; - t << "\\documentclass"; - //"[" << paperName << "paper"; - //t << "]"; - t << "{"; - if (Config_getBool("COMPACT_LATEX")) t << "article"; else t << "book"; - t << "}\n"; - // the next package is obsolete (see bug 563698) - //if (paperType=="a4wide") t << "\\usepackage{a4wide}\n"; - t << - "\\usepackage["<<paperName<<"paper,top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm]{geometry}\n" - "\\usepackage{makeidx}\n" - "\\usepackage{natbib}\n" - "\\usepackage{graphicx}\n" - "\\usepackage{multicol}\n" - "\\usepackage{float}\n" - "\\usepackage{listings}\n" - "\\usepackage{color}\n" - "\\usepackage{ifthen}\n" - "\\usepackage[table]{xcolor}\n" - "\\usepackage{textcomp}\n" - "\\usepackage{alltt}\n" - //"\\usepackage{ae,aecompl,aeguill}\n" - ; - //if (Config_getBool("USE_PDFLATEX")) - //{ - // t << "\\usepackage{times}" << endl; - //} - if (Config_getBool("PDF_HYPERLINKS")) - { - t << "\\usepackage{ifpdf}" << endl - << "\\ifpdf" << endl - << "\\usepackage[pdftex," << endl - << " pagebackref=true," << endl - << " colorlinks=true," << endl - << " linkcolor=blue," << endl - << " unicode" << endl - << " ]{hyperref}" << endl - << "\\else" << endl - << "\\usepackage[ps2pdf," << endl - << " pagebackref=true," << endl - << " colorlinks=true," << endl - << " linkcolor=blue," << endl - << " unicode" << endl - << " ]{hyperref}" << endl - << "\\usepackage{pspicture}" << endl - << "\\fi" << endl; - } - // Try to get the command for switching on the language - // support - t << "\\usepackage[utf8]{inputenc}" << endl; - QCString sLanguageSupportCommand( - theTranslator->latexLanguageSupportCommand()); - - if (!sLanguageSupportCommand.isEmpty()) - { - // The command is not empty. Put it to the output. - // if the command is empty, no output is needed. - t << sLanguageSupportCommand << endl; - } - t << "\\usepackage{mathptmx}\n"; - t << "\\usepackage[scaled=.90]{helvet}\n"; - t << "\\usepackage{courier}\n"; - t << "\\usepackage{sectsty}\n"; - t << "\\usepackage{amssymb}\n"; - t << "\\usepackage[titles]{tocloft}\n"; - t << "\\usepackage{doxygen}\n"; - - // define option for listings - t << "\\lstset{language=C++," - "inputencoding=utf8," - "basicstyle=\\footnotesize," - "breaklines=true," - "breakatwhitespace=true," - "tabsize=" << Config_getInt("TAB_SIZE") <<"," - "numbers=left }" << endl; - + t << "% Page & text layout\n" + "\\usepackage{geometry}\n" + "\\geometry{%\n" + " " << paperName << "paper,%\n" + " top=2.5cm,%\n" + " bottom=2.5cm,%\n" + " left=2.5cm,%\n" + " right=2.5cm%\n" + "}\n"; + // \sloppy is obsolete (see bug 563698) + // Allow a bit of overflow to go unnoticed by other means + t << "\\tolerance=750\n" + "\\hfuzz=15pt\n" + "\\hbadness=750\n" + "\\setlength{\\emergencystretch}{15pt}\n" + "\\setlength{\\parindent}{0cm}\n" + "\\setlength{\\parskip}{0.2cm}\n"; + // Redefine paragraph/subparagraph environments, using sectsty fonts + t << "\\makeatletter\n" + "\\renewcommand{\\paragraph}{%\n" + " \\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%\n" + " \\normalfont\\normalsize\\bfseries\\SS@parafont%\n" + " }%\n" + "}\n" + "\\renewcommand{\\subparagraph}{%\n" + " \\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%\n" + " \\normalfont\\normalsize\\bfseries\\SS@subparafont%\n" + " }%\n" + "}\n" + "\\makeatother\n" + "\n"; + + // Headers & footers + QCString genString = + theTranslator->trGeneratedAt(dateToString(TRUE),Config_getString("PROJECT_NAME")); + t << "% Headers & footers\n" + "\\usepackage{fancyhdr}\n" + "\\pagestyle{fancyplain}\n" + "\\fancyhead[LE]{\\fancyplain{}{\\bfseries\\thepage}}\n" + "\\fancyhead[CE]{\\fancyplain{}{}}\n" + "\\fancyhead[RE]{\\fancyplain{}{\\bfseries\\leftmark}}\n" + "\\fancyhead[LO]{\\fancyplain{}{\\bfseries\\rightmark}}\n" + "\\fancyhead[CO]{\\fancyplain{}{}}\n" + "\\fancyhead[RO]{\\fancyplain{}{\\bfseries\\thepage}}\n" + "\\fancyfoot[LE]{\\fancyplain{}{}}\n" + "\\fancyfoot[CE]{\\fancyplain{}{}}\n" + "\\fancyfoot[RE]{\\fancyplain{}{\\bfseries\\scriptsize " << genString << " Doxygen }}\n" + "\\fancyfoot[LO]{\\fancyplain{}{\\bfseries\\scriptsize " << genString << " Doxygen }}\n" + "\\fancyfoot[CO]{\\fancyplain{}{}}\n" + "\\fancyfoot[RO]{\\fancyplain{}{}}\n" + "\\renewcommand{\\footrulewidth}{0.4pt}\n"; + if (!Config_getBool("COMPACT_LATEX")) + { + t << "\\renewcommand{\\chaptermark}[1]{%\n" + " \\markboth{#1}{}%\n" + "}\n"; + } + t << "\\renewcommand{\\sectionmark}[1]{%\n" + " \\markright{\\thesection\\ #1}%\n" + "}\n" + "\n"; + + // ToC, LoF, LoT, bibliography, and index + t << "% Indices & bibliography\n" + "\\usepackage{natbib}\n" + "\\usepackage[titles]{tocloft}\n" + "\\setcounter{tocdepth}{3}\n" + "\\setcounter{secnumdepth}{5}\n" + "\\makeindex\n" + "\n"; + + // User-specified packages QStrList &extraPackages = Config_getList("EXTRA_PACKAGES"); - const char *s=extraPackages.first(); - while (s) - { - t << "\\usepackage{" << s << "}\n"; - s=extraPackages.next(); - } - t << "\\makeindex\n" - "\\setcounter{tocdepth}{3}\n" - "\\renewcommand{\\footrulewidth}{0.4pt}\n" - "\\renewcommand{\\familydefault}{\\sfdefault}\n" - "\\hfuzz=15pt\n" // allow a bit of overflow to go unnoticed - "\\setlength{\\emergencystretch}{15pt}\n" - "\\hbadness=750\n" - "\\tolerance=750\n" - "\\begin{document}\n"; - static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); - static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + if (!extraPackages.isEmpty()) { + t << "% Packages requested by user\n"; + const char *pkgName=extraPackages.first(); + while (pkgName) + { + t << "\\usepackage{" << pkgName << "}\n"; + pkgName=extraPackages.next(); + } + t << "\n"; + } + + // Hyperlinks + bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + if (pdfHyperlinks) + { + t << "% Hyperlinks (required, but should be loaded last)\n" + "\\usepackage{ifpdf}\n" + "\\ifpdf\n" + " \\usepackage[pdftex,pagebackref=true]{hyperref}\n" + "\\else\n" + " \\usepackage[ps2pdf,pagebackref=true]{hyperref}\n" + "\\fi\n" + "\\hypersetup{%\n" + " colorlinks=true,%\n" + " linkcolor=blue,%\n" + " citecolor=blue,%\n" + " unicode%\n" + "}\n" + "\n"; + } + + // Custom commands used by the header + t << "% Custom commands\n" + "\\newcommand{\\clearemptydoublepage}{%\n" + " \\newpage{\\pagestyle{empty}\\cleardoublepage}%\n" + "}\n" + "\n" + "\n"; + + // End of preamble, now comes the document contents + t << "%===== C O N T E N T S =====\n" + "\n" + "\\begin{document}\n"; + if (theTranslator->idLanguage()=="greek") + t << "\\selectlanguage{greek}\n"; + t << "\n"; + + // Front matter + t << "% Titlepage & ToC\n"; + bool usePDFLatex = Config_getBool("USE_PDFLATEX"); if (pdfHyperlinks && usePDFLatex) { - // to avoid duplicate page anchors due to reuse of same numbers for + // To avoid duplicate page anchors due to reuse of same numbers for // the index (be it as roman numbers) - t << "\\hypersetup{pageanchor=false,citecolor=blue}" << endl; + t << "\\hypersetup{pageanchor=false}\n"; } - if (theTranslator->idLanguage()=="greek") t << "\\selectlanguage{greek}\n"; - t << "\\begin{titlepage}\n" - "\\vspace*{7cm}\n" - "\\begin{center}\n" - "{\\Large "; - + t << "\\pagenumbering{roman}\n" + "\\begin{titlepage}\n" + "\\vspace*{7cm}\n" + "\\begin{center}%\n" + "{\\Large "; } static void writeDefaultHeaderPart2(FTextStream &t) { // part 2 - t << "}\\\\" << endl - << "\\vspace*{1cm}" << endl - << "{\\large "; + // Finalize project name + t << "}\\\\\n" + "\\vspace*{1cm}\n" + "{\\large "; } static void writeDefaultHeaderPart3(FTextStream &t) { // part 3 - t << " Doxygen " << versionString << "}\\\\" << endl - << "\\vspace*{0.5cm}" << endl - << "{\\small " << dateToString(TRUE) << "}\\\\" << endl - << "\\end{center}" << endl - << "\\end{titlepage}" << endl; - if (!Config_getBool("COMPACT_LATEX")) t << "\\clearemptydoublepage\n"; - t << "\\pagenumbering{roman}\n"; + // Finalize project number + t << " Doxygen " << versionString << "}\\\\\n" + "\\vspace*{0.5cm}\n" + "{\\small " << dateToString(TRUE) << "}\\\\\n" + "\\end{center}\n" + "\\end{titlepage}\n"; + bool compactLatex = Config_getBool("COMPACT_LATEX"); + if (!compactLatex) + t << "\\clearemptydoublepage\n"; + + // ToC t << "\\tableofcontents\n"; - if (!Config_getBool("COMPACT_LATEX")) t << "\\clearemptydoublepage\n"; + if (!compactLatex) + t << "\\clearemptydoublepage\n"; t << "\\pagenumbering{arabic}\n"; - static bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); - static bool usePDFLatex = Config_getBool("USE_PDFLATEX"); + bool pdfHyperlinks = Config_getBool("PDF_HYPERLINKS"); + bool usePDFLatex = Config_getBool("USE_PDFLATEX"); if (pdfHyperlinks && usePDFLatex) { - t << "\\hypersetup{pageanchor=true,citecolor=blue}" << endl; + // re-enable anchors again + t << "\\hypersetup{pageanchor=true}\n"; } + t << "\n" + "%--- Begin generated contents ---\n"; } -static void writeDefaultStyleSheetPart1(FTextStream &t) +static void writeDefaultStyleSheet(FTextStream &t) { // part 1 t << "\\NeedsTeXFormat{LaTeX2e}\n" - "\\ProvidesPackage{doxygen}\n\n"; + "\\ProvidesPackage{doxygen}\n" + "\n"; t << "% Packages used by this style file\n" "\\RequirePackage{alltt}\n" "\\RequirePackage{array}\n" "\\RequirePackage{calc}\n" - "\\RequirePackage{color}\n" - "\\RequirePackage{fancyhdr}\n" + "\\RequirePackage{float}\n" + "\\RequirePackage{ifthen}\n" "\\RequirePackage{longtable}\n" "\\RequirePackage{verbatim}\n" - "\\RequirePackage{ifthen}\n" + "\\RequirePackage[table]{xcolor}\n" "\\RequirePackage{xtab}\n" - "\\RequirePackage{multirow}\n" - "\\RequirePackage[table]{xcolor}\n\n"; - - t << "% Use helvetica font instead of times roman\n" - "\\RequirePackage{helvet}\n" - "\\RequirePackage{sectsty}\n" - "\\RequirePackage{tocloft}\n" -// "\\allsectionsfont{\\usefont{OT1}{phv}{bc}{n}\\selectfont}\n" -// "\\providecommand{\\cftchapfont}{%\n" -// " \\fontsize{11}{13}\\usefont{OT1}{phv}{bc}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftchappagefont}{%\n" -// " \\fontsize{11}{13}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsecfont}{%\n" -// " \\fontsize{10}{12}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsecpagefont}{%\n" -// " \\fontsize{10}{12}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsubsecfont}{%\n" -// " \\fontsize{10}{12}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsubsecpagefont}{%\n" -// " \\fontsize{10}{12}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsubsubsecfont}{%\n" -// " \\fontsize{9}{11}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftsubsubsecpagefont}{%\n" -// " \\fontsize{9}{11}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftparafont}{%\n" -// " \\fontsize{9}{11}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cftparapagefont}{%\n" -// " \\fontsize{9}{11}\\usefont{OT1}{phv}{c}{n}\\selectfont\n" -// "}\n" -// "\\providecommand{\\cfttoctitlefont}{%\n" -// " \\fontsize{20}{22}\\usefont{OT1}{phv}{b}{n}\\selectfont\n" -// "}\n" - "\\providecommand{\\rmdefault}{phv}\n" - "\\providecommand{\\bfdefault}{bc}\n" - "\n\n"; - - t << "% Setup fancy headings\n" - "\\pagestyle{fancyplain}\n" - "\\newcommand{\\clearemptydoublepage}{%\n" - " \\newpage{\\pagestyle{empty}\\cleardoublepage}%\n" - "}\n"; - if (!Config_getBool("COMPACT_LATEX")) - t << "\\renewcommand{\\chaptermark}[1]{%\n" - " \\markboth{#1}{}%\n" - "}\n"; - t << "\\renewcommand{\\sectionmark}[1]{%\n" - " \\markright{\\thesection\\ #1}%\n" - "}\n"; - - //t << "\\lhead[\\fancyplain{}{\\bfseries\\thepage}]{%\n" - // " \\fancyplain{}{\\bfseries\\rightmark}%\n" - // "}\n"; - //t << "\\rhead[\\fancyplain{}{\\bfseries\\leftmark}]{%\n" - // " \\fancyplain{}{\\bfseries\\thepage}%\n" - // "}\n"; - //t << "\\rfoot[\\fancyplain{}{\\bfseries\\scriptsize%\n "; - t << "\\fancyhead[LE]{\\fancyplain{}{\\bfseries\\thepage}}\n"; - t << "\\fancyhead[CE]{\\fancyplain{}{}}\n"; - t << "\\fancyhead[RE]{\\fancyplain{}{\\bfseries\\leftmark}}\n"; - t << "\\fancyhead[LO]{\\fancyplain{}{\\bfseries\\rightmark}}\n"; - t << "\\fancyhead[CO]{\\fancyplain{}{}}\n"; - t << "\\fancyhead[RO]{\\fancyplain{}{\\bfseries\\thepage}}\n"; - - t << "\\fancyfoot[LE]{\\fancyplain{}{}}\n"; - t << "\\fancyfoot[CE]{\\fancyplain{}{}}\n"; - t << "\\fancyfoot[RE]{\\fancyplain{}{\\bfseries\\scriptsize "; -} - -static void writeDefaultStyleSheetPart2(FTextStream &t) -{ - t << "}}\n"; - t << "\\fancyfoot[LO]{\\fancyplain{}{\\bfseries\\scriptsize "; - //t << "\\lfoot[]{\\fancyplain{}{\\bfseries\\scriptsize%\n "; - -} - -static void writeDefaultStyleSheetPart3(FTextStream &t) -{ - //static bool latexSourceCode = Config_getBool("LATEX_SOURCE_CODE"); - t << "}}\n"; - //t << "\\cfoot{}\n\n"; - t << "\\fancyfoot[CO]{\\fancyplain{}{}}\n"; - t << "\\fancyfoot[RO]{\\fancyplain{}{}}\n"; - - t << "%---------- Internal commands used in this style file ----------------\n\n"; - - t << "\\newcommand\\tabfill[1]{%\n"; - t << " \\dimen@\\linewidth%\n"; - t << " \\advance\\dimen@\\@totalleftmargin%\n"; - t << " \\advance\\dimen@-\\dimen\\@curtab%\n"; - t << " \\parbox[t]\\dimen@{\\raggedright #1\\ifhmode\\strut\\fi}%\n"; - t << "}\n\n"; - - t << "\\newcommand{\\ensurespace}[1]{%\n"; - t << " \\begingroup\n"; - t << " \\setlength{\\dimen@}{#1}%\n"; - t << " \\vskip\\z@\\@plus\\dimen@\n"; - t << " \\penalty -100\\vskip\\z@\\@plus -\\dimen@\n"; - t << " \\vskip\\dimen@\n"; - t << " \\penalty 9999%\n"; - t << " \\vskip -\\dimen@\n"; - t << " \\vskip\\z@skip % hide the previous |\\vskip| from |\\addvspace|\n"; - t << " \\endgroup\n"; - t << "}\n\n"; - - t << "% Generic environment used by all paragraph-based environments defined\n" - "% below. Note that the command \\title{...} needs to be defined inside\n" - "% those environments!\n" - "\\newenvironment{DoxyDesc}[1]{%\n" - //" \\filbreak%\n" - " \\ensurespace{4\\baselineskip}%\n" - " \\begin{list}{}%\n" + "\n" + "\n"; + t << "%---------- Internal commands used in this style file ----------------\n" + "\n"; + t << "\\newcommand{\\ensurespace}[1]{%\n" + " \\begingroup%\n" + " \\setlength{\\dimen@}{#1}%\n" + " \\vskip\\z@\\@plus\\dimen@%\n" + " \\penalty -100\\vskip\\z@\\@plus -\\dimen@%\n" + " \\vskip\\dimen@%\n" + " \\penalty 9999%\n" + " \\vskip -\\dimen@%\n" + " \\vskip\\z@skip% hide the previous |\\vskip| from |\\addvspace|\n" + " \\endgroup%\n" + "}\n" + "\n"; + t << "\\newcommand{\\DoxyLabelFont}{}\n" + "\\newcommand{\\entrylabel}[1]{%\n" " {%\n" + " \\parbox[b]{\\labelwidth-4pt}{%\n" + " \\makebox[0pt][l]{\\DoxyLabelFont#1}%\n" + " \\vspace{1.5\\baselineskip}%\n" + " }%\n" + " }%\n" + "}\n" + "\n"; + t << "\\newenvironment{DoxyDesc}[1]{%\n" + " \\ensurespace{4\\baselineskip}%\n" + " \\begin{list}{}{%\n" " \\settowidth{\\labelwidth}{40pt}%\n" " \\setlength{\\leftmargin}{\\labelwidth}%\n" " \\setlength{\\parsep}{0pt}%\n" @@ -549,8 +557,26 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\item[#1]%\n" "}{%\n" " \\end{list}%\n" - "}\n\n"; - t << "%---------- Commands used by doxygen LaTeX output generator ----------\n\n"; + "}\n" + "\n"; + t << "\\newsavebox{\\xrefbox}\n" + "\\newlength{\\xreflength}\n" + "\\newcommand{\\xreflabel}[1]{%\n" + " \\sbox{\\xrefbox}{#1}%\n" + " \\setlength{\\xreflength}{\\wd\\xrefbox}%\n" + " \\ifthenelse{\\xreflength>\\labelwidth}{%\n" + " \\begin{minipage}{\\textwidth}%\n" + " \\setlength{\\parindent}{0pt}%\n" + " \\hangindent=15pt\\bfseries #1\\vspace{1.2\\itemsep}%\n" + " \\end{minipage}%\n" + " }{%\n" + " \\parbox[b]{\\labelwidth}{\\makebox[0pt][l]{\\textbf{#1}}}%\n" + " }%\n" + "}\n" + "\n" + "\n"; + t << "%---------- Commands used by doxygen LaTeX output generator ----------\n" + "\n"; t << "% Used by <pre> ... </pre>\n" "\\newenvironment{DoxyPre}{%\n" " \\small%\n" @@ -558,35 +584,25 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) "}{%\n" " \\end{alltt}%\n" " \\normalsize%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @code ... @endcode\n" - "\\newenvironment{DoxyCode}{%\n"; - //if (latexSourceCode) - //{ - t << "\n\n\\begin{scriptsize}\\begin{alltt}%" << endl; - //} - //else - //{ - // t << " \\footnotesize%\n" - // " \\verbatim%\n"; - //} - t << "}{%\n"; - //if (latexSourceCode) - //{ - t << "\\end{alltt}\\end{scriptsize}%" << endl; - //} - //else - //{ - // t << " \\endverbatim%\n" - // " \\normalsize%\n"; - //} - t << "}\n\n"; + "\\newenvironment{DoxyCode}{%\n" + " \\par%\n" + " \\scriptsize%\n" + " \\begin{alltt}%\n" + "}{%\n" + " \\end{alltt}%\n" + " \\normalsize%\n" + "}\n" + "\n"; t << "% Used by @example, @include, @includelineno and @dontinclude\n" "\\newenvironment{DoxyCodeInclude}{%\n" " \\DoxyCode%\n" "}{%\n" " \\endDoxyCode%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @verbatim ... @endverbatim\n" "\\newenvironment{DoxyVerb}{%\n" " \\footnotesize%\n" @@ -594,138 +610,159 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) "}{%\n" " \\endverbatim%\n" " \\normalsize%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @verbinclude\n" "\\newenvironment{DoxyVerbInclude}{%\n" " \\DoxyVerb%\n" "}{%\n" " \\endDoxyVerb%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by numbered lists (using '-#' or <ol> ... </ol>)\n" "\\newenvironment{DoxyEnumerate}{%\n" " \\enumerate%\n" "}{%\n" " \\endenumerate%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)\n" "\\newenvironment{DoxyItemize}{%\n" " \\itemize%\n" "}{%\n" " \\enditemize%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by description lists (using <dl> ... </dl>)\n" "\\newenvironment{DoxyDescription}{%\n" " \\description%\n" "}{%\n" " \\enddescription%\n" - "}\n\n"; - t << "% Used by @image, @dotfile, and @dot ... @enddot\n" + "}\n" + "\n"; + t << "% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc\n" "% (only if caption is specified)\n" "\\newenvironment{DoxyImage}{%\n" " \\begin{figure}[H]%\n" - " \\begin{center}%\n" + " \\begin{center}%\n" "}{%\n" - " \\end{center}%\n" + " \\end{center}%\n" " \\end{figure}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc\n" "% (only if no caption is specified)\n" "\\newenvironment{DoxyImageNoCaption}{%\n" "}{%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @attention\n" "\\newenvironment{DoxyAttention}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @author and @authors\n" "\\newenvironment{DoxyAuthor}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @date\n" "\\newenvironment{DoxyDate}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @invariant\n" "\\newenvironment{DoxyInvariant}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @note\n" "\\newenvironment{DoxyNote}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @post\n" "\\newenvironment{DoxyPostcond}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @pre\n" "\\newenvironment{DoxyPrecond}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @copyright\n" "\\newenvironment{DoxyCopyright}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @remark\n" "\\newenvironment{DoxyRemark}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; - t << "% Used by @return\n" + "}\n" + "\n"; + t << "% Used by @return and @returns\n" "\\newenvironment{DoxyReturn}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @since\n" "\\newenvironment{DoxySince}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @see\n" "\\newenvironment{DoxySeeAlso}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @version\n" "\\newenvironment{DoxyVersion}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @warning\n" "\\newenvironment{DoxyWarning}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" "}{%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @internal\n" "\\newenvironment{DoxyInternal}[1]{%\n" " \\paragraph*{#1}%\n" "}{%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by @par and @paragraph\n" "\\newenvironment{DoxyParagraph}[1]{%\n" - " \\begin{list}{}%\n" - " {%\n" + " \\begin{list}{}{%\n" " \\settowidth{\\labelwidth}{40pt}%\n" " \\setlength{\\leftmargin}{\\labelwidth}%\n" " \\setlength{\\parsep}{0pt}%\n" @@ -735,17 +772,13 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\item[#1]%\n" "}{%\n" " \\end{list}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by parameter lists\n" "\\newenvironment{DoxyParams}[2][]{%\n" " \\begin{DoxyDesc}{#2}%\n" - //" \\begin{description}%\n" " \\item[] \\hspace{\\fill} \\vspace{-40pt}%\n" - //" \\definecolor{tableShade}{HTML}{F8F8F8}%\n" - //" \\rowcolors{1}{white}{tableShade}%\n" - //" \\arrayrulecolor{gray}%\n" " \\settowidth{\\labelwidth}{40pt}%\n" - //" \\setlength{\\LTleft}{\\labelwidth}%\n" " \\setlength{\\LTleft}{0pt}%\n" " \\setlength{\\tabcolsep}{0.01\\textwidth}%\n" " \\ifthenelse{\\equal{#1}{}}%\n" // default: name, docs columns @@ -762,9 +795,9 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " }\\hline%\n" "}{%\n" " \\end{longtable}%\n" - //" \\end{description}%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used for fields of simple structs\n" "\\newenvironment{DoxyFields}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" @@ -775,26 +808,23 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\begin{longtable}{|>{\\raggedleft\\hspace{0pt}}p{0.15\\textwidth}|%\n" " p{0.15\\textwidth}|%\n" " p{0.635\\textwidth}|}%\n" - //"\\hline{\\sf\\textbf{Type}} & {\\sf\\textbf{Name}} & {\\sf\\textbf{Description}}\\endhead%\n" " \\hline%\n" "}{%\n" " \\end{longtable}%\n" - //" \\end{description}%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; - t << "% is used for parameters within a detailed function description\n" + "}\n" + "\n"; + t << "% Used for parameters within a detailed function description\n" "\\newenvironment{DoxyParamCaption}{%\n" " \\renewcommand{\\item}[2][]{##1 {\\em ##2}}%\n" - " }{%\n" - "}\n\n"; + "}{%\n" + "}\n" + "\n"; t << "% Used by return value lists\n" "\\newenvironment{DoxyRetVals}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" " \\begin{description}%\n" " \\item[] \\hspace{\\fill} \\vspace{-25pt}%\n" - //" \\definecolor{tableShade}{HTML}{F8F8F8}%\n" - //" \\rowcolors{1}{white}{tableShade}%\n" - //" \\arrayrulecolor{gray}%\n" " \\setlength{\\tabcolsep}{0.01\\textwidth}%\n" " \\begin{longtable}{|>{\\raggedleft\\hspace{0pt}}p{0.25\\textwidth}|%\n" " p{0.705\\textwidth}|}%\n" @@ -803,7 +833,8 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\end{longtable}%\n" " \\end{description}%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by exception lists\n" "\\newenvironment{DoxyExceptions}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" @@ -820,7 +851,8 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\end{longtable}%\n" " \\end{description}%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; + "}\n" + "\n"; t << "% Used by template parameter lists\n" "\\newenvironment{DoxyTemplParams}[1]{%\n" " \\begin{DoxyDesc}{#1}%\n" @@ -837,121 +869,130 @@ static void writeDefaultStyleSheetPart3(FTextStream &t) " \\end{longtable}%\n" " \\end{description}%\n" " \\end{DoxyDesc}%\n" - "}\n\n"; - t << "\\newcommand{\\doxyref}[3]{\\textbf{#1} (\\textnormal{#2}\\,\\pageref{#3})}\n"; - t << "\\newenvironment{DoxyCompactList}\n"; - t << "{\\begin{list}{}{\n"; - t << " \\setlength{\\leftmargin}{0.5cm}\n"; - t << " \\setlength{\\itemsep}{0pt}\n"; - t << " \\setlength{\\parsep}{0pt}\n"; - t << " \\setlength{\\topsep}{0pt}\n"; - t << " \\renewcommand{\\makelabel}{\\hfill}}}\n"; - t << "{\\end{list}}\n"; - t << "\\newenvironment{DoxyCompactItemize}\n"; - t << "{\n"; - t << " \\begin{itemize}\n"; - t << " \\setlength{\\itemsep}{-3pt}\n"; - t << " \\setlength{\\parsep}{0pt}\n"; - t << " \\setlength{\\topsep}{0pt}\n"; - t << " \\setlength{\\partopsep}{0pt}\n"; - t << "}\n"; - t << "{\\end{itemize}}\n"; - t << "\\newcommand{\\PBS}[1]{\\let\\temp=\\\\#1\\let\\\\=\\temp}\n"; - t << "\\newlength{\\tmplength}\n"; - t << "\\newenvironment{TabularC}[1]\n"; - t << "{\n"; - t << "\\setlength{\\tmplength}\n"; - t << " {\\linewidth/(#1)-\\tabcolsep*2-\\arrayrulewidth*(#1+1)/(#1)}\n"; - t << " \\par\\begin{xtabular*}{\\linewidth}\n"; - t << " {*{#1}{|>{\\PBS\\raggedright\\hspace{0pt}}p{\\the\\tmplength}}|}\n"; - t << "}\n"; - t << "{\\end{xtabular*}\\par}\n"; - t << "\\newcommand{\\entrylabel}[1]{\n"; - t << " {\\parbox[b]{\\labelwidth-4pt}{\\makebox[0pt][l]{%\n"; - t << " \\usefont{OT1}{phv}{bc}{n}\\color{darkgray}#1}\\vspace{1.5\\baselineskip}}}}\n"; - t << "\\newenvironment{Desc}\n"; - t << "{\\begin{list}{}\n"; - t << " {\n"; - t << " \\settowidth{\\labelwidth}{40pt}\n"; - t << " \\setlength{\\leftmargin}{\\labelwidth}\n"; - t << " \\setlength{\\parsep}{0pt}\n"; - t << " \\setlength{\\itemsep}{-4pt}\n"; - t << " \\renewcommand{\\makelabel}{\\entrylabel}\n"; - t << " }\n"; - t << "}\n"; - t << "{\\end{list}}\n"; - - t << "\\newsavebox{\\xrefbox}\n"; - t << "\\newlength{\\xreflength}\n"; - t << "\\newcommand{\\xreflabel}[1]{%\n"; - t << " \\sbox{\\xrefbox}{#1}%\n"; - t << " \\setlength{\\xreflength}{\\wd\\xrefbox}%\n"; - t << " \\ifthenelse{\\xreflength>\\labelwidth}{%\n"; - t << " \\begin{minipage}{\\textwidth}%\n"; - t << " \\setlength{\\parindent}{0pt}%\n"; - t << " \\hangindent=15pt\\bfseries #1\\vspace{1.2\\itemsep}%\n"; - t << " \\end{minipage}%\n"; - t << " }{%\n"; - t << " \\parbox[b]{\\labelwidth}{\\makebox[0pt][l]{\\textbf{#1}}}%\n"; - t << " }}%\n"; - t << "\\newenvironment{DoxyRefList}{%\n"; - t << " \\begin{list}{}{%\n"; - t << " \\setlength{\\labelwidth}{10pt}%\n"; - t << " \\setlength{\\leftmargin}{\\labelwidth}%\n"; - t << " \\addtolength{\\leftmargin}{\\labelsep}%\n"; - t << " \\renewcommand{\\makelabel}{\\xreflabel}%\n"; - t << " }%\n"; - t << " }%\n"; - t << "{\\end{list}}\n"; - t << "\\newenvironment{DoxyRefDesc}[1]\n"; - t << "{\\begin{list}{}{%\n"; - t << " \\renewcommand\\makelabel[1]{\\textbf{##1}}\n"; - t << " \\settowidth\\labelwidth{\\makelabel{#1}}\n"; - t << " \\setlength\\leftmargin{\\labelwidth+\\labelsep}}}\n"; - t << "{\\end{list}}\n"; - t << "\\newenvironment{Indent}\n"; - t << " {\\begin{list}{}{\\setlength{\\leftmargin}{0.5cm}}\n"; - t << " \\item[]\\ignorespaces}\n"; - t << " {\\unskip\\end{list}}\n"; - - t << "\\setlength{\\parindent}{0cm}\n"; - t << "\\setlength{\\parskip}{0.2cm}\n"; - t << "\\addtocounter{secnumdepth}{2}\n"; - // \sloppy should not be used, see bug 563698 - //t << "\\sloppy\n"; - t << "\\usepackage[T1]{fontenc}\n"; - t << "\\makeatletter\n"; - t << "\\renewcommand{\\paragraph}{\\@startsection{paragraph}{4}{0ex}%\n"; - t << " {-1.0ex}%\n"; - t << " {1.0ex}%\n"; - t << " {\\usefont{OT1}{phv}{bc}{n}\\color{darkgray}}}\n"; - t << "\\renewcommand{\\subparagraph}{\\@startsection{subparagraph}{5}{0ex}%\n"; - t << " {-1.0ex}%\n"; - t << " {1.0ex}%\n"; - t << " {\\usefont{OT1}{phv}{bc}{n}\\color{darkgray}}}\n"; - t << "\\makeatother\n"; - t << "\\allsectionsfont{\\usefont{OT1}{phv}{bc}{n}\\selectfont\\color{darkgray}}\n"; - t << "\\stepcounter{secnumdepth}\n"; - t << "\\stepcounter{tocdepth}\n"; - t << "\\definecolor{comment}{rgb}{0.5,0.0,0.0}\n"; - t << "\\definecolor{keyword}{rgb}{0.0,0.5,0.0}\n"; - t << "\\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}\n"; - t << "\\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}\n"; - t << "\\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}\n"; - t << "\\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}\n"; - t << "\\definecolor{charliteral}{rgb}{0.0,0.5,0.5}\n"; - t << "\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n"; - t << "\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n"; - t << "\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n"; - t << "\\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}\n"; + "}\n" + "\n"; + t << "% Used for member lists\n" + "\\newenvironment{DoxyCompactItemize}{%\n" + " \\begin{itemize}%\n" + " \\setlength{\\itemsep}{-3pt}%\n" + " \\setlength{\\parsep}{0pt}%\n" + " \\setlength{\\topsep}{0pt}%\n" + " \\setlength{\\partopsep}{0pt}%\n" + "}{%\n" + " \\end{itemize}%\n" + "}\n" + "\n"; + t << "% Used for member descriptions\n" + "\\newenvironment{DoxyCompactList}{%\n" + " \\begin{list}{}{%\n" + " \\setlength{\\leftmargin}{0.5cm}%\n" + " \\setlength{\\itemsep}{0pt}%\n" + " \\setlength{\\parsep}{0pt}%\n" + " \\setlength{\\topsep}{0pt}%\n" + " \\renewcommand{\\makelabel}{\\hfill}%\n" + " }%\n" + "}{%\n" + " \\end{list}%\n" + "}\n" + "\n"; + t << "% Used for reference lists (@bug, @deprecated, @todo, etc.)\n" + "\\newenvironment{DoxyRefList}{%\n" + " \\begin{list}{}{%\n" + " \\setlength{\\labelwidth}{10pt}%\n" + " \\setlength{\\leftmargin}{\\labelwidth}%\n" + " \\addtolength{\\leftmargin}{\\labelsep}%\n" + " \\renewcommand{\\makelabel}{\\xreflabel}%\n" + " }%\n" + "}{%\n" + " \\end{list}%\n" + "}\n" + "\n"; + t << "% Used by @bug, @deprecated, @todo, etc.\n" + "\\newenvironment{DoxyRefDesc}[1]{%\n" + " \\begin{list}{}{%\n" + " \\renewcommand\\makelabel[1]{\\textbf{##1}}%\n" + " \\settowidth\\labelwidth{\\makelabel{#1}}%\n" + " \\setlength\\leftmargin{\\labelwidth+\\labelsep}%\n" + " }%\n" + "}{%\n" + " \\end{list}%\n" + "}\n" + "\n"; + t << "% Used by parameter lists and simple sections\n" + "\\newenvironment{Desc}\n" + "{\\begin{list}{}{%\n" + " \\settowidth{\\labelwidth}{40pt}%\n" + " \\setlength{\\leftmargin}{\\labelwidth}%\n" + " \\setlength{\\parsep}{0pt}%\n" + " \\setlength{\\itemsep}{-4pt}%\n" + " \\renewcommand{\\makelabel}{\\entrylabel}%\n" + " }\n" + "}{%\n" + " \\end{list}%\n" + "}\n" + "\n"; + t << "% Used by tables\n" + "\\newcommand{\\PBS}[1]{\\let\\temp=\\\\#1\\let\\\\=\\temp}\n" + "\\newlength{\\tmplength}\n" + "\\newenvironment{TabularC}[1]{%\n" + " \\setlength{\\tmplength}{%\n" + " \\linewidth/(#1)-\\tabcolsep*2-\\arrayrulewidth*(#1+1)/(#1)%\n" + " }%\n" + " \\par%\n" + " \\begin{xtabular*}{\\linewidth}{%\n" + " *{#1}{|>{\\PBS\\raggedright\\hspace{0pt}}p{\\the\\tmplength}}|%\n" + " }%\n" + "}{%\n" + " \\end{xtabular*}%\n" + " \\par%\n" + "}\n" + "\n"; + t << "% Used for member group headers\n" + "\\newenvironment{Indent}{%\n" + " \\begin{list}{}{%\n" + " \\setlength{\\leftmargin}{0.5cm}%\n" + " }%\n" + " \\item[]\\ignorespaces%\n" + "}{%\n" + " \\unskip%\n" + " \\end{list}%\n" + "}\n" + "\n"; + t << "% Used when hyperlinks are turned off\n" + "\\newcommand{\\doxyref}[3]{%\n" + " \\textbf{#1} (\\textnormal{#2}\\,\\pageref{#3})%\n" + "}\n" + "\n"; + t << "% Used for syntax highlighting\n" + "\\definecolor{comment}{rgb}{0.5,0.0,0.0}\n" + "\\definecolor{keyword}{rgb}{0.0,0.5,0.0}\n" + "\\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}\n" + "\\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}\n" + "\\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}\n" + "\\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}\n" + "\\definecolor{charliteral}{rgb}{0.0,0.5,0.5}\n" + "\\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}\n" + "\\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}\n" + "\\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}\n" + "\\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}\n"; } static void writeDefaultFooter(FTextStream &t) { + t << "%--- End generated contents ---\n" + "\n"; + + // Bibliography Doxygen::citeDict->writeLatexBibliography(t); - t << "\\addcontentsline{toc}{part}{" << theTranslator->trRTFGeneralIndex() << "}\n"; - t << "\\printindex\n"; - t << "\\end{document}\n"; + + // Index + t << "% Index\n" + "\\newpage\n" + "\\phantomsection\n" + "\\addcontentsline{toc}{part}{" << theTranslator->trRTFGeneralIndex() << "}\n" + "\\printindex\n" + "\n" + "\\end{document}\n"; } void LatexGenerator::writeHeaderFile(QFile &f) @@ -976,20 +1017,7 @@ void LatexGenerator::writeStyleSheetFile(QFile &f) { FTextStream t(&f); t << "% stylesheet for doxygen " << versionString << endl; - - writeDefaultStyleSheetPart1(t); - QCString &projectName = Config_getString("PROJECT_NAME"); - - t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName ); - t << " doxygen"; - //t << " " << theTranslator->trWrittenBy() << " "; - //t << "Dimitri van Heesch \\copyright~1997-2013"; - writeDefaultStyleSheetPart2(t); - t << theTranslator->trGeneratedAt( dateToString(TRUE), projectName ); - t << " doxygen"; - //t << " << theTranslator->trWrittenBy() << " "; - //t << "Dimitri van Heesch \\copyright~1997-2013"; - writeDefaultStyleSheetPart3(t); + writeDefaultStyleSheet(t); } void LatexGenerator::startFile(const char *name,const char *,const char *) @@ -1454,31 +1482,12 @@ void LatexGenerator::writePageLink(const char *name, bool /*first*/) void LatexGenerator::writeStyleInfo(int part) { - switch(part) - { - case 0: - { - //QCString pname=Config_getString("PROJECT_NAME").stripWhiteSpace(); - startPlainFile("doxygen.sty"); - writeDefaultStyleSheetPart1(t); - } - break; - case 1: - case 3: - t << " Doxygen "; - break; - case 2: - { - writeDefaultStyleSheetPart2(t); - } - break; - case 4: - { - writeDefaultStyleSheetPart3(t); - endPlainFile(); - } - break; - } + if (part > 0) + return; + + startPlainFile("doxygen.sty"); + writeDefaultStyleSheet(t); + endPlainFile(); } void LatexGenerator::newParagraph() |