+ ///
+ // helper function for DocBook
+ ///
+ /// Determines whether the tabular item should be generated as DocBook or XHTML.
+ enum class XmlOutputFormat : bool {
+ XHTML = true,
+ DOCBOOK = false
+ };
+
+ /// Transforms the vertical alignment of the given cell as prebaked CSS (for HTML tables in HTML output).
+ std::string getHAlignAsXmlAttribute(idx_type cell) const;
+ /// Transforms the vertical alignment of the given cell as a prebaked XML attribute (for CALS or HTML tables in DocBook).
+ std::string getHAlignAsCssAttribute(idx_type cell) const;
+ /// Transforms the vertical alignment of the given cell as prebaked CSS (for HTML tables in HTML output).
+ std::string getVAlignAsCssAttribute(idx_type cell) const;
+ /// Transforms the vertical alignment of the given cell as a prebaked XML attribute (for CALS or HTML tables in DocBook).
+ std::string getVAlignAsXmlAttribute(idx_type cell) const;
+
+ /// Helpers for XML tables (XHTML or DocBook).
+ docstring xmlRow(XMLStream & xs, row_type row, OutputParams const &,
+ bool header, XmlOutputFormat output_format,
+ BufferParams::TableOutput docbook_table_output = BufferParams::TableOutput::HTMLTable) const;
+ void xmlHeader(XMLStream & xs, OutputParams const &, XmlOutputFormat output_format) const;
+ void xmlFooter(XMLStream & xs, OutputParams const &, XmlOutputFormat output_format) const;
+ void xmlBody(XMLStream & xs, OutputParams const &, XmlOutputFormat output_format) const;
+ XmlRowWiseBorders computeXmlBorders(row_type row) const;
+ std::vector<std::string> computeCssStylePerCell(row_type row, col_type col, idx_type cell) const;
+
+ ///
+ // helper functions for plain text
+ ///
+ bool plaintextTopHLine(odocstringstream &, row_type row,
+ std::vector<unsigned int> const &) const;
+ ///
+ bool plaintextBottomHLine(odocstringstream &, row_type row,
+ std::vector<unsigned int> const &) const;
+ ///
+ void plaintextPrintCell(odocstringstream &,
+ OutputParams const &,
+ idx_type cell, row_type row, col_type column,
+ std::vector<unsigned int> const &,
+ bool onlydata, size_t max_length) const;
+
+ ///
+ // helper function for LaTeX
+ ///
+ void TeXTopHLine(otexstream &, row_type row, std::list<col_type>,
+ std::list<col_type>) const;
+ ///
+ void TeXBottomHLine(otexstream &, row_type row, std::list<col_type>,
+ std::list<col_type>) const;
+ ///
+ void TeXCellPreamble(otexstream &, idx_type cell, bool & ismulticol, bool & ismultirow,
+ bool const bidi) const;
+ ///
+ void TeXCellPostamble(otexstream &, idx_type cell, bool ismulticol, bool ismultirow) const;
+ ///
+ void TeXLongtableHeaderFooter(otexstream &, OutputParams const &, std::list<col_type>,
+ std::list<col_type>) const;
+