Blame xsl/xref.xsl

Packit Service 76cb02
Packit Service 76cb02
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
    XSLT Stylesheet DocBook -> LaTeX 
Packit Service 76cb02
    ############################################################################ -->
Packit Service 76cb02
<xsl:param name="xref.hypermarkup" select="0"/>
Packit Service 76cb02
<xsl:param name="ulink.block.symbol">\textbullet</xsl:param>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="anchor">
Packit Service 76cb02
  <xsl:call-template name="label.id">
Packit Service 76cb02
    <xsl:with-param name="inline" select="1"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="hyperlink.markup">
Packit Service 76cb02
  <xsl:param name="referrer" select="." />
Packit Service 76cb02
  <xsl:param name="linkend"/>
Packit Service 76cb02
  <xsl:param name="text"/>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                select="key('id',$linkend)/ancestor-or-self::book"/>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                select="$referrer/ancestor-or-self::book"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="referrer_i">
Packit Service 76cb02
    <xsl:apply-templates select="$referbook" mode="booknumber"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="target_i">
Packit Service 76cb02
    <xsl:apply-templates select="$targetbook" mode="booknumber"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="$referrer_i != $target_i">
Packit Service 76cb02
    <xsl:text>\href{</xsl:text>
Packit Service 76cb02
    <xsl:apply-templates select="$targetbook" mode="bookname"/>
Packit Service 76cb02
    <xsl:value-of select="concat('\#',$linkend)" />
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>\hyperlink{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$linkend"/>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:text>}{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$text"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="object.xref.markup2">
Packit Service 76cb02
  <xsl:param name="purpose" select="'xref'"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="markup">
Packit Service 76cb02
    <xsl:apply-templates select="." mode="object.xref.markup">
Packit Service 76cb02
      <xsl:with-param name="purpose" select="$purpose"/>
Packit Service 76cb02
      <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
      <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
      <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
    </xsl:apply-templates>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
                    not(contains($markup, '\hyperlink{') or
Packit Service 76cb02
                        contains($markup, '\href{'))">
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:variable name="text">
Packit Service 76cb02
        <xsl:call-template name="string-replace">
Packit Service 76cb02
          <xsl:with-param name="string" select="$markup"/>
Packit Service 76cb02
          <xsl:with-param name="from" select="'ref{'"/>
Packit Service 76cb02
          <xsl:with-param name="to" select="'ref*{'"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
        <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
        <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
        <xsl:with-param name="text" select="$text"/>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:value-of select="$markup"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="xref|biblioref" mode="xref.text">
Packit Service 76cb02
  <xsl:variable name="target" select="key('id',@linkend)[1]"/>
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:when test="@endterm">
Packit Service 76cb02
    <xsl:variable name="etarget" select="key('id',@endterm)[1]"/>
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="count($etarget) = 0">
Packit Service 76cb02
      <xsl:message>
Packit Service 76cb02
        <xsl:text>Endterm points to nonexistent ID: </xsl:text>
Packit Service 76cb02
        <xsl:value-of select="@endterm"/>
Packit Service 76cb02
      </xsl:message>
Packit Service 76cb02
      <xsl:text>[??]</xsl:text>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:apply-templates select="$etarget" mode="xref.text"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:when test="$target/@xreflabel">
Packit Service 76cb02
    <xsl:call-template name="scape">
Packit Service 76cb02
      <xsl:with-param name="string" select="$target/@xreflabel"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:otherwise/>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="xref" name="xref">
Packit Service 76cb02
  <xsl:variable name="target" select="key('id',@linkend)[1]"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="check.id.unique">
Packit Service 76cb02
    <xsl:with-param name="linkend" select="@linkend"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="xrefstyle">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
      
Packit Service 76cb02
                      and $use.role.as.xrefstyle != 0">
Packit Service 76cb02
        <xsl:value-of select="@role"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:value-of select="@xrefstyle"/>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="count($target)=0">
Packit Service 76cb02
    <xsl:message>
Packit Service 76cb02
      <xsl:text>XRef to nonexistent id: </xsl:text>
Packit Service 76cb02
      <xsl:value-of select="@linkend"/>
Packit Service 76cb02
    </xsl:message>
Packit Service 76cb02
    <xsl:text>[?]</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:variable name="text">
Packit Service 76cb02
      <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="$text!=''">
Packit Service 76cb02
      <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
        <xsl:with-param name="linkend" select="@linkend"/>
Packit Service 76cb02
        <xsl:with-param name="text" select="$text"/>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:apply-templates select="$target" mode="xref-to">
Packit Service 76cb02
        <xsl:with-param name="referrer" select="."/>
Packit Service 76cb02
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
      </xsl:apply-templates>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="self::biblioref">
Packit Service 76cb02
    
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  
Packit Service 76cb02
                  and contains($xrefstyle, 'nopage')">
Packit Service 76cb02
    
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  
Packit Service 76cb02
                and (contains($xrefstyle, 'page')
Packit Service 76cb02
                     or contains($xrefstyle, 'Page')))
Packit Service 76cb02
                and ( $insert.xref.page.number = 'yes' 
Packit Service 76cb02
                   or $insert.xref.page.number = '1')
Packit Service 76cb02
                or (local-name($target) = 'para'
Packit Service 76cb02
                    and $xrefstyle = ''
Packit Service 76cb02
                    and $insert.xref.page.number.para = 'yes')">
Packit Service 76cb02
    <xsl:apply-templates select="$target" mode="page.citation">
Packit Service 76cb02
      <xsl:with-param name="id" select="@linkend"/>
Packit Service 76cb02
    </xsl:apply-templates>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="biblioref">
Packit Service 76cb02
  <xsl:call-template name="xref"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="ulink-encode">
Packit Service 76cb02
  <xsl:param name="escape" select="0"/>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:call-template name="scape-encode">
Packit Service 76cb02
    <xsl:with-param name="string">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      
Packit Service 76cb02
                      ancestor::footnote or ancestor::term">
Packit Service 76cb02
        <xsl:call-template name="string-replace">
Packit Service 76cb02
          <xsl:with-param name="string">
Packit Service 76cb02
            <xsl:call-template name="string-replace">
Packit Service 76cb02
              <xsl:with-param name="string">
Packit Service 76cb02
                <xsl:call-template name="string-replace">
Packit Service 76cb02
                  <xsl:with-param name="string" select="@url"/>
Packit Service 76cb02
                  <xsl:with-param name="from" select="'%'"/>
Packit Service 76cb02
                  <xsl:with-param name="to" select="'\%'"/>
Packit Service 76cb02
                </xsl:call-template>
Packit Service 76cb02
              </xsl:with-param>
Packit Service 76cb02
              <xsl:with-param name="from" select="'#'"/>
Packit Service 76cb02
              <xsl:with-param name="to" select="'\#'"/>
Packit Service 76cb02
            </xsl:call-template>
Packit Service 76cb02
          </xsl:with-param>
Packit Service 76cb02
          <xsl:with-param name="from" select="'&'"/>
Packit Service 76cb02
          <xsl:with-param name="to" select="'\&'"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:value-of select="@url"/>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="ulink-show">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="starts-with(@xrefstyle, 'url.show')">
Packit Service 76cb02
      <xsl:value-of select="1"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:when test="starts-with(@xrefstyle, 'url.hide')">
Packit Service 76cb02
      <xsl:value-of select="0"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:value-of select="$ulink.show"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="ulink-foot">
Packit Service 76cb02
  
Packit Service 76cb02
       $style extract the optional '.infoot' or '.after' part -->
Packit Service 76cb02
  <xsl:variable name="style">
Packit Service 76cb02
    <xsl:call-template name="string-replace">
Packit Service 76cb02
      
Packit Service 76cb02
                      select="substring-after(@xrefstyle, 'url')"/>
Packit Service 76cb02
      <xsl:with-param name="from" select="'.show'"/>
Packit Service 76cb02
      <xsl:with-param name="to" select="''"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="$style = '.infoot'">
Packit Service 76cb02
      <xsl:value-of select="1"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:when test="$style = '.after'">
Packit Service 76cb02
      <xsl:value-of select="0"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:value-of select="$ulink.footnotes"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="ulink.format">
Packit Service 76cb02
  <xsl:variable name="url">
Packit Service 76cb02
    <xsl:call-template name="ulink-encode"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test=".=''">
Packit Service 76cb02
    <xsl:text>\url{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$url"/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>\href{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$url"/>
Packit Service 76cb02
    <xsl:text>}{</xsl:text>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:apply-templates/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:variable name="url.show">
Packit Service 76cb02
      <xsl:call-template name="ulink-show"/>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:variable name="url.foot">
Packit Service 76cb02
      <xsl:if test="$url.show != 0">
Packit Service 76cb02
        <xsl:call-template name="ulink-foot"/>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    
Packit Service 76cb02
                  and string(.) != @url
Packit Service 76cb02
                  and $url.show != 0">
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
        <xsl:when test="$url.foot != 0 and not(ancestor::footnote)">
Packit Service 76cb02
          <xsl:text>\footnote{</xsl:text>
Packit Service 76cb02
          <xsl:text>\url{</xsl:text>
Packit Service 76cb02
          
Packit Service 76cb02
          <xsl:call-template name="ulink-encode">
Packit Service 76cb02
            <xsl:with-param name="escape" select="1"/>
Packit Service 76cb02
          </xsl:call-template>
Packit Service 76cb02
          <xsl:text>}</xsl:text>
Packit Service 76cb02
          <xsl:text>}</xsl:text>
Packit Service 76cb02
        </xsl:when>
Packit Service 76cb02
        <xsl:otherwise>
Packit Service 76cb02
          
Packit Service 76cb02
          <xsl:text> [</xsl:text>
Packit Service 76cb02
          <xsl:text>\url{</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="$url"/>
Packit Service 76cb02
          <xsl:text>}</xsl:text>
Packit Service 76cb02
          <xsl:text>]</xsl:text>
Packit Service 76cb02
        </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     a block. The default is the solution sponsored by Freexian -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="ulink.block.markup">
Packit Service 76cb02
  <xsl:text>

</xsl:text>
Packit Service 76cb02
   
Packit Service 76cb02
  <xsl:value-of select="$ulink.block.symbol"/>
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:when test="ancestor::sidebar">
Packit Service 76cb02
    <xsl:text>\enspace</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>\space</xsl:text>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
  <xsl:call-template name="ulink.format"/>
Packit Service 76cb02
  <xsl:text>

</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="ulink">
Packit Service 76cb02
  <xsl:variable name="urlstring">
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="@type='block'">
Packit Service 76cb02
    <xsl:call-template name="ulink.block.markup"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:call-template name="ulink.format"/>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="link" mode="xref.text">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test=".!=''">
Packit Service 76cb02
    <xsl:call-template name="normalize-scape">
Packit Service 76cb02
      <xsl:with-param name="string">
Packit Service 76cb02
        <xsl:copy-of select="."/>
Packit Service 76cb02
      </xsl:with-param>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:when test="@endterm">
Packit Service 76cb02
    <xsl:variable name="etarget" select="key('id',@endterm)[1]"/>
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="count($etarget) = 0">
Packit Service 76cb02
      <xsl:message>
Packit Service 76cb02
        <xsl:text>Endterm points to nonexistent ID: </xsl:text>
Packit Service 76cb02
        <xsl:value-of select="@endterm"/>
Packit Service 76cb02
      </xsl:message>
Packit Service 76cb02
      <xsl:text>???</xsl:text>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:apply-templates select="$etarget" mode="xref.text"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise/>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="link">
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="linkend" select="@linkend"/>
Packit Service 76cb02
    <xsl:with-param name="text">
Packit Service 76cb02
      <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     the special latex characters, but things like anchors must be skipped -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="xref.text">
Packit Service 76cb02
  <xsl:apply-templates select="text()|*[not(self::anchor)]"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="term" mode="xref.text">
Packit Service 76cb02
  <xsl:variable name="text">
Packit Service 76cb02
    <xsl:apply-templates mode="xref.text"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
  <xsl:value-of select="normalize-space($text)"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="link" mode="toc.skip">
Packit Service 76cb02
  <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="xref.nolink">
Packit Service 76cb02
  <xsl:param name="string">
Packit Service 76cb02
    <xsl:apply-templates select="."/>
Packit Service 76cb02
  </xsl:param>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:variable name="xref.text">
Packit Service 76cb02
    <xsl:call-template name="string-replace">
Packit Service 76cb02
      <xsl:with-param name="string" select="$string"/>
Packit Service 76cb02
      <xsl:with-param name="from" select="'\ref{'"/>
Packit Service 76cb02
      <xsl:with-param name="to" select="'\ref*{'"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="contains($xref.text, '\hyperlink{')">
Packit Service 76cb02
      <xsl:value-of select="substring-before($xref.text,'\hyperlink{')"/>
Packit Service 76cb02
      
Packit Service 76cb02
                                            '\hyperlink{'), '}')"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:value-of select="$xref.text"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="xref" mode="toc.skip">
