45static const std::array<const char *,g_maxLevels>
g_secLabels =
49 "doxysubsubsubsection",
50 "doxysubsubsubsubsection",
51 "doxysubsubsubsubsubsection",
52 "doxysubsubsubsubsubsubsection"
62 if (compactLatex) l++;
93 static const reg::Ex re(R
"((\d+)%)");
94 std::string s = dimension.str();
102 t << percent/100.0 <<
"\\text" << orientationString;
113 t <<
"\n\\begin{DoxyInlineImage}\n";
119 t <<
"\n\\begin{DoxyImage}\n";
123 t <<
"\n\\begin{DoxyImageNoCaption}\n"
128 t <<
"\\includegraphics";
152 t <<
"[height=\\baselineskip,keepaspectratio=true]";
156 t <<
"[width=\\textwidth,height=\\textheight/2,keepaspectratio=true]";
164 t <<
"{" << name <<
"}";
172 t <<
"\n\\doxyfigcaption{";
176 t <<
"\n\\doxyfigcaptionnolink{";
192 t <<
"\n\\end{DoxyInlineImage}\n";
199 t <<
"\\end{DoxyImage}\n";
203 t <<
"\\end{DoxyImageNoCaption}\n";
211 int i = shortName.
findRev(
'/');
214 shortName=shortName.
mid(i+1);
222 int i=baseName.
find(
'.');
225 baseName=baseName.
left(i);
233 for (
const auto &n : children)
243 char str[2]; str[1]=0;
251 case '!':
m_t <<
"\"!";
break;
252 case '"':
m_t <<
"\"\"";
break;
253 case '@':
m_t <<
"\"@";
break;
254 case '|':
m_t <<
"\\texttt{\"|}";
break;
255 case '[':
m_t <<
"[";
break;
256 case ']':
m_t <<
"]";
break;
257 case '{':
m_t <<
"\\lcurly{}";
break;
258 case '}':
m_t <<
"\\rcurly{}";
break;
259 default: str[0]=c;
filter(str);
break;
268 const QCString &langExt,
int hierarchyLevel)
317 m_t <<
"\\texorpdfstring{$<$}{<}";
328 m_t <<
"\\texorpdfstring{$>$}{>}";
372 m_t <<
"{\\texttt{ ";
380 m_t <<
"~\\newline\n";
387 m_t <<
"\\DoxyHorRuler{1}\n";
389 m_t <<
"\\DoxyHorRuler{0}\n";
398 if (s.
enable())
m_t <<
"{\\bfseries{";
else m_t <<
"}}";
418 if (s.
enable())
m_t <<
"\\textsubscript{";
else m_t <<
"}";
421 if (s.
enable())
m_t <<
"\\textsuperscript{";
else m_t <<
"}";
424 if (s.
enable())
m_t <<
"\\begin{center}";
else m_t <<
"\\end{center} ";
427 if (s.
enable())
m_t <<
"\n\\footnotesize ";
else m_t <<
"\n\\normalsize ";
435 m_t <<
"\n\\begin{DoxyPre}";
441 m_t <<
"\\end{DoxyPre}\n";
462 m_ci.startCodeFragment(
"DoxyCode");
466 m_ci.endCodeFragment(
"DoxyCode");
473 m_t <<
"{\\ttfamily ";
478 m_t <<
"\\begin{DoxyVerb}";
480 m_t <<
"\\end{DoxyVerb}\n";
494 static int dotindex = 1;
505 err(
"Could not open file {} for writing\n",fileName);
522 static int mscindex = 1;
529 QCString fileName = baseName+
".msc";
533 err(
"Could not open file {} for writing\n",fileName);
582 m_ci.startCodeFragment(
"DoxyCodeInclude");
598 m_ci.endCodeFragment(
"DoxyCodeInclude");
603 m_ci.startCodeFragment(
"DoxyCodeInclude");
616 m_ci.endCodeFragment(
"DoxyCodeInclude");
631 m_t <<
"\n\\begin{DoxyVerbInclude}\n";
633 m_t <<
"\\end{DoxyVerbInclude}\n";
638 m_ci.startCodeFragment(
"DoxyCodeInclude");
647 m_ci.endCodeFragment(
"DoxyCodeInclude");
659 if (!
m_hide)
m_ci.startCodeFragment(
"DoxyCodeInclude");
671 std::unique_ptr<FileDef> fd;
695 if (!
m_hide)
m_ci.endCodeFragment(
"DoxyCodeInclude");
707 const char *p = s.
data();
715 case '\'':
m_t <<
"\\textnormal{\\textquotesingle}";
break;
716 default:
m_t << c;
break;
744 anchor = anchor.
mid(anchorPrefix.
length());
745 m_t <<
"\\cite{" << anchor <<
"}";
749 m_t <<
"{\\bfseries [";
765 m_t <<
"\n\\begin{DoxyEnumerate}";
771 m_t <<
"\n\\begin{DoxyItemize}";
776 m_t <<
"\n\\end{DoxyEnumerate}";
780 m_t <<
"\n\\end{DoxyItemize}";
790 m_t <<
"\n\\item[\\DoxyUnchecked] ";
794 m_t <<
"\n\\item[\\DoxyChecked] ";
811 std::get_if<DocParamSect>(p.
parent())
827 m_t <<
"\\begin{DoxySeeAlso}{";
831 m_t <<
"\\begin{DoxyReturn}{";
835 m_t <<
"\\begin{DoxyAuthor}{";
839 m_t <<
"\\begin{DoxyAuthor}{";
843 m_t <<
"\\begin{DoxyVersion}{";
847 m_t <<
"\\begin{DoxySince}{";
851 m_t <<
"\\begin{DoxyDate}{";
855 m_t <<
"\\begin{DoxyNote}{";
859 m_t <<
"\\begin{DoxyWarning}{";
863 m_t <<
"\\begin{DoxyPrecond}{";
867 m_t <<
"\\begin{DoxyPostcond}{";
871 m_t <<
"\\begin{DoxyCopyright}{";
875 m_t <<
"\\begin{DoxyInvariant}{";
879 m_t <<
"\\begin{DoxyRemark}{";
883 m_t <<
"\\begin{DoxyAttention}{";
887 m_t <<
"\\begin{DoxyImportant}{";
891 m_t <<
"\\begin{DoxyParagraph}{";
894 m_t <<
"\\begin{DoxyParagraph}{";
902 std::visit(*
this,*s.
title());
911 m_t <<
"\n\\end{DoxySeeAlso}\n";
914 m_t <<
"\n\\end{DoxyReturn}\n";
917 m_t <<
"\n\\end{DoxyAuthor}\n";
920 m_t <<
"\n\\end{DoxyAuthor}\n";
923 m_t <<
"\n\\end{DoxyVersion}\n";
926 m_t <<
"\n\\end{DoxySince}\n";
929 m_t <<
"\n\\end{DoxyDate}\n";
932 m_t <<
"\n\\end{DoxyNote}\n";
935 m_t <<
"\n\\end{DoxyWarning}\n";
938 m_t <<
"\n\\end{DoxyPrecond}\n";
941 m_t <<
"\n\\end{DoxyPostcond}\n";
944 m_t <<
"\n\\end{DoxyCopyright}\n";
947 m_t <<
"\n\\end{DoxyInvariant}\n";
950 m_t <<
"\n\\end{DoxyRemark}\n";
953 m_t <<
"\n\\end{DoxyAttention}\n";
956 m_t <<
"\n\\end{DoxyImportant}\n";
959 m_t <<
"\n\\end{DoxyParagraph}\n";
962 m_t <<
"\n\\end{DoxyParagraph}\n";
979 m_t <<
"\\begin{DoxyItemize}\n";
982 m_t <<
"\\end{DoxyItemize}\n";
1008 m_t <<
"\\texorpdfstring{";
1013 std::visit(*
this,*s.
title());
1022 std::visit(*
this,*s.
title());
1039 m_t <<
"\n\\begin{DoxyEnumerate}";
1040 for (
const auto &opt : s.
attribs())
1042 if (opt.name==
"type")
1046 m_t << (first ?
"[":
",");
1047 m_t <<
"label=\\arabic*";
1050 else if (opt.value==
"a")
1052 m_t << (first ?
"[":
",");
1053 m_t <<
"label=\\enumalphalphcnt*";
1056 else if (opt.value==
"A")
1058 m_t << (first ?
"[":
",");
1059 m_t <<
"label=\\enumAlphAlphcnt*";
1062 else if (opt.value==
"i")
1064 m_t << (first ?
"[":
",");
1065 m_t <<
"label=\\roman*";
1068 else if (opt.value==
"I")
1070 m_t << (first ?
"[":
",");
1071 m_t <<
"label=\\Roman*";
1075 else if (opt.name==
"start")
1077 m_t << (first ?
"[":
",");
1079 int val = opt.value.toInt(&ok);
1080 if (ok)
m_t <<
"start=" << val;
1084 if (!first)
m_t <<
"]\n";
1088 m_t <<
"\n\\begin{DoxyItemize}";
1093 m_t <<
"\n\\end{DoxyEnumerate}";
1095 m_t <<
"\n\\end{DoxyItemize}";
1103 for (
const auto &opt : l.
attribs())
1105 if (opt.name==
"value")
1108 int val = opt.value.toInt(&ok);
1126 auto it = std::find_if(attrs.begin(),attrs.end(),
1127 [](
const auto &att) { return att.name==
"class"; });
1128 if (it!=attrs.end() && it->value ==
"reflist")
return true;
1134 bool isNested=
false;
1136 while (n && !isNested)
1138 if (std::get_if<DocHtmlDescList>(n))
1153 m_t <<
"\n\\begin{DoxyRefList}";
1158 m_t <<
"\n\\begin{DoxyDescription}";
1163 m_t <<
"\n\\end{DoxyRefList}";
1167 m_t <<
"\n\\end{DoxyDescription}";
1192 bool isNested=
FALSE;
1193 while (n && !isNested)
1205 t <<
"{\\begin{tabularx}{\\linewidth}{|*{" << cols <<
"}{>{\\raggedright\\arraybackslash}X|}}";
1209 t <<
"\\tabulinesep=1mm\n\\begin{longtabu}spread 0pt [c]{*{" << cols <<
"}{|X[-1]}|}\n";
1218 t <<
"\\end{tabularx}}\n";
1222 t <<
"\\end{longtabu}\n";
1247 m_t <<
"\\caption{";
1248 std::visit(*
this, *t.
caption());
1291 for (
const auto &span :
rowSpans())
1295 if (span.rowSpan>0 && span.column==c &&
1296 row.
rowIndex()>span.cell.rowIndex()
1302 m_t <<
"\\multicolumn{" << span.colSpan <<
"}{";
1307 m_t <<
"\\multicolumn{1}{c|}{}";
1319 if (span.rowSpan>0) span.rowSpan--;
1320 if (span.rowSpan<=0)
1324 else if (span.column>col)
1326 m_t <<
"\\cline{" << col <<
"-" << (span.column-1) <<
"}";
1327 col = span.column+span.colSpan;
1331 col = span.column+span.colSpan;
1337 m_t <<
"\\cline{" << col <<
"-" <<
numCols() <<
"}";
1347 m_t <<
"\\endfirsthead\n";
1349 m_t <<
"\\endfoot\n";
1354 m_t <<
"\\endhead\n";
1368 for (
const auto &span :
rowSpans())
1372 if (row && span.colSpan>1)
1374 m_t <<
"\\multicolumn{" << span.colSpan <<
"}{";
1379 m_t <<
"l|}{" << (c.
isHeading()?
"\\columncolor{\\tableheadbgcolor}" :
"") <<
"}";
1395 m_t <<
"\\multicolumn{" << cs <<
"}{";
1418 m_t <<
"\\multirow";
1436 m_t <<
"{" << rs <<
"}{*}{";
1440 m_t <<
"\\PBS\\centering ";
1444 m_t <<
"\\PBS\\raggedleft ";
1448 m_t <<
"\\cellcolor{\\tableheadbgcolor}\\textbf{ ";
1489 m_t <<
"{\\texttt{ ";
1497 m_t <<
"{\\bfseries{";
1509 std::visit(*
this,*summary);
1510 m_t <<
"\\begin{adjustwidth}{1em}{0em}\n";
1515 m_t <<
"\\end{adjustwidth}\n";
1626 m_t <<
"\\item \\contentsline{section}{";
1657 m_t <<
"\\footnotesize\n";
1658 m_t <<
"\\begin{multicols}{2}\n";
1659 m_t <<
"\\begin{DoxyCompactList}\n";
1663 m_t <<
"\\end{DoxyCompactList}\n";
1664 m_t <<
"\\end{multicols}\n";
1665 m_t <<
"\\normalsize\n";
1673 m_lcg.incUsedTableLevel();
1677 m_t <<
"\n\\begin{DoxyParams}";
1678 if (hasInOutSpecs && hasTypeSpecs)
m_t <<
"[2]";
1679 else if (hasInOutSpecs || hasTypeSpecs)
m_t <<
"[1]";
1684 m_t <<
"\n\\begin{DoxyRetVals}{";
1688 m_t <<
"\n\\begin{DoxyExceptions}{";
1692 m_t <<
"\n\\begin{DoxyTemplParams}{";
1701 m_lcg.decUsedTableLevel();
1705 m_t <<
"\\end{DoxyParams}\n";
1708 m_t <<
"\\end{DoxyRetVals}\n";
1711 m_t <<
"\\end{DoxyExceptions}\n";
1714 m_t <<
"\\end{DoxyTemplParams}\n";
1734 parentType = sect->
type();
1748 m_t <<
"\\mbox{\\texttt{ ";
1763 if (useTable)
m_t <<
" & ";
1769 std::visit(*
this,type);
1771 if (useTable)
m_t <<
" & ";
1777 if (!first)
m_t <<
",";
else first=
FALSE;
1779 std::visit(*
this,param);
1793 std::visit(*
this,par);
1808 m_t <<
"\\begin{DoxyRefDesc}{";
1811 bool anonymousEnum = x.
file()==
"@";
1813 if (pdfHyperlinks && !anonymousEnum)
1819 m_t <<
"\\textbf{ ";
1824 if (pdfHyperlinks && !anonymousEnum)
1832 m_t <<
"\\end{DoxyRefDesc}\n";
1852 m_t <<
"\\begin{quote}\n";
1855 m_t <<
"\\end{quote}\n";
1873 m_lcg.insideTabbing(),
1876 m_lcg.usedTableLevel()>0,
1883 bool refToTable,
bool refToSection)
1886 if (ref.
isEmpty() && pdfHyperLinks)
1890 m_t <<
"\\doxytablelink{";
1892 else if (refToSection)
1911 else if (ref.
isEmpty() && refToSection)
1913 m_t <<
"\\doxysectref{";
1915 else if (ref.
isEmpty() && refToTable)
1917 m_t <<
"\\doxytableref{";
1921 m_t <<
"\\doxyref{";
1925 m_t <<
"\\textbf{ ";
1933 if (ref.
isEmpty() && !pdfHyperLinks)
1937 m_t <<
"}{" << file;
1938 if (!file.isEmpty() && !anchor.
isEmpty())
m_t <<
"_";
1939 m_t << anchor <<
"}";
1942 m_t <<
"{" << sectionType.
level() <<
"}";
1945 if (ref.
isEmpty() && pdfHyperLinks)
2048 if (shortName.
find(
'.')==-1) shortName +=
".png";
2070 bool useBitmap = inBuf.find(
"@startditaa") != std::string::npos;
2079 if (shortName.
find(
'.')==-1) shortName +=
".png";
2102 err(
"Maximum indent level ({}) exceeded while generating LaTeX output!\n",
maxIndentLevels-1);
QCString anchorPrefix() const
static CitationManager & instance()
void parseCodeFragment(OutputCodeList &codeOutList, const QCString &fileName, const QCString &blockId, const QCString &scopeName, bool showLineNumbers, bool trimLeft, bool stripCodeComments)
static CodeFragmentManager & instance()
virtual void parseCode(OutputCodeList &codeOutList, const QCString &scopeName, const QCString &input, SrcLangExt lang, bool stripCodeComments, bool isExampleBlock, const QCString &exampleName=QCString(), const FileDef *fileDef=nullptr, int startLine=-1, int endLine=-1, bool inlineFragment=FALSE, const MemberDef *memberDef=nullptr, bool showLineNumbers=TRUE, const Definition *searchCtx=nullptr, bool collectXRefs=TRUE)=0
Parses a source file or fragment with the goal to produce highlighted and cross-referenced output.
Class representing a directory in the file system.
bool remove(const std::string &path, bool acceptsAbsPath=true) const
Node representing an anchor.
Node representing an auto List.
Node representing an item of a auto list.
Node representing a citation of some bibliographic reference.
Node representing a dia file.
Node representing a dot file.
Node representing an emoji.
Node representing a Hypertext reference.
Node representing a horizontal ruler.
Node representing an HTML blockquote.
Node representing a HTML table caption.
Node representing a HTML table cell.
Valignment valignment() const
uint32_t columnIndex() const
Alignment alignment() const
Node representing a HTML description data.
Node representing a Html description list.
const HtmlAttribList & attribs() const
Node representing a Html description item.
const DocNodeVariant * summary() const
Node representing a Html list.
const HtmlAttribList & attribs() const
Node representing a HTML list item.
const HtmlAttribList & attribs() const
Node representing a HTML table row.
uint32_t rowIndex() const
Node representing a HTML table.
size_t numColumns() const
const DocNodeVariant * caption() const
const DocNodeVariant * firstRow() const
Node representing an image.
bool isInlineImage() const
Node representing a include/dontinclude operator block.
bool stripCodeComments() const
QCString includeFileName() const
QCString exampleFile() const
Node representing an included text block from file.
QCString extension() const
bool stripCodeComments() const
QCString exampleFile() const
Node representing an entry in the index.
Node representing an internal section of documentation.
Node representing an internal reference to some item.
Node representing a line break.
Node representing a link to some item.
Node representing a word that can be linked to something.
Node representing a msc file.
DocNodeVariant * parent()
Node representing an block of paragraphs.
Node representing a paragraph in the documentation tree.
Node representing a parameter list.
const DocNodeList & parameters() const
const DocNodeList & paramTypes() const
DocParamSect::Direction direction() const
const DocNodeList & paragraphs() const
Node representing a parameter section.
bool hasInOutSpecifier() const
bool hasTypeSpecifier() const
Node representing a uml file.
Node representing a reference to some item.
SectionType sectionType() const
QCString targetTitle() const
bool refToSection() const
Root node of documentation tree.
Node representing a reference to a section.
Node representing a list of section references.
Node representing a normal section.
const DocNodeVariant * title() const
Node representing a separator.
Node representing a simple list.
Node representing a simple list item.
const DocNodeVariant * paragraph() const
Node representing a simple section.
const DocNodeVariant * title() const
Node representing a separator between two simple sections of the same type.
Node representing a style change.
Node representing a special symbol.
HtmlEntityMapper::SymType symbol() const
Root node of a text fragment.
Node representing a simple section title.
Node representing a URL (or email address)
Node representing a verbatim, unparsed text fragment.
QCString language() const
const DocNodeList & children() const
QCString exampleFile() const
Node representing a VHDL flow chart.
CodeParserInterface & getCodeParser(const QCString &langExt)
void pushHidden(bool hide)
Node representing some amount of white space.
Node representing a word.
Node representing an item of a cross-referenced list.
const char * name(int index) const
Access routine to the name of the Emoji entity.
static EmojiEntityMapper & instance()
Returns the one and only instance of the Emoji entity mapper.
Minimal replacement for QFileInfo.
std::string fileName() const
std::string dirPath(bool absPath=true) const
Class representing a list of HTML attributes.
const char * latex(SymType symb) const
Access routine to the LaTeX code of the HTML entity.
static HtmlEntityMapper & instance()
Returns the one and only instance of the HTML entity mapper.
Generator for LaTeX code fragments.
QCString escapeMakeIndexChars(const char *s)
void writeDiaFile(const QCString &fileName, const DocVerbatim &s)
void setCurrentColumn(size_t col)
static const int maxIndentLevels
void endLink(const QCString &ref, const QCString &file, const QCString &anchor, bool refToTable=false, bool refToSection=false, SectionType sectionType=SectionType::Anchor)
void endDotFile(bool hasCaption)
void operator()(const DocWord &)
void setInColSpan(bool b)
void visitCaption(const DocNodeList &children)
void addRowSpan(ActiveRowSpan &&span)
void setNumCols(size_t num)
void startLink(const QCString &ref, const QCString &file, const QCString &anchor, bool refToTable=false, bool refToSection=false)
LatexDocVisitor(TextStream &t, OutputCodeList &ci, LatexCodeGenerator &lcg, const QCString &langExt, int hierarchyLevel=0)
size_t currentColumn() const
void writePlantUMLFile(const QCString &fileName, const DocVerbatim &s)
void filter(const QCString &str, const bool retainNewLine=false)
void endMscFile(bool hasCaption)
void startDotFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const QCString &srcFile, int srcLine)
void startPlantUmlFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const QCString &srcFile, int srcLine)
LatexListItemInfo m_listItemInfo[maxIndentLevels]
void endDiaFile(bool hasCaption)
const char * getSectionName(int level) const
void writeMscFile(const QCString &fileName, const DocVerbatim &s)
void endPlantUmlFile(bool hasCaption)
void startMscFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const QCString &srcFile, int srcLine)
void setInRowSpan(bool b)
void visitChildren(const T &t)
LatexCodeGenerator & m_lcg
void startDiaFile(const QCString &fileName, const QCString &width, const QCString &height, bool hasCaption, const QCString &srcFile, int srcLine)
Class representing a list of different code generators.
QCString writePlantUMLSource(const QCString &outDirArg, const QCString &fileName, const QCString &content, OutputFormat format, const QCString &engine, const QCString &srcFile, int srcLine, bool inlineCode)
Write a PlantUML compatible file.
static PlantumlManager & instance()
void generatePlantUMLOutput(const QCString &baseName, const QCString &outDir, OutputFormat format)
Convert a PlantUML file to an image.
This is an alternative implementation of QCString.
int find(char c, int index=0, bool cs=TRUE) const
QCString & prepend(const char *s)
int toInt(bool *ok=nullptr, int base=10) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
bool endsWith(const char *s) const
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
QCString & sprintf(const char *format,...)
int findRev(char c, int index=-1, bool cs=TRUE) const
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
QCString left(size_t len) const
constexpr int level() const
Text streaming class that buffers data.
Class representing a regular expression.
Object representing the matching results.
#define Config_getBool(name)
#define Config_getString(name)
void writeDiaGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, DiaOutputFormat format, const QCString &srcFile, int srcLine)
static QCString makeBaseName(const QCString &name)
static QCString makeShortName(const QCString &baseName)
std::variant< DocWord, DocLinkedWord, DocURL, DocLineBreak, DocHorRuler, DocAnchor, DocCite, DocStyleChange, DocSymbol, DocEmoji, DocWhiteSpace, DocSeparator, DocVerbatim, DocInclude, DocIncOperator, DocFormula, DocIndexEntry, DocAutoList, DocAutoListItem, DocTitle, DocXRefItem, DocImage, DocDotFile, DocMscFile, DocDiaFile, DocVhdlFlow, DocLink, DocRef, DocInternalRef, DocHRef, DocHtmlHeader, DocHtmlDescTitle, DocHtmlDescList, DocSection, DocSecRefItem, DocSecRefList, DocInternal, DocParBlock, DocSimpleList, DocHtmlList, DocSimpleSect, DocSimpleSectSep, DocParamSect, DocPara, DocParamList, DocSimpleListItem, DocHtmlListItem, DocHtmlDescData, DocHtmlCell, DocHtmlCaption, DocHtmlRow, DocHtmlTable, DocHtmlBlockQuote, DocText, DocRoot, DocHtmlDetails, DocHtmlSummary, DocPlantUmlFile > DocNodeVariant
constexpr bool holds_one_of_alternatives(const DocNodeVariant &v)
returns true iff v holds one of types passed as template parameters
constexpr DocNodeVariant * parent(DocNodeVariant *n)
returns the parent node of a given node n or nullptr if the node has no parent.
void writeDotGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, GraphOutputFormat format, const QCString &srcFile, int srcLine)
std::unique_ptr< FileDef > createFileDef(const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
Translator * theTranslator
static void writeStartTableCommand(TextStream &t, const DocNodeVariant *n, size_t cols)
static const char * g_subparagraphLabel
static const int g_maxLevels
static bool tableIsNested(const DocNodeVariant *n)
static QCString makeBaseName(const QCString &name)
static const std::array< const char *, g_maxLevels > g_secLabels
static bool listIsNested(const DocHtmlDescList &dl)
static void insertDimension(TextStream &t, QCString dimension, const char *orientationString)
static void visitPreStart(TextStream &t, bool hasCaption, QCString name, QCString width, QCString height, bool inlineImage=FALSE)
static const char * g_paragraphLabel
static bool classEqualsReflist(const DocHtmlDescList &dl)
static QCString makeShortName(const QCString &name)
static void writeEndTableCommand(TextStream &t, const DocNodeVariant *n)
static void visitPostEnd(TextStream &t, bool hasCaption, bool inlineImage=FALSE)
@ TEX
called through texorpdf as TeX (first) part
@ PDF
called through texorpdf as PDF (second) part
@ NO
not called through texorpdf
QCString latexFilterURL(const QCString &s)
void filterLatexString(TextStream &t, const QCString &str, bool insideTabbing, bool insidePre, bool insideItem, bool insideTable, bool keepSpaces, const bool retainNewline)
QCString latexEscapeIndexChars(const QCString &s)
QCString latexEscapeLabelName(const QCString &s)
void writeMscGraphFromFile(const QCString &inFile, const QCString &outDir, const QCString &outFile, MscOutputFormat format, const QCString &srcFile, int srcLine)
std::ofstream openOutputStream(const QCString &name, bool append=false)
bool search(std::string_view str, Match &match, const Ex &re, size_t pos)
Search in a given string str starting at position pos for a match against regular expression re.
Portable versions of functions that are platform dependent.
const char * qPrint(const char *s)
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
QCString integerToRoman(int n, bool upper)
QCString stripPath(const QCString &s)
bool readInputFile(const QCString &fileName, std::string &contents, bool filter, bool isSourceCode)
read a file name fileName and optionally filter and transcode it
SrcLangExt getLanguageFromCodeLang(QCString &fileName)
Routine to handle the language attribute of the \code command.
bool copyFile(const QCString &src, const QCString &dest)
Copies the contents of file with name src to the newly created file with name dest.
QCString getFileNameExtension(const QCString &fn)
A bunch of utility functions.