[OS X TeX] Trying to write an epspdfconversion.sty ......

Daniel Becker daniel.becker at uni-rostock.de
Wed Sep 19 04:05:25 EDT 2007


Dear listers,

I would like to write a sty-file that does for Siep Kroonenberg's  
tool Epspdf (http://tex.aanhet.net/epspdf/) more or less the same as  
the epstopdf. I think this might be interesting also for others, as  
epstopdf is really a great help when dealing with eps-pdf-conversion  
of all sorts (For example, if you need to prepare grayscale and  
prepress graphics.) But I think I need help.

This is what I want the style file to do, when pdflatex is running:

1. when there is an \includegraphics{file.eps}: convert it with the  
command "epspdf" to pdf and use this one

2. in case it finds only \includegraphics{file}: check whether there  
is already an file.pdf and convert only if missing

3. PASSING OPTIONS to the epspdf command

1 and 2 are working (not very difficult). But with 3, I don't get it.  
Partly because I don't understand the syntax of a style-file and have  
no idea where to look. Maybe this is also not for the OS X list....

A few of the  possible Options if you use epstopdf are:

     -T, --target=TARGET              Target use of pdf; one of
                                      default, printer, prepress,  
screen, ebook
     -V, --version=VERSION            Pdf version to be generated;
                                      one of 1.2, 1.3, 1.4, default
     -g, --gray, --grey               Convert to grayscale;
                                      success not guaranteed
     -G, --GRAY, --GREY               Try harder to convert to  
grayscale;
                                      success still not guaranteed
     -i, --info                       Info: display detected filetype
     -h, --help                       Show this message

I would like to load "my" package like this

\usepackage[-T -G]{epspdfconversion} or
\usepackage[options={-T -G}]{epspdfconversion}

and that should result in a command

epspdf -T -G file.eps

Has anyone the time to help me here? Below you can find what is in  
the -sty-file so far. Or an idea where to look for a manual on sty- 
writing?

Daniel






%%
%% This is file `epspdfconversion.sty',
%%
%%
%% based on epstopdf.sty and an attempt to use Siep
%% Kroonenberg tools Epspdf  (http://tex.aanhet.net/epspdf/)
%% "on the fly" in LaTeX
%%
%%
%%

\begingroup
   \expandafter\let\expandafter\x\csname ver at epspdfconversion.sty 
\endcsname
   \ifcase 0%
     \ifx\x\relax % plain
     \else
       \ifx\x\empty % LaTeX
       \else
         1%
       \fi
     \fi
   \else
     \expandafter\ifx\csname PackageInfo\endcsname\relax
       \def\x#1#2{%
         \immediate\write-1{Package #1 Info: #2.}%
       }%
     \else
       \def\x#1#2{\PackageInfo{#1}{#2, stopped}}%
     \fi
     \x{epspdfconversion}{The package is already loaded}%
     \endgroup
     \expandafter\endinput
   \fi
\endgroup



\begingroup
   \expandafter\ifx\csname ProvidesPackage\endcsname\relax
     \def\x#1#2#3[#4]{\endgroup
       \immediate\write-1{Package: #3 #4}%
       \xdef#1{#4}%
     }%
   \else
     \def\x#1#2[#3]{\endgroup
       #2[{#3}]%
       \ifx#1\relax
         \xdef#1{#3}%
       \fi
     }%
   \fi
\expandafter\x\csname ver at epspdfconversion.sty\endcsname
\ProvidesPackage{epspdfconversion}%
   [2007/09/20 v0.1 Conversion with epspdf on the fly (HO)]
\@ifundefined{PackageWarning}{%
   \def\PackageWarning#1#2{%
     \begingroup
       \newlinechar=10 %
       \def\MessageBreak{%
         ^^J(#1)\@spaces\@spaces\@spaces\@spaces
       }%
       \immediate\write16{^^JPackage #1 Warning: #2\on at line.^^J}%
     \endgroup
   }%
}{}
\@ifundefined{PackageWarningNoLine}{%
   \def\PackageWarningNoLine#1#2{%
     \PackageWarning{#1}{#2\@gobble}%
   }%
}{}
\@ifundefined{on at line}{%
   \def\on at line{ on input line \the\inputlineno}%
}{}
\@ifundefined{@spaces}{%
   \def\@spaces{\space\space\space\space}%
}{}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname Gin at setfile\endcsname\relax
   \PackageWarningNoLine{epstopdf}{%
     No graphics package \string`graphic{s,x}\string' found%
   }%
   \expandafter\endinput
\fi
\begingroup
   \def\x{pdftex.def}%
   \ifx\Gin at driver\x
   \else
     \PackageWarningNoLine{epstopdf}{%
       Graphics driver file \string`pdftex.def\string' not found%
     }
     \expandafter\endgroup\expandafter\endinput
   \fi
\endgroup
\begingroup
   \expandafter\ifx\csname pdfshellescape\endcsname\relax
   \else
     \ifnum\pdfshellescape>0 %
     \else
       \PackageWarningNoLine{epstopdf}{%
         Shell escape feature is not enabled%
       }%
     \fi
   \fi
\endgroup

\let\ETEorg at Gin@setfile\Gin at setfile
\def\Gin at setfile#1#2#3{%
   \if`\@car #3\relax\@nil
     \immediate\write18{\@cdr #3\@empty\@nil}%
     \ETEorg at Gin@setfile{#1}{#2}{\Gin at base #2}%
   \else
     \ETEorg at Gin@setfile{#1}{#2}{#3}%
   \fi
}
\@ifundefined{Gin at extensions}{%
   \def\Gin at extensions{.eps}%
}{%
   \expandafter\ifx\expandafter\indent\Gin at extensions\indent
     \def\Gin at extensions{.eps}%
   \else
     \expandafter\def\expandafter\Gin at extensions\expandafter{%
       \Gin at extensions,.eps%
     }%
   \fi
}

\@namedef{Gin at rule@.eps}#1{{pdf}{.pdf}{`epspdf #1}}

%% if you write directly the option, as in
%% \@namedef{Gin at rule@.eps}#1{{pdf}{.pdf}{`epspdf --GRAY #1}}
%% that works. The question is how to let an option for the package  
write sommething
%% here...

\endinput



------------------------- Helpful Info -------------------------
Mac-TeX Website: http://www.esm.psu.edu/mac-tex/
TeX FAQ: http://www.tex.ac.uk/faq
List Archive: http://tug.org/pipermail/macostex-archives/
List Reminders & Etiquette: http://www.esm.psu.edu/mac-tex/list/





More information about the MacOSX-TeX mailing list