string const & htmlTag, string const & htmlAttrib,
docstring const & htmlStyle, std::string const & docbookTag,
string const & docbookAttr, string const & docbookTagType,
- std::string const & docbookFloatType, std::string const & docbookCaption,
- string const & required, bool usesfloat, bool ispredefined,
+ std::string const & docbookFloatType, std::string const & docbookCaption,
+ string const & required, bool usesfloat, bool ispredefined,
bool allowswide, bool allowssideways)
: floattype_(type), placement_(placement), ext_(ext), within_(within),
style_(style), name_(name), listname_(listName), listcommand_(listCmd),
usesfloatpkg_(usesfloat), ispredefined_(ispredefined),
allowswide_(allowswide), allowssideways_(allowssideways),
html_tag_(htmlTag), html_attrib_(htmlAttrib), html_style_(htmlStyle),
- docbook_tag_(docbookTag), docbook_tag_type_(docbookTagType),
- docbook_caption_(docbookCaption)
+ docbook_caption_(docbookCaption), docbook_tag_(docbookTag),
+ docbook_tag_type_(docbookTagType)
{
// Implement some edge cases for DocBook. Both docbook_float_type_ and docbook_attr_ must be computed
// based on the given value of docbookFloatType; docbook_tag_ can still be guessed without correlation.
// If some type is predetermined in the layout, use it.
if (!docbookFloatType.empty() && allowedFloatTypes.find(docbookFloatType) != allowedFloatTypes.end())
docbook_float_type_ = docbookFloatType;
- // Otherwise, try to guess the type.
- else if (floattype_ == "figure" || floattype_ == "graph" ||
- floattype_ == "chart" || floattype_ == "scheme") {
+ // Otherwise, try to guess the DocBook type based on the float type.
+ else if (floattype_ == "figure" || floattype_ == "graph" || floattype_ == "chart" || floattype_ == "scheme" ||
+ floattype_ == "marginfigure") {
docbook_float_type_ = "figure";
- } else if (floattype_ == "table" || floattype_ == "tableau") {
+ } else if (floattype_ == "table" || floattype_ == "tableau" || floattype_ == "margintable") {
docbook_float_type_ = "table";
} else if (floattype_ == "algorithm") {
docbook_float_type_ = "algorithm";
docbook_float_type_ = "video";
} else {
// If nothing matches, return something that will not be valid.
- LYXERR0("Unrecognised float type: " + floattype_);
+ LYXERR(Debug::OUTFILE, "Float type '" + floattype_ + "' unknown to DocBook!");
docbook_float_type_ = "unknown";
}
}
// Specific floats for achemso.
else if (docbook_float_type_ == "figure" && achemso.find(floattype_) != achemso.end())
docbook_attr_ += " type='" + floattype_ + "'";
+
+ // Finally, merge in the attributes given in argument.
+ if (!docbookAttr.empty())
+ docbook_attr_ += " " + docbookAttr;
}
}
return hasTitle ? "table" : "informaltable";
} else {
// If nothing matches, return something that will not be valid.
- LYXERR0("Unrecognised float type: " + floattype());
+ LYXERR(Debug::OUTFILE, "Float type '" + floattype() + "' unknown to DocBook!");
return "float";
}
}