<?xml version="1.0" encoding="utf-8"?> <!-- LaTeX-specific items. --> <stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!-- Environment setup. This enables you to define environment settings (e.g., required LaTeX packages, etc.). We normally explicitly call the sub-elements within this, so this template is empty to prevent unwanted stuff accidentally being included in the output. --> <template name="environment" match="environment" /> <!-- Load a LaTeX package. @options: Any arguments to the package. [optional] --> <template name="latex-package" match="latex-packages/package"> <common formats="/latex/xelatex/"> <xsl:text>\usepackage</xsl:text> <xsl:if test="@options"> <xsl:text>[</xsl:text> <xsl:value-of select="@options" /> <xsl:text>]</xsl:text> </xsl:if> <xsl:text>{</xsl:text> <xsl:value-of select="." /> <xsl:text>}</xsl:text> <xsl:call-template name="newline-internal" /> </common> </template> <!-- Execute a preamble LaTeX command. Use to set up things like counters, fonts, hyperref options, etc. --> <template name="latex-command" match="latex-commands/command"> <common formats="/latex/xelatex/"> <xsl:value-of select="." /> <xsl:call-template name="newline-internal" /> </common> </template> <!-- LaTeX hyphenation. A space-delimited list of hyphenated words. --> <template name="latex-hyphenation" match="latex-commands/hyphenation"> <common formats="/latex/xelatex/"> <xsl:text>\hyphenation{</xsl:text> <xsl:value-of select="." /> <xsl:text>}</xsl:text> <xsl:call-template name="newline-internal" /> </common> </template> <!-- Specify LaTeX document class and options. The master stylesheet specifies \documentclass[a4paper,12pt]{article}. Anything you specify here will override that completely, so be sure to set a4paper and 12pt if that's what you want. @options: The required document class options. [optional] --> <!-- Hmm, this may be more complex than I thought... External environment files sort of stuff it up. Perhaps LaTeX document class stuff should be in attributes of the document element? --> <template name="latex-documentclass" match="latex-documentclass|documentclass"> <common formats="/latex/xelatex/"> <xsl:text>\documentclass[</xsl:text> <xsl:value-of select="@options" /> <xsl:text>]{</xsl:text> <xsl:value-of select="." /> <xsl:text>}</xsl:text> <xsl:call-template name="newline-internal" /> </common> </template> <!-- Durr, this is identical to the previous one??? --> <template name="latex-documentclass-options" match="latex-documentclass[@options]|documentclass[@options]"> <common formats="/latex/xelatex/"> <xsl:text>\documentclass[</xsl:text> <xsl:value-of select="@options" /> <xsl:text>]{</xsl:text> <xsl:value-of select="." /> <xsl:text>}</xsl:text> <xsl:call-template name="newline-internal" /> </common> </template> <!-- Specify additional LaTeX document class options (i.e., in addition to the defaults). These should be a comma-separated list of the required options. These will be appended to the standard defaults (a4paper, 12pt). --> <template name="latex-document-options" match="latex-document-options"> <common formats="/latex/xelatex/"> <xsl:apply-templates /> </common> </template> <!-- A handy little utility template that outputs a space-delimited tabular column separator (i.e., " & "). This makes reading the generated tabular code just a /little/ easier. This is a callable template only. --> <template name="tabular-column-separator"> <common formats="/latex/xelatex/"> <xsl:text> & </xsl:text> </common> </template> </stylesheet>