commit cd626c24118b30ec8c2297222e39358047731369 Author: Juergen Spitzmueller <sp...@lyx.org> Date: Thu Oct 12 15:38:59 2017 +0200
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 +- status.22x | 2 ++ 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp index 9220362..62740f2 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 5270f2b..dae9602 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 91a8a3e..25416e1 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