[pdftex] Extending pdftex

Hans Hagen pragma at wxs.nl
Tue Jul 1 22:23:53 CEST 2003

At 01:46 01/07/2003 +0200, Andreas Matthias wrote:

>And since Hans said today `there is no real need to add functionality',
>I know why you ignored me. But why didn't you tell that before? If
>specially features are not desired, why don't you tell us? If I knew
>that before I wouldn't be working on that extension. But since it
>always seems that pdftex development is just lacking volunteers I
>gave it a try. Now I know better. I still don't know what is
>going wrong in pdftex development, but it is definitely not a lack of
>volunteers. Or do you think it is correct to just ignore volunteers?

although i greatly dislike the way you let this discussion evolve, i'll try 
to reply

there are several kind of extensions:

(1) turning typeset text into pdf
(2) providing pdf (viewer) specific functionality
(3) adding pdf file manipulation features

Concerning (1): the possible extensions in this area (unicode and other 
fonts, multi-main-stream, etc) demand extensions to the tex engine and such 
extensions take place in a controlled way (thanh doing a thesis, etex, 
omega, mltex/enctex etc); since pdfetex is currently the main stream tex 
binary, such extensions are normally discussed in detail (for instance, 
during the last dante meeting language deoendent ligature extensions came 
up in the process of the development of the latin modern font family); for 
instance adding support for structured pdf would demands extensions to tex 
and much discussion beforehand since macropackages that would support it 
differ in their approach; it would also be quite unstable and experimental 
for a while and mess up the already not that readable codebase of pdftex.

(one reason for removing encryption for instance was that it crept in all 
over the code, did some parsing on object content, lacked control over 
specific object/literal situations, and afaik, was not actively maintained 
once there; also: one can do such things quite well with other software)

Just to mention a few low level extensions on the list: access to the page 
object number (needed for certain pdf structuring features and certain 
hyper features, but kind of tricky since t he number of pages in often 
unknown), access to the trailer (needed for pdf/x), etc.

Developments in this area not always take place in a large audience; i 
still remember the moment when cooltype came around and some pdf docs were 
problematic: these issues were solved (mainly by tom k) fast and 
efficiently, lots of bulk testing was done, and the new version made it in 
time for tex live; also, bugs were reported and taken care of by adobe 
(actually, a group of texies visited adobe around that time), etc.

Concerning (2): this is the category that i meant when i commented 'there 
is no real need'; you can bet that i (and i guess martin and others as 
well) went through the 1.5 specs and looked for new thingies; it looks like 
everything new can comfortably be implemented; some recent developments 
with regards to pdf/x will be covered in future versions of pdftex (most of 
pdf/x is covered).

Concerning (3): pdftex does a pretty good job in including pdf code thanks 
to derek's work; it greatly helps that we're dealing with a separate 
library and even then, martin needs to keep things in sync (can be tricky 
with extensions that influence both xpdf and pdftex). If someone has an 
extension -for instance the one with regards to merging annotations- this 
needs (a) coordination, (b) testing , (c) inclusions in the code bed, (d) 
discussion. Rougly spoken this comes down to:

- martin (who currently is in charge of code integration) tries to 
integrate the code and tests
- others prepare binaries for testing (e.g. fabrice for windows) [i can 
only do testing when i have binaries]
- then testing can start
- when things run ok (and are decided to be useful and maintainable) 
discussion can start keeping it there
- normally a new tex live version determins such a decission point
- when needed, in the meantime maintainers of pdf-related macro code need 
to become in sync (often pre-sync)

in the meantime, there is nothing against users having their own version 
with extensions, which is one of the nice things about tex!

Now, another aspect is the time frame. There is no way that new code, when 
submitted, will make it into pdftex directly. For that, too many people 
depend on stability. Especially when new functionality is involved, we need 
to be careful. For instance: if suddenly included pdf code will obey 
hyperlinks, this is not what used to be the case, so it should be under 
control of macropackages, actually be off by default. You will be surprised 
how users can intermix direct \pdfprimitives with macro code that also uses 
them and what hard to support errors can result from that.

Related to time is that it happens that some of those involved in pdftex 
development from the beginning attend user group meetings, meet each other 
etc, which takes time, but also introduces delays in answering mails.

In any case: pdftex is actively maintained, but not in terms of many lines 
of code added per day. Bugs are fixed, viewer anomalities are catched, 
primitives are added, but only when really needed i.e. functionality not 
provided by other primitives, the code is optimized. If you have input on 
new functionality, it's welcome, but don;t expect pdftex to be a 
each-day-new-feature-and-version program, stability is the key-word.

Personally, i'm always willing to test new things, but only in a separate 
binary (to be provided by others, since i don't maintain a source tree 
here). This has happened many times before -)


PS. In most cases, if someone wants to volunteer, and feels that something 
got lost in mail, it helps more to mail with persons involved directly than 
to start complaining on lists like this; it may also cross your mind that 
some involved in pdftex development spent a huge amount of time to (pdf)tex 
support and have to divide their time over more than one person/mail
                                   Hans Hagen | PRAGMA ADE | pragma at wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
                        information: http://www.pragma-ade.com/roadmap.pdf
                     documentation: http://www.pragma-ade.com/showcase.pdf

More information about the pdftex mailing list