Blob Blame History Raw
1. Facilitating <fo:block span="all">
FOTEX.XMT
in \XMLelement{fo:block}: detect the span="all" attribute and if so, end
multicol layout before (if present), and resume multicol layout (if there
was one) after.
FOTEX.STY
new user-interface macros for loading nomulticols.sty if present, otherwise
resorting to multicols, if present, otherwise defining a fake multicols
environment. If nomulticols could not be loaded, care is taken that fo:block
span="all" is disabled, otherwise the TeX run will fail.
In \@outputpage, call refreshmulticols, which will possibly refresh the
multicol layout.
NOMULTICOL.STY
new file, same functionality as MULTICOL.STY, but does not use an
environment. With some extra macros to interrupt a multicolumnlayout. It is
now possible to say

begin multicol layout
    start group
           *1*
        start group
            end multicol layout *2*
                start group
                    do something interesting
                end group
            begin multicol layout *4*
        end group
        *3*
    end group
end multicol layout

CAVEAT 1: a lot of assignments of nomulticol have been made global, may be
too much. For example, if something is set at point *1*, it should be
restored at point *3*, but if this thing is also set by nomulticol, it will
undergo a global change at point *2* and/or *4*, and hence will not be
restored by TeX's grouping mechanism anymore.
So may be it is needed to carefully discriminate between counts, dimens,
boxes, and macros that are particular to multicol (the should be treated
wholly globally), and the (La)TeX-quantities that are dependent on them, and
they might be set locally.

CAVEAT 2: care must be taken that nomulticol interacts well with an other
change by me: every time a page is output, a fresh page setup will be
computed, if necessary. After this page setup, the multicol environment must
be refreshed (if it was in force). But refreshing should not occur twice in
a row for the same page. Although it seems that I have succeeded in
preventing this double refreshment, I still wonder why it can occur at the
first place.
2. Facilitating multiple special pages
XSL-FO facilitates the specification of a sequence of special pages before
an unbounded, repeating page sequence starts.
PassiveTeX only allowed one special page, labelled First. I allow for the
definition of a sequence of such pages, labelled Lead<counter>. In \@output
page a counter keeps track of which Lead page should be set up. A page setup
will be done if necessary.
This change interacts with multicol, see previous item.
Note also, that blank pages, caused by explicit page-breaks of number
continuating properties, will be detected as blank pages, and hence react to
the blank-or-not-blank attribute.
3. Implementation of xsl-footnote-separator
A rather crude implementation, by storing the static content of
xsl-footnote-separator in the macro \footnoterule, and adjusting the
\skip\footins too match the height+ depth of the new \footnoterule.
4. Enabling footnotes in tables
Footnotes in tables work. This is done by saving footnotes insides tables
into a tokenlist \BoxedFootnotes, doing the corresponding \insert-s at the
end of the table.

CAVEAT: this is not reallly a nice implementation: if the table breaks
across pages, the footnotetexts will not appear on the same page as the
footnotemarks.
5. Vertical align in tables
If I work with an explicit line-height, the vertical space allocation for
the first and last row of a table comes out wrong. Also, when there is a
line-break inside a cell, the cell-height comes out too small. Something
gets discarded. I have made some changes to the interlineskip (following the
TeXBook definition of \offinterlineskip), in order to fix this, but I have
not succeeded completely.
6. Inheriting table-cell properties from table-column
According to XSL-FO table-cells my inherit properties from corresponding
table-columns by using
att-x="from-column(att-x)"
PassiveTeX only implements inheritance of column-width and column-number,
without the need to use from-column("column-width").
I have made only an adhoc improvement: text-align will be inherited from the
column, and it happens automatically, without using from-column(text-align).
I have done this with the Array implementation, used for column-width and
column-number. More properties can added easily. It should not be too
difficult to implement from-column(att-x) for a fixed set of attributes, but
implementing this for all possible attributes is more difficult.
7. vskip vs kern
In the code for typesetting blocks, I have changed some vskips in kern,
because I trust the kern better than te vskip (kerns will not be discarded,
vskips might be, and I am not completely sure about the conditions).
8. Bug in FOBoxedBlock
There is some weird code at the start of \FOBoxedBlock (see comments in
fotex.sty at that point).
I have also added some \relax calls after assignments to be sure that the
text after \fi etc is not gobbled up by the preceding assignment.
9. Percenttests
I have increased the use of percented attribute values. Also, \percenttest
was not always able to see the % character, because it was still unexpanded
when fed to it. I have changed that, so that any percent in the
attributetext is surely expanded to a % with catcode 12 before being fed to
percenttest.
(Mostly % appears as an active char, and by means of a limitied-scope
definition of % to be % with catcode 12, this case will be brought to meet
the assumption).
10. Overline
I have added the overline formatting for inlines, but not nearly as nice as
the underline of ulem.sty. I just needed it in simple cases, so I took the
easy option.
11. Pagenumber filtering
The algorithm to filter page number sequences generated by indexes (a very
nice feature of passivetex, by the way), had a few obvious mistakes. I have
corrected them.
12. Horizontal alignment
There were still some problems with alignment, I made some corrections to
\FOOutputblock in fotex.sty.
See also mlnames.sty, definition of \Q@end
13 Page breaks
In \FONormalBlcok I found that a \penalty -\@M did not generate a page
break, so I changed it to \newpage (a few times). (see also changes in
\FOEndBlockTwo
14 Sub- Superscript
PassiveTeX adjusted the fontsize of sub/superscripts, but this should be
governed by the fo-tree.
So I adjusted \textsub/superscript in fotex.sty
15 Dimensions of the page
Page dimensions now work additive, more according to the XSL-FO spec.
16 attribute="inherit"
Now the inherit mechanism can also be triggered by the explicit value of
"inherit". This was achieved by redefining a macro of xmltex: \XML@attrib@x
(in fotex.xmt)
17. fo:external-graphic
scale-to-fit behaviour modified: scaled to the local container instead of
the page (hsize, vsize instead of linewidth, textheight)
18. fo:leader implemetation improved
The code for fo:leader in xmt has been improved
19. fo-retrieve-marker
Some trivial improvements in the code of fo:retrieve-marker
20. More unicode characters
Added definitions for unicode &#x2000; and &#x2001 (em and n squares) in
ucharacters.sty
A. Nested fo:block in fo:table-cell
Something goes wrong with <fo:table-cell><fo:block><fo:block>.
The count \FOinTable records whether we are inside a table. But I think that
it should also record wheter we are immediately below a <fo:table-cell> or
deeper. But I have not found out what to do in the latter case ...