Blame xsl/verbatim.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
Packit Service 76cb02
<xsl:param name="literal.width.ignore">0</xsl:param>
Packit Service 76cb02
<xsl:param name="literal.layout.options"/>
Packit Service 76cb02
<xsl:param name="literal.lines.showall">1</xsl:param>
Packit Service 76cb02
<xsl:param name="literal.role"/>
Packit Service 76cb02
<xsl:param name="literal.class">monospaced</xsl:param>
Packit Service 76cb02
<xsl:param name="literal.extensions"/>
Packit Service 76cb02
<xsl:param name="linenumbering.scope"/>
Packit Service 76cb02
<xsl:param name="linenumbering.default"/>
Packit Service 76cb02
<xsl:param name="linenumbering.everyNth"/>
Packit Service 76cb02
Packit Service 76cb02
<xsl:param name="literal.environment">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="contains($literal.extensions,'scale')">
Packit Service 76cb02
    <xsl:text>lstcode</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>lstlisting</xsl:text>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:param>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="verbatim.setup">
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:if test="substring($literal.environment,1,3) != 'lst'">
Packit Service 76cb02
    <xsl:message terminate="yes">
Packit Service 76cb02
      <xsl:text>Error: </xsl:text>
Packit Service 76cb02
      <xsl:value-of select="$literal.environment"/>
Packit Service 76cb02
      <xsl:text>: a listing environment must start with 'lst'</xsl:text>
Packit Service 76cb02
    </xsl:message>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  
Packit Service 76cb02
                       mode="save.verbatim.preamble"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="verbatim.setup2">
Packit Service 76cb02
  <xsl:text>\lstsetup
</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="address">
Packit Service 76cb02
  <xsl:call-template name="output.verbatim"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="text()" mode="save.verbatim"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              mode="save.verbatim">
Packit Service 76cb02
  <xsl:call-template name="save.verbatim"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="save.verbatim">
Packit Service 76cb02
  <xsl:param name="content">
Packit Service 76cb02
    <xsl:apply-templates mode="latex.verbatim"/>
Packit Service 76cb02
  </xsl:param>
Packit Service 76cb02
  <xsl:text>
\begin{SaveVerbatim}{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="generate-id()"/>
Packit Service 76cb02
  <xsl:text>}
</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$content"/>
Packit Service 76cb02
  <xsl:text>
\end{SaveVerbatim}
</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="output.verbatim">
Packit Service 76cb02
  <xsl:param name="content">
Packit Service 76cb02
    <xsl:apply-templates mode="latex.verbatim"/>
Packit Service 76cb02
  </xsl:param>
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
                  ancestor::legalnotice">
