Blame xsl/citation.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
Packit Service 76cb02
<xsl:param name="citation.natbib.use" select="'0'"/>
Packit Service 76cb02
<xsl:param name="citation.natbib.options"/>
Packit Service 76cb02
<xsl:param name="citation.default.style"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="citation.setup">
Packit Service 76cb02
  <xsl:if test="$citation.natbib.use!='0'">
Packit Service 76cb02
    <xsl:text>\usepackage</xsl:text>
Packit Service 76cb02
    <xsl:if test="$citation.natbib.options!=''">
Packit Service 76cb02
      <xsl:text>[</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="$citation.natbib.options"/>
Packit Service 76cb02
      <xsl:text>]</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    <xsl:text>{natbib}
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     are converted safely to latex strings. Special care about the optional
Packit Service 76cb02
     enclosing curly braces telling to use this content block [{...}] so that
Packit Service 76cb02
     you can put some '[...]' in it. -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="cite-parse">
Packit Service 76cb02
  <xsl:param name="macro"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="brackets">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    
Packit Service 76cb02
                    contains(substring-after($macro,'[{'),'}]')">
Packit Service 76cb02
      <xsl:value-of select="'[{ }]'"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    
Packit Service 76cb02
                    contains(substring-after($macro,'['),']')">
Packit Service 76cb02
      <xsl:value-of select="'[ ]'"/>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="$brackets!=''">
Packit Service 76cb02
    <xsl:variable name="bs" select="substring-before($brackets,' ')"/>
Packit Service 76cb02
    <xsl:variable name="be" select="substring-after($brackets,' ')"/>
Packit Service 76cb02
    
Packit Service 76cb02
                  select="substring-before(substring-after($macro,$bs),$be)"/>
Packit Service 76cb02
    <xsl:value-of select="substring-before($macro,$bs)"/>
Packit Service 76cb02
    <xsl:value-of select="$bs"/>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:call-template name="normalize-scape">
Packit Service 76cb02
      <xsl:with-param name="string" select="$opt"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
    <xsl:value-of select="$be"/>
Packit Service 76cb02
    <xsl:call-template name="cite-parse">
Packit Service 76cb02
      
Packit Service 76cb02
                      select="substring-after($macro,concat($bs,$opt,$be))"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:value-of select="$macro"/>
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
     The citation styles are disabled if natbib is not used -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="citation" mode="cite-style">
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:variable name="pi">
Packit Service 76cb02
    <xsl:call-template name="pi.dblatex_citestyle"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="$citation.natbib.use='0'">
Packit Service 76cb02
    <xsl:text>\cite</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  
Packit Service 76cb02
                             starts-with(@role,'\Cite'))">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:call-template name="cite-parse">
Packit Service 76cb02
      <xsl:with-param name="macro" select="@role"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:when test="starts-with($pi,'\cite') or starts-with($pi,'\Cite')">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:call-template name="cite-parse">
Packit Service 76cb02
      <xsl:with-param name="macro" select="$pi"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:when test="$citation.default.style!=''">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:call-template name="cite-parse">
Packit Service 76cb02
      <xsl:with-param name="macro" select="$citation.default.style"/>
Packit Service 76cb02
    </xsl:call-template>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>\cite</xsl: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="citation">
Packit Service 76cb02
  <xsl:apply-templates select="." mode="cite-style"/>
Packit Service 76cb02
  <xsl:text>{</xsl:text>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:value-of select="."/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
</xsl:stylesheet>