#include "support/convert.h"
#include "support/debug.h"
+#include "support/FileName.h"
#include "support/filetools.h"
#include "support/ForkedCalls.h"
#include "support/lstrings.h"
-#include "support/lyxlib.h"
#include <boost/bind.hpp>
typedef vector<string> FmtList;
typedef lyx::graphics::Cache GCache;
- FmtList const loadableFormats = GCache::get().loadableFormats();
+ FmtList const & loadableFormats = GCache::get().loadableFormats();
FmtList::const_iterator it = loadableFormats.begin();
FmtList::const_iterator const end = loadableFormats.end();
PendingSnippets const & pending,
string const & to_format)
: pid(0),
- metrics_file(FileName(filename_base + ".metrics")),
+ metrics_file(filename_base + ".metrics"),
snippets(pending.size())
{
PendingSnippets::const_iterator pit = pending.begin();
// we use the encoding of the buffer
Encoding const & enc = buffer_.params().encoding();
- odocfstream of(enc.iconvName());
+ odocfstream of;
+ try { of.reset(enc.iconvName()); }
+ catch (iconv_codecvt_facet_exception & e) {
+ LYXERR0("Caught iconv exception: " << e.what()
+ << "\nUnable to create LaTeX file: " << latexfile);
+ return;
+ }
+
TexRow texrow;
OutputParams runparams(&enc);
LaTeXFeatures features(buffer_, buffer_.params(), runparams);
for (; it != end; ++it)
if (it->lyxCode() == MATHMACRO_CODE)
- it->latex(buffer_, os, runparams);
+ it->latex(os, runparams);
// All equation labels appear as "(#)" + preview.sty's rendering of
// the label name
// Use the preview style file to ensure that each snippet appears on a
// fresh page.
+ // Also support PDF output (automatically generated e.g. when
+ // \usepackage[pdftex]{hyperref} is used.
os << "\n"
- << "\\usepackage[active,delayed,dvips,showlabels,lyx]{preview}\n"
+ << "\\newif\\ifpdf\n"
+ << "\\ifx\\pdfoutput\\undefined\n"
+ << "\\else\\ifx\\pdfoutput\\relax\n"
+ << "\\else\\ifnum0=\\pdfoutput\n"
+ << "\\else\\pdftrue\\fi\\fi\\fi\n"
+ << "\\ifpdf\n"
+ << " \\usepackage[active,delayed,tightpage,showlabels,lyx,pdftex]{preview}\n"
+ << "\\else\n"
+ << " \\usepackage[active,delayed,showlabels,lyx,dvips]{preview}\n"
+ << "\\fi\n"
<< "\n";
}