- Reformatted code and more more use of xsl:text and newline-internal.
1 parent b9f5def commit d4c0f40e22ee8a1346f47d7e73ee2cc795b0028a
nstanger authored on 7 Oct 2011
Showing 1 changed file
View
316
modules/floaters.xml
 
<!-- Figures. -->
<template name="figure" match="figure">
<common formats="/latex/xelatex/">
\begin{figure}<xsl:if test="@latex-placement">[<xsl:value-of select="@latex-placement" />]</xsl:if>
\centering
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*[not(self::caption)]" />
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'bottom' )">
<xsl:text>\medskip\hrule</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:if test="count(caption) != 0">
\caption{<xsl:apply-templates select="caption" />}
<xsl:if test="@label">\label{<xsl:value-of select="@label" />}</xsl:if>
</xsl:if>
\end{figure}
<xsl:text>\begin{figure}</xsl:text>
<xsl:if test="@latex-placement">
<xsl:text>[</xsl:text>
<xsl:value-of select="@latex-placement" />
<xsl:text>]</xsl:text>
</xsl:if>
<xsl:call-template name="newline-internal" />
<xsl:text>\centering</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*[not(self::caption)]" />
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'bottom' )">
<xsl:call-template name="newline-internal" />
<xsl:text>\medskip\hrule</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:call-template name="newline-internal" />
<xsl:if test="count(caption) != 0">
<xsl:text>\caption{</xsl:text>
<xsl:apply-templates select="caption" />
<xsl:text>}</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:if test="@label">
<xsl:text>\label{</xsl:text>
<xsl:value-of select="@label" />
<xsl:text>}</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:if>
</xsl:if>
<xsl:text>\end{figure}</xsl:text>
<xsl:call-template name="newline-internal" />
</common>
<common formats="/html/xhtml/">
<div class="figure" style="text-align: center; margin-top: 2em; margin-bottom: 2em;">
<div>
<!-- Tables. -->
<template name="table" match="table">
<common formats="/latex/xelatex/">
\begin{table}<xsl:if test="@latex-placement">[<xsl:value-of select="@latex-placement" />]</xsl:if>
\centering
<xsl:choose>
<!-- TODO: test this with embedded tabulars. It might not work! -->
<xsl:when test="@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*[not(self::caption)]" />
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'bottom' )">
<xsl:text>\medskip\hrule</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:if test="count(caption) != 0">
\caption{<xsl:apply-templates select="caption" />}
<xsl:if test="@label">\label{<xsl:value-of select="@label" />}</xsl:if>
</xsl:if>
\end{table}
<xsl:text>\begin{table}</xsl:text>
<xsl:if test="@latex-placement">
<xsl:text>[</xsl:text>
<xsl:value-of select="@latex-placement" />
<xsl:text>]</xsl:text>
</xsl:if>
<xsl:call-template name="newline-internal" />
<xsl:text>\centering</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:choose>
<!-- TODO: test this with embedded tabulars. It might not work! -->
<xsl:when test="@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:when>
</xsl:choose>
<xsl:apply-templates select="*[not(self::caption)]" />
<xsl:choose>
<xsl:when test="@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( @border-placement, 'bottom' )">
<xsl:text>\medskip\hrule</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:when>
</xsl:choose>
<xsl:call-template name="newline-internal" />
<xsl:if test="count(caption) != 0">
<xsl:text>\caption{</xsl:text>
<xsl:apply-templates select="caption" />
<xsl:text>}</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:if test="@label">
<xsl:text>\label{</xsl:text>
<xsl:value-of select="@label" />
<xsl:text>}</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:if>
</xsl:if>
<xsl:text>\end{table}</xsl:text>
<xsl:call-template name="newline-internal" />
</common>
<common formats="/html/xhtml/">
<div class="table" style="text-align: center; margin-top: 2em; margin-bottom: 2em;">
<div>
<!-- A multi-part table, i.e., one that spans multiple pages. Only relevant for LaTeX, as HTML doesn't have pages. -->
<template name="multipart-table" match="table[count(part) gt 0]">
<common formats="/latex/xelatex/">
<xsl:for-each select="part">
\begin{table}[p]
\centering
<xsl:text>\begin{table}[p]</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:text>\centering</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:choose>
<!-- TODO: test this with embedded tabulars. It might not work! -->
<xsl:when test="../@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
</xsl:when>
<xsl:when test="contains( ../@border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:when>
</xsl:choose>
<xsl:apply-templates />
<xsl:choose>
<xsl:when test="../@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( ../@border-placement, 'bottom' )">
<xsl:text>\medskip\hrule</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:when>
</xsl:choose>
<xsl:if test="count(../caption) != 0">
<xsl:text>\caption{</xsl:text>
<xsl:apply-templates select="../caption" />
<xsl:choose>
<!-- TODO: test this with embedded tabulars. It might not work! -->
<xsl:when test="../@border-placement = 'box'">
<xsl:text>\fbox{</xsl:text>
<xsl:when test="position() gt 1">
<xsl:text> \emph{(continued)}}</xsl:text>
</xsl:when>
<xsl:when test="contains( ../@border-placement, 'top' )">
<xsl:text>\hrule\medskip</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> \emph{(continues over)}}</xsl:text>
<xsl:if test="../@label">\label{<xsl:value-of select="../@label" />}</xsl:if>
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates />
<xsl:choose>
<xsl:when test="../@border-placement = 'box'">
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="contains( ../@border-placement, 'bottom' )">
<xsl:text>\medskip\hrule</xsl:text>
</xsl:when>
</xsl:choose>
<xsl:if test="count(../caption) != 0">
<xsl:text>\caption{</xsl:text>
<xsl:apply-templates select="../caption" />
<xsl:choose>
<xsl:when test="position() gt 1">
<xsl:text> \emph{(continued)}}</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text> \emph{(continues over)}}</xsl:text>
<xsl:if test="../@label">\label{<xsl:value-of select="../@label" />}</xsl:if>
</xsl:otherwise>
</xsl:choose>
<!-- Consider the possibility of labels for each part? -->
<!-- <xsl:if test="@label">\label{<xsl:value-of select="@label" />}</xsl:if> -->
</xsl:if>
\end{table}
\addtocounter{table}{-1}
\clearpage
<xsl:call-template name="newline-internal" />
<!-- Consider the possibility of labels for each part? -->
<!-- <xsl:if test="@label">\label{<xsl:value-of select="@label" />}</xsl:if> -->
</xsl:if>
<xsl:text>\end{table}</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:text>\addtocounter{table}{-1}</xsl:text>
<xsl:call-template name="newline-internal" />
<xsl:text>\clearpage</xsl:text>
<xsl:call-template name="newline-internal" />
</xsl:for-each>
\stepcounter{table}
</common>
</template>
<xsl:text>\stepcounter{table}</xsl:text>
<xsl:call-template name="newline-internal" />
</common>
</template>
<!-- Captions. -->
<template name="figure-caption" match="figure/caption">
<common formats="/latex/xelatex/"><xsl:apply-templates /></common>
<common formats="/latex/xelatex/">
<xsl:apply-templates />
</common>
<common formats="/html/xhtml/">
<p style="text-align: center;">
<strong>
<xsl:text>Figure </xsl:text>
</common>
</template>
<template name="table-caption" match="table/caption">
<common formats="/latex/xelatex/"><xsl:apply-templates /></common>
<common formats="/latex/xelatex/">
<xsl:apply-templates />
</common>
<common formats="/html/xhtml/">
<p style="text-align: center;">
<strong>
<xsl:text>Table </xsl:text>