OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [docbook-apps] PDF Output: calling a different page master for a specific element


Well, section.container.element approach worked like a charm. Thanks Bob!

For the sake of simplicity, I modified the section template to use the RenderX extension and I'll tell the authors to locate the tables in question in standalone sections.

Nice to know about PSMI approach; I'll be writing some layout-intensive publishing scripts from scratch later this year and that looks very well suited to the task.

Cheers,
Jeff.

-----Original Message-----
From: Bob Stayton [mailto:bobs@sagehill.net] 
Sent: September-05-13 9:27 AM
To: Jeff Hooker; docbook-apps@lists.oasis-open.org
Subject: Re: [docbook-apps] PDF Output: calling a different page master for a specific element

Hi Jeff,
Your requirement is not unusual, but the XSL-FO standard was not written to allow nested page-sequences. The extensions developed by XEP and Antenna House try to correct for that limitation.  A new page-sequence always starts a new page, so DocBook XSL does not allow that in the middle of a chapter or section where you want content to flow.  Also, it is tricky in XSLT to convert a hierarchy into a flat sequence for arbitrary depths of nesting.

One option you could try is to set the stylesheet param 'section.container.element' from block to wrapper.  Then section will not start a new block.  If your content is a direct child of chapter or section (not in a para), then the table will be a direct child of the flow.  See this section for more information:

http://www.sagehill.net/docbookxsl/MultiColumns.html#PageColSpans

Otherwise, you'll need to look at PSMI.  Restarting a flow in the middle of 
a page-sequence is what the PSMI scheme does.   It terminates one page 
sequence, inserts a new one for the table, and then restarts the previous page-sequence with the rest of the material.  It's quite brilliant, and actually works.

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net

--------------------------------------------------
From: "Jeff Hooker" <Jeff.Hooker@pmcs.com>
Sent: Thursday, September 05, 2013 9:03 AM
To: "Bob Stayton" <bobs@sagehill.net>; <docbook-apps@lists.oasis-open.org>
Subject: RE: [docbook-apps] PDF Output: calling a different page master for a specific element

> Hi Bob,
>
> I'm using XEP, so the rx:flow-section container is available to me. 
> The RenderX docs, though state that is must be a direct child of 
> fo:flow, which brings me back to only being able to inflict my will on 
> children of the root node rather than their descendants, and the 
> elements I want to format could be buried an any depth in the document.
>
> This is the same issue I have with the approach in Docbook XSL; it 
> appears to be limited to calling custom page masters at the same point 
> that normal page-sequence-masters would be called, which I'm sure is 
> useful, just not in my context.
>
> I have successfully set up page masters and had them applied to the 
> elements of the document that matter to me, but I'm still doing 
> something wrong because XEP simply drops them from the document. I can 
> see them in FO, but not in the PDF. I think my misunderstanding could 
> be in how to restart a flow; restarting the flow is necessary for 
> changing page-squence-masters, correct?
>
> I feel like I must be missing something basic here. Is this 
> requirement really so unusual?
>
> Cheers,
> Jeff.
>
> -----Original Message-----
> From: Bob Stayton [mailto:bobs@sagehill.net]
> Sent: September-04-13 3:02 PM
> To: Jeff Hooker; docbook-apps@lists.oasis-open.org
> Subject: Re: [docbook-apps] PDF Output: calling a different page 
> master for a specific element
>
> Hi Jeff,
> If you are using XEP for your XSL-FO processor, you can use the 
> rx:flow-section extension element provided by RenderX that is like a 
> block that supports multiple columns.
>
> If you are using Antenna House, you can use their extension that 
> allows a axf:column-count property on an fo:block-container.
>
> If you are using FOP, it is possible, but not easy.  As you found, the 
> basic problem is that the page column layout is defined in the 
> page-master, but you can only change page-masters when you start a new 
> page-sequence. But chapters start new page-sequences, not tables.
>
> There is a workaround for FOP. G. Ken Holman of Crane Softwrights Ltd. 
> has published a method for breaking up a single page-sequence into multiple
> page-sequences with different masters.   His Page Sequence Master 
> Interleave
> (PSMI) method introduces an intermediate XSL process to rearrange the 
> pages in an FO file. PSMI is described at 
> http://www.cranesoftwrights.com/resources/psmi/index.htm.
>
> Bob Stayton
> Sagehill Enterprises
> bobs@sagehill.net
>
> --------------------------------------------------
> From: "Jeff Hooker" <Jeff.Hooker@pmcs.com>
> Sent: Wednesday, September 04, 2013 2:36 PM
> To: <docbook-apps@lists.oasis-open.org>
> Subject: [docbook-apps] PDF Output: calling a different page master 
> for a specific element
>
>> Hi all,
>>
>> I'd like to call a specific page master for an element that contains 
>> a specific attribute value. Essentially, if for long, narrow tables I 
>> want to be able to call a three-column page master that prevents it 
>> from flowing over a 100 pages when 33 would do. I'm having issues 
>> figuring out how to call the new master, and a certain degree of 
>> difficulty understanding the exact hierarchy I'm working with here.
>>
>> I've been puzzling over the references in Docbook XSL trying to 
>> understand how to apply them to this case, but have so far come up 
>> dry. Has anyone written up a good explanation of this somewhere?
>>
>> Cheers,
>> Jeff.
>>
> 


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]