Changed pdflatex conversion rules to use pdf images too.

Added epsi to be an alias of eps.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2378 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Baruch Even 2001-07-29 06:04:20 +00:00
parent 03b16293dc
commit b82a6bd2ad
2 changed files with 54 additions and 16 deletions

View File

@ -1,3 +1,12 @@
2001-07-30 Baruch Even <baruch@lyx.org>
* insetgraphics.C: Added EPSI to be an alias of EPS.
2001-07-29 Baruch Even <baruch@lyx.org>
* insetgraphics.C: Change GRAPHICS to Graphics.
Changed image conversion rules (documented at the beginning of file).
2001-07-28 Angus Leeming <a.leeming@ic.ac.uk> 2001-07-28 Angus Leeming <a.leeming@ic.ac.uk>
* insetert.C (get_new_label): int -> Paragraph::size_type to get * insetert.C (get_new_label): int -> Paragraph::size_type to get

View File

@ -8,11 +8,6 @@
* This file Copyright 2000 Baruch Even. * This file Copyright 2000 Baruch Even.
* ====================================================== */ * ====================================================== */
/*
How to use it for now:
* The lyxfunc 'graphics-insert' will insert this inset into the document.
*/
/* /*
Major tasks: Major tasks:
* Switch to convert the images in the background, this requires work on * Switch to convert the images in the background, this requires work on
@ -20,7 +15,6 @@ Major tasks:
Minor tasks: Minor tasks:
* Pop up a dialog if the widget version is higher than what we accept. * Pop up a dialog if the widget version is higher than what we accept.
* Prepare code to read FigInset insets to upgrade upwards
* Provide sed/awk/C code to downgrade from InsetGraphics to FigInset(?) * Provide sed/awk/C code to downgrade from InsetGraphics to FigInset(?)
*/ */
@ -50,11 +44,11 @@ Known BUGS:
TODO Before initial production release: TODO Before initial production release:
* Replace insetfig everywhere * Replace insetfig everywhere
* Read it's file format
* Get created by all commands used to create figinset currently.
* Search for comments of the form * Search for comments of the form
// INSET_GRAPHICS: remove this when InsetFig is thrown. // INSET_GRAPHICS: remove this when InsetFig is thrown.
And act upon them. And act upon them. Make sure not to remove InsetFig code for the
1.2.0 release, only afterwards, after deployment shows InsetGraphics
to be ok.
TODO Extended features: TODO Extended features:
@ -76,6 +70,9 @@ TODO Extended features:
* Add support for the 'picinpar' package. * Add support for the 'picinpar' package.
* Improve support for 'subfigure' - Allow to set the various options * Improve support for 'subfigure' - Allow to set the various options
that are possible. that are possible.
* Add resizing by percentage of image size (50%, 150%) - usefull for two
images of different size to be resized where they both should have
the same scale compared to each other.
*/ */
/* NOTES: /* NOTES:
@ -112,9 +109,16 @@ TODO Extended features:
* moving the document file and its images with no problem. * moving the document file and its images with no problem.
* *
* Conversions: * Conversions:
* * Postscript output means EPS figures.
* Apparently the PNG output is preferred over PDF images when doing PDF *
* documents (i.e. prefer imagemagick eps2png over eps2pdf) * PDF output is best done with PDF figures if it's a direct conversion
* or PNG figures otherwise.
* Image format
* from to
* EPS epstopdf
* JPG/PNG direct
* PDF direct
* others PNG
*/ */
#include <config.h> #include <config.h>
@ -152,6 +156,7 @@ extern string system_tempdir;
using std::ostream; using std::ostream;
using std::endl; using std::endl;
// This function is a utility function // This function is a utility function
inline inline
string const RemoveExtension(string const & filename) string const RemoveExtension(string const & filename)
@ -331,7 +336,7 @@ Inset::EDITABLE InsetGraphics::editable() const
void InsetGraphics::write(Buffer const * buf, ostream & os) const void InsetGraphics::write(Buffer const * buf, ostream & os) const
{ {
os << "GRAPHICS FormatVersion 1\n"; os << "Graphics FormatVersion 1\n";
params.Write(buf, os); params.Write(buf, os);
} }
@ -341,12 +346,12 @@ void InsetGraphics::read(Buffer const * buf, LyXLex & lex)
{ {
string const token = lex.GetString(); string const token = lex.GetString();
if (token == "GRAPHICS") if (token == "Graphics")
readInsetGraphics(buf, lex); readInsetGraphics(buf, lex);
else if (token == "Figure") // Compatibility reading of FigInset figures. else if (token == "Figure") // Compatibility reading of FigInset figures.
readFigInset(buf, lex); readFigInset(buf, lex);
else else
lyxerr[Debug::INFO] << "Not a GRAPHICS or Figure inset!\n"; lyxerr[Debug::INFO] << "Not a Graphics or Figure inset!\n";
updateInset(); updateInset();
} }
@ -505,6 +510,30 @@ InsetGraphics::createLatexOptions() const
return opts; return opts;
} }
namespace {
string decideOutputImageFormat(string const & in_fmt)
{
// lyxrc.pdf_mode means:
// Are we creating a PDF or a PS file?
// (Should actually mean, are we using latex or pdflatex).
if (lyxrc.pdf_mode) {
if (in_fmt == "eps" || in_fmt == "epsi" || in_fmt == "pdf")
return "pdf";
else if (in_fmt == "jpg" || in_fmt == "jpeg")
return in_fmt;
else
return "png";
}
// If it's postscript, we always do eps.
if (in_fmt == "eps" || in_fmt == "epsi")
return in_fmt; // eps & epsi are both eps, but different extension.
return "eps";
}
} // Anon. namespace
string const string const
InsetGraphics::prepareFile(Buffer const *buf) const InsetGraphics::prepareFile(Buffer const *buf) const
@ -531,7 +560,7 @@ InsetGraphics::prepareFile(Buffer const *buf) const
// Are we creating a PDF or a PS file? // Are we creating a PDF or a PS file?
// (Should actually mean, are we usind latex or pdflatex). // (Should actually mean, are we usind latex or pdflatex).
string const image_target = (lyxrc.pdf_mode ? "png" : "eps"); string const image_target = decideOutputImageFormat(extension);
if (extension == image_target) if (extension == image_target)
return params.filename; return params.filename;