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
This commit is contained in:
Juergen Spitzmueller 2017-10-12 15:38:59 +02:00
parent 80983a3553
commit 88c285219b
2 changed files with 9 additions and 5 deletions

View File

@ -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())

View File

@ -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.