Packit Service 76cb02
  <xsl:variable name="xref.text">
Packit Service 76cb02
    <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="$xref.text != ''">
Packit Service 76cb02
      <xsl:value-of select="$xref.text"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:call-template name="xref.nolink"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="ulink" mode="toc.skip">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test=".=''">
Packit Service 76cb02
    <xsl:value-of select="@url"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:apply-templates mode="slash.hyphen"/>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="ulink" mode="xref.text">
Packit Service 76cb02
  <xsl:apply-templates select="." mode="toc.skip"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:param name="refelem" select="local-name(.)"/>
Packit Service 76cb02
  <xsl:message>
Packit Service 76cb02
    <xsl:text>Don't know what gentext to create for xref to: "</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$refelem"/>
Packit Service 76cb02
    <xsl:text>" (linkend=</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:text>)</xsl:text>
Packit Service 76cb02
  </xsl:message>
Packit Service 76cb02
  <xsl:text>[?</xsl:text><xsl:value-of select="$refelem"/><xsl:text>]</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="step" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="gentext">
Packit Service 76cb02
    <xsl:with-param name="key" select="'Step'"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
  <xsl:text> </xsl:text>
Packit Service 76cb02
  <xsl:apply-templates select="." mode="label.markup"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="title" mode="xref">
