BPJ wrote:

Well as everything in a computer program they are defined in the source code.

That is the very antithesis of Dijkstra's position on the subject, and I 
strongly agree with him !  The behaviour / syntax / semantics are described 
outside of the program — the program is merely one of many possible 
realisations of the desired behaviour.

It is not the first time some feature of a computer program is insufficiently or not at 
all documented, and probably not the last time either. It is certainly disappointing when 
you for whatever reason can't figure them out from looking at the source code, but it is 
also good to keep in mind that the reason some feature is undocumented often is that the 
developers consider the feature unreliable. The code may be retained either because the 
developers hope to fix it if and when they figure out how to do it, or because removing 
it may cause other things to break, so there may be "good" reasons if you can't 
get them to work as intended or expected. I sincerely hope you find a workaround.

Well, the set of colour \specials in which I am interested appear to have been existence 
since 1992 or earlier, so if they /were/ unreliable one might think that that would have 
been noted and reported by now.  But I am delighted to say that having searched the 
online TUGboar archive, I was able to track down some of the earlier discussion of this 
set of specials, especially in articles written by Thomas Hafner, and these in turn led 
me to investigate the documentation for Tom Rokicki's "DVIPS" program ('TeXdoc 
dvips'), in which, to my great joy, I was able to read :

7.6 Color support details
To support color, Dvips recognizes a certain set of specials. These specials 
start with the
keyword ‘color’ or the keyword ‘background’, followed by a color specification.

7.6.1 Color specifications [...]

7.6.2 Color specials
We will describe ‘background’ first, since it is the simplest. The ‘background’ 
keyword
must be followed by a color specification. That color specification is used as 
a fill color for
the background. The last ‘background’ special on a page is the one that gets 
issued, and
it gets issued at the very beginning of the page, before any text or specials 
are sent. (This
is possible because the prescan phase of Dvips notices all of the color 
specials so that the
appropriate information can be written out during the second phase.)

The ‘color’ special itself has three forms. The first is just ‘color’ followed 
by a color
specification. In this case, the current global color is set to that color; the 
color stack must
be empty when such a command is executed.

The second form is ‘color push’ followed by a color specification. This saves 
the current
color on the color stack and sets the color to be that given by the color 
specification. This
is the most common way to set a color.

The final version of the ‘color’ special is just ‘color pop’, with no color 
specification;
this says to pop the color last pushed on the color stack from the color stack 
and set the
current color to be that color.

It would therefore seem that [x]dvipdfm[x] supports (at least) the same set of colour 
\specials as did/does Tom Rokicki's "DVIPS"
and thus the documentation for the latter can serve as reference for the former.

/Philip Taylor/

Reply via email to