[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [docbook-apps] Re: sorting bibliography by authors
I have tried this FO in my template but doen't seem to do anything. The PDF result is still the same ( no change). By the way my bibliography specific customization is as follows: -------------- <!-- ****************** BIBLIOGRAPHY CUSTOMIZATION ******************** //--> <!-- Left align the bibliography so that short entries will not try to fit in whole line //--> <xsl:template match="biblioentry[ancestor::bibliography]"> <fo:block text-align="left"> <xsl:apply-imports/> </fo:block> </xsl:template> <!-- Order the Authors/Editors Name in Surname, Firstname order //--> <xsl:template match="author|editor" mode="bibliography.mode"> <fo:inline> <xsl:call-template name="person.name.last-first"/> <xsl:value-of select="$biblioentry.item.separator"/> </fo:inline> </xsl:template> <!-- For ordering the authors in Surname,Firstname which are in authorgroup other than single author //--> <xsl:template name="person.name.list"> <!-- Return a formatted string representation of the contents of the current element. The current element must contain one or more AUTHORs, CORPAUTHORs, OTHERCREDITs, and/or EDITORs. John Doe or John Doe and Jane Doe or John Doe, Jane Doe, and A. Nonymous --> <xsl:param name="person.list" select="author|corpauthor|othercredit|editor"/> <xsl:param name="person.count" select="count($person.list)"/> <xsl:param name="count" select="1"/> <xsl:choose> <xsl:when test="$count > $person.count"></xsl:when> <xsl:otherwise> <xsl:call-template name="person.name.last-first"> <xsl:with-param name="node" select="$person.list[position()=$count]"/> </xsl:call-template> <xsl:choose> <xsl:when test="$person.count = 2 and $count = 1"> <xsl:call-template name="gentext.template"> <xsl:with-param name="context" select="'authorgroup'"/> <xsl:with-param name="name" select="'sep2'"/> </xsl:call-template> </xsl:when> <xsl:when test="$person.count > 2 and $count+1 = $person.count"> <xsl:call-template name="gentext.template"> <xsl:with-param name="context" select="'authorgroup'"/> <xsl:with-param name="name" select="'seplast'"/> </xsl:call-template> </xsl:when> <xsl:when test="$count < $person.count"> <xsl:call-template name="gentext.template"> <xsl:with-param name="context" select="'authorgroup'"/> <xsl:with-param name="name" select="'sep'"/> </xsl:call-template> </xsl:when> </xsl:choose> <xsl:call-template name="person.name.list"> <xsl:with-param name="person.list" select="$person.list"/> <xsl:with-param name="person.count" select="$person.count"/> <xsl:with-param name="count" select="$count+1"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template><!-- person.name.list --> <!-- Turn off the bibliography label eg. [deepak et. al. 2002] from displaying in front of bibliogaphy entries by customizing the template to do nothing //--> <xsl:template name="biblioentry.label"> </xsl:template> ---------------------------- In this case, what other additional customization do I need for sorting the each entry by authors surname and date? Thanks for the help Deepak K. Shrestha Yoshihiro Toda wrote: > Hi, Deepak. Try these templates. > > For FO: > > <xsl:template match="bibliography"> > <xsl:variable name="id"> > <xsl:call-template name="object.id"/> > </xsl:variable> > > <xsl:choose> > <xsl:when test="not(parent::*) or parent::part or parent::book"> > <xsl:variable name="master-reference"> > <xsl:call-template name="select.pagemaster"/> > </xsl:variable> > > <fo:page-sequence hyphenate="{$hyphenate}" > master-reference="{$master-reference}"> > <xsl:attribute name="language"> > <xsl:call-template name="l10n.language"/> > </xsl:attribute> > <xsl:attribute name="format"> > <xsl:call-template name="page.number.format"> > <xsl:with-param name="master-reference" select="$master-reference"/> > </xsl:call-template> > </xsl:attribute> > <xsl:attribute name="initial-page-number"> > <xsl:call-template name="initial.page.number"> > <xsl:with-param name="master-reference" select="$master-reference"/> > </xsl:call-template> > </xsl:attribute> > <xsl:attribute name="force-page-count"> > <xsl:call-template name="force.page.count"> > <xsl:with-param name="master-reference" select="$master-reference"/> > </xsl:call-template> > </xsl:attribute> > <xsl:attribute name="hyphenation-character"> > <xsl:call-template name="gentext"> > <xsl:with-param name="key" select="'hyphenation-character'"/> > </xsl:call-template> > </xsl:attribute> > <xsl:attribute name="hyphenation-push-character-count"> > <xsl:call-template name="gentext"> > <xsl:with-param name="key" select="'hyphenation-push-character-count'"/> > </xsl:call-template> > </xsl:attribute> > <xsl:attribute name="hyphenation-remain-character-count"> > <xsl:call-template name="gentext"> > <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/> > </xsl:call-template> > </xsl:attribute> > > <xsl:apply-templates select="." mode="running.head.mode"> > <xsl:with-param name="master-reference" select="$master-reference"/> > </xsl:apply-templates> > <xsl:apply-templates select="." mode="running.foot.mode"> > <xsl:with-param name="master-reference" select="$master-reference"/> > </xsl:apply-templates> > > <fo:flow flow-name="xsl-region-body"> > <fo:block id="{$id}"> > <xsl:call-template name="bibliography.titlepage"/> > </fo:block> > <xsl:apply-templates/> > </fo:flow> > </fo:page-sequence> > </xsl:when> > <xsl:otherwise> > <fo:block id="{$id}" > space-before.minimum="1em" > space-before.optimum="1.5em" > space-before.maximum="2em"> > <xsl:call-template name="bibliography.titlepage"/> > </fo:block> > <xsl:apply-templates> > <xsl:sort select=".//surname"/> > </xsl:apply-templates> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > > # BTW, is there any way to define `advice' (in elisp sense) in XSLT?
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]