string const & listName, std::string const & listCmd,
string const & refPrefix, std::string const & allowedplacement,
string const & htmlTag, string const & htmlAttrib,
- docstring const & htmlStyle, string const & docbookTag,
+ docstring const & htmlStyle,
string const & docbookAttr, string const & docbookTagType,
string const & required, bool usesfloat, bool ispredefined,
bool allowswide, bool allowssideways)
usesfloatpkg_(usesfloat), ispredefined_(ispredefined),
allowswide_(allowswide), allowssideways_(allowssideways),
html_tag_(htmlTag), html_attrib_(htmlAttrib), html_style_(htmlStyle),
- docbook_tag_(docbookTag), docbook_attr_(docbookAttr),
- docbook_tag_type_(docbookTagType)
+ docbook_attr_(docbookAttr), docbook_tag_type_(docbookTagType)
{}
+std::string Floating::docbookFloatType() const
+{
+ // TODO: configure this in the layouts?
+ if (floattype_ == "figure") {
+ return "figure";
+ } else if (floattype_ == "table" || floattype_ == "tableau") {
+ return "table";
+ } else if (floattype_ == "algorithm") {
+ // TODO: no good translation for now! Figures are the closest match, as they can contain text.
+ // Solvable as soon as https://github.com/docbook/docbook/issues/157 has a definitive answer.
+ return "algorithm";
+ } else {
+ // If nothing matches, return something that will not be valid.
+ LYXERR0("Unrecognised float type: " + floattype_);
+ return "unknown";
+ }
+}
+
+
string const & Floating::htmlAttrib() const
{
if (html_attrib_.empty())
}
-string const & Floating::docbookTag(bool hasTitle) const
+string Floating::docbookTag(bool hasTitle) const
{
- if (docbook_tag_.empty()) {
- docbook_tag_ = "";
- if (floattype_ == "figure") {
- docbook_tag_ = hasTitle ? "figure" : "informalfigure";
- } else if (floattype_ == "table") {
- docbook_tag_ = hasTitle ? "table" : "informaltable";
- } else if (floattype_ == "algorithm") {
- // TODO: no good translation for now! Figures are the closest match, as they can contain text.
- // Solvable as soon as https://github.com/docbook/docbook/issues/157 has a definitive answer.
- docbook_tag_ = "figure";
- }
+ // TODO: configure this in the layouts?
+ if (docbookFloatType() == "figure") {
+ return hasTitle ? "figure" : "informalfigure";
+ } else if (docbookFloatType() == "table") {
+ return hasTitle ? "table" : "informaltable";
+ } else if (docbookFloatType() == "algorithm") {
+ // TODO: no good translation for now! Figures are the closest match, as they can contain text.
+ // Solvable as soon as https://github.com/docbook/docbook/issues/157 has a definitive answer.
+ return "figure";
+ } else {
+ // If nothing matches, return something that will not be valid.
+ LYXERR0("Unrecognised float type: " + floattype());
+ return "float";
}
- return docbook_tag_;
}
docbook_caption_ = "";
if (floattype_ == "figure") {
docbook_caption_ = "title";
- } else if (floattype_ == "table") {
+ } else if (floattype_ == "table" || floattype_ == "tableau") {
docbook_caption_ = "caption";
} else if (floattype_ == "algorithm") {
// TODO: no good translation for now! Figures are the closest match, as they can contain text.