*/
#include <config.h>
+#include <set>
#include "Floating.h"
std::string Floating::docbookFloatType() const
{
// TODO: configure this in the layouts?
- if (floattype_ == "figure") {
+ if (floattype_ == "figure" || floattype_ == "graph" ||
+ floattype_ == "chart" || floattype_ == "scheme") {
return "figure";
} else if (floattype_ == "table" || floattype_ == "tableau") {
return "table";
} else if (floattype_ == "algorithm") {
return "algorithm";
+ } else if (floattype_ == "video") {
+ return "video";
} else {
// If nothing matches, return something that will not be valid.
LYXERR0("Unrecognised float type: " + floattype_);
string Floating::docbookAttr() const
{
+ std::set<std::string> achemso = { "chart", "graph", "scheme" };
// For algorithms, a type attribute must be mentioned, if not already present in docbook_attr_.
if (docbookFloatType() == "algorithm" && docbook_attr_.find("type=") != std::string::npos)
return docbook_attr_ + " type='algorithm'";
+ // Specific floats for achemso.
+ else if (docbookFloatType() == "figure" && achemso.find(floattype_) != achemso.end())
+ return docbook_attr_ + " type='" + floattype_ + "'";
else
return docbook_attr_;
}
string Floating::docbookTag(bool hasTitle) const
{
// TODO: configure this in the layouts?
- if (docbookFloatType() == "figure" || docbookFloatType() == "algorithm") {
+ if (docbookFloatType() == "figure" || docbookFloatType() == "algorithm" || docbookFloatType() == "video") {
return hasTitle ? "figure" : "informalfigure";
} else if (docbookFloatType() == "table") {
return hasTitle ? "table" : "informaltable";