X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FPDFOptions.cpp;h=ee2193fbc113eaec7c1a006b99c24d6bff67607d;hb=e4b80698be91708ce1b9fd86d6032245ef4f3dc7;hp=d64cc2975e90ffc8f9057c14cca6ecd22faa5b7b;hpb=e84f6dff77b8c20a3a6bb0ba597d7677031c7190;p=lyx.git diff --git a/src/PDFOptions.cpp b/src/PDFOptions.cpp index d64cc2975e..ee2193fbc1 100644 --- a/src/PDFOptions.cpp +++ b/src/PDFOptions.cpp @@ -15,10 +15,13 @@ #include "Encoding.h" #include "Lexer.h" +#include "OutputParams.h" #include "texstream.h" #include "support/convert.h" #include "support/debug.h" +#include "support/docstream.h" +#include "support/docstring.h" #include "support/lstrings.h" #include @@ -102,11 +105,10 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, opt += runparams.hyperref_driver + ","; // Since LyX uses unicode, also set the PDF strings to unicode strings - // with the hyperref option "unicode". - // (With Xe/LuaTeX and pTeX, unicode=true is the default - // and the option leads to errors with some Japanese document classes) - if (!runparams.isFullUnicode() - && (!runparams.use_japanese || runparams.encoding->iconvName() == "UTF-8")) + // with the hyperref option "unicode". (With Xe/LuaTeX and pTeX, + // unicode=true is the default, with Japanese (platex), the option + // leads to errors (even if the input encoding is UTF-8).) + if (!runparams.isFullUnicode() && !runparams.use_japanese) opt += "unicode=true,"; // only use the hyperref settings if hyperref is enabled by the user @@ -160,8 +162,8 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, docstring const hs = from_utf8(hyperset); bool need_unicode = false; if (enc) { - for (size_t n = 0; n < hs.size(); ++n) { - if (!enc->encodable(hs[n])) + for (char_type h : hs) { + if (!enc->encodable(h)) need_unicode = true; } } @@ -189,7 +191,7 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, // this if the current input encoding does not support a character. // FIXME: don't use \inputencoding if "inputenc" is not loaded (#9839). if (need_unicode && enc && enc->iconvName() != "UTF-8") { - if (runparams.flavor != OutputParams::XETEX) + if (runparams.flavor != Flavor::XeTeX) os << "\\inputencoding{utf8}\n"; os << setEncoding("UTF-8"); } @@ -209,7 +211,7 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, os << from_utf8(opt); if (need_unicode && enc && enc->iconvName() != "UTF-8") { os << setEncoding(enc->iconvName()); - if (runparams.flavor != OutputParams::XETEX) + if (runparams.flavor != Flavor::XeTeX) os << "\\inputencoding{" << from_ascii(enc->latexName()) << "}\n"; } }