[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: DOCBOOK-APPS: Re: Q's:Adding affiliation to authorgroup template
I had only looked at my customization layer and not tried that myself. Sorry for that. The error was (as Bob pointed out) that affiliation is a child of author. So you need to include both author and affiliation. Additionally you need to provide a custom version of affiliation for the titlepage which why included it in the customization layer. I think it is fine to use the attribute 'predicate' since: Each element may have a single attribute: predicate. The value of this attribute is used as a predicate for the expression that matches the element on which it occurs. (From Norm's documentation) You may take a look at the template and the customization layer enclosed. They work for me. Hope this helps Martin title-sample.xml <?xml version="1.0"?> <t:templates xmlns:t="http://nwalsh.com/docbook/xsl/template/1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <t:titlepage element="book" wrapper="fo:block"> <t:titlepage-content side="recto" order="stylesheet"> <title predicate="[1]" fo:font-size="24pt" fo:font-family="{$title.font.family}" fo:font-weight="bold" fo:space-before.optimum="2cm" fo:space-before.minimum="1.8cm" fo:space-before.maximum="2.2cm" fo:text-align="center" fo:hyphenate="false" fo:keep-with-next.within-column="always"/> <authorgroup predicate="/author/affiliation"/> </t:titlepage-content> </t:titlepage> </t:templates> and the customization layer <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:saxon="http://icl.com/saxon" version="1.0"> <xsl:import href="../docbook-xsl-1.57.0/fo/docbook.xsl"/> <!-- customized titlepages --> <xsl:include href="title-sample.xsl"/> <!-- indent output --> <xsl:output method="xml" indent="yes" encoding="ISO-8859-1" saxon:next-in-chain="table-patch-for-fop.xsl"/> <!-- orgname on titlepage --> <xsl:template match="affiliation" mode="book.titlepage.recto.auto.mode"> <fo:block font-size="16pt" font-family="{$title.font.family}" font-weight="bold" text-align="center" hyphenate="false" keep-with-next.within-column="always"> <xsl:value-of select="orgname"/> </fo:block> </xsl:template> <xsl:param name="use.extensions" select="1"/> </xsl:stylesheet> ----- Original Message ----- From: "Bob Stayton" <bobs@caldera.com> To: "Val Schmidt" <vschmidt@ldeo.columbia.edu>; "Martin Stemplinger" <mstemplinger@gmx.de> Cc: <docbook-apps@lists.oasis-open.org> Sent: Wednesday, November 06, 2002 6:12 AM Subject: Re: DOCBOOK-APPS: Re: Q's:Adding affiliation to authorgroup template > On Tue, Nov 05, 2002 at 06:12:48PM -0500, Val Schmidt wrote: > > Hmmm. > > > > Do you have your "author" elements embedded in "authorgroup" tags in > > your source xml? > > > > I do, the result is that the <authorgroup/> > > portion of the template is all that produces stylesheet code that > > impacts the style and format of the authors. > > > > I stuck the "predicate" line into the authorgroup tag with no results. > > I removed it and then added a second <authorgroup > > predicate="/affiliation"/> below it. It generated this: > > _____________________ > > <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > mode="book.titlepage.recto.auto.mode" select="bookinfo/authorgroup"/> > > > > <xsl:apply-templates xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > mode="book.titlepage.recto.auto.mode" > > select="bookinfo/authorgroup/affiliation"/> > > ______________________ > > This looks promising but again doesn't work. > > > > I'm afraid I'm stabbing in the dark. > > > > Do I need to rewrite the authorgroup template? (Yikes!) > > > > Val > > > > On Tue, 2002-11-05 at 17:24, Martin Stemplinger wrote: > > > Hi Val, > > > > > > AFAIK you need to add an attribute "predicate" to the author in your > > > template > > > > > > <author predicate="/affiliation" > > > fo:font-size="&hsize3;" > > > fo:space-before="&hsize2space;" > > > fo:keep-with-next="always"/> > > > > > > At least this works for me to add the latest revision number on the title > > > page. > > > > > Well, the 'predicate' attribute is normally used to > add a square bracket XSL predicate like [@role = 'foo'] > to an element to > modify the selection pattern. The fact that it is > simply appended to the element name means a value > like '/affiliation' might work in some cases to > select a child element. But not in this case, since > the affiliation is the child of author, not authorgroup. > > In general, the titlepage.template.xml file specifies > a flat order for items to appear on a title page. > Any internal structure for one of the elements > needs to be handled by the template assigned to it. > In this case, it is the authorgroup template that > needs to handle its authors and affiliations. > > It turns out that Norm wrote a special template for > authorgroup just for books, and it doesn't include > affiliation. You'll have to ask him why. It's in > fo/titlepage.xsl and starts with: > > <xsl:template match="bookinfo/authorgroup" mode="titlepage.mode" priority="2"> > ... > > But there is another more generic template that > you might like, and you don't have to write it. > It is in fo/titlepage.xsl and starts with: > > <xsl:template match="authorgroup" mode="titlepage.mode"> > ... > > If you copy that template to your customization layer, > you will get a stack of authors and affiliations on > your title page. > > In your customization, you should probably change the first > line to use this mode: > > <xsl:template match="authorgroup" mode="book.titlepage.recto.mode"> > > That mode means it will only be used for book recto title > pages, and not other title pages. > > The title page stuff is one of the most complex parts of > the DocBook XSL stylesheets. I've written some doc on > them at: > > http://www.sagehill.net/xml/docbookxsl/PrintCustomEx.html#TitlePagePrint > > It includes a listing of the sequence of templates used to > produce a book title page. > -- > > Bob Stayton 400 Encinal Street > Publications Architect Santa Cruz, CA 95060 > Technical Publications voice: (831) 427-7796 > Caldera International, Inc. fax: (831) 429-1887 > email: bobs@caldera.com >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC