#include "FuncRequest.h"
#include "FuncStatus.h"
#include "InsetIterator.h"
+#include "LaTeX.h"
#include "LaTeXFeatures.h"
#include "Lexer.h"
#include "MetricsInfo.h"
#include "Mover.h"
-#include "OutputParams.h"
#include "output_docbook.h"
#include "output_xhtml.h"
#include "xml.h"
string findTargetFormat(string const & format, OutputParams const & runparams)
{
// Are we latexing to DVI or PDF?
- if (runparams.flavor == OutputParams::PDFLATEX
- || runparams.flavor == OutputParams::XETEX
- || runparams.flavor == OutputParams::LUATEX) {
+ if (runparams.flavor == Flavor::PdfLaTeX
+ || runparams.flavor == Flavor::XeTeX
+ || runparams.flavor == Flavor::LuaTeX) {
LYXERR(Debug::GRAPHICS, "findTargetFormat: PDF mode");
Format const * const f = theFormats().getFormat(format);
// Convert vector graphics to pdf
return "png";
}
- // for HTML and DocBook, we leave the known formats and otherwise convert to png
- if (runparams.flavor == OutputParams::HTML || runparams.flavor == OutputParams::DOCBOOK5) {
+ // for HTML and DocBook, we leave the known formats and otherwise convert to png
+ if (runparams.flavor == Flavor::Html || runparams.flavor == Flavor::DocBook5) {
Format const * const f = theFormats().getFormat(format);
// Convert vector graphics to svg
if (f && f->vectorFormat() && theConverters().isReachable(format, "svg"))
void InsetGraphics::draw(PainterInfo & pi, int x, int y) const
{
- graphic_->draw(pi, x, y);
+ graphic_->draw(pi, x, y, params_.darkModeSensitive);
}
}
// only show DVI-specific warning when export format is plain latex
if (!isValidDVIFileName(output_file)
- && runparams.flavor == OutputParams::LATEX) {
+ && runparams.flavor == Flavor::LaTeX) {
frontend::Alert::warning(_("Problematic filename for DVI"),
_("The following filename can cause troubles "
"when running the exported file through LaTeX "
if (from == to) {
// source and destination formats are the same
- if (!runparams.nice && !FileName(temp_file).hasExtension(ext)) {
+ if (!runparams.nice && !temp_file.hasExtension(ext)) {
// The LaTeX compiler will not be able to determine
// the file format from the extension, so we must
// change it.
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.
+ // We also don't do such tricks when simply exporting a LaTeX file.
+ if (!file_exists && !runparams.nice && 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) {
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.
string after;
// Write the options if there are any.
- bool const ps = runparams.flavor == OutputParams::LATEX
- || runparams.flavor == OutputParams::DVILUATEX;
+ bool const ps = runparams.flavor == Flavor::LaTeX
+ || runparams.flavor == Flavor::DviLuaTeX;
string const opts = createLatexOptions(ps);
LYXERR(Debug::GRAPHICS, "\tOpts = " << opts);
}
+CtObject InsetGraphics::getCtObject(OutputParams const &) const
+{
+ return CtObject::Object;
+}
+
+
docstring InsetGraphics::xhtml(XMLStream & xs, OutputParams const & op) const
{
string const output_file = op.dryrun ? string() : prepareHTMLFile(op);
void getGraphicsGroups(Buffer const & b, set<string> & ids)
{
- Inset & inset = b.inset();
- InsetIterator it = inset_iterator_begin(inset);
- InsetIterator const end = inset_iterator_end(inset);
- for (; it != end; ++it) {
- InsetGraphics const * ins = it->asInsetGraphics();
+ for (Inset const & it : b.inset()) {
+ InsetGraphics const * ins = it.asInsetGraphics();
if (!ins)
continue;
InsetGraphicsParams const & inspar = ins->getParams();
int n = 0;
if (groupId.empty())
return n;
- Inset & inset = b.inset();
- InsetIterator it = inset_iterator_begin(inset);
- InsetIterator const end = inset_iterator_end(inset);
- for (; it != end; ++it) {
- InsetGraphics const * ins = it->asInsetGraphics();
+ for (Inset const & it : b.inset()) {
+ InsetGraphics const * ins = it.asInsetGraphics();
if (!ins)
continue;
if (ins->getParams().groupId == groupId)
{
if (groupId.empty())
return string();
- Inset & inset = b.inset();
- InsetIterator it = inset_iterator_begin(inset);
- InsetIterator const end = inset_iterator_end(inset);
- for (; it != end; ++it) {
- InsetGraphics const * ins = it->asInsetGraphics();
+ for (Inset const & it : b.inset()) {
+ InsetGraphics const * ins = it.asInsetGraphics();
if (!ins)
continue;
InsetGraphicsParams const & inspar = ins->getParams();
// This handles undo groups automagically
UndoGroupHelper ugh(&b);
Inset & inset = b.inset();
- InsetIterator it = inset_iterator_begin(inset);
- InsetIterator const end = inset_iterator_end(inset);
- for (; it != end; ++it) {
+ InsetIterator it = begin(inset);
+ InsetIterator const itend = end(inset);
+ for (; it != itend; ++it) {
InsetGraphics * ins = it->asInsetGraphics();
if (!ins)
continue;