From: Juergen Spitzmueller Date: Thu, 12 Oct 2017 13:38:59 +0000 (+0200) Subject: Fix PDF output of clipped graphics with recent graphics package X-Git-Tag: 2.2.4~78 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=cd626c24118b30ec8c2297222e39358047731369;p=features.git Fix PDF output of clipped graphics with recent graphics package The previous redirection of the senseless option "bb" to "viewport" in PDFLaTeX output has been removed in a recent graphics package update. This breaks documents, since clipped graphics silently stop displaying. This change restores the previous output by using "viewport" instaed of "bb" for non-PS/DVI output, while leaving PS/DVI untouched (where "bb" and "viewport" behave differently. Fixes: #7910 --- diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp index 92203620b4..62740f2140 100644 --- a/src/insets/InsetGraphics.cpp +++ b/src/insets/InsetGraphics.cpp @@ -304,17 +304,19 @@ void InsetGraphics::read(Lexer & lex) } -string InsetGraphics::createLatexOptions() const +string InsetGraphics::createLatexOptions(bool const ps) const { // Calculate the options part of the command, we must do it to a string // stream since we might have a trailing comma that we would like to remove // before writing it to the output stream. ostringstream options; - if (!params().bbox.empty()) - options << "bb=" << params().bbox.xl.asLatexString() << ' ' + if (!params().bbox.empty()) { + string const key = ps ? "bb=" : "viewport="; + options << key << params().bbox.xl.asLatexString() << ' ' << params().bbox.yb.asLatexString() << ' ' << params().bbox.xr.asLatexString() << ' ' << params().bbox.yt.asLatexString() << ','; + } if (params().draft) options << "draft,"; if (params().clip) @@ -765,7 +767,9 @@ void InsetGraphics::latex(otexstream & os, before += "\\includegraphics"; // Write the options if there are any. - string const opts = createLatexOptions(); + bool const ps = runparams.flavor == OutputParams::LATEX + || runparams.flavor == OutputParams::DVILUATEX; + string const opts = createLatexOptions(ps); LYXERR(Debug::GRAPHICS, "\tOpts = " << opts); if (!opts.empty() && !message.empty()) diff --git a/src/insets/InsetGraphics.h b/src/insets/InsetGraphics.h index 5270f2bfa9..dae9602433 100644 --- a/src/insets/InsetGraphics.h +++ b/src/insets/InsetGraphics.h @@ -112,7 +112,7 @@ private: /// Get the status message, depends on the image loading status. std::string statusMessage() const; /// Create the options for the latex command. - std::string createLatexOptions() const; + std::string createLatexOptions(bool const ps) const; /// Create length values for docbook export. docstring toDocbookLength(Length const & len) const; /// Create the atributes for docbook export. diff --git a/status.22x b/status.22x index 91a8a3ec63..25416e1730 100644 --- a/status.22x +++ b/status.22x @@ -49,6 +49,8 @@ What's new - Catch "! Incomplete \if[x]" LaTeX error (bug 10666). +- Fix PDF output of clipped graphics with recent graphics package (bug 7910). + - Catch xdvipdfmx driver error that breaks XeTeX compilation (bug 10076). - Fix caption handling in listings insets when it is split into multiple