commit 8a0715d0bdc38df6c8b26d79e84c68409058a116
Author: Juergen Spitzmueller <[email protected]>
Date:   Sat Feb 26 16:23:27 2022 +0100

    Do not output eps bounding box for unknown/missing graphics (#8899)
    
    Except for dvi/ps output chain for which this trick was meant.
    Also, issue an error message in this case. This is analogous to
    the other output flavors now.
---
 src/insets/InsetGraphics.cpp |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp
index ef03b6f..91c23aa 100644
--- a/src/insets/InsetGraphics.cpp
+++ b/src/insets/InsetGraphics.cpp
@@ -61,6 +61,7 @@ TODO
 #include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "InsetIterator.h"
+#include "LaTeX.h"
 #include "LaTeXFeatures.h"
 #include "Lexer.h"
 #include "MetricsInfo.h"
@@ -821,7 +822,19 @@ void InsetGraphics::latex(otexstream & os,
        bool const file_exists = !params().filename.empty()
                        && params().filename.isReadableFile();
        string message;
-       if (!file_exists) {
+       // PDFLaTeX and Xe/LuaTeX fall back to draft themselves
+       // and error about it. For DVI/PS, we do something similar here.
+       if (!file_exists && runparams.flavor == Flavor::LaTeX) {
+               TeXErrors terr;
+               ErrorList & errorList = buffer().errorList("Export");
+               docstring const s = params().filename.empty() ?
+                                       _("Graphic not specified. Falling back 
to `draft' mode.")
+                                     : bformat(_("Graphic `%1$s' was not 
found. Falling back to `draft' mode."),
+                                               
params().filename.absoluteFilePath());
+               Paragraph const & par = buffer().paragraphs().front();
+               errorList.push_back(ErrorItem(_("Graphic not found!"), s,
+                                             {par.id(), 0}, {par.id(), -1}));
+               buffer().bufferErrors(terr, errorList);
                if (params().bbox.empty())
                    message = "bb = 0 0 200 100";
                if (!params().draft) {
@@ -832,11 +845,11 @@ void InsetGraphics::latex(otexstream & os,
                if (!message.empty())
                        message += ", ";
                message += "type=eps";
+               // If no existing file "filename" was found LaTeX
+               // draws only a rectangle with the above bb and the
+               // not found filename in it.
+               LYXERR(Debug::GRAPHICS, "\tMessage = \"" << message << '\"');
        }
-       // If no existing file "filename" was found LaTeX
-       // draws only a rectangle with the above bb and the
-       // not found filename in it.
-       LYXERR(Debug::GRAPHICS, "\tMessage = \"" << message << '\"');
 
        // These variables collect all the latex code that should be before and
        // after the actual includegraphics command.
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to