This is the mail archive of the
docbook-apps@lists.oasis-open.org
mailing list .
Re: [docbook-apps] XInclude, chapter headers & changing font size in <appendix>
- From: Bob Stayton <bobs at sco dot com>
- To: Alex L <alexl at users dot sourceforge dot net>
- Cc: docbook-apps at lists dot oasis-open dot org
- Date: Wed, 22 Oct 2003 09:40:43 -0700
- Subject: Re: [docbook-apps] XInclude, chapter headers & changing font size in <appendix>
- References: <0j65ihl7u0.fsf@allele2.biol.berkeley.edu>
On Wed, Oct 22, 2003 at 06:28:55AM -0700, Alex L wrote:
> (Apologies if you get multiple copies of this message, I had to
> resubscribe to the list and resend the message).
>
> Hi folks,
>
> Long time, no post. I have three separate questions for the list (I
> checked all various FAQs, mailing list archives etc, and couldn't find
> much on these issues):
>
> 1. Is it possible to XInclude a fragment (using xpointer) from your
> current document, or is that considered illegal in XInclude syntax,
> I couldn't easily tell from the spec, e.g. if my document is
> called bar.xml:
>
> <para id="foo">Blah blah</para>
> <xi:include href="bar.xml#xpointer(//para[id='foo'])"/>
> <para>Rhubarb, rhubarb</para>
>
> I guessing it's invalid (xsltproc says "recursion detected"), but I
> just want to make sure it's not something in the way I'm trying to
> do this. Any other workarounds welcome. I'm trying to avoid
> having to create an entirely separate document with the
> common/repeated text, it would be nice to simply reuse paras from a
> previous part of the document.
Daniel answered this one.
> 2. I can see how to customize the XSL-FO stylesheets so that I get
> running chapter headers with numbers as I do for titlepages. e.g. I
> have a document like:
>
> <chapter>
> <title>FooBar is frobnicatious</title><titleabbrev>FooBar</titleabbrev>
>
> and I can get to the running header to appear as either
>
> "Chapter 1: FooBar is frobnicatious",
> "FooBar", but not
> "Chapter 1: FooBar"
>
> I did this using Bob's excellent book (which I'm ordering real
> soon), here: http://www.sagehill.net/docbookxsl/PrintHeaders.html
> and used object.titlemarkup to switch from the first to the second
> style, but can't get the third. It seems that Chapter %n +
> titleabbrev is mutually exclusive. How would one go about getting
> the "Chapter %n" + <titleabbrev> rather than the "Chapter 1 %n"
> <title> full title case? Is this simply a feature that would need
> to be added?
The foresightful Norm has provided another template named
'object.titleabbrev.markup' for that purpose.
Unfortunately, it doesn't do what I would expect, which
is to output the number label and abbreviated title.
Instead, it just outputs the abbreviated title.
Since the titleabbrev.markup template already does that,
I think object.titleabbrev.markup should add the label.
You can use this customization of it, and I'll investigate
putting this in the stylesheet distribution:
<xsl:template match="*" mode="object.titleabbrev.markup">
<xsl:param name="allow-anchors" select="0"/>
<xsl:variable name="template">
<xsl:apply-templates select="." mode="object.title.template"/>
</xsl:variable>
<xsl:call-template name="substitute-markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
<xsl:with-param name="template" select="$template"/>
<xsl:with-param name="title">
<xsl:apply-templates select="." mode="titleabbrev.markup">
<xsl:with-param name="allow-anchors" select="$allow-anchors"/>
</xsl:apply-templates>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
> 3. In the XSL-FO DocBook stylesheets, I want to display all the body
> text of a particular component-level element, for example
> <appendix> and other backmatter, in a smaller font from the main
> body font (say 7pt). I thought I could use pagemasters to do this
> and following Bob's instructions at::
> http://sagehill.net/docbookxsl/PageDesign.html
>
> I attempted to customize the "back" matter pagemasters
> fo:region-body elements something like this:
>
> <fo:simple-page-master master-name="my-back-odd"
> [...]
> <fo:region-body margin-bottom="{$body.margin.bottom}"
> margin-top="{$body.margin.top}"
> font-size="7pt"
> column-count="{$column.count.back}">
> </fo:region-body>
> [...]
> </fo:simple-page-master>
>
> I verified that all this gets passed through to the FO output fine
> following Bob's instructions, unfortunately it has no effect
> whatsoever in the PassiveTeX backend. I'm guessing that this is
> just simply not how the semantics of FO are supposed to work and
> that you would need to customize the <fo:block> or somesuch. But I
> thought that it might just be a backend issue with PassiveTeX.
The fo:region-body element in XSL-FO does not take
inheritable properties like font-size. It has
to go on either fo:page-sequence or fo:flow.
Those are both initiated by the content templates,
not the page setup templates. That means you need to
customize the appendix template, etc.
There is actually a DTD for XSL-FO that RenderX makes
available. There is a browsable version of the DTD at:
http://www.sagehill.net/livedtd/xslfo/index.html
There you can see what attributes each fo element can take.
--
Bob Stayton 400 Encinal Street
Publications Architect Santa Cruz, CA 95060
Technical Publications voice: (831) 427-7796
The SCO Group fax: (831) 429-1887
email: bobs@sco.com
To unsubscribe from this list, send a post to docbook-apps-unsubscribe@lists.oasis-open.org, or visit http://www.oasis-open.org/mlmanage/.