<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: htmltables2latex.xsl 45880 2011-08-24 13:46:06Z vinc17/xvii $ -->

<!-- XSLT file to transform *simple* HTML tables into LaTeX tabulars. -->

<!DOCTYPE stylesheet [
<!ENTITY nl '<xsl:text xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:text>'>
]>

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:h="http://www.w3.org/1999/xhtml">

<xsl:output method="text" encoding="utf-8"/>

<xsl:template match="/">
  <xsl:for-each select="//h:table">
    <xsl:variable name="ncols" select="count(.//h:tr[1]/*)"/>
    <xsl:text>\begin{tabular}{|</xsl:text>
    <xsl:for-each select=".//h:tr[1]/*">
      <xsl:text>c|</xsl:text>
    </xsl:for-each>
    <xsl:text>}&#10;\hline&#10;</xsl:text>
    <xsl:for-each select=".//h:tr">
      <xsl:for-each select="*">
        <xsl:if test="position() != 1"> &amp; </xsl:if>
        <xsl:apply-templates select="node()"/>
      </xsl:for-each>
      <xsl:text> \\&#10;\hline&#10;</xsl:text>
    </xsl:for-each>
    <xsl:text>\end{tabular}&#10;</xsl:text>
  </xsl:for-each>
</xsl:template>

<xsl:template match="text()">
  <xsl:value-of select="normalize-space(.)"/>
</xsl:template>

<xsl:template match="h:em|h:cite">
  <xsl:text>\emph{</xsl:text>
  <xsl:apply-templates select="node()"/>
  <xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="h:b|h:strong">
  <xsl:text>\textbf{</xsl:text>
  <xsl:apply-templates select="node()"/>
  <xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="h:i">
  <xsl:text>\textit{</xsl:text>
  <xsl:apply-templates select="node()"/>
  <xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="h:u">
  <xsl:text>\underline{</xsl:text>
  <xsl:apply-templates select="node()"/>
  <xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="h:tt|h:code|h:samp">
  <xsl:text>\texttt{</xsl:text>
  <xsl:apply-templates select="node()"/>
  <xsl:text>}</xsl:text>
</xsl:template>

</xsl:stylesheet>

