[pstricks] Is pst-pdf meant to work with arbitrary postscript

Gene Selkov selkovjr at gmail.com
Wed Sep 16 16:11:15 CEST 2009

2009/9/16 Herbert Voss <Herbert.Voss at fu-berlin.de>:

> you should simply try ps2pdf.

I tried. It does not preserve page geometry and introduces some odd
distortions to both text and graphics. Things often fall off the
verge. Sometimes I get a pdf file that I can view on my screen, but
things get lost (even those safely within the page margins) when
printed. So I am not sure which problem is easier to solve -- this or

> You need pst-pdf only when you want
> to use the microtype package or include a lot of jpeg or pdf
> images.

I need to include a lot of PS specials (thousands of them). They are
generated by the ochem package.

When I feed them to pdfjadetex, it says,

  Non-PDF special ignored!

I read about ps4pdf first, and I understood that it can somehow
convert arbitrary postscript into something acceptable in PDF. The
first thing I tried with it -- interpreting the external EPS
references -- worked fine, and so did some of the simple specials.
Then I ran into this "undefined" problem with one of the specials, and
I am still stuck there. I understood that ps4pdf mutated into pst-pdf,
and tried that. I can see a greater convenience of invocation, but the
result is the same.

So the question remains, can it do it or can it not, and if it can,
what am I doing that it doesn't like?

> without a complete minmal example it is not possible
> to locate the problem.

Here's a complete example, although I am not sure how close to minimal
it is. The tex file is generated, and I don't know what parts of it
can be thrown out without damaging it. All I could do was to reduce
the book data at the start of the pipeline to the minimal allowed set
of elements. The minimal set that reproduces the problem includes:

book.tex                         generated by the docbook DSSSL;
modified to include pst-pdf
aminogroup.ctx            derived form the chemical environment in
book.tex on the first pass;
                                        changed picture -> pspicture
hydroxybutanoic.ctx    similar; this one contains the undefined postscript macro
ochem.sty                      needed to hook up the *ctx includes

The sequence leading to the error:

1. modifications in the generated data (already in the attached files)

    in book.tex, this was added as the first line:


   in *ctx files, "picture" is replaced with "pspicture"

2. pdfjadetex book.tex

      completes with these warnings:

      [3.0.3] [4.0.3] (./aminogroup.ctx
      Package pst-pdf Warning: pspicture No. 1 undefined.
      ) (./hydroxybutanoic.ctx
      Package pst-pdf Warning: pspicture No. 2 undefined.
      ) [1.0.3] [2.0.3]

3. jadetex book.tex

      also completes, with these warnings:

        Overfull \hbox (233.35994pt too wide) in paragraph at lines 16--16
        Overfull \hbox (1664.53304pt too wide) in paragraph at lines 24--24

     (the line numbers correspond to the last line in each file)

     I do not get these warnings while processing the same data without pst-pdf

4. dvips -P pdf -o book-pics.ps book.dvi
    This is dvips(k) 5.96.1 Copyright 2007 Radical Eye Software
    ' TeX output 2009.09.16:1426' -> book-pics.ps
    kpathsea: Running mktexpk --mfmode ljfour --bdpi 8000 --mag
1+0/(2*4000) --dpi 8000 ecss1000
    mktexpk: Mismatched mode ljfour and resolution 8000; ignoring mode.
    mktexpk: /home/selkovjr/.texmf-var/fonts/pk/dpdfezzz/jknappen/ec/ecss1000.8000pk
already exists.
    </usr/share/texmf-texlive/fonts/type1/bluesky/cm/cmr7.pfb>[1] [2]

Both picures get written, and both are broken. This is a correction to
my earlier statement that one of them was generated successfully. Now
I see that it is missing a graphics element. The second picture is
broken enough to cause a postscript error.

I compared the DVIs generated by the successful (all-PS) sequence and
by this process. The successfull book.dvi has this for b12:

   def /b12 { pop pop pop pop}

It also has a bunch of other definitions, including the one that I
believe is used in the first picture:

   def /b0 { /bl exch def gsave translate rotate newpath 0 0 moveto bl
0 lineto stroke grestore }

The broken book.dvi has none of those, not even the b0 that is the
only command invoked in the first special, but somehow it does not
cause the undefined error.

I don't know what to make of all this. How can I locate the component
responsible for the generation of those definitions?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: book.tex
Type: application/x-tex
Size: 9558 bytes
Desc: not available
URL: <http://tug.org/pipermail/pstricks/attachments/20090916/62df83ee/attachment-0001.tex>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aminogroup.ctx
Type: chemical/x-ctx
Size: 526 bytes
Desc: not available
URL: <http://tug.org/pipermail/pstricks/attachments/20090916/62df83ee/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: hydroxybutanoic.ctx
Type: chemical/x-ctx
Size: 842 bytes
Desc: not available
URL: <http://tug.org/pipermail/pstricks/attachments/20090916/62df83ee/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ochem.sty
Type: text/x-tex
Size: 12313 bytes
Desc: not available
URL: <http://tug.org/pipermail/pstricks/attachments/20090916/62df83ee/attachment-0005.bin>

More information about the PSTricks mailing list