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: More roles at one section


Hi,
  I need to hide some sections from TOC. It can be solved by assigning a role to section, eg. role hideTOC. I need to print some sections together on one page, which is now done by another role NoPgBreak (see my previous question).
  Now I need to combine both roles at one section. Is it possible by combining these roles? How to test it in xsl? I have an idea thet i set role "NoPgBreak, hideTOC" and then I test if role *contains string* 'hideTOC' instead *it is equal* to 'hideTOC' and vice versa. Is it possible in xsl language? Searching in tutorials at web didn't bring me answer.
  I've found a solution: set new role and use or operator at both expressions, but I do not like this way and searching tutorials didn't bring me better solution. I think that it must be possible to make it simplier. Third requirement to the same section will make xsl expressions much more complicated, next one will kill me. 

My (wrong) solution: I define new role combining both requirements and change xsl expressions by this way:
 
<xsl:template match="*[@role='hideTOC' or @role='NoPgBreak-hideTOC']" mode="toc" priority="2"/>

<xsl:attribute-set name="section.level1.properties">
  <xsl:attribute name="break-before">
    <xsl:choose>
      <xsl:when test="@role = 'NoPgBreak' or @role = 'NoPgBreak-hideTOC'">auto</xsl:when>
      <xsl:otherwise>page</xsl:otherwise>
    </xsl:choose>
  </xsl:attribute>
</xsl:attribute-set>

Thank you for help,
  Pavel


On Sat, 13 Jun 2020 00:54:53 +0200
Pavel Vávra <plamen@square.cz> wrote:

> Hallo Jirka,
>   thank you very much, it works as expected.
> Pavel
> 
> On Wed, 10 Jun 2020 21:33:58 +0200
> Jirka Kosek <jirka@kosek.cz> wrote:
> 
> > On 10.6.2020 14:35, Pavel Vávra wrote:
> > > <xsl:attribute-set name="section.level1.properties">
> > >   <xsl:attribute name="break-before">page</xsl:attribute>
> > > </xsl:attribute-set>
> > > 
> > > ... but some small set of sections is much shorter than one page and I want print them on one page together with previous one. Is it possible to do it e.g. marking these sections with a role 'NoPgBreak'? What I need to add to my xsl transformation to make it work?
> > 
> > You can use something like:
> > 
> > <xsl:attribute-set name="section.level1.properties">
> >   <xsl:attribute name="break-before">
> >     <xsl:choose>
> >       <xsl:when test="@role = 'NoPgBreak'">auto</xsl:when>
> >       <xsl:otherwise>page</xsl:otherwise>
> >     </xsl:choose>
> >   </xsl:attribute>
> > </xsl:attribute-set>
> > 
> > -- 
> > ------------------------------------------------------------------
> >   Jirka Kosek     e-mail: jirka@kosek.cz     http://www.kosek.cz
> > ------------------------------------------------------------------
> >   Profesionální školení a poradenství v oblasti technologií XML.
> >        Podrobný přehled školení http://xmlguru.cz/skoleni/
> > ------------------------------------------------------------------
> >   http://docbook.cz    Stránky o dokumentačním formátu DocBook
> >   http://xmlguru.cz    Blog mostly about XML for English readers
> > ------------------------------------------------------------------
> > 

Attachment: pgpVYng4_GESQ.pgp
Description: PGP signature



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