Packit Service 76cb02
  <xsl:apply-templates/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="book" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="text">
Packit Service 76cb02
    <xsl:text>\emph{</xsl:text>
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="title">
Packit Service 76cb02
      <xsl:apply-templates select="title" mode="xref"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:apply-templates select="bookinfo/title" mode="xref"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text" select="$text"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     uses the xrefstyle attribute if specified, or if not it falls back
Packit Service 76cb02
     to the container element's link text -->
Packit Service 76cb02
<xsl:template match="para|phrase|simpara|anchor|quote" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose"/>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                                       |ancestor::section
Packit Service 76cb02
                                       |ancestor::sect1
Packit Service 76cb02
                                       |ancestor::sect2
Packit Service 76cb02
                                       |ancestor::sect3
Packit Service 76cb02
                                       |ancestor::sect4
Packit Service 76cb02
                                       |ancestor::sect5
Packit Service 76cb02
                                       |ancestor::topic
Packit Service 76cb02
                                       |ancestor::refsection
Packit Service 76cb02
                                       |ancestor::refsect1
Packit Service 76cb02
                                       |ancestor::refsect2
Packit Service 76cb02
                                       |ancestor::refsect3
Packit Service 76cb02
                                       |ancestor::chapter
Packit Service 76cb02
                                       |ancestor::appendix
Packit Service 76cb02
                                       |ancestor::preface
Packit Service 76cb02
                                       |ancestor::partintro
Packit Service 76cb02
                                       |ancestor::dedication
Packit Service 76cb02
                                       |ancestor::acknowledgements
Packit Service 76cb02
                                       |ancestor::colophon
Packit Service 76cb02
                                       |ancestor::bibliography
Packit Service 76cb02
                                       |ancestor::index
Packit Service 76cb02
                                       |ancestor::glossary
Packit Service 76cb02
                                       |ancestor::glossentry
Packit Service 76cb02
                                       |ancestor::listitem
Packit Service 76cb02
                                       |ancestor::varlistentry)[last()]"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="$xrefstyle != ''">
