- LyXTextClass const & tclass = params().getLyXTextClass();
-
- if (features.isAvailable("dvipost") && params().outputChanges)
- features.require("dvipost");
+ TextClass const & tclass = params().getTextClass();
+
+ if (params().outputChanges) {
+ bool dvipost = LaTeXFeatures::isAvailable("dvipost");
+ bool xcolorsoul = LaTeXFeatures::isAvailable("soul") &&
+ LaTeXFeatures::isAvailable("xcolor");
+
+ if (features.runparams().flavor == OutputParams::LATEX) {
+ if (dvipost) {
+ features.require("ct-dvipost");
+ features.require("dvipost");
+ } else if (xcolorsoul) {
+ features.require("ct-xcolor-soul");
+ features.require("soul");
+ features.require("xcolor");
+ } else {
+ features.require("ct-none");
+ }
+ } else if (features.runparams().flavor == OutputParams::PDFLATEX ) {
+ if (xcolorsoul) {
+ features.require("ct-xcolor-soul");
+ features.require("soul");
+ features.require("xcolor");
+ features.require("pdfcolmk"); // improves color handling in PDF output
+ } else {
+ features.require("ct-none");
+ }
+ }
+ }