|
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="figure.title.top">0</xsl:param>
|
|
Packit Service |
76cb02 |
<xsl:param name="figure.anchor.top" select="$figure.title.top"/>
|
|
Packit Service |
76cb02 |
<xsl:param name="figure.default.position">[htbp]</xsl:param>
|
|
Packit Service |
76cb02 |
<xsl:param name="figure.default.align">center</xsl:param>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:template match="figure">
|
|
Packit Service |
76cb02 |
<xsl:text>\begin{figure}</xsl:text>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:choose>
|
|
Packit Service |
76cb02 |
<xsl:when test="@floatstyle != ''">
|
|
Packit Service |
76cb02 |
<xsl:value-of select="@floatstyle"/>
|
|
Packit Service |
76cb02 |
</xsl:when>
|
|
Packit Service |
76cb02 |
<xsl:when test="not(@float) or (@float and @float='0')">
|
|
Packit Service |
76cb02 |
<xsl:text>[H]</xsl:text>
|
|
Packit Service |
76cb02 |
</xsl:when>
|
|
Packit Service |
76cb02 |
<xsl:otherwise>
|
|
Packit Service |
76cb02 |
<xsl:value-of select="$figure.default.position"/>
|
|
Packit Service |
76cb02 |
</xsl:otherwise>
|
|
Packit Service |
76cb02 |
</xsl:choose>
|
|
Packit Service |
76cb02 |
<xsl:text>
</xsl:text>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:apply-templates select="." mode="caption.and.label">
|
|
Packit Service |
76cb02 |
<xsl:with-param name="position.top" select="1"/>
|
|
Packit Service |
76cb02 |
</xsl:apply-templates>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:call-template name="figure.begin"/>
|
|
Packit Service |
76cb02 |
<xsl:apply-templates select="*[not(self::title)]"/>
|
|
Packit Service |
76cb02 |
<xsl:call-template name="figure.end"/>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:apply-templates select="." mode="caption.and.label">
|
|
Packit Service |
76cb02 |
<xsl:with-param name="position.top" select="0"/>
|
|
Packit Service |
76cb02 |
</xsl:apply-templates>
|
|
Packit Service |
76cb02 |
<xsl:text>\end{figure}
</xsl:text>
|
|
Packit Service |
76cb02 |
</xsl:template>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:template match="informalfigure">
|
|
Packit Service |
76cb02 |
<xsl:call-template name="figure.begin"/>
|
|
Packit Service |
76cb02 |
<xsl:apply-templates/>
|
|
Packit Service |
76cb02 |
<xsl:call-template name="figure.end"/>
|
|
Packit Service |
76cb02 |
</xsl:template>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:template name="figure.begin">
|
|
Packit Service |
76cb02 |
<xsl:param name="align" select="$figure.default.align"/>
|
|
Packit Service |
76cb02 |
<xsl:value-of select="concat('
\begin{',$align,'}
')"/>
|
|
Packit Service |
76cb02 |
</xsl:template>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:template name="figure.end">
|
|
Packit Service |
76cb02 |
<xsl:param name="align" select="$figure.default.align"/>
|
|
Packit Service |
76cb02 |
<xsl:value-of select="concat('
\end{',$align,'}
')"/>
|
|
Packit Service |
76cb02 |
</xsl:template>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
increments the label counter and puts an anchor. Therefore putting a
|
|
Packit Service |
76cb02 |
label *before* the related caption needs to manipulate the counters
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
Limitation: it is not possible to put a caption on the top, and the
|
|
Packit Service |
76cb02 |
label anchor at the bottom. The first caption anchor at the top prevails.
|
|
Packit Service |
76cb02 |
Putting a label before the caption is possible because the
|
|
Packit Service |
76cb02 |
duplicated label name when \caption is called is ignored
|
|
Packit Service |
76cb02 |
(see latex warnings) -->
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:template match="figure" mode="caption.and.label">
|
|
Packit Service |
76cb02 |
<xsl:param name="position.top"/>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:choose>
|
|
Packit Service |
76cb02 |
<xsl:when test="$figure.title.top='1'">
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:if test="$position.top='1'">
|
|
Packit Service |
76cb02 |
<xsl:text>\caption</xsl:text>
|
|
Packit Service |
76cb02 |
<xsl:apply-templates select="title" mode="format.title"/>
|
|
Packit Service |
76cb02 |
</xsl:if>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:if test="$figure.anchor.top=$position.top">
|
|
Packit Service |
76cb02 |
<xsl:call-template name="label.id">
|
|
Packit Service |
76cb02 |
<xsl:with-param name="object" select="."/>
|
|
Packit Service |
76cb02 |
</xsl:call-template>
|
|
Packit Service |
76cb02 |
</xsl:if>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
</xsl:when>
|
|
Packit Service |
76cb02 |
<xsl:when test="$figure.title.top='0'">
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:choose>
|
|
Packit Service |
76cb02 |
<xsl:when test="$position.top='1'">
|
|
Packit Service |
76cb02 |
<xsl:if test="$figure.anchor.top='1'">
|
|
Packit Service |
76cb02 |
<xsl:text>\refstepcounter{figure}</xsl:text>
|
|
Packit Service |
76cb02 |
<xsl:call-template name="label.id">
|
|
Packit Service |
76cb02 |
<xsl:with-param name="object" select="."/>
|
|
Packit Service |
76cb02 |
</xsl:call-template>
|
|
Packit Service |
76cb02 |
</xsl:if>
|
|
Packit Service |
76cb02 |
</xsl:when>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:otherwise>
|
|
Packit Service |
76cb02 |
<xsl:if test="$figure.anchor.top='1'">
|
|
Packit Service |
76cb02 |
<xsl:text>\addtocounter{figure}{-1}</xsl:text>
|
|
Packit Service |
76cb02 |
</xsl:if>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:text>\caption</xsl:text>
|
|
Packit Service |
76cb02 |
<xsl:apply-templates select="title" mode="format.title"/>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
<xsl:if test="$figure.anchor.top='0'">
|
|
Packit Service |
76cb02 |
<xsl:call-template name="label.id">
|
|
Packit Service |
76cb02 |
<xsl:with-param name="object" select="."/>
|
|
Packit Service |
76cb02 |
</xsl:call-template>
|
|
Packit Service |
76cb02 |
</xsl:if>
|
|
Packit Service |
76cb02 |
</xsl:otherwise>
|
|
Packit Service |
76cb02 |
</xsl:choose>
|
|
Packit Service |
76cb02 |
</xsl:when>
|
|
Packit Service |
76cb02 |
</xsl:choose>
|
|
Packit Service |
76cb02 |
</xsl:template>
|
|
Packit Service |
76cb02 |
|
|
Packit Service |
76cb02 |
</xsl:stylesheet>
|
|
Packit Service |
76cb02 |
|