Packit Service 76cb02
    <xsl:text>\UseVerbatim{</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="generate-id(.)"/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:text>
\begin{verbatim}</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$content"/>
Packit Service 76cb02
    <xsl:text>\end{verbatim}
</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="alt" mode="latex.verbatim"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="filename.get">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="@entityref">
Packit Service 76cb02
    <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    <xsl:value-of select="@fileref"/>
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
     programlisting environment. It escapes the tex sequence, *but* prints
Packit Service 76cb02
     out the sequence only if probing is not required (i.e. = 0).
Packit Service 76cb02
     
Packit Service 76cb02
     Probing is used by a parent that wants to know if it contains some
Packit Service 76cb02
     element that needs some tex escaping.
Packit Service 76cb02
     -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="verbatim.embed">
Packit Service 76cb02
  <xsl:param name="co-tagin" select="'<'"/>
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
  <xsl:param name="probe" select="0"/>
Packit Service 76cb02
  <xsl:param name="content"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:value-of select="concat($co-tagin, 't>')"/>
Packit Service 76cb02
  <xsl:if test="$probe = 0">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
      <xsl:when test="$content != ''">
Packit Service 76cb02
        <xsl:value-of select="$content"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:apply-templates select="."/>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:value-of select="'</t>'"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     specified by the <style> that drives the corresponding delimiter
Packit Service 76cb02
     sequence. Styles can be nested, so apply the same template mode to
Packit Service 76cb02
     children.
Packit Service 76cb02
     -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="verbatim.format">
Packit Service 76cb02
  <xsl:param name="co-tagin" select="'<'"/>
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
  <xsl:param name="probe" select="0"/>
Packit Service 76cb02
  <xsl:param name="style" select="'b'"/>
Packit Service 76cb02
  <xsl:param name="content"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:value-of select="concat($co-tagin, $style, '>')"/>
Packit Service 76cb02
  <xsl:if test="$probe = 0">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
      <xsl:when test="$content != ''">
Packit Service 76cb02
        <xsl:value-of select="$content"/>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:apply-templates mode="latex.programlisting">
Packit Service 76cb02
          <xsl:with-param name="co-tagin" select="$co-tagin"/>
Packit Service 76cb02
          <xsl:with-param name="rnode" select="$rnode"/>
Packit Service 76cb02
          <xsl:with-param name="probe" select="$probe"/>
Packit Service 76cb02
        </xsl:apply-templates>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:value-of select="concat('</', $style, '>')"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     process it.
Packit Service 76cb02
     -->
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              mode="latex.programlisting">
Packit Service 76cb02
  <xsl:param name="co-tagin" select="'<'"/>
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
  <xsl:param name="probe" select="0"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:value-of select="concat($co-tagin, 't', '>')"/>
Packit Service 76cb02
  <xsl:value-of select="."/>
Packit Service 76cb02
  <xsl:value-of select="concat('</', 't', '>')"/>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     text() adapted to this environment, and apply to its children the same
Packit Service 76cb02
     template. -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="latex.programlisting">
Packit Service 76cb02
  <xsl:param name="co-tagin" select="'<'"/>
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
  <xsl:param name="probe" select="0"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:if test="$output.quietly = 0">
Packit Service 76cb02
    <xsl:message>
Packit Service 76cb02
      <xsl:value-of select="local-name(.)"/>
Packit Service 76cb02
      <xsl:text>: default template used in programlisting or screen</xsl:text>
Packit Service 76cb02
    </xsl:message>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:apply-templates mode="latex.programlisting">
Packit Service 76cb02
    <xsl:with-param name="co-tagin" select="$co-tagin"/>
Packit Service 76cb02
    <xsl:with-param name="rnode" select="$rnode"/>
Packit Service 76cb02
    <xsl:with-param name="probe" select="$probe"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     to an external file -->
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="programlisting|screen|literallayout" mode="internal">
Packit Service 76cb02
  <xsl:param name="opt"/>
Packit Service 76cb02
  <xsl:param name="co-tagin"/>
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
  <xsl:param name="env" select="'lstlisting'"/>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>
\begin{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$env"/>
Packit Service 76cb02
  <xsl:text>}</xsl:text>
Packit Service 76cb02
  <xsl:if test="$opt!=''">
Packit Service 76cb02
    <xsl:text>[</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$opt"/>
Packit Service 76cb02
    <xsl:text>]</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  
Packit Service 76cb02
  
Packit Service 76cb02
                string-length(normalize-space(
Packit Service 76cb02
                  substring-before(.,'
')))>0">
Packit Service 76cb02
    <xsl:text>
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:apply-templates mode="latex.programlisting">
Packit Service 76cb02
    <xsl:with-param name="co-tagin" select="$co-tagin"/>
Packit Service 76cb02
    <xsl:with-param name="rnode" select="$rnode"/>
Packit Service 76cb02
  </xsl:apply-templates>
Packit Service 76cb02
  
Packit Service 76cb02
  
Packit Service 76cb02
                substring(translate(.,' 	',''),
Packit Service 76cb02
                  string-length(translate(.,' 	','')))!='
'">
Packit Service 76cb02
    <xsl:text>
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:text>\end{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$env"/>
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 name="linenumbering">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
    <xsl:when test="@linenumbering='numbered'">1</xsl:when>
Packit Service 76cb02
    <xsl:when test="@linenumbering and @linenumbering!='numbered'">0</xsl:when>
Packit Service 76cb02
    
Packit Service 76cb02
                   (contains(concat(' ',$linenumbering.scope,' '),
Packit Service 76cb02
                             concat(' ',local-name(.),' ')))">1</xsl:when>
Packit Service 76cb02
    <xsl:otherwise>0</xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
 
Packit Service 76cb02
<xsl:template match="programlisting|screen|literallayout">
Packit Service 76cb02
  <xsl:param name="rnode" select="/"/>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:variable name="width">
Packit Service 76cb02
    
Packit Service 76cb02
                  @width and string(number(@width))!='NaN'">
Packit Service 76cb02
      <xsl:text>\setlength{\lstwidth}{</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="@width"/>
Packit Service 76cb02
      <xsl:text>\lstcharwidth+2\lstframesep}</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:variable name="escaped">
Packit Service 76cb02
    <xsl:apply-templates mode="latex.programlisting">
Packit Service 76cb02
      <xsl:with-param name="probe" select="1"/>
Packit Service 76cb02
    </xsl:apply-templates>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:variable name="co-tagin">
Packit Service 76cb02
    <xsl:if test="descendant::co or $escaped != ''">
Packit Service 76cb02
      <xsl:call-template name="co-tagin-gen"/>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="linenumbered">
Packit Service 76cb02
    <xsl:call-template name="linenumbering"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="role">
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="@role">
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="$literal.role"/>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="opt">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$literal.lines.showall='0'">
Packit Service 76cb02
      <xsl:text>showlines=false,</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$role='overflow'">
Packit Service 76cb02
      <xsl:text>breaklines=false,</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="contains($literal.extensions, 'scale')">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      
Packit Service 76cb02
          ($role='' and $literal.extensions='scale.by.width' and $width!='')">
Packit Service 76cb02
        <xsl:text>scale=true,</xsl:text>
Packit Service 76cb02
        
Packit Service 76cb02
        <xsl:if test="$width=''">
Packit Service 76cb02
          <xsl:text>breaklines=false,</xsl:text>
Packit Service 76cb02
        </xsl:if>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:text>scale=false,</xsl:text>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="@language">
Packit Service 76cb02
      <xsl:text>language={</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="@language"/>
Packit Service 76cb02
      <xsl:text>},</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$width!=''">
Packit Service 76cb02
      <xsl:text>linewidth=\lstwidth,</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$linenumbered=1">
Packit Service 76cb02
      <xsl:text>numbers=left,</xsl:text>
Packit Service 76cb02
      <xsl:if test="number($linenumbering.everyNth) > 1">
Packit Service 76cb02
        <xsl:text>stepnumber=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="number($linenumbering.everyNth)"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:choose>
Packit Service 76cb02
    <xsl:when test="@startinglinenumber">
Packit Service 76cb02
      <xsl:text>firstnumber=</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="@startinglinenumber"/>
Packit Service 76cb02
      <xsl:text>,</xsl:text>
Packit Service 76cb02
    </xsl:when>
Packit Service 76cb02
    <xsl:when test="@continuation and (@continuation='continues')">
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:text>firstnumber=last</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>firstnumber=1</xsl:text>
Packit Service 76cb02
      <xsl:text>,</xsl:text>
Packit Service 76cb02
    </xsl:otherwise>
Packit Service 76cb02
    </xsl:choose>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="self::literallayout">
Packit Service 76cb02
      <xsl:text>backgroundcolor={},</xsl:text>
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      
Packit Service 76cb02
                      $literal.class='monospaced'">
Packit Service 76cb02
        <xsl:text>basicstyle=\ttfamily,</xsl:text>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:otherwise>
Packit Service 76cb02
        <xsl:text>basicstyle=\normalfont,flexiblecolumns,</xsl:text>
Packit Service 76cb02
      </xsl:otherwise>
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$co-tagin!=''">
Packit Service 76cb02
      <xsl:call-template name="listing-delim">
Packit Service 76cb02
        <xsl:with-param name="tagin" select="$co-tagin"/>
Packit Service 76cb02
      </xsl:call-template>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  
Packit Service 76cb02
  <xsl:if test="$width!=''">
Packit Service 76cb02
    <xsl:text>
</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$width"/>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
                  descendant::inlinegraphic[@format='linespecific']|
Packit Service 76cb02
                  descendant::textdata">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:text>
\lstinputlisting</xsl:text>
Packit Service 76cb02
    <xsl:if test="$opt!=''">
Packit Service 76cb02
      <xsl:text>[</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="$opt"/>
Packit Service 76cb02
      <xsl:text>]</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    <xsl:text>{</xsl:text>
Packit Service 76cb02
    
Packit Service 76cb02
        select="descendant::imagedata|descendant::inlinegraphic|
Packit Service 76cb02
                descendant::textdata"
Packit Service 76cb02
        mode="filename.get"/>
Packit Service 76cb02
    <xsl:text>}
</xsl:text>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:apply-templates select="." mode="internal">
Packit Service 76cb02
      <xsl:with-param name="rnode" select="$rnode"/>
Packit Service 76cb02
      <xsl:with-param name="co-tagin" select="$co-tagin"/>
Packit Service 76cb02
      <xsl:with-param name="opt" select="$opt"/>
Packit Service 76cb02
      <xsl:with-param name="env" select="$literal.environment"/>
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
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template name="listing-delim">
Packit Service 76cb02
  <xsl:param name="tagin" select="'<'"/>
Packit Service 76cb02
  <xsl:variable name="tex" select="concat($tagin, 't>')"/>
Packit Service 76cb02
  <xsl:variable name="bf" select="concat($tagin, 'b>')"/>
Packit Service 76cb02
  <xsl:variable name="it" select="concat($tagin, 'i>')"/>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>escapeinside={</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$tex"/>
Packit Service 76cb02
  <xsl:text>}{</t>}</xsl:text>
Packit Service 76cb02
  <xsl:text>,</xsl:text>
Packit Service 76cb02
  <xsl:text>moredelim={**[is][\bfseries]{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$bf"/>
Packit Service 76cb02
  <xsl:text>}{</b>}},</xsl:text>
Packit Service 76cb02
  <xsl:text>moredelim={**[is][\itshape]{</xsl:text>
Packit Service 76cb02
  <xsl:value-of select="$it"/>
Packit Service 76cb02
  <xsl:text>}{</i>}},</xsl:text>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     in which context the footnotes are used. A check is done to not cover
Packit Service 76cb02
     the other saving points in tables. -->
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              mode="save.verbatim.preamble">
Packit Service 76cb02
  
Packit Service 76cb02
                ancestor::footnote">
Packit Service 76cb02
    <xsl:apply-templates select="." mode="save.verbatim"/>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
     use the fancyvrb verbatim coupled to listings for the rendering stuff.
Packit Service 76cb02
     This mode assumes that all the verbatim data is in an external
Packit Service 76cb02
     file. Using the save/use commands would work except for linenumbering
Packit Service 76cb02
     stuff. -->
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
              mode="save.verbatim">
Packit Service 76cb02
  
Packit Service 76cb02
                    descendant::inlinegraphic[@format='linespecific']|
Packit Service 76cb02
                    descendant::textdata)">
Packit Service 76cb02
    <xsl:variable name="str1" select="."/>
Packit Service 76cb02
    <xsl:variable name="str">
Packit Service 76cb02
      <xsl:apply-templates mode="latex.programlisting"/>
Packit Service 76cb02
    </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
    <xsl:text>\begin{VerbatimOut}{tmplst-</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="generate-id()"/>
Packit Service 76cb02
    <xsl:text>}</xsl:text>
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
           string-length(
Packit Service 76cb02
             normalize-space(substring-before($str1,'
')))>0">
Packit Service 76cb02
      <xsl:text>
</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    <xsl:value-of select="$str"/>
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
                  substring(translate($str1,' 	',''),
Packit Service 76cb02
                    string-length(translate($str1,' 	','')))!='
'">
Packit Service 76cb02
      <xsl:text>
</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    <xsl:text>\end{VerbatimOut}
</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
                       self::entrytbl or
Packit Service 76cb02
                       self::footnote]//
Packit Service 76cb02
                     *[self::programlisting or
Packit Service 76cb02
                       self::screen or
Packit Service 76cb02
                       self::literallayout]">
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="lsopt">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="@language">
Packit Service 76cb02
      <xsl:text>language=</xsl:text>
Packit Service 76cb02
      <xsl:value-of select="@language"/>
Packit Service 76cb02
      <xsl:text>,</xsl:text>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="linenumbered">
Packit Service 76cb02
    <xsl:call-template name="linenumbering"/>
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:variable name="fvopt">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:if test="$linenumbered=1">
Packit Service 76cb02
      <xsl:text>numbers=left,</xsl:text>
Packit Service 76cb02
      <xsl:if test="number($linenumbering.everyNth) > 1">
Packit Service 76cb02
        <xsl:text>stepnumber=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="number($linenumbering.everyNth)"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:if>
Packit Service 76cb02
      
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      <xsl:when test="@startinglinenumber">
Packit Service 76cb02
        <xsl:text>firstnumber=</xsl:text>
Packit Service 76cb02
        <xsl:value-of select="@startinglinenumber"/>
Packit Service 76cb02
        <xsl:text>,</xsl:text>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      <xsl:when test="@continuation and (@continuation='continues')">
Packit Service 76cb02
        
Packit Service 76cb02
        <xsl:text>firstnumber=last</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>firstnumber=1</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:if test="self::literallayout">
Packit Service 76cb02
      <xsl:choose>
Packit Service 76cb02
      
Packit Service 76cb02
                      $literal.class='monospaced'">
Packit Service 76cb02
        <xsl:text>fontfamily=tt,</xsl:text>
Packit Service 76cb02
      </xsl:when>
Packit Service 76cb02
      
Packit Service 76cb02
      </xsl:choose>
Packit Service 76cb02
    </xsl:if>
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
  </xsl:variable>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>\begin{fvlisting}</xsl:text>
Packit Service 76cb02
  <xsl:if test="$lsopt!=''">
Packit Service 76cb02
    <xsl:text>[</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$lsopt"/>
Packit Service 76cb02
    <xsl:text>]</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
  <xsl:text>
</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>\VerbatimInput</xsl:text>
Packit Service 76cb02
  <xsl:if test="$fvopt!=''">
Packit Service 76cb02
    <xsl:text>[</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="$fvopt"/>
Packit Service 76cb02
    <xsl:text>]</xsl:text>
Packit Service 76cb02
  </xsl:if>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>{</xsl:text>
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  
Packit Service 76cb02
                  descendant::inlinegraphic[@format='linespecific']|
Packit Service 76cb02
                  descendant::textdata">
Packit Service 76cb02
    
Packit Service 76cb02
    
Packit Service 76cb02
        select="descendant::imagedata|descendant::inlinegraphic|
Packit Service 76cb02
                descendant::textdata"
Packit Service 76cb02
        mode="filename.abs.get"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:text>tmplst-</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="generate-id(.)"/>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
  <xsl:text>}
</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
  <xsl:text>\end{fvlisting}
</xsl:text>
Packit Service 76cb02
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
Packit Service 76cb02
<xsl:template match="*" mode="filename.abs.get">
Packit Service 76cb02
  <xsl:choose>
Packit Service 76cb02
  <xsl:when test="@entityref">
Packit Service 76cb02
    <xsl:value-of select="unparsed-entity-uri(@entityref)"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:when test="contains(@fileref, ':')">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:value-of select="substring-after(@fileref, ':')"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:when test="starts-with(@fileref, '/')">
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:value-of select="@fileref"/>
Packit Service 76cb02
  </xsl:when>
Packit Service 76cb02
  <xsl:otherwise>
Packit Service 76cb02
    
Packit Service 76cb02
    <xsl:value-of select="$current.dir"/>
Packit Service 76cb02
    <xsl:text>/</xsl:text>
Packit Service 76cb02
    <xsl:value-of select="@fileref"/>
Packit Service 76cb02
  </xsl:otherwise>
Packit Service 76cb02
  </xsl:choose>
Packit Service 76cb02
</xsl:template>
Packit Service 76cb02
Packit Service 76cb02
</xsl:stylesheet>