This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [docbook-apps] Creating "animations" figure subclass


Yeah, there are quite a lot of templates involved in generating titles.  But
the one you want is the template with mode 'label.markup'.  That is the
template that generates the number label for an element.  In
common/labels.xsl, you will find this template which generates the number
for figure and other formal elements:

<xsl:template match="figure|table|example|procedure" mode="label.markup">

Since this is called via an apply-templates in that mode, you can add
another template to your customization layer with a better match in that
mode to output the number you want:

<xsl:template match="figure[@role='animation']" mode="label.markup">

A figure without that role should get the old template.  You will want to
customize that template as well because it is counting all figures, and you
want it to not include figures with that role.

Or you could do a template like this:

<xsl:template match="figure" mode="label.markup" priority="2">

and let it handle both regular figures and those with the role using a
choose statement.

Bob Stayton
Sagehill Enterprises
DocBook Consulting
bobs@sagehill.net


----- Original Message ----- 
From: "Aidan Lister" <aidanis@gmail.com>
To: "Bob Stayton" <bobs@sagehill.net>; <docbook-apps@lists.oasis-open.org>
Sent: Monday, December 13, 2004 8:51 PM
Subject: Re: [docbook-apps] Creating "animations" figure subclass


> Hi List,
>
> Where can I change the behaviour of the counter for my animations
subclass?
>
> For example, if I have <figure> ... </figure> it will be numerated
> "1". If I then have <figure role="animation"> .. </figure> it will be
> numerated "2", though I'd like to make it "1". I suppose I could use
> the label attribute, but this is less desirable.
>
> In xhtml/formal.xsl I see:
> <xsl:template name="formal.object.heading">
> ...
> <xsl:apply-templates select="$object" mode="object.title.markup">
>
> The title ("Figure 1. Some figure") is retrieved there, following
> further I find:
>
> <xsl:when test="$candidate = 'n'"> in gentext.xsl.
>
> This then calls
>
>  <xsl:apply-templates select="." mode="insert.label.markup">
>
> However that's where I lose it, as this template is only defined in
> xref.xsl and has nothing to do with incrementing a variable (or
> calling position())
>
> Any help appreciated.
>
> Regards,
> Aidan
>
>
>
> On Thu, 9 Dec 2004 00:18:30 +1100, Aidan Lister <aidanis@gmail.com> wrote:
> > Ahh, excellent, I lost it at:
> >
> >  <xsl:template match="*" mode="object.title.markup">  in
common/gentext.xsl
> >
> > I created a template as follows:
> >
> > <xsl:template match="figure[@role='animation']"
mode="object.title.template">
> >   <xsl:call-template name="gentext.template">
> >     <xsl:with-param name="context" select="'title'"/>
> >     <xsl:with-param name="name">animation</xsl:with-param>
> >   </xsl:call-template>
> > </xsl:template>
> >
> > It works perfectly, thanks for the help.
> >
> > Kind regards,
> > Aidan
> >
> >
> >
> >
> > On Wed, 8 Dec 2004 01:09:43 -0800, Bob Stayton <bobs@sagehill.net>
wrote:
> > > OK.  The sequence of templates to output a figure title is:
> > >
> > >    <xsl:template match="figure">  in formal.xsl
> > >
> > > which calls:
> > >
> > >   <xsl:template name="formal.object">  in formal.xsl
> > >
> > > which calls:
> > >
> > >   <xsl:template name="formal.object.heading"/> in formal.xsl
> > >
> > > which does:
> > >
> > >    <xsl:apply-templates select="$object" mode="object.title.markup">
> > >
> > > The template that matches is:
> > >
> > >   <xsl:template match="*" mode="object.title.markup">  in
common/gentext.xsl
> > >
> > > That template then does:
> > >
> > >    <xsl:apply-templates select="." mode="object.title.template"/>
> > >
> > > The template that matches is:
> > >
> > >    <xsl:template match="*" mode="object.title.template"> in
> > > common/gentext.xsl
> > >
> > > That template calls 'gentext.template' to get the template for the
current
> > > element
> > > in the title context.  If you want it select a different gentext
template,
> > > you could create a more
> > > specific template match:
> > >
> > >    <xsl:template match="figure[@role='animation']"
> > > mode="object.title.template">
> > >
> > > and customize its behavior.
> > >
> > >
> > >
> > > Bob Stayton
> > > Sagehill Enterprises
> > > DocBook Consulting
> > > bobs@sagehill.net
> > >
> > > ----- Original Message -----
> > > From: "Aidan Lister" <aidanis@gmail.com>
> > > To: "Bob Stayton" <bobs@sagehill.net>;
<docbook-apps@lists.oasis-open.org>
> > > Sent: Tuesday, December 07, 2004 6:42 PM
> > > Subject: Re: [docbook-apps] Creating "animations" figure subclass
> > >
> > > > Hi Bob,
> > > >
> > > > I feel I've phrased my question horribly, I'll try again.
> > > >
> > > > I've successfully added separate LOT-chunk generation for
animations.
> > > > This works perfectly, everything is as it should be.
> > > >
> > > > However, I can't work out how to set the formal figure title. I.e.
the
> > > > title above each Figure in the article.
> > > >
> > > > Do you understand what I mean now? Sorry for the confusion!
> > > > Aidan
> > > >
> > > >
> > > > On Tue, 7 Dec 2004 18:36:28 -0800, Bob Stayton <bobs@sagehill.net>
wrote:
> > > > > Hi Aiden,
> > > > > OK.  But you will notice in the List of Figures that it doesn't
say
> > > "Figure"
> > > > > for each item. In fact, the TOC lines do not use the gentext
templates
> > > > > because they don't contain generated words.
> > > > >
> > > > > The template that is generating those lines in the List of Figures
is:
> > > > >
> > > > > <xsl:template match="figure|table|example|equation|procedure"
> > > mode="toc">
> > > > >
> > > > > This is in html/autotoc.xsl.  It first generates the number label
with:
> > > > >
> > > > > <xsl:apply-templates select="." mode="label.markup"/>
> > > > >
> > > > > Then it inserts the $autotoc.label.separator. Then it does:
> > > > >
> > > > > <xsl:apply-templates select="." mode="titleabbrev.markup"/>
> > > > >
> > > > > Does this help?
> > > > >
> > > > >
> > > > >
> > > > > Bob Stayton
> > > > > Sagehill Enterprises
> > > > > DocBook Consulting
> > > > > bobs@sagehill.net
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "Aidan Lister" <aidanis@gmail.com>
> > > > > To: "Bob Stayton" <bobs@sagehill.net>
> > > > > Cc: <docbook-apps@lists.oasis-open.org>
> > > > > Sent: Tuesday, December 07, 2004 6:18 PM
> > > > > Subject: Re: [docbook-apps] Creating "animations" figure subclass
> > > > >
> > > > > > Hi Bob,
> > > > > >
> > > > > > Nope, I mean the "Figure %n. %t" formal figure title. I know,
> > > > > > somewhere, the l:template name="figure" template is called to
get that
> > > > > > text, I just don't know where.
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > >
> > > > > > On Tue, 7 Dec 2004 09:22:08 -0800, Bob Stayton
<bobs@sagehill.net>
> > > wrote:
> > > > > > > Do you mean the title at the top of the list?  The lists are
> > > generated
> > > > > by
> > > > > > > the make.lots, template, which calls the list.of.titles
template,
> > > both
> > > > > in
> > > > > > > html/autotoc.xsl. In the list.of.titles template, you'll see
the
> > > choose
> > > > > > > statement to select the gentext key, where it uses keys like
> > > > > > > "ListofFigures". That's where the title comes from.
> > > > > > >
> > > > > > > Bob Stayton
> > > > > > > Sagehill Enterprises
> > > > > > > DocBook Consulting
> > > > > > > bobs@sagehill.net
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > From: "Aidan Lister" <aidanis@gmail.com>
> > > > > > > To: <docbook-apps@lists.oasis-open.org>
> > > > > > > Sent: Tuesday, December 07, 2004 7:30 AM
> > > > > > > Subject: [docbook-apps] Creating "animations" figure subclass
> > > > > > >
> > > > > > > > Hi list,
> > > > > > > >
> > > > > > > > I have many figures in my document, however some of them are
> > > > > > > > animations. I decided to use <figure role="animation" and
use the
> > > > > > > > customisation layer for the rest.
> > > > > > > >
> > > > > > > > I've successfully added separate LOT-chunk generation, but I
can't
> > > > > > > > work out how to set the title.
> > > > > > > >
> > > > > > > > I've created a new node in the gentext file (en.xml), but I
can't
> > > find
> > > > > > > > any reference to the gentext template with regard to
figures.
> > > > > > > >
> > > > > > > > If someone could tell me which file the gentext template for
> > > figures
> > > > > > > > is called, I'd be much appreciative.
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Aidan
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
>
>



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]