X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FPDFOptions.cpp;h=222be517e836779ad9502d8f9815ef3117d3eaaa;hb=7e69ac220dd958b57ec40f198355c7e0ba8d720e;hp=af36cf16a5eb85f759dc20a14612446024554d53;hpb=d3d4d31880534a5f37c02c6c96b41414f1a1d89d;p=lyx.git diff --git a/src/PDFOptions.cpp b/src/PDFOptions.cpp index af36cf16a5..222be517e8 100644 --- a/src/PDFOptions.cpp +++ b/src/PDFOptions.cpp @@ -150,7 +150,7 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, bool need_unicode = false; if (enc) { for (size_t n = 0; n < hs.size(); ++n) { - if (enc->latexChar(hs[n], true) != docstring(1, hs[n])) + if (!enc->encodable(hs[n])) need_unicode = true; } } @@ -169,7 +169,7 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, // FIXME: rename in this case the PDF settings dialog checkbox // label from "Use Hyperref" to "Customize Hyperref Settings" // as discussd in bug #6293 - opt = "\\hypersetup{" + opt + hyperset + "}\n"; + opt = "\\hypersetup{" + rtrim(opt + hyperset, ",") + "}\n"; } // hyperref expects utf8! @@ -179,13 +179,19 @@ void PDFOptions::writeLaTeX(OutputParams & runparams, otexstream & os, << setEncoding("UTF-8"); } // If hyperref is loaded by the document class, we output - // \hypersetup \AtBeginDocument, since the class might - // load hyperref late, see bug #7048. - if (hyperref_already_provided && !opt.empty()) - os << "\\AtBeginDocument{%\n"; - os << from_utf8(opt); - if (hyperref_already_provided && !opt.empty()) - os << "}"; + // \hypersetup \AtBeginDocument if hypersetup is not (yet) + // defined. In this case, the class loads hyperref late + // (see bug #7048). + if (hyperref_already_provided && !opt.empty()) { + os << "\\ifx\\hypersetup\\undefined\n" + << " \\AtBeginDocument{%\n " + << from_utf8(opt) + << " }\n" + << "\\else\n " + << from_utf8(opt) + << "\\fi\n"; + } else + os << from_utf8(opt); if (need_unicode && enc && enc->iconvName() != "UTF-8" &&!runparams.isFullUnicode()) { @@ -237,7 +243,7 @@ string PDFOptions::readToken(Lexer &lex, string const & token) // check the string from UI -string PDFOptions::quoted_options_check(string const str) const +string PDFOptions::quoted_options_check(string const & str) const { return subst(str, "\n", ""); }