Change Log: Print Stylesheet

Changes to the Modular DocBook Stylesheet

This document summarizes the changes made to the Modular DocBook Print Stylesheet:

Version 1.05, 15 Feb 1998

Version 1.04, 08 Feb 1998

Version 1.03, 06 Feb 1998

Fixed a small problem with RevHistory in BookBiblio; the construction rule in dbinfo.dsl was more specific than the rule in dbbibl.dsl, so the wrong rule was firing. Fixed by making the construction rule in dbinfo.dsl call a function defined in dbbibl.dsl.

Version 1.02, 03 Feb 1998

1.01, 07 Jan 1998

1.0, 06 Jan 1998

Changes to the print stylesheet:

0.97, 29 Dec 1997

Changes to the print stylesheet:

0.96, 04 Dec 1997

This release contains support for callouts, a few other enhancements, a number of bug fixes, and a set of test documents.

Changes to dblib.dsl; the general function library:

Changes to dbcommon.dsl; the common library:

Changes to the print stylesheet:

0.95, 24 Nov 1997

The changes between 0.94 and 0.95 are quite extensive. Most dramatically, support for tables has been rewritten from scratch; see dbtable.dsl for more info.

Changes to dblib.dsl; the general function library:

Changes to dbcommon.dsl; the common library:

Changes to the print stylesheet:

0.94, 12 Nov 1997

The changes between 0.93 and 0.94 are so extensive that it would be difficult to document them in detail. All of the files in this distribution have been updated to have a version number of 0.94.

My primary goal in making these changes was to build a common library of code for both the print and HTML stylesheets. To achieve this goal, a great deal of code was moved around and reorganized.

What follows is a short list of the more dramatic changes:

0.93, 30 Sep 1997

In 0.92

In 0.91

In 0.90

In 0.89

This description of linking is adapted from comments in dblink.dsl

If neither the ENDTERM nor the XREFLABEL is present, then the cross reference text is taken from the (gentext-xref-strings) function in the localization file, like this

A cross reference to an element, the target, begins with the text returned by (gentext-xref-strings (gi target)). Within that text, the following substitutions are made:

%p

is replaced by the number of the page on which target occurs

%[x]g

is replaced by the (gentext-element-name)

%[x]n

is replaced by the label

%[x]t

is replaced by the title

Where "x" is either absent, in which case the target is used, or one of the following:

b

the ancestral book

c

the ancestral component

d

the ancestral division

k

the ancestral block

s

the ancestral section

So, %cn is replaced by the label (number) of the chapter that contains target. %st is replaced by the title of the section that contains target, %g is replaced by the (gentext-element-name) of the target, etc.

What elements constitute a book, component, division, block, and section are defined by the lists *-element-list.

As if this wasn't confusing enough, _one_ additional level of indirection is available. If one of the special symbols, #b, #c, #d, #k, or #s occurs in the (gentext-xref-strings) text, then it will be replaced by the appropriate (gentext-xref-strings-indirect) text depending on whether or not the target and the reference occur in the same element.

Here's a concrete example:

Given

(define (gentext-xref-strings-indirect key)
(case key
(("k") '(" in %kg %kn" ""))
(("s") '(" in %cg %cn" " in this %cg"))))
and
(define (gentext-xref-strings giname)
(case giname
(("STEP") "step %n#k")
(("SECT1") "the section called %t#s")))

A cross reference to a step in the same procedure as the reference will use the string "step %n" as the gentext-xref-strings text. A cross reference to a step in another procedure will use the string "step %n in %kg %kn".

So, a reference from step 5 to step 3 in the same procedure will appear as "step 3". A reference to step 6 in the third procedure in the fourth chapter from some other place will appear as "step 6 in procedure 4.3".

Likewise a reference to another section in the current chapter will appear like this "the section called target-title in this Chapter", and a reference to a section in an appendix will appear like this "the section called target-title in Appendix B".

In 0.88

In 0.87

Notes on generated text:

Using a different definition for each piece of generated text was rapidly becoming unmanagable. Most generated text is keyed of the type of element (the word "Chapter" for a CHAPTER, etc.) so one function takes the name of the element and returns the appropriate string. Other functions were added to configure things like the characters that occur in and between labels. In a few cases I've stretched the rules a bit (gentext abuse, I suppose, to missquote a colleage ;-), but the principle is to use a function keyed off the element name (or pseudo-element name). There's some potential for this to get unmanagable as well. Suggestions welcome.

In 0.86

In 0.85

In 0.84

In 0.83

In 0.82

In 0.81

Includes several changes supplied by James Bostock (%default-quadding%, %paper-type%, %page-number-restarts%, ande support for PROMPT).

In 0.80

A modular version of db070.dsl. No other changes are intentional.

This summary is fairly terse. If you have more detailed questions, ask the maintainer ;-).