#include "bufferparams.h"
#include "layout.h"
#include "support/filetools.h"
+#include "support/lstrings.h"
#include "FloatList.h"
#include "language.h"
prettyref = false;
chess = false;
natbib = false;
+ floats = false;
// commands
lyx = false;
binom = true;
} else if (name == "natbib") {
natbib = true;
+ } else if (name == "float") {
+ floats = true;
}
}
// makeidx.sty
if (makeidx) {
- if (! tclass.provides(LyXTextClass::makeidx)
- && params.language->babel() != "french") // french provides
- // \index !
- // French should not be hardcoded. (Lgb)
+ if (! tclass.provides(LyXTextClass::makeidx))
packages << "\\usepackage{makeidx}\n";
packages << "\\makeindex\n";
}
packages << "\\usepackage{prettyref}\n";
// float.sty
- // We only need float.sty if we use non builtin floats. This includes
- // modified table and figure floats. (Lgb)
+ // We only need float.sty if we use non builtin floats, or if we
+ // use the "H" modifier. This includes modified table and
+ // figure floats. (Lgb)
if (!usedFloats.empty()) {
- bool use_float = false;
UsedFloats::const_iterator beg = usedFloats.begin();
UsedFloats::const_iterator end = usedFloats.end();
for (; beg != end; ++beg) {
Floating const & fl = floatList.getType((*beg));
if (!fl.type().empty() && !fl.builtin()) {
- use_float = true;
+ const_cast<LaTeXFeatures *>(this)->floats = true;
break;
}
}
- if (use_float)
- packages << "\\usepackage{float}\n";
}
-
+ if (floats) {
+ packages << "\\usepackage{float}\n";
+ }
+
// natbib.sty
if (natbib) {
- string options("[]");
- if (params.use_numerical_citations)
- options.insert(1, "numbers");
- else
- options.insert(1, "authoryear");
- packages << "\\usepackage" << options << "{natbib}\n";
+ packages << "\\usepackage[";
+ if (params.use_numerical_citations) {
+ packages << "numbers";
+ } else {
+ packages << "authoryear";
+ }
+ packages << "]{natbib}\n";
}
-
packages << externalPreambles;
return packages.str().c_str();
}
+string const LaTeXFeatures::getLyXSGMLEntities() const
+{
+ // Definition of entities used in the document that are LyX related.
+ ostringstream entities;
+
+ if (lyxarrow) {
+ entities << "<!ENTITY lyxarrow \"->\">"
+ << '\n';
+ }
+
+ return entities.str().c_str();
+}
+
+
string const LaTeXFeatures::getIncludedFiles(string const & fname) const
{
ostringstream sgmlpreamble;