diff options
-rw-r--r-- | src/formula.cpp | 2 | ||||
-rw-r--r-- | src/latexgen.cpp | 37 | ||||
-rw-r--r-- | src/util.cpp | 35 | ||||
-rw-r--r-- | src/util.h | 1 |
4 files changed, 45 insertions, 30 deletions
diff --git a/src/formula.cpp b/src/formula.cpp index 6fe617d..4644f12 100644 --- a/src/formula.cpp +++ b/src/formula.cpp @@ -69,8 +69,10 @@ void FormulaList::generateBitmaps(const char *path) FTextStream t(&f); if (Config_getBool(LATEX_BATCHMODE)) t << "\\batchmode" << endl; t << "\\documentclass{article}" << endl; + t << "\\usepackage{ifthen}" << endl; t << "\\usepackage{epsfig}" << endl; // for those who want to include images writeExtraLatexPackages(t); + writeLatexSpecialFormulaChars(t); t << "\\pagestyle{empty}" << endl; t << "\\begin{document}" << endl; int page=0; diff --git a/src/latexgen.cpp b/src/latexgen.cpp index 00826e6..a3cdaa8 100644 --- a/src/latexgen.cpp +++ b/src/latexgen.cpp @@ -181,7 +181,7 @@ void LatexCodeGenerator::writeCodeLink(const char *ref,const char *f, } else { - m_t << name; + codify(name); } m_col+=l; } @@ -633,46 +633,18 @@ static void writeDefaultHeaderPart1(FTextStream &t) "\n"; writeExtraLatexPackages(t); + writeLatexSpecialFormulaChars(t); // Hyperlinks bool pdfHyperlinks = Config_getBool(PDF_HYPERLINKS); if (pdfHyperlinks) { - unsigned char minus[4]; // Superscript minus - char *pminus = (char *)minus; - unsigned char sup2[3]; // Superscript two - char *psup2 = (char *)sup2; - unsigned char sup3[3]; - char *psup3 = (char *)sup3; // Superscript three - minus[0]= 0xE2; - minus[1]= 0x81; - minus[2]= 0xBB; - minus[3]= 0; - sup2[0]= 0xC2; - sup2[1]= 0xB2; - sup2[2]= 0; - sup3[0]= 0xC2; - sup3[1]= 0xB3; - sup3[2]= 0; - t << "% Hyperlinks (required, but should be loaded last)\n" "\\ifpdf\n" " \\usepackage[pdftex,pagebackref=true]{hyperref}\n" "\\else\n" " \\usepackage[ps2pdf,pagebackref=true]{hyperref}\n" "\\fi\n" - "\\ifpdf\n" - " \\DeclareUnicodeCharacter{207B}{${}^{-}$}% Superscript minus\n" - " \\DeclareUnicodeCharacter{C2B2}{${}^{2}$}% Superscript two\n" - " \\DeclareUnicodeCharacter{C2B3}{${}^{3}$}% Superscript three\n" - "\\else\n" - " \\catcode`\\" << pminus << "=13% Superscript minus\n" - " \\def" << pminus << "{${}^{-}$}\n" - " \\catcode`\\" << psup2 << "=13% Superscript two\n" - " \\def" << psup2 << "{${}^{2}$}\n" - " \\catcode`\\"<<psup3<<"=13% Superscript three\n" - " \\def"<<psup3<<"{${}^{3}$}\n" - "\\fi\n" "\n" "\\hypersetup{%\n" " colorlinks=true,%\n" @@ -2209,6 +2181,11 @@ void LatexGenerator::startCodeFragment() void LatexGenerator::endCodeFragment() { + if (DoxyCodeOpen) + { + t << "}\n"; + DoxyCodeOpen = FALSE; + } t << "\\end{DoxyCode}\n"; } diff --git a/src/util.cpp b/src/util.cpp index ff0d0c6..14848ba 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -8833,6 +8833,41 @@ void writeExtraLatexPackages(FTextStream &t) } } +void writeLatexSpecialFormulaChars(FTextStream &t) +{ + unsigned char minus[4]; // Superscript minus + char *pminus = (char *)minus; + unsigned char sup2[3]; // Superscript two + char *psup2 = (char *)sup2; + unsigned char sup3[3]; + char *psup3 = (char *)sup3; // Superscript three + minus[0]= 0xE2; + minus[1]= 0x81; + minus[2]= 0xBB; + minus[3]= 0; + sup2[0]= 0xC2; + sup2[1]= 0xB2; + sup2[2]= 0; + sup3[0]= 0xC2; + sup3[1]= 0xB3; + sup3[2]= 0; + + t << "\\ifthenelse{\\isundefined{\\DeclareUnicodeCharacter}}{%\n" + " \\catcode`\\" << pminus << "=13% Superscript minus\n" + " \\def" << pminus << "{${}^{-}$}\n" + " \\catcode`\\" << psup2 << "=13% Superscript two\n" + " \\def" << psup2 << "{${}^{2}$}\n" + " \\catcode`\\"<<psup3<<"=13% Superscript three\n" + " \\def"<<psup3<<"{${}^{3}$}\n" + "}{%\n" + " \\DeclareUnicodeCharacter{207B}{${}^{-}$}% Superscript minus\n" + " \\DeclareUnicodeCharacter{C2B2}{${}^{2}$}% Superscript two\n" + " \\DeclareUnicodeCharacter{C2B3}{${}^{3}$}% Superscript three\n" + " \\DeclareUnicodeCharacter{2212}{-}% Just a minus sign\n" + "}\n" + "\n"; +} + //------------------------------------------------------ static int g_usedTableLevels = 0; @@ -477,6 +477,7 @@ void convertProtectionLevel( bool mainPageHasTitle(); bool openOutputFile(const char *outFile,QFile &f); void writeExtraLatexPackages(FTextStream &t); +void writeLatexSpecialFormulaChars(FTextStream &t); int usedTableLevels(); void incUsedTableLevels(); |