// Do not remove the comment below, so we get merge conflict in
// independent branches. Instead add your own.
-int const LYX_FORMAT = 348; // uwestoehr: add support for \*phantom
+int const LYX_FORMAT = 349; // jspitzm: initial XeTeX support
typedef map<string, bool> DepClean;
typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
bool Buffer::makeLaTeXFile(FileName const & fname,
string const & original_path,
- OutputParams const & runparams,
+ OutputParams const & runparams_in,
bool output_preamble, bool output_body) const
{
+ OutputParams runparams = runparams_in;
+ if (params().useXetex)
+ runparams.flavor = OutputParams::XETEX;
+
string const encoding = runparams.encoding->iconvName();
LYXERR(Debug::LATEX, "makeLaTeXFile encoding: " << encoding << "...");
{
OutputParams runparams(¶ms().encoding());
runparams.nice = true;
- runparams.flavor = OutputParams::LATEX;
+ runparams.flavor = params().useXetex ?
+ OutputParams::XETEX : OutputParams::LATEX;
runparams.linelen = lyxrc.plaintext_linelen;
// No side effect of file copying and image conversion
runparams.dryrun = true;
return "docbook";
if (isLiterate())
return "literate";
+ if (params().useXetex)
+ return "xetex";
if (params().encoding().package() == Encoding::japanese)
return "platex";
return "latex";
bool inword = false;
bool ignoreword = false;
string lang_code;
+ // Go backward a bit if needed in order to return the word currently
+ // pointed by 'from'.
+ while (from && from.pos() && isLetter(from))
+ from.backwardPos();
+ // OK, we start from here.
to = from;
-
while (to.depth()) {
if (isLetter(to)) {
if (!inword) {