| |
---|
| | |
---|
| | <!-- 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> |
---|
| |
---|