Packit Service 76cb02
      <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
        <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
        <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
      </xsl:apply-templates>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:if test="$verbose != 0">
Packit Service 76cb02
        <xsl:message>
Packit Service 76cb02
          <xsl:text>WARNING: xref to <</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="local-name()"/>
Packit Service 76cb02
          <xsl:text> id="</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="@id|@xml:id"/>
Packit Service 76cb02
          <xsl:text>"> has no generated text. Trying its ancestor elements.</xsl:text>
Packit Service 76cb02
        </xsl:message>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
      <xsl:apply-templates select="$context" mode="xref-to">
Packit Service 76cb02
        <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
        <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
        <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
      </xsl:apply-templates>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="dedication|preface|part|chapter|appendix" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                     |sect1|sect2|sect3|sect4|sect5
Packit Service 76cb02
                     |refsect1|refsect2|refsect3|refsection" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="figure|example|table" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     for untitled equations. So, the cross reference label must be
Packit Service 76cb02
     different if a title is given or not.
Packit Service 76cb02
 -->
Packit Service 76cb02
<xsl:template match="equation" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     Change the context to make the difference.
Packit Service 76cb02
-->
Packit Service 76cb02
<xsl:template match="equation[not(child::title)]" mode="object.xref.template">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="gentext.template">
Packit Service 76cb02
    <xsl:with-param name="context" select="'xref-without-title'"/>
