"mathdesign",
"mathrsfs",
"mathabx",
+ "mathtools",
"ascii",
"url",
"covington",
packages << amsPackages;
// fixltx2e must be loaded after amsthm, since amsthm produces an error with
- // the redefined \[ command (bug 7233). Load is as early as possible, since
+ // the redefined \[ command (bug 7233). Load it as early as possible, since
// other packages might profit from it.
if (mustProvide("fixltx2e"))
packages << "\\usepackage{fixltx2e}\n";
// integral symbols from wasysym and amsmath.
// See http://www.lyx.org/trac/ticket/1942
if (mustProvide("wasysym") &&
- (params_.use_esint != BufferParams::package_off || !isRequired("esint")))
+ params_.use_package("wasysym") != BufferParams::package_off &&
+ (params_.use_package("esint") != BufferParams::package_off || !isRequired("esint")))
packages << "\\usepackage{wasysym}\n";
// accents must be loaded after amsmath
- if (mustProvide("accents"))
+ if (mustProvide("accents") &&
+ params_.use_package("accents") != BufferParams::package_off)
packages << "\\usepackage{accents}\n";
// mathdots must be loaded after amsmath
if (mustProvide("mathdots") &&
- params_.use_mathdots != BufferParams::package_off)
+ params_.use_package("mathdots") != BufferParams::package_off)
packages << "\\usepackage{mathdots}\n";
// yhmath must be loaded after amsmath
- if (mustProvide("yhmath"))
+ if (mustProvide("yhmath") &&
+ params_.use_package("yhmath") != BufferParams::package_off)
packages << "\\usepackage{yhmath}\n";
if (mustProvide("undertilde") &&
- params_.use_undertilde != BufferParams::package_off)
+ params_.use_package("undertilde") != BufferParams::package_off)
packages << "\\usepackage{undertilde}\n";
// [x]color and pdfcolmk are handled in getColorOptions() above
// esint must be after amsmath and wasysym, since it will redeclare
// inconsistent integral symbols
if (mustProvide("esint") &&
- params_.use_esint != BufferParams::package_off)
+ params_.use_package("esint") != BufferParams::package_off)
packages << "\\usepackage{esint}\n";
// natbib.sty
// This special case is indicated by the "natbib-internal" key.
if (mustProvide("natbib") && !tclass.provides("natbib-internal")) {
packages << "\\usepackage[";
- if (params_.citeEngine() == ENGINE_NATBIB_NUMERICAL)
+ if (params_.citeEngineType() == ENGINE_TYPE_NUMERICAL)
packages << "numbers";
else
packages << "authoryear";
packages << "\\PassOptionsToPackage{normalem}{ulem}\n"
"\\usepackage{ulem}\n";
- if (params_.use_mhchem == BufferParams::package_on ||
- (mustProvide("mhchem") &&
- params_.use_mhchem != BufferParams::package_off))
+ if (mustProvide("mhchem") &&
+ params_.use_package("mhchem") != BufferParams::package_off)
packages << "\\PassOptionsToPackage{version=3}{mhchem}\n"
"\\usepackage{mhchem}\n";
tmp << "\\usepackage{amsthm}\n";
if (mustProvide("amsmath")
- && params_.use_amsmath != BufferParams::package_off) {
+ && params_.use_package("amsmath") != BufferParams::package_off) {
tmp << "\\usepackage{amsmath}\n";
} else {
// amsbsy and amstext are already provided by amsmath
}
if (mustProvide("amssymb")
- || params_.use_amsmath == BufferParams::package_on)
+ || params_.use_package("amsmath") == BufferParams::package_on)
tmp << "\\usepackage{amssymb}\n";
return tmp.str();
}
-docstring const LaTeXFeatures::getTClassHTMLStyles() const {
+docstring const LaTeXFeatures::getTClassHTMLStyles() const
+{
DocumentClass const & tclass = params_.documentClass();
odocstringstream tcpreamble;
+ tcpreamble << tclass.htmlstyles();
+
list<docstring>::const_iterator cit = usedLayouts_.begin();
list<docstring>::const_iterator end = usedLayouts_.end();
for (; cit != end; ++cit)
docstring const & name, Language const * lang,
Encoding const & enc, bool const polyglossia)
{
+ // Check whether name can be encoded in the buffer encoding
+ bool encodable = true;
+ for (size_t i = 0; i < name.size(); ++i) {
+ if (enc.latexChar(name[i], true)[0] != name[i]) {
+ encodable = false;
+ break;
+ }
+ }
+
docstring const language = polyglossia ? from_ascii(lang->polyglossia())
: from_ascii(lang->babel());
docstring const langenc = from_ascii(lang->encoding()->iconvName());
docstring const bufenc = from_ascii(enc.iconvName());
docstring const s1 = docstring(1, 0xF0000);
docstring const s2 = docstring(1, 0xF0001);
- docstring const translated = (langenc == bufenc) ? name
+ docstring const translated = encodable ? name
: from_ascii("\\inputencoding{") + texenc + from_ascii("}")
- + s1 + langenc + s2 + translated + s1 + bufenc + s2;
+ + s1 + langenc + s2 + name + s1 + bufenc + s2;
odocstringstream os;
os << "\\addto\\captions" << language