From: Chris v. D. <cn....@ho...> - 2009-11-11 18:16:55
|
Hey, I am in the process of submitting an article using PyX graphs for the first time (by the way I really enjoy using PyX, very professional looking), and I am having trouble with fonts. The submission system is telling me that the fonts are not embedded in the eps? How would I go about rectifying this? If it matters I am using PyX 0.10, default fonts. Thanks, Chris |
From: Michael S. <m-s...@us...> - 2009-11-11 19:13:05
|
Hello Chris, On 11/11/09, Chris van Dijk wrote: > The submission system is telling me that the fonts are not embedded > in the eps? How would I go about rectifying this? If it matters I am > using PyX 0.10, default fonts. These submission systems are not very reliable, in general. One of them complained about some of my PyX figures as well, but a simple look into the file showed that the font which it complained about was embedded in the eps file. You can do the same check: open the eps file in your favourite text editor and search for the complained font name. PyX includes those fonts into the file which are given in the psfonts.map file from your TeX distribution. All non-standard fonts (such as the TeX cm font, for example) are mentioned in that file. It may happen that the "Adobe standard fonts" are not included: Times, Helvetica, Courier. If you want those fonts included, you must adapt your TeX installation accordingly. On a teTeX or texlive distribution, this is done by 1. modifying the file "updmap.cfg": set dvipsDownloadBase35 true pdftexDownloadBase14 true dvipdfmDownloadBase14 true 2. if you changed that file, you must run updmap (or updmap-sys as administrator) in order to update the map files. Cordialement, Michael |
From: Chris v. D. <cn....@ho...> - 2009-11-12 13:29:18
|
On Wed, 11 Nov 2009 20:12:43 +0100 Michael SCHINDLER <m-s...@us...> wrote: > Hello Chris, > > On 11/11/09, Chris van Dijk wrote: > > The submission system is telling me that the fonts are not embedded > > in the eps? How would I go about rectifying this? If it matters I am > > using PyX 0.10, default fonts. > > These submission systems are not very reliable, in general. One of > them complained about some of my PyX figures as well, but a simple > look into the file showed that the font which it complained about was > embedded in the eps file. You can do the same check: open the eps file > in your favourite text editor and search for the complained font name. > > PyX includes those fonts into the file which are given in the > psfonts.map file from your TeX distribution. All non-standard fonts > (such as the TeX cm font, for example) are mentioned in that file. It > may happen that the "Adobe standard fonts" are not included: Times, > Helvetica, Courier. If you want those fonts included, you must adapt > your TeX installation accordingly. On a teTeX or texlive distribution, > this is done by > 1. modifying the file "updmap.cfg": set > dvipsDownloadBase35 true > pdftexDownloadBase14 true > dvipdfmDownloadBase14 true > 2. if you changed that file, you must run > updmap > (or updmap-sys as administrator) > in order to update the map files. > > Cordialement, > Michael > Michael, thanks for the quick reply. Yes you are right, by looking into the eps file I can see that the fonts are embedded in there (as a side note does anybody know of a convenient tool like pdffonts for eps?). So the problem is obviously not with PyX. Apologies for bothering you guys then... I will just need to figure something else out, as the text in my figures does not show up in the merged pdf compiled from my tex file by the system. I would prefer not to use a standard font for the figures, as the rest of the article is in computer modern too. I use the graphicx package to include the figures if it matters. Anyway these are problems I need to solve for myself, thanks for your help and keep up the good work with PyX. Chris |
From: Alan G I. <ai...@am...> - 2009-11-12 14:19:18
|
On 11/12/2009 8:29 AM, Chris van Dijk wrote: > I will just need to figure something else out, as the text in my > figures does not show up in the merged pdf compiled from my tex file by > the system. I saw this in some old figures I had made. I updated to the current SVN and reran the figure code, and the problem went away. So I did not think about it any more ... Might be worth trying. Alan Isaac |
From: William H. <w.h...@as...> - 2009-11-12 16:26:09
|
Hi Chris, Michael et al., On Thu, Nov 12, 2009 at 7:29 AM, Chris van Dijk <cn....@ho...> wrote: > Yes you are right, by looking into the eps file I can see that the > fonts are embedded in there (as a side note does anybody know of a > convenient tool like pdffonts for eps?). So the problem is obviously > not with PyX. Apologies for bothering you guys then... > > I will just need to figure something else out, as the text in my > figures does not show up in the merged pdf compiled from my tex file by > the system. I would prefer not to use a standard font for the figures, > as the rest of the article is in computer modern too. I use the > graphicx package to include the figures if it matters. In my experience with most journals (with some honorable exceptions), their definition of an "acceptable" figure is one that works with their buggy, outdated, proprietary software. Figures produced by LaTeX, PyX, etc often do clever things with the EPS that, even though they may be perfectly standards-compliant, often throw a spanner into their inflexible workflow. Two recent examples that I remember off the top of my head are negative values in the bounding box (which apparently confuses the hell out of some old version of Adobe Illustrator), and that my fonts, although embedded, were also subsetted, which they did not like. There is little point in fighting with them about this. The easiest approach is to simply post-process your PyX-created graphics to convert them into high-resolution, anti-aliased raster images or low-level vector postscript commands before you submit the figures. Which is more appropriate depends on the nature of your figures. A side effect of converting to low-level postscript (e.g., with ghostscript's epswrite device) is that all the text is converted to outlines, so there are no longer any fonts in your file at all. Below I have pasted an example bash script that I wrote a few years back, which does a bit of both. You probably already have gs, but you will likely have to download http://imgtops.sourceforge.net, which is a (now old and seemingly unmaintained) python package that includes both the imgtops and epstoimg utilities. On the other hand, there may now be better ways of embedding raster images in EPS. The script sanitizes each figure listed in figlist.txt according to the heuristics described in the comments. Maybe you will find it useful. On a more positive note, I have noticed that journals that have gone over to an all-PDF workflow seem to be able to deal much better with PyX-generated figures. So these steps may become increasingly unnecessary as EPS dies out in scientific publishing. Cheers Will #! /bin/bash # # convertfigs.sh - Will Henney (w.h...@as...) 11 Sep 2006 # # Revised 28 Dec 2006 to do revised version of paper (one new figure) # outdir=../Revised i=0 for origfig in $(cat figlist.txt); do i=$(( i + 1 )) newname=$outdir/f$i if [ -f $origfig.eps ]; then # these are files written by PyX - need to pass through gs # to convert all fonts to outlines echo "$newname: converting fonts to outlines" gs -dBATCH -dNOPAUSE -dSAFER -q -dEPSFitPage \ -dNOCACHE -sDEVICE=epswrite \ -sOutputFile=$newname.ps $origfig.eps elif [ -f $origfig.pdf ]; then # convert PDF to image with width 1600 pixels printf '%s' "$newname: converting to image..." epstoimg -v -w 1600 -o $origfig.png $origfig.pdf # then embed in a PS file printf '%s\n' "... and embedding in PS" imgtops -v -o $newname.ps $origfig.png else # already an image, just embed in a PS file echo "$newname: embedding in PS" imgtops -v -o $newname.ps $origfig.jpg fi done -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia |
From: Chris v. D. <cn....@ho...> - 2009-11-13 13:22:05
|
On Thu, 12 Nov 2009 10:25:51 -0600 William Henney <w.h...@as...> wrote: > Hi Chris, Michael et al., > > On Thu, Nov 12, 2009 at 7:29 AM, Chris van Dijk > <cn....@ho...> wrote: > > Yes you are right, by looking into the eps file I can see that the > > fonts are embedded in there (as a side note does anybody know of a > > convenient tool like pdffonts for eps?). So the problem is obviously > > not with PyX. Apologies for bothering you guys then... > > > > I will just need to figure something else out, as the text in my > > figures does not show up in the merged pdf compiled from my tex > > file by the system. I would prefer not to use a standard font for > > the figures, as the rest of the article is in computer modern too. > > I use the graphicx package to include the figures if it matters. > > In my experience with most journals (with some honorable exceptions), > their definition of an "acceptable" figure is one that works with > their buggy, outdated, proprietary software. Figures produced by > LaTeX, PyX, etc often do clever things with the EPS that, even though > they may be perfectly standards-compliant, often throw a spanner into > their inflexible workflow. Two recent examples that I remember off the > top of my head are negative values in the bounding box (which > apparently confuses the hell out of some old version of Adobe > Illustrator), and that my fonts, although embedded, were also > subsetted, which they did not like. > > There is little point in fighting with them about this. The easiest > approach is to simply post-process your PyX-created graphics to > convert them into high-resolution, anti-aliased raster images or > low-level vector postscript commands before you submit the figures. > Which is more appropriate depends on the nature of your figures. A > side effect of converting to low-level postscript (e.g., with > ghostscript's epswrite device) is that all the text is converted to > outlines, so there are no longer any fonts in your file at all. > > Below I have pasted an example bash script that I wrote a few years > back, which does a bit of both. You probably already have gs, but you > will likely have to download http://imgtops.sourceforge.net, which is > a (now old and seemingly unmaintained) python package that includes > both the imgtops and epstoimg utilities. On the other hand, there may > now be better ways of embedding raster images in EPS. > > The script sanitizes each figure listed in figlist.txt according to > the heuristics described in the comments. Maybe you will find it > useful. > > On a more positive note, I have noticed that journals that have gone > over to an all-PDF workflow seem to be able to deal much better with > PyX-generated figures. So these steps may become increasingly > unnecessary as EPS dies out in scientific publishing. > > Cheers > > Will > > #! /bin/bash > # > # convertfigs.sh - Will Henney (w.h...@as...) 11 Sep 2006 > # > # Revised 28 Dec 2006 to do revised version of paper (one new figure) > # > outdir=../Revised > i=0 > for origfig in $(cat figlist.txt); do > i=$(( i + 1 )) > newname=$outdir/f$i > if [ -f $origfig.eps ]; then > # these are files written by PyX - need to pass through gs > # to convert all fonts to outlines > echo "$newname: converting fonts to outlines" > gs -dBATCH -dNOPAUSE -dSAFER -q -dEPSFitPage \ > -dNOCACHE -sDEVICE=epswrite \ > -sOutputFile=$newname.ps $origfig.eps > elif [ -f $origfig.pdf ]; then > # convert PDF to image with width 1600 pixels > printf '%s' "$newname: converting to image..." > epstoimg -v -w 1600 -o $origfig.png $origfig.pdf > # then embed in a PS file > printf '%s\n' "... and embedding in PS" > imgtops -v -o $newname.ps $origfig.png > else > # already an image, just embed in a PS file > echo "$newname: embedding in PS" > imgtops -v -o $newname.ps $origfig.jpg > fi > done > > > > > Hey Will, Thanks for your input, that script was indeed useful. For now I converted the eps figures to low-level paths, so that should alleviate the problem of fonts for now. It is a good enough solution for this article anyway. Thanks everybody for your help, Chris |