From aaf17b08a8515650fa0c2253df060b0becad677c Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Thu, 12 Oct 2017 15:38:59 +0200 Subject: [PATCH] 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 --- src/insets/InsetGraphics.cpp | 12 ++++++++---- src/insets/InsetGraphics.h | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp index 3cc550b573..94182a7326 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 5bd858a1a1..58b28ab21d 100644 --- a/src/insets/InsetGraphics.h +++ b/src/insets/InsetGraphics.h @@ -114,7 +114,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.