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 <pla...@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 <ji...@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: ji...@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: pgpiLpP4orwA6.pgp
Description: PGP signature

Reply via email to