+void LaTeXFeatures::resolveAlternatives()
+{
+ for (Features::iterator it = features_.begin(); it != features_.end();) {
+ if (contains(*it, '|')) {
+ vector<string> const alternatives = getVectorFromString(*it, "|");
+ vector<string>::const_iterator const end = alternatives.end();
+ vector<string>::const_iterator ita = alternatives.begin();
+ for (; ita != end; ++ita) {
+ if (isRequired(*ita))
+ break;
+ }
+ if (ita == end)
+ require(alternatives.front());
+ features_.erase(it);
+ it = features_.begin();
+ } else
+ ++it;
+ }
+}
+
+