RE: [xsl] Trying to Achieve inside/outside offset column layouts: any thoughts?

Subject: RE: [xsl] Trying to Achieve inside/outside offset column layouts: any thoughts?
From: "Peter kester" <peter.kester@xxxxxxxxxxx>
Date: Fri, 14 Jan 2005 12:06:49 +0100
Hello E.

Try the following link and lookup the section about marginalia. This should
do the trick for you. We have used it very often and it works like a charm.

Regs,

Peter K.

-----Oorspronkelijk bericht-----
Van: W. Eliot Kimber [mailto:ekimber@xxxxxxxxxxxxxxxxxxx] 
Verzonden: Friday, January 14, 2005 01:54
Aan: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Onderwerp: [xsl] Trying to Achieve inside/outside offset column layouts: any
thoughts?

I just spent most of the day trying my best to use XSL-FO to recreate as
best I could a document that uses what I call inside/outside offset-column
layout (there may be a more precise term used among graphic designers).

This is the type of document where there is one main body column and an
"offset" column that typically takes up about 1/4 to 1/3 of the total page
width. The offset column is positioned on the outside edge of the page, so
for left-to-right writing mode, the offset column is on the right on odd
pages and on the left on even pages. The offset column is used for
marginalia, such as tips, admonitions, quotes, little graphics, and so on.

Using XSL-FO 1.0 (or 1.1 as currently drafted) there is no way at all to
achieve this layout as far as I can tell *if you want to put stuff in the
margins*. If you just want the offset column but don't need to put anything
in the margin, then there's no problem--you just need different left and
right margins for your region body's on your even and odd page masters.

If the offest column is always on the same side (e.g., always left for
left-to-right writing mode) there's no problem. You can use side floats with
negative left margins to pull the floats into the offset margin.

However, if you want the inside/outside layout and marginalia then I don't
see any solution.

XSL Formatter's float="inside|outside" extension gets you part of the way
because it lets you at least float to the appropriate edge of the page.
However, you would still need to know what the page parity was in order to
set the appropriate negative margin, which of course you normally don't
know.

The only solution I can think of would be to extend the current set of
margin, border, padding, and space properties to include inside and outside
versions (as well as adding "inside" and "outside" for float= as XSL
Formatter has done). For example, given the inside/outside page layout
described above, I could create a "margin area" side float like this (in
this example, assume the offset margin width is 3 inches):

<fo:block>
   <fo:float float="outside">
     <fo:block margin-outside="-3in">
     This is my marginalia block
     </fo:block>
   </fo:float>This is the contents of my body paragraph.
</fo:block>

So simple, so easy.

But of course no FO implementors have implemented these extensions, as far
as I know.

So my questions:

1. Have I missed some way to do this in FO or with any vendor-specific
extensions? (I've focused on XSL Formatter for this task simply because they
do inside/outside floats and XEP does not).

2. Can anyone see a serious implementation problem with adding
inside/outside versions of the relevant properties? I'm not an FO engine
implementor so I have no solid basis for estimating implementation cost.

Cheers,

E.
--
W. Eliot Kimber
Professional Services
Innodata Isogen
9390 Research Blvd, #410
Austin, TX 78759
(512) 372-8122

ekimber@xxxxxxxxxxxxxxxxxxx
www.innodata-isogen.com

Current Thread