⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 latexgen.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
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 + -