I found anothere way to solve this problem. Hopes it works for people have this
issue.

Here are some more infor. When converting EPS to PDF.

Platform: WinXP sp3, MicTex2.9 (I use XeTex)
this is the latex article.

\documentclass{article}
\usepackage{mathptmx}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\geometry{verbose,tmargin=0.75in,bmargin=0.75in,lmargin=0.75in,rmargin=0.75in}
\usepackage{graphicx}
\usepackage{xunicode}
\begin{document}
This is a drill.
\includegraphics[width=0.8\textwidth]{exam1}
\end{document}

The lyx file and "exam1.eps" are all under "c:/".

When using Lyx to write an article, contains a EPS figure, the pdf figure always
lose some information after converting by Lyx. 

I think this has nothing to do with Lyx. It seems this is due to epstopdf.exe in
"MiKTeX 2.9\miktex\bin". I tried this in cmd "epstopdf.exe fig.eps", and it
generates a same pdf lose some information in the eps fig, e.g. lagend, or X Y
title is mising.

To solve this, I write a bat named "epstopdf.bat" and put it in folder "MiKTeX
2.9\miktex\bin"(epstopdf.exe is renamed). The bat contains the following
information:

gswin32c -dSAFER -dNOPAUSE -dQUIET -dBATCH -dEPSCrop -sDEVICE=pdfwrite
-sOutputFile="%~dpn1.pdf" "%~dpnx1"

And the conventer for EPS to PDF is set to "epstopdf $$i". It works fine under
Lyx1.6.

When I updated my Lyx to 2.0. It is wrong this time. 

It seems that Lyx2.0 will copy eps to a temporal folder and conventer it to pdf
in that folder, but epstopdf.bat doesn't know the whole path. (In fact Lyx1.6
did also but epstopdf.bat know the directory.) Lyx2.0 just pops up an error
cannot find that temporal file. here are the error info.


..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(754): insetgraphics::latex:
Filename = C://exam1.eps
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(764):   Message = ""
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(779):   Opts = 
width=0.8\textwidth
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(786):   Before =
\includegraphics[width=0.8\textwidth]
        after = 
..\..\..\lyx-2.0.0\src\support\FileName.cpp(941): Recognised Fileformat: eps
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(461): Comparing C://exam1.eps
and C:/Documents and Settings/Administrator/Local
Settings/Temp/lyx_tmpdir.Hp2276/lyx_tmpbuf2/0C___exam1.eps
..\..\..\lyx-2.0.0\src\support\FileName.cpp(592): Checksumming "C://exam1.eps"
2910557309 lasted 0 ms.
..\..\..\lyx-2.0.0\src\support\FileName.cpp(941): Recognised Fileformat: eps
..\..\..\lyx-2.0.0\src\support\FileName.cpp(228): Copying C:/Documents and
Settings/Administrator/Local
Settings/Temp/lyx_tmpdir.Hp2276/lyx_tmpbuf2/0C___exam1.eps
..\..\..\lyx-2.0.0\src\support\FileName.cpp(941): Recognised Fileformat: eps
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(109): findTargetFormat: PDF mode
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(676):    we have: from eps to 
pdf
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(682):   the orig file is:
C://exam1.eps
..\..\..\lyx-2.0.0\src\insets\InsetGraphics.cpp(731):   The original file is
C://exam1.eps
        A copy has been made and convert is to be called with:
        file to convert = C:/Documents and Settings/Administrator/Local
Settings/Temp/lyx_tmpdir.Hp2276/lyx_tmpbuf2/0C___exam1.eps
         from eps to pdf
..\..\lyx-2.0.0\src\Converter.cpp(372): Converting from  eps to pdf
..\..\lyx-2.0.0\src\Converter.cpp(437): Calling epstopdf "0C___exam1.eps"
..\..\..\lyx-2.0.0\src\support\Systemcall.cpp(217): Systemcall: 'epstopdf
"0C___exam1.eps"' did not start!
..\..\..\lyx-2.0.0\src\support\Systemcall.cpp(218): error The process failed to
start. Either the invoked program is missing, or you may have insufficient
permissions to invoke the program.
Error: Cannot convert file

In order to check whether bat doesn't know the whole path of the temporal eps
file. I write the bat to a python version just using os.system("...") instead
and log some information. (Because I don't know how to log in bat.) So that
python file is named to epstopdf.py. And I put it in "LyX20\Resources\scripts".
The conventer is set to "python -tt $$s/scripts/epstopdf.py $$i". 

Well, I am strange that this time it works well.

But I am still confused why python works but bat doesn't work.




Reply via email to