|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
XSLT Stylesheet DocBook -> LaTeX
|
|
Packit |
0f19cf |
############################################################################ -->
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:param name="tex.math.in.alt" select="'latex'"/>
|
|
Packit |
0f19cf |
<xsl:param name="alt.use" select="0"/>
|
|
Packit |
0f19cf |
<xsl:param name="equation.default.position">[H]</xsl:param>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="inlineequation|informalequation" name="equation">
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="alt and $tex.math.in.alt='latex'">
|
|
Packit |
0f19cf |
<xsl:apply-templates select="alt" mode="latex"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:when test="alt and (count(child::*)=1 or $alt.use='1')">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:apply-templates select="alt"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:apply-templates select="*[not(self::alt)]"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="equation">
|
|
Packit |
0f19cf |
<xsl:variable name="delim">
|
|
Packit |
0f19cf |
<xsl:call-template name="pi.texmath_delimiters">
|
|
Packit |
0f19cf |
<xsl:with-param name="node" select="descendant::alt"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="title">
|
|
Packit |
0f19cf |
<xsl:text>
\begin{dbequation}</xsl:text>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="@floatstyle != ''">
|
|
Packit |
0f19cf |
<xsl:value-of select="@floatstyle"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:value-of select="$equation.default.position"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
<xsl:text>
</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="equation"/>
|
|
Packit |
0f19cf |
<xsl:text>
\caption{</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="normalize-scape">
|
|
Packit |
0f19cf |
<xsl:with-param name="string" select="title"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
<xsl:text>}
</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="label.id"/>
|
|
Packit |
0f19cf |
<xsl:text>
\end{dbequation}
</xsl:text>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:when test="$delim='user'">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:call-template name="equation"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:text>
\begin{equation}
</xsl:text>
|
|
Packit |
0f19cf |
<xsl:call-template name="label.id"/>
|
|
Packit |
0f19cf |
<xsl:call-template name="equation"/>
|
|
Packit |
0f19cf |
<xsl:text>
\end{equation}
</xsl:text>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="alt|mathphrase">
|
|
Packit |
0f19cf |
<xsl:apply-templates/>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
<xsl:template match="equation/title"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="alt" mode="latex">
|
|
Packit |
0f19cf |
<xsl:variable name="delim">
|
|
Packit |
0f19cf |
<xsl:call-template name="pi.texmath_delimiters"/>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:variable name="tex">
|
|
Packit |
0f19cf |
<xsl:variable name="text" select="normalize-space(.)"/>
|
|
Packit |
0f19cf |
<xsl:variable name="len" select="string-length($text)"/>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="$delim='user'">
|
|
Packit |
0f19cf |
<xsl:copy-of select="."/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:when test="ancestor::equation[not(child::title)]">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
substring($text,$len,$len)='$'">
|
|
Packit |
0f19cf |
<xsl:copy-of select="substring($text, 2, $len - 2)"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
substring($text,$len - 1,$len)='\]') or
|
|
Packit |
0f19cf |
(starts-with($text,'\(') and
|
|
Packit |
0f19cf |
substring($text,$len - 1,$len)='\)')">
|
|
Packit |
0f19cf |
<xsl:copy-of select="substring($text, 3, $len - 4)"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:copy-of select="."/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
ancestor::informalequation or
|
|
Packit |
0f19cf |
ancestor::inlineequation">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
substring($text,$len - 1,$len)='\]') or
|
|
Packit |
0f19cf |
(starts-with($text,'\(') and
|
|
Packit |
0f19cf |
substring($text,$len - 1,$len)='\)') or
|
|
Packit |
0f19cf |
(starts-with($text,'$') and
|
|
Packit |
0f19cf |
substring($text,$len,$len)='$')">
|
|
Packit |
0f19cf |
<xsl:copy-of select="$text"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:copy-of select="concat('$', $text, '$')"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise/>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:call-template name="scape-encode">
|
|
Packit |
0f19cf |
<xsl:with-param name="string" select="$tex"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
</xsl:stylesheet>
|