bool noweb_mode = false;
bool pdflatex = false;
+bool xetex = false;
bool roundtrip = false;
string const arg = p.getArg('{', '}');
if (arg == "translate")
arguments.push_back(required);
+ else if (arg == "group")
+ arguments.push_back(req_group);
else if (arg == "item")
arguments.push_back(item);
+ else if (arg == "displaymath")
+ arguments.push_back(displaymath);
else
arguments.push_back(verbatim);
} else {
- p.getArg('[', ']');
- arguments.push_back(optional);
+ string const arg = p.getArg('[', ']');
+ if (arg == "group")
+ arguments.push_back(opt_group);
+ else
+ arguments.push_back(optional);
}
}
commands[command] = arguments;
* You must ensure that \p parentFilePath is properly set before calling
* this function!
*/
-void tex2lyx(idocstream & is, ostream & os, string encoding)
+bool tex2lyx(idocstream & is, ostream & os, string encoding)
{
// Set a sensible default encoding.
// This is used until an encoding command is found.
active_environments.pop_back();
// We know the used modules only after parsing the full text
- ostringstream ms;
if (!used_modules.empty()) {
- ms << "\\begin_modules\n";
LayoutModuleList::const_iterator const end = used_modules.end();
LayoutModuleList::const_iterator it = used_modules.begin();
for (; it != end; it++)
- ms << *it << '\n';
- ms << "\\end_modules\n";
+ preamble.addModule(*it);
+ }
+ if (!preamble.writeLyXHeader(os, !active_environments.empty())) {
+ cerr << "Could write LyX file header." << endl;
+ return false;
}
- ostringstream ps;
- preamble.writeLyXHeader(ps);
- os << preamble.addModules(ps.str(), ms.str());
ss.seekg(0);
os << ss.str();
parsertest << p.get_token().asInput();
// <origfile> and parsertest.tex should now have identical content
#endif
+ return true;
}
}
string const oldParentFilePath = parentFilePath;
parentFilePath = onlyPath(infilename.absFileName());
- tex2lyx(is, os, encoding);
+ bool retval = tex2lyx(is, os, encoding);
parentFilePath = oldParentFilePath;
- return true;
+ return retval;
}
} // anonymous namespace