[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Trying to Achieve inside/outside offset column layouts

Subject: Trying to Achieve inside/outside offset column layouts: any thoughts?
From: "W. Eliot Kimber" <ekimber@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 13 Jan 2005 18:53:52 -0600
kimber 14
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.