UsedLanguages_.insert(lang);
if (lang->lang() == "vietnamese")
require("vietnamese");
- else if (lang->lang() == "japanese")
- require("japanese");
// CJK languages do not have a babel name.
// They use the CJK package
if (lang->encoding()->package() == Encoding::CJK)
require("CJK");
+ // japanese package is special
+ if (lang->encoding()->package() == Encoding::japanese)
+ require("japanese");
}
LanguageList::const_iterator end = UsedLanguages_.end();
for (; it != end; ++it)
if ((*it)->encoding()->latexName() != doc_encoding &&
- (*it)->encoding()->package() == Encoding::inputenc)
+ ((*it)->encoding()->package() == Encoding::inputenc
+ || (*it)->encoding()->package() == Encoding::japanese))
encodings.insert((*it)->encoding()->latexName());
return encodings;
}
"endnotes",
"ifthen",
"amsthm",
- "listings",
+ // listings is handled in BufferParams.cpp
"bm",
"pdfpages",
- "relsize"
+ "relsize",
+ "amscd"
};
int const nb_simplefeatures = sizeof(simplefeatures) / sizeof(char const *);
// setspace.sty
if (mustProvide("setspace") && !tclass.provides("SetSpace"))
- packages << "\\usepackage{setspace}\n";
+ packages << "\\usepackage{setspace}\n";
// amssymb.sty
if (mustProvide("amssymb")
packages << "\\usepackage{esint}\n";
// natbib.sty
- if (mustProvide("natbib")) {
+ // Some classes load natbib themselves, but still allow (or even require)
+ // plain numeric citations (ReVTeX is such a case, see bug 5182).
+ // 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)
packages << "numbers";