📄 latexgen.cpp
字号:
void LatexGenerator::endIndexKey(){}void LatexGenerator::startIndexValue(bool hasBrief){ t << " "; if (hasBrief) t << "(";}void LatexGenerator::endIndexValue(const char *name,bool hasBrief){ if (hasBrief) t << ")"; t << "}{\\pageref{" << name << "}}{}" << endl;}//void LatexGenerator::writeClassLink(const char *,const char *,// const char *,const char *name)//{// t << "{\\bf ";// docify(name);// t << "}"; //}void LatexGenerator::startTextLink(const char *f,const char *anchor){ if (Config_getBool("PDF_HYPERLINKS")) { t << "\\hyperlink{"; if (f) t << f; if (anchor) t << "_" << anchor; t << "}{"; } else { t << "{\\bf "; }}void LatexGenerator::endTextLink(){ t << "}";}void LatexGenerator::writeObjectLink(const char *ref, const char *f, const char *anchor, const char *text){ if (!ref && Config_getBool("PDF_HYPERLINKS")) { t << "\\hyperlink{"; if (f) t << f; if (f && anchor) t << "_"; if (anchor) t << anchor; t << "}{"; docify(text); t << "}"; } else { t << "{\\bf "; docify(text); t << "}"; } }void LatexGenerator::startPageRef(){ t << " {\\rm (";}void LatexGenerator::endPageRef(const char *clname, const char *anchor){ t << "\\,\\pageref{"; if (clname) t << clname; if (anchor) t << "_" << anchor; t << "})}";}void LatexGenerator::writeCodeLink(const char *,const char *, const char *,const char *name){ t << name; col+=strlen(name);}void LatexGenerator::startTitleHead(const char *fileName){ if (Config_getBool("PDF_HYPERLINKS") && fileName) { t << "\\hypertarget{" << fileName << "}{" << endl; } if (Config_getBool("COMPACT_LATEX")) { t << "\\subsection{"; } else { t << "\\section{"; }}void LatexGenerator::endTitleHead(const char *fileName,const char *name){ t << "}" << endl; if (name) { t << "\\label{" << fileName << "}\\index{" << name << "@{"; docify(name); t << "}}" << endl; } if (Config_getBool("PDF_HYPERLINKS") && fileName) { t << "}" << endl; }}void LatexGenerator::startTitle(){ if (Config_getBool("COMPACT_LATEX")) { t << "\\subsection{"; } else { t << "\\section{"; }}void LatexGenerator::startGroupHeader(){ if (Config_getBool("COMPACT_LATEX")) { t << "\\subsubsection{"; } else { t << "\\subsection{"; }}void LatexGenerator::endGroupHeader(){ t << "}" << endl;}void LatexGenerator::startMemberHeader(){ if (Config_getBool("COMPACT_LATEX")) { t << "\\subsubsection*{"; } else { t << "\\subsection*{"; }}void LatexGenerator::endMemberHeader(){ t << "}" << endl;}void LatexGenerator::startMemberDoc(const char *clname, const char *memname, const char *, const char *){ if (memname && memname[0]!='@') { t << "\\index{"; if (clname) { t << clname << "@{"; docify(clname); t << "}!"; } t << escapeLabelName(memname) << "@{"; escapeMakeIndexChars(this,t,memname); t << "}}" << endl; t << "\\index{" << escapeLabelName(memname) << "@{"; escapeMakeIndexChars(this,t,memname); t << "}"; if (clname) { t << "!" << clname << "@{"; docify(clname); t << "}"; } t << "}" << endl; } if (Config_getBool("COMPACT_LATEX")) t << "\\paragraph"; else t << "\\subsubsection"; if (Config_getBool("PDF_HYPERLINKS") && memname) { t << "["; escapeMakeIndexChars(this,t,memname); //filterTitle(title) t << "]"; } t << "{\\setlength{\\rightskip}{0pt plus 5cm}";}void LatexGenerator::endMemberDoc() { t << "}"; if (Config_getBool("COMPACT_LATEX")) t << "\\hfill";}void LatexGenerator::startDoxyAnchor(const char *fName,const char *, const char *anchor, const char *){ if (Config_getBool("PDF_HYPERLINKS")) { t << "\\hypertarget{"; if (fName) t << fName; if (anchor) t << "_" << anchor; t << "}{" << endl; }}void LatexGenerator::endDoxyAnchor(const char *fName,const char *anchor){ if (Config_getBool("PDF_HYPERLINKS")) { t << "}" << endl; } t << "\\label{"; if (fName) t << fName; if (anchor) t << "_" << anchor; t << "}" << endl;}void LatexGenerator::writeAnchor(const char *fName,const char *name){ t << "\\label{" << name << "}" << endl; if (fName && Config_getBool("PDF_HYPERLINKS")) { t << "\\hypertarget{" << fName << "_" << name << "}{}" << endl; }}//void LatexGenerator::writeLatexLabel(const char *clName,const char *anchor)//{// writeDoxyAnchor(0,clName,anchor,0);//}void LatexGenerator::addIndexItem(const char *s1,const char *s2){ if (s1) { t << "\\index{" << escapeLabelName(s1) << "@{"; escapeMakeIndexChars(this,t,s1); t << "}"; if (s2) { t << "!" << s2 << "@{"; docify(s2); t << "}"; } t << "}"; }}void LatexGenerator::startSection(const char *lab,const char *,bool sub){ if (Config_getBool("PDF_HYPERLINKS")) { t << "\\hypertarget{" << lab << "}{}"; } t << "\\"; if (Config_getBool("COMPACT_LATEX")) { if (sub) t << "subsubsection{"; else t << "subsection{"; } else { if (sub) t << "subsection{"; else t << "section{"; }}void LatexGenerator::endSection(const char *lab,bool){ t << "}\\label{" << lab << "}" << endl;}void LatexGenerator::writeSectionRef(const char *ref,const char *, const char *lab,const char *text){ if (ref) // external reference { docify(text); } else // local reference { if (text && Config_getBool("PDF_HYPERLINKS")) { t << "\\hyperlink{"; if (lab) t << lab; t << "}{"; docify(text); t << "}"; //t << " {\\rm (p.\\,\\pageref{" << lab << "})}"; } else { if (strcmp(lab,text)!=0) // lab!=text { // todo: don't hardcode p. here! t << "{\\bf "; docify(text); t << "} {\\rm (p.\\,\\pageref{" << lab << "})}"; } else { t << "\\ref{" << lab << "}"; } } }}void LatexGenerator::writeSectionRefItem(const char *,const char *lab, const char *title){ t << "\\contentsline{section}{"; docify(title); t << "}{\\ref{" << lab << "}}{}" << endl;}// TODO: remove this function//void LatexGenerator::writeSectionRefAnchor(const char *,const char *lab,// const char *title)//{// startBold();// docify(title);// endBold();// t << " (p.\\,\\pageref{" << lab << "})" << endl;//}//void LatexGenerator::docify(const char *str)//{// docifyStatic(t,str);//}/*! * Function converts Latin2 character to latex strin] representin the same * character. */void LatexGenerator::latin2ToLatex(unsigned char c){ switch (c) { case 0xA1: t << c; break; case 0xA2: t << c; break; case 0xA3: t << c; break; case 0xA4: t << c; break; case 0xA5: t << c; break; case 0xA6: t << "\\'{S}"; break; case 0xA7: t << c; break; case 0xA8: t << c; break; case 0xA9: t << "\\v{S}"; break; case 0xAA: t << "\\c{S}"; break; case 0xAB: t << "\\v{T}"; break; case 0xAC: t << "\\'{Z}"; break; case 0xAD: t << c; break; case 0xAE: t << "\\v{Z}"; break; case 0xAF: t << "\\.{Z}"; break; case 0xB0: t << c; break; case 0xB1: t << c; break; case 0xB2: t << c; break; case 0xB3: t << c; break; case 0xB4: t << c; break; case 0xB5: t << c; break; case 0xB6: t << "\\'{s}"; break; case 0xB7: t << c; break; case 0xB8: t << c; break; case 0xB9: t << "\\v{s}"; break; case 0xBA: t << "\\c{s}"; break; case 0xBB: t << "\\v{t}"; break; case 0xBC: t << "\\'{z}"; break; case 0xBD: t << c; break; case 0xBE: t << "\\v{z}"; break; case 0xBF: t << "\\.{z}"; break; case 0xC0: t << "\\'{R}"; break; case 0xC1: t << "\\'{A}"; break; case 0xC2: t << "\\^{A}"; break; case 0xC3: t << "\\u{A}"; break; case 0xC4: t << "\\\"{A}"; break; case 0xC5: t << "\\'{L}"; break; case 0xC6: t << "\\'{C}"; break; case 0xC7: t << "\\c{C}"; break; case 0xC8: t << "\\v{C}"; break; case 0xC9: t << "\\'{E}"; break; case 0xCA: t << "\\c{E}"; break; case 0xCB: t << "\\\"{E}"; break; case 0xCC: t << "\\v{E}"; break; case 0xCD: t << "\\'{I}"; break; case 0xCE: t << "\\^{I}"; break; case 0xCF: t << "\\v{D}"; break; case 0xD0: t << "\\bar{D}"; break; case 0xD1: t << "\\'{N}"; break; case 0xD2: t << "\\v{N}"; break; case 0xD3: t << "\\'{O}"; break; case 0xD4: t << "\\^{O}"; break; case 0xD5: t << "\\H{O}"; break; case 0xD6: t << "\\\"{O}"; break; case 0xD7: t << c; break; case 0xD8: t << "\\v{R}"; break; case 0xD9: t << c; break; case 0xDA: t << "\\'{U}"; break; case 0xDB: t << "\\H{U}"; break; case 0xDC: t << "\\\"{U}"; break; case 0xDD: t << "\\'{Y}"; break; case 0xDE: t << "\\c{T}"; break; case 0xDF: t << "\\ss"; break; case 0xE0: t << "\\'{r}"; break; case 0xE1: t << "\\'{a}"; break; case 0xE2: t << "\\^{a}"; break; case 0xE3: t << c; break; case 0xE4: t << "\\\"{a}"; break; case 0xE5: t << "\\'{l}"; break; case 0xE6: t << "\\'{c}"; break; case 0xE7: t << "\\c{c}"; break; case 0xE8: t << "\\v{c}"; break; case 0xE9: t << "\\'{e}"; break; case 0xEA: t << c; break; case 0xEB: t << "\\\"{e}"; break; case 0xEC: t << "\\v{e}"; break; case 0xED: t << "\\'{\\i}"; break; case 0xEE: t << "\\^{\\i}"; break; case 0xEF: t << "\\v{d}"; break; case 0xF0: t << "\\bar{d}"; break; case 0xF1: t << "\\'{n}"; break; case 0xF2: t << "\\v{n}"; break; case 0xF3: t << "\\'{o}"; break; case 0xF4: t << "\\^{o}"; break; case 0xF5: t << "\\H{o}"; break; case 0xF6: t << "\\\"{o}"; break; case 0xF7: t << c; break; case 0xF8: t << "\\v{r}"; break; case 0xF9: t << c; break; case 0xFA: t << "\\'{u}"; break; case 0xFB: t << "\\H{u}"; break; case 0xFC: t << "\\\"{u}"; break; case 0xFD: t << "\\'{y}"; break; case 0xFE: t << c; break; case 0xFF: t << c; break; default: t << c; }}//void LatexGenerator::docifyStatic(QTextStream &t,const char *str)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -