|
Packit |
327903 |
1. Facilitating <fo:block span="all">
|
|
Packit |
327903 |
FOTEX.XMT
|
|
Packit |
327903 |
in \XMLelement{fo:block}: detect the span="all" attribute and if so, end
|
|
Packit |
327903 |
multicol layout before (if present), and resume multicol layout (if there
|
|
Packit |
327903 |
was one) after.
|
|
Packit |
327903 |
FOTEX.STY
|
|
Packit |
327903 |
new user-interface macros for loading nomulticols.sty if present, otherwise
|
|
Packit |
327903 |
resorting to multicols, if present, otherwise defining a fake multicols
|
|
Packit |
327903 |
environment. If nomulticols could not be loaded, care is taken that fo:block
|
|
Packit |
327903 |
span="all" is disabled, otherwise the TeX run will fail.
|
|
Packit |
327903 |
In \@outputpage, call refreshmulticols, which will possibly refresh the
|
|
Packit |
327903 |
multicol layout.
|
|
Packit |
327903 |
NOMULTICOL.STY
|
|
Packit |
327903 |
new file, same functionality as MULTICOL.STY, but does not use an
|
|
Packit |
327903 |
environment. With some extra macros to interrupt a multicolumnlayout. It is
|
|
Packit |
327903 |
now possible to say
|
|
Packit |
327903 |
|
|
Packit |
327903 |
begin multicol layout
|
|
Packit |
327903 |
start group
|
|
Packit |
327903 |
*1*
|
|
Packit |
327903 |
start group
|
|
Packit |
327903 |
end multicol layout *2*
|
|
Packit |
327903 |
start group
|
|
Packit |
327903 |
do something interesting
|
|
Packit |
327903 |
end group
|
|
Packit |
327903 |
begin multicol layout *4*
|
|
Packit |
327903 |
end group
|
|
Packit |
327903 |
*3*
|
|
Packit |
327903 |
end group
|
|
Packit |
327903 |
end multicol layout
|
|
Packit |
327903 |
|
|
Packit |
327903 |
CAVEAT 1: a lot of assignments of nomulticol have been made global, may be
|
|
Packit |
327903 |
too much. For example, if something is set at point *1*, it should be
|
|
Packit |
327903 |
restored at point *3*, but if this thing is also set by nomulticol, it will
|
|
Packit |
327903 |
undergo a global change at point *2* and/or *4*, and hence will not be
|
|
Packit |
327903 |
restored by TeX's grouping mechanism anymore.
|
|
Packit |
327903 |
So may be it is needed to carefully discriminate between counts, dimens,
|
|
Packit |
327903 |
boxes, and macros that are particular to multicol (the should be treated
|
|
Packit |
327903 |
wholly globally), and the (La)TeX-quantities that are dependent on them, and
|
|
Packit |
327903 |
they might be set locally.
|
|
Packit |
327903 |
|
|
Packit |
327903 |
CAVEAT 2: care must be taken that nomulticol interacts well with an other
|
|
Packit |
327903 |
change by me: every time a page is output, a fresh page setup will be
|
|
Packit |
327903 |
computed, if necessary. After this page setup, the multicol environment must
|
|
Packit |
327903 |
be refreshed (if it was in force). But refreshing should not occur twice in
|
|
Packit |
327903 |
a row for the same page. Although it seems that I have succeeded in
|
|
Packit |
327903 |
preventing this double refreshment, I still wonder why it can occur at the
|
|
Packit |
327903 |
first place.
|
|
Packit |
327903 |
2. Facilitating multiple special pages
|
|
Packit |
327903 |
XSL-FO facilitates the specification of a sequence of special pages before
|
|
Packit |
327903 |
an unbounded, repeating page sequence starts.
|
|
Packit |
327903 |
PassiveTeX only allowed one special page, labelled First. I allow for the
|
|
Packit |
327903 |
definition of a sequence of such pages, labelled Lead<counter>. In \@output
|
|
Packit |
327903 |
page a counter keeps track of which Lead page should be set up. A page setup
|
|
Packit |
327903 |
will be done if necessary.
|
|
Packit |
327903 |
This change interacts with multicol, see previous item.
|
|
Packit |
327903 |
Note also, that blank pages, caused by explicit page-breaks of number
|
|
Packit |
327903 |
continuating properties, will be detected as blank pages, and hence react to
|
|
Packit |
327903 |
the blank-or-not-blank attribute.
|
|
Packit |
327903 |
3. Implementation of xsl-footnote-separator
|
|
Packit |
327903 |
A rather crude implementation, by storing the static content of
|
|
Packit |
327903 |
xsl-footnote-separator in the macro \footnoterule, and adjusting the
|
|
Packit |
327903 |
\skip\footins too match the height+ depth of the new \footnoterule.
|
|
Packit |
327903 |
4. Enabling footnotes in tables
|
|
Packit |
327903 |
Footnotes in tables work. This is done by saving footnotes insides tables
|
|
Packit |
327903 |
into a tokenlist \BoxedFootnotes, doing the corresponding \insert-s at the
|
|
Packit |
327903 |
end of the table.
|
|
Packit |
327903 |
|
|
Packit |
327903 |
CAVEAT: this is not reallly a nice implementation: if the table breaks
|
|
Packit |
327903 |
across pages, the footnotetexts will not appear on the same page as the
|
|
Packit |
327903 |
footnotemarks.
|
|
Packit |
327903 |
5. Vertical align in tables
|
|
Packit |
327903 |
If I work with an explicit line-height, the vertical space allocation for
|
|
Packit |
327903 |
the first and last row of a table comes out wrong. Also, when there is a
|
|
Packit |
327903 |
line-break inside a cell, the cell-height comes out too small. Something
|
|
Packit |
327903 |
gets discarded. I have made some changes to the interlineskip (following the
|
|
Packit |
327903 |
TeXBook definition of \offinterlineskip), in order to fix this, but I have
|
|
Packit |
327903 |
not succeeded completely.
|
|
Packit |
327903 |
6. Inheriting table-cell properties from table-column
|
|
Packit |
327903 |
According to XSL-FO table-cells my inherit properties from corresponding
|
|
Packit |
327903 |
table-columns by using
|
|
Packit |
327903 |
att-x="from-column(att-x)"
|
|
Packit |
327903 |
PassiveTeX only implements inheritance of column-width and column-number,
|
|
Packit |
327903 |
without the need to use from-column("column-width").
|
|
Packit |
327903 |
I have made only an adhoc improvement: text-align will be inherited from the
|
|
Packit |
327903 |
column, and it happens automatically, without using from-column(text-align).
|
|
Packit |
327903 |
I have done this with the Array implementation, used for column-width and
|
|
Packit |
327903 |
column-number. More properties can added easily. It should not be too
|
|
Packit |
327903 |
difficult to implement from-column(att-x) for a fixed set of attributes, but
|
|
Packit |
327903 |
implementing this for all possible attributes is more difficult.
|
|
Packit |
327903 |
7. vskip vs kern
|
|
Packit |
327903 |
In the code for typesetting blocks, I have changed some vskips in kern,
|
|
Packit |
327903 |
because I trust the kern better than te vskip (kerns will not be discarded,
|
|
Packit |
327903 |
vskips might be, and I am not completely sure about the conditions).
|
|
Packit |
327903 |
8. Bug in FOBoxedBlock
|
|
Packit |
327903 |
There is some weird code at the start of \FOBoxedBlock (see comments in
|
|
Packit |
327903 |
fotex.sty at that point).
|
|
Packit |
327903 |
I have also added some \relax calls after assignments to be sure that the
|
|
Packit |
327903 |
text after \fi etc is not gobbled up by the preceding assignment.
|
|
Packit |
327903 |
9. Percenttests
|
|
Packit |
327903 |
I have increased the use of percented attribute values. Also, \percenttest
|
|
Packit |
327903 |
was not always able to see the % character, because it was still unexpanded
|
|
Packit |
327903 |
when fed to it. I have changed that, so that any percent in the
|
|
Packit |
327903 |
attributetext is surely expanded to a % with catcode 12 before being fed to
|
|
Packit |
327903 |
percenttest.
|
|
Packit |
327903 |
(Mostly % appears as an active char, and by means of a limitied-scope
|
|
Packit |
327903 |
definition of % to be % with catcode 12, this case will be brought to meet
|
|
Packit |
327903 |
the assumption).
|
|
Packit |
327903 |
10. Overline
|
|
Packit |
327903 |
I have added the overline formatting for inlines, but not nearly as nice as
|
|
Packit |
327903 |
the underline of ulem.sty. I just needed it in simple cases, so I took the
|
|
Packit |
327903 |
easy option.
|
|
Packit |
327903 |
11. Pagenumber filtering
|
|
Packit |
327903 |
The algorithm to filter page number sequences generated by indexes (a very
|
|
Packit |
327903 |
nice feature of passivetex, by the way), had a few obvious mistakes. I have
|
|
Packit |
327903 |
corrected them.
|
|
Packit |
327903 |
12. Horizontal alignment
|
|
Packit |
327903 |
There were still some problems with alignment, I made some corrections to
|
|
Packit |
327903 |
\FOOutputblock in fotex.sty.
|
|
Packit |
327903 |
See also mlnames.sty, definition of \Q@end
|
|
Packit |
327903 |
13 Page breaks
|
|
Packit |
327903 |
In \FONormalBlcok I found that a \penalty -\@M did not generate a page
|
|
Packit |
327903 |
break, so I changed it to \newpage (a few times). (see also changes in
|
|
Packit |
327903 |
\FOEndBlockTwo
|
|
Packit |
327903 |
14 Sub- Superscript
|
|
Packit |
327903 |
PassiveTeX adjusted the fontsize of sub/superscripts, but this should be
|
|
Packit |
327903 |
governed by the fo-tree.
|
|
Packit |
327903 |
So I adjusted \textsub/superscript in fotex.sty
|
|
Packit |
327903 |
15 Dimensions of the page
|
|
Packit |
327903 |
Page dimensions now work additive, more according to the XSL-FO spec.
|
|
Packit |
327903 |
16 attribute="inherit"
|
|
Packit |
327903 |
Now the inherit mechanism can also be triggered by the explicit value of
|
|
Packit |
327903 |
"inherit". This was achieved by redefining a macro of xmltex: \XML@attrib@x
|
|
Packit |
327903 |
(in fotex.xmt)
|
|
Packit |
327903 |
17. fo:external-graphic
|
|
Packit |
327903 |
scale-to-fit behaviour modified: scaled to the local container instead of
|
|
Packit |
327903 |
the page (hsize, vsize instead of linewidth, textheight)
|
|
Packit |
327903 |
18. fo:leader implemetation improved
|
|
Packit |
327903 |
The code for fo:leader in xmt has been improved
|
|
Packit |
327903 |
19. fo-retrieve-marker
|
|
Packit |
327903 |
Some trivial improvements in the code of fo:retrieve-marker
|
|
Packit |
327903 |
20. More unicode characters
|
|
Packit |
327903 |
Added definitions for unicode and   (em and n squares) in
|
|
Packit |
327903 |
ucharacters.sty
|
|
Packit |
327903 |
A. Nested fo:block in fo:table-cell
|
|
Packit |
327903 |
Something goes wrong with <fo:table-cell><fo:block><fo:block>.
|
|
Packit |
327903 |
The count \FOinTable records whether we are inside a table. But I think that
|
|
Packit |
327903 |
it should also record wheter we are immediately below a <fo:table-cell> or
|
|
Packit |
327903 |
deeper. But I have not found out what to do in the latter case ...
|
|
Packit |
327903 |
|