Packit Service 76cb02
    <xsl:with-param name="name">
Packit Service 76cb02
      <xsl:call-template name="xpath.location"/>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
    <xsl:with-param name="purpose" select="$purpose"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="refentry" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text">
Packit Service 76cb02
      
Packit Service 76cb02
                select="(refmeta/refentrytitle|refnamediv/refname[1])[1]"
Packit Service 76cb02
                mode="xref.text"/>
Packit Service 76cb02
      <xsl:apply-templates select="refmeta/manvolnum"/>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="refnamediv" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text">
Packit Service 76cb02
      <xsl:apply-templates select="refname[1]" mode="xref.text"/>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="varlistentry|term" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      <xsl:when test="local-name(.)='term'">
Packit Service 76cb02
        <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:apply-templates select="term" mode="xref.text"/>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="biblioentry|bibliomixed" mode="xref-to">
Packit Service 76cb02
  <xsl:text>\cite{</xsl:text>
Packit Service 76cb02
  <xsl:call-template name="bibitem.id"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="glossentry" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text">
Packit Service 76cb02
      <xsl:call-template name="inline.italicseq">
Packit Service 76cb02
        <xsl:with-param name="content">
Packit Service 76cb02
          <xsl:apply-templates select="glossterm" mode="xref.text"/>
Packit Service 76cb02
        </xsl:with-param>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="cmdsynopsis" mode="xref-to">
Packit Service 76cb02
  <xsl:variable name="command" select="(.//command)[1]"/>
Packit Service 76cb02
  <xsl:apply-templates select="$command" mode="xref"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="funcsynopsis" mode="xref-to">
Packit Service 76cb02
  <xsl:variable name="func" select="(.//function)[1]"/>
Packit Service 76cb02
  <xsl:apply-templates select="$func" mode="xref"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="bibliography|glossary|index" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="reference" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="sidebar" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="qandaset" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="question|answer" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="formalpara" mode="xref-to">
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="verbose" select="1"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates select="." mode="object.xref.markup2">
Packit Service 76cb02
    <xsl:with-param name="purpose" select="'xref'"/>
Packit Service 76cb02
    <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="verbose" select="$verbose"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                     preface//sect3| preface//sect4|
Packit Service 76cb02
                     preface//sect5| preface//section"
Packit Service 76cb02
              mode="is.autonumber">
Packit Service 76cb02
  <xsl:value-of select="0"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="co" mode="xref-to">
Packit Service 76cb02
  <xsl:call-template name="coref.link.create">
Packit Service 76cb02
    <xsl:with-param name="ref" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="circled" select="1"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="olink">
Packit Service 76cb02
  <xsl:variable name="localinfo" select="@localinfo"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:when test="@targetdoc or @targetptr" >
Packit Service 76cb02
      <xsl:variable name="targetdoc.att" select="@targetdoc"/>
Packit Service 76cb02
      <xsl:variable name="targetptr.att" select="@targetptr"/>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="olink.lang">
Packit Service 76cb02
        <xsl:call-template name="l10n.language">
Packit Service 76cb02
          <xsl:with-param name="xref-context" select="true()"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
    
Packit Service 76cb02
      <xsl:variable name="target.database.filename">
Packit Service 76cb02
        <xsl:call-template name="select.target.database">
Packit Service 76cb02
          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit Service 76cb02
          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
    
Packit Service 76cb02
      
Packit Service 76cb02
                    select="document($target.database.filename, /)"/>
Packit Service 76cb02
    
Packit Service 76cb02
      <xsl:if test="$olink.debug != 0">
Packit Service 76cb02
        <xsl:message>
Packit Service 76cb02
          <xsl:text>Olink debug: root element of target.database is '</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="local-name($target.database/*[1])"/>
Packit Service 76cb02
          <xsl:text>'.</xsl:text>
Packit Service 76cb02
        </xsl:message>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="olink.key">
Packit Service 76cb02
        <xsl:call-template name="select.olink.key">
Packit Service 76cb02
          <xsl:with-param name="targetdoc.att" select="$targetdoc.att"/>
Packit Service 76cb02
          <xsl:with-param name="targetptr.att" select="$targetptr.att"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
    
Packit Service 76cb02
      <xsl:if test="string-length($olink.key) = 0">
Packit Service 76cb02
        <xsl:message>
Packit Service 76cb02
          <xsl:text>Error: unresolved olink: </xsl:text>
Packit Service 76cb02
          <xsl:text>targetdoc/targetptr = '</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="$targetdoc.att"/>
Packit Service 76cb02
          <xsl:text>/</xsl:text>
Packit Service 76cb02
          <xsl:value-of select="$targetptr.att"/>
Packit Service 76cb02
          <xsl:text>'.</xsl:text>
Packit Service 76cb02
        </xsl:message>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="href">
Packit Service 76cb02
        <xsl:call-template name="make.olink.href">
Packit Service 76cb02
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:variable name="linkend">
Packit Service 76cb02
        <xsl:call-template name="olink.as.linkend">
Packit Service 76cb02
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="hottext">
Packit Service 76cb02
        <xsl:call-template name="olink.hottext">
Packit Service 76cb02
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="olink.docname.citation">
Packit Service 76cb02
        <xsl:call-template name="olink.document.citation">
Packit Service 76cb02
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:variable name="olink.page.citation">
Packit Service 76cb02
        <xsl:call-template name="olink.page.citation">
Packit Service 76cb02
          <xsl:with-param name="olink.key" select="$olink.key"/>
Packit Service 76cb02
          <xsl:with-param name="target.database" select="$target.database"/>
Packit Service 76cb02
          <xsl:with-param name="olink.lang" select="$olink.lang"/>
Packit Service 76cb02
          <xsl:with-param name="linkend" select="$linkend"/>
Packit Service 76cb02
        </xsl:call-template>
Packit Service 76cb02
      </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
        <xsl:when test="$linkend != ''">
Packit Service 76cb02
          
Packit Service 76cb02
          <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
            <xsl:with-param name="linkend" select="$linkend"/>
Packit Service 76cb02
            <xsl:with-param name="text" select="$hottext"/>
Packit Service 76cb02
          </xsl:call-template>
Packit Service 76cb02
        </xsl:when>
Packit Service 76cb02
        <xsl:when test="$href != ''">
Packit Service 76cb02
          
Packit Service 76cb02
          <xsl:call-template name="hyperref.format">
Packit Service 76cb02
            <xsl:with-param name="href" select="$href"/>
Packit Service 76cb02
            <xsl:with-param name="hottext" select="$hottext"/>
Packit Service 76cb02
          </xsl:call-template>
Packit Service 76cb02
          <xsl:copy-of select="$olink.page.citation"/>
Packit Service 76cb02
          <xsl:copy-of select="$olink.docname.citation"/>
Packit Service 76cb02
        </xsl:when>
Packit Service 76cb02
        <xsl:otherwise>
Packit Service 76cb02
          <xsl:copy-of select="$hottext"/>
Packit Service 76cb02
          <xsl:copy-of select="$olink.page.citation"/>
Packit Service 76cb02
          <xsl:copy-of select="$olink.docname.citation"/>
Packit Service 76cb02
        </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:otherwise>
Packit Service 76cb02
      <xsl:apply-templates/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="olink.as.linkend">
Packit Service 76cb02
  <xsl:param name="olink.key" select="''"/>
Packit Service 76cb02
  <xsl:param name="olink.lang" select="''"/>
Packit Service 76cb02
  <xsl:param name="target.database" select="NotANode"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="targetdoc">
Packit Service 76cb02
    <xsl:value-of select="substring-before($olink.key, '/')"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="targetptr">
Packit Service 76cb02
    
Packit Service 76cb02
       select="substring-before(substring-after($olink.key, '/'), '/')"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="target.lang">
Packit Service 76cb02
    <xsl:variable name="candidate">
Packit Service 76cb02
      <xsl:for-each select="$target.database" >
Packit Service 76cb02
        
Packit Service 76cb02
                  select="key('targetptr-key', $olink.key)/@lang" />
Packit Service 76cb02
      </xsl:for-each>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
      <xsl:when test="$candidate != ''">
Packit Service 76cb02
        <xsl:value-of select="$candidate"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:value-of select="$olink.lang"/>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
                $olink.lang = $target.lang">
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:message>targetdoc=<xsl:value-of select="$targetdoc"/></xsl:message>
Packit Service 76cb02
  <xsl:message>docid=<xsl:value-of select="$current.docid"/></xsl:message>
Packit Service 76cb02
  <xsl:message>lang=<xsl:value-of select="$target.lang"/></xsl:message>
Packit Service 76cb02
  <xsl:message>lang=<xsl:value-of select="$olink.lang"/></xsl:message>
Packit Service 76cb02
  <xsl:message>ptr=<xsl:value-of select="$targetptr"/></xsl:message>
Packit Service 76cb02
  -->
Packit Service 76cb02
    <xsl:variable name="targets" select="key('id',$targetptr)"/>
Packit Service 76cb02
    <xsl:variable name="target" select="$targets[1]"/>
Packit Service 76cb02
    <xsl:if test="$target">
Packit Service 76cb02
      <xsl:value-of select="$targetptr"/>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="hyperref.format">
Packit Service 76cb02
  <xsl:param name="href"/>
Packit Service 76cb02
  <xsl:param name="hottext"/>
Packit Service 76cb02
  <xsl:variable name="url" select="substring-before($href, '#')"/>
Packit Service 76cb02
  <xsl:variable name="name" select="substring-after($href, '#')"/>
Packit Service 76cb02
  <xsl:text>\hyperref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$url"/>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:text>}{}{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$name"/>
Packit Service 76cb02
  <xsl:text>}{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$hottext"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="command" mode="xref">
Packit Service 76cb02
  <xsl:call-template name="inline.boldseq"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="function" mode="xref">
Packit Service 76cb02
  <xsl:call-template name="inline.monoseq"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="page.citation">
Packit Service 76cb02
  <xsl:param name="id" select="'???'"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="substitute-markup">
Packit Service 76cb02
    <xsl:with-param name="template">
Packit Service 76cb02
      <xsl:call-template name="gentext.template">
Packit Service 76cb02
        <xsl:with-param name="name" select="'page.citation'"/>
Packit Service 76cb02
        <xsl:with-param name="context" select="'xref'"/>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:with-param>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="link" mode="no.anchor.mode" priority="1">
Packit Service 76cb02
  <xsl:apply-templates select="." mode="xref.text"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="text()" mode="no.anchor.mode">
Packit Service 76cb02
  <xsl:apply-templates select="."/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                     sect1|sect2|sect3|sect4|sect5|section" mode="label.markup"
Packit Service 76cb02
                     priority="1">
Packit Service 76cb02
  <xsl:text>\ref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              priority="1">
Packit Service 76cb02
  <xsl:text>\ref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="step" mode="label.markup" priority="1">
Packit Service 76cb02
  <xsl:text>\ref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="pagenumber.markup">
Packit Service 76cb02
  <xsl:text>\pageref{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.title.markup">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="title"/>
Packit Service 76cb02
  <xsl:param name="referrer"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:call-template name="hyperlink.markup">
Packit Service 76cb02
    <xsl:with-param name="referrer" select="$referrer"/>
Packit Service 76cb02
    <xsl:with-param name="linkend" select="(@id|@xml:id)[1]"/>
Packit Service 76cb02
    <xsl:with-param name="text" select="$title"/>
Packit Service 76cb02
  </xsl:call-template>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.subtitle.markup">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="subtitle"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:copy-of select="$subtitle"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.label.markup">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="label"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:copy-of select="$label"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.pagenumber.markup">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="pagenumber"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:copy-of select="$pagenumber"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.direction.markup">
Packit Service 76cb02
  <xsl:param name="purpose"/>
Packit Service 76cb02
  <xsl:param name="xrefstyle"/>
Packit Service 76cb02
  <xsl:param name="direction"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:copy-of select="$direction"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="insert.olink.docname.markup">
Packit Service 76cb02
  <xsl:param name="docname" select="''"/>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:text>\emph{</xsl:text>
Packit Service 76cb02
  <xsl:copy-of select="$docname"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
</xsl:stylesheet>