summaryrefslogtreecommitdiff
path: root/docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl')
-rw-r--r--docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl1131
1 files changed, 1131 insertions, 0 deletions
diff --git a/docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl b/docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl
new file mode 100644
index 0000000000..3fce8c2a40
--- /dev/null
+++ b/docs-xml/xslt/db2latex-xsl/xsl/preamble.mod.xsl
@@ -0,0 +1,1131 @@
+<?xml version='1.0'?>
+<!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
+<!--#############################################################################
+| $Id: preamble.mod.xsl,v 1.82 2004/01/31 12:26:12 j-devenish Exp $
+|- #############################################################################
+| $Author: j-devenish $
+|
+| PURPOSE: Variables and templates to manage LaTeX preamble.
++ ############################################################################## -->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+ exclude-result-prefixes="doc" version='1.0'>
+
+ <doc:reference id="preamble" xmlns="">
+ <referenceinfo>
+ <releaseinfo role="meta">
+ $Id: preamble.mod.xsl,v 1.82 2004/01/31 12:26:12 j-devenish Exp $
+ </releaseinfo>
+ <authorgroup>
+ &ramon;
+ &james;
+ </authorgroup>
+ <copyright>
+ <year>2000</year><year>2001</year><year>2002</year><year>2003</year><year>2004</year>
+ <holder>Ramon Casellas</holder>
+ </copyright>
+ <revhistory>
+ <doc:revision rcasver="1.77">&rev_2003_05;</doc:revision>
+ </revhistory>
+ </referenceinfo>
+ <title>Variables and Templates used in &LaTeX; Preamble Generation</title>
+ <partintro>
+ <para>
+
+ This section described the variables and templates that are used in
+ the generation of the output &LaTeX; preamble. Basically, the
+ &LaTeX; preamble depends on the <acronym>XML</acronym> document, that is, on whether
+ it is an <doc:db>article</doc:db> or a <doc:db>book</doc:db>.
+
+ </para>
+ </partintro>
+ </doc:reference>
+
+ <doc:template name="generate.latex.article.preamble" xmlns="">
+ <refpurpose>
+
+ Top level template, called by article template, responsible of
+ generating the &LaTeX; preamble according to user
+ <acronym>XSL</acronym> variables and templates.
+
+ </refpurpose>
+ <doc:description>
+ <para>
+
+ If <xref linkend="param.latex.override"/> is empty, the template
+ outputs <xref linkend="param.latex.article.preamblestart"/> and
+ <xref linkend="param.latex.article.preamble.pre"/>, then calls
+ <xref linkend="template.generate.latex.common.preamble"/> and <xref
+ linkend="template.generate.latex.essential.preamble"/> followed by
+ the value of <xref linkend="param.latex.article.preamble.post"/>.
+ Otherwise, it outputs the value of <xref linkend="param.latex.override"/>
+ followed by <xref
+ linkend="template.generate.latex.essential.preamble"/>.
+
+ </para>
+ </doc:description>
+ </doc:template>
+ <xsl:template name="generate.latex.article.preamble">
+ <xsl:choose>
+ <xsl:when test="$latex.override = ''">
+ <xsl:value-of select="$latex.article.preamblestart"/>
+ <xsl:value-of select="$latex.article.preamble.pre"/>
+ <xsl:call-template name="label.id"/>
+ <xsl:call-template name="generate.latex.common.preamble"/>
+ <xsl:call-template name="generate.latex.essential.preamble"/>
+ <xsl:value-of select="$latex.article.preamble.post"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$latex.override"/>
+ <xsl:call-template name="generate.latex.essential.preamble"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template name="generate.latex.book.preamble" xmlns="">
+ <refpurpose>
+
+ Top level template, called by book template, responsible of
+ generating the &LaTeX; preamble according to user
+ <acronym>XSL</acronym> variables and templates.
+
+ </refpurpose>
+ <doc:description>
+ <para>
+
+ If <xref linkend="param.latex.override"/> is empty, the template
+ outputs <xref linkend="param.latex.book.preamblestart"/> and
+ <xref linkend="param.latex.book.preamble.pre"/>, then calls
+ <xref linkend="template.generate.latex.common.preamble"/> and <xref
+ linkend="template.generate.latex.essential.preamble"/> followed by
+ the value of <xref linkend="param.latex.book.preamble.post"/>.
+ Otherwise, it outputs the value of <xref linkend="param.latex.override"/>
+ followed by <xref
+ linkend="template.generate.latex.essential.preamble"/>.
+
+ </para>
+ </doc:description>
+ </doc:template>
+ <xsl:template name="generate.latex.book.preamble">
+ <xsl:choose>
+ <xsl:when test="$latex.override = ''">
+ <xsl:value-of select="$latex.book.preamblestart"/>
+ <xsl:value-of select="$latex.book.preamble.pre"/>
+ <xsl:call-template name="label.id"/>
+ <xsl:call-template name="generate.latex.common.preamble"/>
+ <xsl:call-template name="generate.latex.essential.preamble"/>
+ <xsl:value-of select="$latex.book.preamble.post"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$latex.override"/>
+ <xsl:call-template name="generate.latex.essential.preamble"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:param name="latex.article.preamblestart" xmlns="">
+ <refpurpose> Generate <function condition="latex">documentclass</function> for <doc:db basename="article">articles</doc:db> </refpurpose>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.documentclass.common"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.article"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.pdftex"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.dvips"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:description>
+ </doc:description>
+ </doc:param>
+ <xsl:param name="latex.article.preamblestart">
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Autogenerated LaTeX file for articles&#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\ifx\pdfoutput\undefined&#10;</xsl:text>
+ <xsl:text>\documentclass[</xsl:text>
+ <xsl:value-of select='$latex.documentclass.common' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.article' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.pdftex' />
+ <xsl:text>]{</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass" /></xsl:when>
+ <xsl:otherwise><xsl:text>article</xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\documentclass[pdftex,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.common' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.article' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.dvips' />
+ <xsl:text>]{</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass" /></xsl:when>
+ <xsl:otherwise><xsl:text>article</xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ </xsl:param>
+
+ <doc:param name="latex.book.preamblestart" xmlns="">
+ <refpurpose> Generate <function condition="latex">documentclass</function> for <doc:db basename="book">books</doc:db> </refpurpose>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.documentclass.common"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.book"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.pdftex"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass.dvips"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.documentclass"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:description>
+ </doc:description>
+ </doc:param>
+ <xsl:param name="latex.book.preamblestart">
+ <xsl:text>% ------------------------------------------------------------ &#10;</xsl:text>
+ <xsl:text>% Autogenerated LaTeX file for books &#10;</xsl:text>
+ <xsl:text>% ------------------------------------------------------------ &#10;</xsl:text>
+ <xsl:text>\ifx\pdfoutput\undefined&#10;</xsl:text>
+ <xsl:text>\documentclass[</xsl:text>
+ <xsl:value-of select='$latex.documentclass.common' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.book' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.pdftex' />
+ <xsl:text>]{</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass" /></xsl:when>
+ <xsl:otherwise><xsl:text>report</xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\documentclass[pdftex,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.common' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.book' />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select='$latex.documentclass.dvips' />
+ <xsl:text>]{</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.documentclass!=''"><xsl:value-of select="$latex.documentclass" /></xsl:when>
+ <xsl:otherwise><xsl:text>report</xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ </xsl:param>
+
+ <doc:param xmlns="">
+ <refpurpose> Select localisation language </refpurpose>
+ <doc:description>
+ <para>
+ Chooses the <quote>gentext</quote> language for the document.
+ </para>
+ </doc:description>
+ <doc:variables>
+ &no_var;
+ </doc:variables>
+ <doc:notes>
+ <para>
+
+ Selects the root <doc:db>set</doc:db>, <doc:db>book</doc:db> or
+ <doc:db>article</doc:db> element and reads its <sgmltag
+ class="attribute">lang</sgmltag> or <sgmltag
+ class="attribute">xml:lang</sgmltag> attribute.
+
+ </para>
+ </doc:notes>
+ </doc:param>
+ <xsl:param name="document.xml.language">
+ <xsl:call-template name="l10n.language">
+ <xsl:with-param name="target" select="(/set|/book|/article)[1]"/>
+ <!-- now, induce the use of $target rather than the current node: -->
+ <xsl:with-param name="xref-context" select="true()"/>
+ </xsl:call-template>
+ </xsl:param>
+
+ <doc:param xmlns="">
+ <refpurpose> Select <productname>babel</productname> option </refpurpose>
+ <doc:description>
+ <para>
+ If <xref linkend="param.latex.babel.language"/> is not set, this
+ template will select a <productname>babel</productname> option
+ based on the <xref linkend="param.document.xml.language"/>.
+ </para>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.babel.language"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.document.xml.language"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:notes>
+ <para>A special value of <quote><literal>none</literal></quote>
+ can be used to disable <productname>babel</productname>.</para>
+ </doc:notes>
+ </doc:param>
+ <xsl:param name="latex.language.option">
+ <xsl:choose>
+ <xsl:when test="$latex.babel.language!=''">
+ <xsl:value-of select="$latex.babel.language"/>
+ </xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'af')">afrikaans</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'br')">breton</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'ca')">catalan</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'cs')">czech</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'cy')">welsh</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'da')">danish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'de')">ngerman</xsl:when><!-- ngerman, german or germanb? -->
+ <xsl:when test="starts-with($document.xml.language,'el')">greek</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'en')">
+ <xsl:choose>
+ <xsl:when test="starts-with($document.xml.language,'en-CA')">canadian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'en-GB')">british</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'en-US')">USenglish</xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'eo')">esperanto</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'es')">spanish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'et')">estonian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'fi')">finnish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'fr')">french</xsl:when><!-- francais, french, or frenchb? -->
+ <xsl:when test="starts-with($document.xml.language,'ga')">irish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'gd')">scottish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'gl')">galician</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'he')">hebrew</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'hr')">croatian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'hu')">hungarian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'id')">bahasa</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'it')">italian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'nl')">dutch</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'nn')">norsk</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'pl')">polish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'pt')">
+ <xsl:choose>
+ <xsl:when test="starts-with($document.xml.language,'pt-BR')">brazil</xsl:when>
+ <xsl:otherwise>portugese</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'ro')">romanian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'ru')">russian</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'sk')">slovak</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'sl')">slovene</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'sv')">swedish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'tr')">turkish</xsl:when>
+ <xsl:when test="starts-with($document.xml.language,'uk')">ukrainian</xsl:when>
+ </xsl:choose>
+ </xsl:param>
+
+ <doc:template xmlns="">
+ <refpurpose>
+
+ Common &LaTeX; preamble shared by <doc:db>articles</doc:db> and
+ <doc:db>books</doc:db>, and other document classes. Most of the
+ packages and package options are managed here.
+
+ </refpurpose>
+ <doc:description>
+ <para>
+
+ The &LaTeX; preamble, after the <function
+ condition="latex">documentclass</function> command but before the
+ <function condition="env">document</function> environment.
+
+ </para>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.pdf.support"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.pdf.preamble"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.article.varsets"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.book.varsets"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.bridgehead.in.lot"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.fancyhdr"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.fancyhdr.style"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.fancyhdr.truncation.partition"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.fancyhdr.truncation.style"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.varioref"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.varioref.options"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.dcolumn"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.decimal.point"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.fancybox"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.fancyvrb"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.fancyvrb.tabsize"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.isolatin1"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.parskip"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.rotating"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.subfigure"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.tabularx"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.umoline"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.url"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.math.support"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.math.preamble"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.document.font"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.hyperref"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.admonition.environment"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.caption.swapskip"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.hyphenation.tttricks"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.language.option"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.is.draft"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:seealso>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="template.generate.latex.pagestyle"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.gentext.dingbat"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.hyperref.preamble"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.float.preamble"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.graphicext"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.generate.latex.draft.preamble"/></simpara></listitem>
+ </itemizedlist>
+ </doc:seealso>
+ </doc:template>
+ <xsl:template name="generate.latex.common.preamble">
+ <xsl:choose>
+ <xsl:when test="$latex.pdf.support=1"><xsl:value-of select="$latex.pdf.preamble"/></xsl:when>
+ <xsl:otherwise><xsl:text>\usepackage{graphicx}&#10;</xsl:text></xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="local-name(.)='article'">
+ <xsl:value-of select="$latex.article.varsets"/>
+ </xsl:if>
+ <xsl:if test="local-name(.)='book'">
+ <xsl:value-of select="$latex.book.varsets"/>
+ </xsl:if>
+ <xsl:if test="$latex.bridgehead.in.lot=1">
+ <xsl:text><![CDATA[
+\makeatletter
+% redefine the listoffigures and listoftables so that the name of the chapter
+% is printed whenever there are figures or tables from that chapter. encourage
+% pagebreak prior to the name of the chapter (discourage orphans).
+\let\save@@chapter\@chapter
+\let\save@@l@figure\l@figure
+\let\the@l@figure@leader\relax
+\def\@chapter[#1]#2{\save@@chapter[{#1}]{#2}%
+\addtocontents{lof}{\protect\def\the@l@figure@leader{\protect\pagebreak[0]\protect\contentsline{chapter}{\protect\numberline{\thechapter}#1}{}{\thepage}}}%
+\addtocontents{lot}{\protect\def\the@l@figure@leader{\protect\pagebreak[0]\protect\contentsline{chapter}{\protect\numberline{\thechapter}#1}{}{\thepage}}}%
+}
+\renewcommand*\l@figure{\the@l@figure@leader\let\the@l@figure@leader\relax\save@@l@figure}
+\let\l@table\l@figure
+\makeatother
+]]></xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.use.fancyhdr=1">
+ <xsl:text>\usepackage{fancyhdr}&#10;</xsl:text>
+ <xsl:text>\renewcommand{\headrulewidth}{0.4pt}&#10;</xsl:text>
+ <xsl:text>\renewcommand{\footrulewidth}{0.4pt}&#10;</xsl:text>
+ <xsl:if test="$latex.fancyhdr.truncation.partition!=''">
+ <xsl:variable name="partition">
+ <xsl:value-of select="round(number($latex.fancyhdr.truncation.partition))"/>
+ </xsl:variable>
+ <xsl:variable name="left.fraction">
+ <xsl:choose>
+ <xsl:when test="$partition&lt;1">
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ <xsl:when test="$partition>97">
+ <xsl:text>.98</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- example: 60 becomes .59 -->
+ <xsl:value-of select="($partition - 1) div 100"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="right.fraction" select="0.98 - number($left.fraction)"/>
+ <xsl:text>% Safeguard against long headers.&#10;</xsl:text>
+ <xsl:text>\IfFileExists{truncate.sty}{&#10;</xsl:text>
+ <xsl:text>\usepackage{truncate}&#10;</xsl:text>
+ <xsl:text>% Use an ellipsis when text would be larger than x% of the text width.&#10;</xsl:text>
+ <xsl:text>% Preserve left/right text alignment using \hfill (works for English).&#10;</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.fancyhdr.truncation.style='lr'">
+ <!-- left vs. right -->
+ <xsl:choose>
+ <xsl:when test="$left.fraction &gt; 0.02">
+ <xsl:text>\fancyhead[ol]{\truncate{</xsl:text><xsl:value-of select="$left.fraction"/><xsl:text>\textwidth}{\sl\leftmark}}&#10;</xsl:text>
+ <xsl:text>\fancyhead[el]{\truncate{</xsl:text><xsl:value-of select="$left.fraction"/><xsl:text>\textwidth}{\sl\leftmark}}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\fancyhead[ol]{}&#10;</xsl:text>
+ <xsl:text>\fancyhead[el]{}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$right.fraction &gt; 0.02">
+ <xsl:text>\fancyhead[or]{\truncate{</xsl:text><xsl:value-of select="$right.fraction"/><xsl:text>\textwidth}{\hfill\sl\rightmark}}&#10;</xsl:text>
+ <xsl:text>\fancyhead[er]{\truncate{</xsl:text><xsl:value-of select="$right.fraction"/><xsl:text>\textwidth}{\hfill\sl\rightmark}}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\fancyhead[or]{}&#10;</xsl:text>
+ <xsl:text>\fancyhead[er]{}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- inside vs. outside -->
+ <xsl:choose>
+ <xsl:when test="$left.fraction &gt; 0.02">
+ <xsl:text>\fancyhead[ol]{\truncate{</xsl:text><xsl:value-of select="$left.fraction"/><xsl:text>\textwidth}{\sl\leftmark}}&#10;</xsl:text>
+ <xsl:text>\fancyhead[er]{\truncate{</xsl:text><xsl:value-of select="$left.fraction"/><xsl:text>\textwidth}{\hfill\sl\rightmark}}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\fancyhead[ol]{}&#10;</xsl:text>
+ <xsl:text>\fancyhead[er]{}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$right.fraction &gt; 0.02">
+ <xsl:text>\fancyhead[el]{\truncate{</xsl:text><xsl:value-of select="$right.fraction"/><xsl:text>\textwidth}{\sl\leftmark}}&#10;</xsl:text>
+ <xsl:text>\fancyhead[or]{\truncate{</xsl:text><xsl:value-of select="$right.fraction"/><xsl:text>\textwidth}{\hfill\sl\rightmark}}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\fancyhead[el]{}&#10;</xsl:text>
+ <xsl:text>\fancyhead[or]{}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}{\typeout{WARNING: truncate.sty wasn't available and functionality was skipped.}}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$latex.fancyhdr.style='natural'">
+ <xsl:text><![CDATA[
+\makeatletter
+% Override the default from fancyhdr (which would be to have all-caps headings).
+\newcommand{\dblatex@chaptermark}[1]{\markboth{{\ifnum \c@secnumdepth>\m@ne \@chapapp\ \thechapter. \ \fi #1}}{}}
+\def\dblatex@chaptersmark#1{\markboth{{#1}}{}}
+\newcommand{\dblatex@sectionmark}[1]{\markright{{\ifnum \c@secnumdepth >\z@ \thesection. \ \fi #1}}}
+\let\dblatex@ps@fancy\ps@fancy
+\def\ps@fancy{
+ \dblatex@ps@fancy
+ \let\chaptermark\dblatex@chaptermark
+ \let\sectionmark\dblatex@sectionmark
+}
+\makeatother
+]]></xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:call-template name="generate.latex.pagestyle"/>
+ <!--
+ Add dollar...
+ <xsl:if test="latex.fancyhdr.lh !=''"><xsl:text>\lhead{</xsl:text><xsl:value-of select="$latex.fancyhdr.lh"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ <xsl:if test="latex.fancyhdr.ch !=''"><xsl:text>\chead{</xsl:text><xsl:value-of select="$latex.fancyhdr.ch"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ <xsl:if test="latex.fancyhdr.rh !=''"><xsl:text>\rhead{</xsl:text><xsl:value-of select="$latex.fancyhdr.rh"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ <xsl:if test="latex.fancyhdr.lf !=''"><xsl:text>\lfoot{</xsl:text><xsl:value-of select="$latex.fancyhdr.lf"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ <xsl:if test="latex.fancyhdr.cf !=''"><xsl:text>\cfoot{</xsl:text><xsl:value-of select="$latex.fancyhdr.cf"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ <xsl:if test="latex.fancyhdr.rf !=''"><xsl:text>\rfoot{</xsl:text><xsl:value-of select="$latex.fancyhdr.rf"/><xsl:text>}&#10;</xsl:text></xsl:if>
+ -->
+ </xsl:if>
+ <xsl:text>% ---------------------- &#10;</xsl:text>
+ <xsl:text>% Most Common Packages &#10;</xsl:text>
+ <xsl:text>% ---------------------- &#10;</xsl:text>
+ <xsl:if test="$latex.use.varioref=1">
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.varioref.options"/>
+ <xsl:text>]{varioref} &#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>\usepackage{latexsym} &#10;</xsl:text>
+ <xsl:if test="$latex.use.dcolumn=1">
+ <xsl:text>\usepackage{dcolumn} &#10;</xsl:text>
+ <xsl:text>% Default decimal point-style column&#10;</xsl:text>
+ <xsl:text>\newcolumntype{d}{D{</xsl:text>
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">decimalpoint</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>}{</xsl:text>
+ <xsl:choose>
+ <xsl:when test="$latex.decimal.point!=''">
+ <xsl:value-of select="$latex.decimal.point"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="gentext.dingbat">
+ <xsl:with-param name="dingbat">latexdecimal</xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>}{-1}}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>\usepackage{enumerate} &#10;</xsl:text>
+ <xsl:if test="$latex.use.fancybox=1">
+ <!-- must be before \usepackage{fancyvrb} -->
+ <xsl:text>\usepackage{fancybox} &#10;</xsl:text>
+ </xsl:if>
+ <xsl:text>\usepackage{float} &#10;</xsl:text>
+ <xsl:text>\usepackage{ragged2e} &#10;</xsl:text>
+ <xsl:if test="$latex.use.fancyvrb=1">
+ <!-- must be after \usepackage{fancybox} -->
+ <xsl:text>\usepackage{fancyvrb} &#10;</xsl:text>
+ <xsl:text>\makeatletter\@namedef{FV@fontfamily@default}{\def\FV@FontScanPrep{}\def\FV@FontFamily{}}\makeatother&#10;</xsl:text>
+ <xsl:if test="$latex.fancyvrb.tabsize!=''">
+ <xsl:text>\fvset{obeytabs=true,tabsize=</xsl:text>
+ <xsl:value-of select="$latex.fancyvrb.tabsize"/>
+ <xsl:text>}&#10;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$latex.use.isolatin1=1">
+ <xsl:message>Please use $latex.inputenc='latin1' instead of $latex.use.isolatin1='1'.</xsl:message>
+ <xsl:text>\usepackage{isolatin1} &#10;</xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$latex.use.parskip=1">
+ <xsl:text>\usepackage{parskip} &#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- hack from parksip to stop excess whitespace after figure captions -->
+ <xsl:text><![CDATA[\makeatletter
+\let\dblatex@center\center\let\dblatex@endcenter\endcenter
+\def\dblatex@nolistI{\leftmargin\leftmargini\topsep\z@ \parsep\parskip \itemsep\z@}
+\def\center{\let\@listi\dblatex@nolistI\@listi\dblatex@center\let\@listi\@listI\@listi}
+\def\endcenter{\dblatex@endcenter}
+\makeatother
+]]></xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$latex.use.rotating=1"><xsl:text>\usepackage{rotating} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.use.subfigure=1"><xsl:text>\usepackage{subfigure} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.use.tabularx=1"><xsl:text>\usepackage{tabularx} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.use.ltxtable=1 or $latex.use.longtable=1"><xsl:text>\usepackage{longtable} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.use.umoline=1"><xsl:text>\usepackage{umoline} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.use.url=1"><xsl:text>\usepackage{url} &#10;</xsl:text></xsl:if>
+ <xsl:if test="$latex.math.support=1"><xsl:value-of select="$latex.math.preamble"/></xsl:if>
+
+ <!-- Configure document font. -->
+ <xsl:if test="$latex.document.font != 'default'">
+ <xsl:text>% ---------------&#10;</xsl:text>
+ <xsl:text>% Document Font &#10;</xsl:text>
+ <xsl:text>% ---------------&#10;</xsl:text>
+ <xsl:text>\usepackage{</xsl:text><xsl:value-of select="$latex.document.font"/><xsl:text>}&#10;</xsl:text>
+ </xsl:if>
+
+ <xsl:if test="$latex.use.hyperref=1">
+ <xsl:call-template name="latex.hyperref.preamble"/>
+ </xsl:if>
+ <xsl:value-of select="$latex.admonition.environment"/>
+ <xsl:call-template name="latex.float.preamble"/>
+ <xsl:call-template name="latex.graphicext"/>
+ <xsl:choose>
+ <xsl:when test='$latex.caption.swapskip=1'>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% $latex.caption.swapskip enabled for $formal.title.placement support&#10;</xsl:text>
+ <xsl:text>\newlength{\docbooktolatextempskip}&#10;</xsl:text>
+ <xsl:text>\newcommand{\captionswapskip}{\setlength{\docbooktolatextempskip}{\abovecaptionskip}</xsl:text>
+ <xsl:text>\setlength{\abovecaptionskip}{\belowcaptionskip}</xsl:text>
+ <xsl:text>\setlength{\belowcaptionskip}{\docbooktolatextempskip}}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\newcommand{\captionswapskip}{}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test='$latex.hyphenation.tttricks=1'>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Better linebreaks&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbookhyphenatedot}[1]{{\hyphenchar\font=`\.\relax #1\hyphenchar\font=`\-}}&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbookhyphenatefilename}[1]{{\hyphenchar\font=`\.\relax #1\hyphenchar\font=`\-}}&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbookhyphenateurl}[1]{{\hyphenchar\font=`\/\relax #1\hyphenchar\font=`\-}}&#10;</xsl:text>
+ </xsl:if>
+ <!--
+ <xsl:message>$document.xml.language: '<xsl:value-of select="$document.xml.language"/>'</xsl:message>
+ <xsl:message>$latex.language.option: '<xsl:value-of select="$latex.language.option"/>'</xsl:message>
+ -->
+ <xsl:if test="$latex.language.option!='none'">
+ <xsl:text>\usepackage[</xsl:text><xsl:value-of select="$latex.language.option" /><xsl:text>]{babel} &#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.use.hyperref='1'">
+ <xsl:text>% Guard against a problem with old package versions.&#10;</xsl:text>
+ <xsl:text>\makeatletter&#10;</xsl:text>
+ <xsl:text>\AtBeginDocument{&#10;</xsl:text>
+ <xsl:text>\DeclareRobustCommand\ref{\@refstar}&#10;</xsl:text>
+ <xsl:text>\DeclareRobustCommand\pageref{\@pagerefstar}&#10;</xsl:text>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text>\makeatother&#10;</xsl:text>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$latex.is.draft!=''">
+ <xsl:if test="$latex.is.draft=1">
+ <xsl:call-template name="generate.latex.draft.preamble"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="(/set|/book|/article)[1]/@status='draft'">
+ <xsl:call-template name="generate.latex.draft.preamble"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template xmlns="">
+ <refpurpose>
+
+ Common &LaTeX; preamble shared by <doc:db basename="article">article</doc:db> and
+ <doc:db basename="book">book</doc:db> when their <sgmltag
+ class="attribute">status</sgmltag> is <quote>draft</quote>.
+
+ </refpurpose>
+ <doc:description>
+ <para>
+
+
+
+ </para>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.is.draft"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.varioref"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:samples>
+ <simplelist type='inline'>
+ &test_index_draft;
+ &test_draft;
+ </simplelist>
+ </doc:samples>
+ </doc:template>
+ <xsl:template name="generate.latex.draft.preamble">
+ <xsl:choose>
+ <xsl:when test="$latex.use.varioref='1'">
+ <xsl:message>Combining varioref with showkeys (and hyperref?) is not supported.</xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\usepackage[color]{showkeys}&#10;</xsl:text>
+ <xsl:text>\definecolor{refkey}{gray}{0.5}&#10;</xsl:text>
+ <xsl:text>\definecolor{labelkey}{gray}{0.5}&#10;</xsl:text>
+ <xsl:text>% Rip off things from showkeys to highlight index references&#10;</xsl:text>
+ <xsl:text>\definecolor{indexkey}{gray}{.5}%&#10;</xsl:text>
+ <xsl:text>\makeatletter&#10;</xsl:text>
+ <xsl:text>\def\SK@indexcolor{\color{indexkey}}&#10;</xsl:text>
+ <xsl:text>\def\SK@@@index#1{\@bsphack\SK@\SK@@index{#1}\begingroup\SK@index{#1}\endgroup\@esphack}&#10;</xsl:text>
+ <xsl:text>\def\SK@@index#1>#2\SK@{\leavevmode\vbox to\z@{\vss \SK@indexcolor \rlap{\vrule\raise .75em\hbox{}{\circle*{5}}}}}&#10;</xsl:text>
+ <xsl:text>\AtBeginDocument{\let\SK@index\index&#10;\let\index\SK@@@index}&#10;</xsl:text>
+ <xsl:text>\makeatother&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:template xmlns="">
+ <refpurpose> Unavoidable &LaTeX; preamble shared by <doc:db
+ basename="article">articles</doc:db> and <doc:db
+ basename="book">books</doc:db> </refpurpose>
+ <doc:description>
+ <para>Contains custom commands <emphasis>that you just can't get rid of!</emphasis></para>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.use.hyperref"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.suppress.blank.page.headers"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.use.ucs"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.entities"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.ucs.options"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.inputenc"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.fontenc"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ <doc:seealso>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.biblio"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.callout"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.citation"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.footnote"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.glossary"/></simpara></listitem>
+ <listitem><simpara><xref linkend="template.latex.preamble.essential.index"/></simpara></listitem>
+ </itemizedlist>
+ </doc:seealso>
+ </doc:template>
+ <xsl:template name="generate.latex.essential.preamble">
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\makeatletter&#10;</xsl:text>
+ <xsl:text>\newcommand{\dbz}{\penalty \z@}&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbooktolatexpipe}{\ensuremath{|}\dbz}&#10;</xsl:text>
+ <xsl:text>\newskip\docbooktolatexoldparskip&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbooktolatexnoparskip}{\docbooktolatexoldparskip=\parskip\parskip=0pt plus 1pt}&#10;</xsl:text>
+ <xsl:text>\newcommand{\docbooktolatexrestoreparskip}{\parskip=\docbooktolatexoldparskip}&#10;</xsl:text>
+ <xsl:if test="$latex.use.hyperref!='1'">
+ <xsl:text>\newcommand{\href}[1]{{}}&#10;</xsl:text>
+ <xsl:text>\newcommand{\hyperlink}[1]{{}}&#10;</xsl:text>
+ <xsl:text>\newcommand{\hypertarget}[2]{#2}&#10;</xsl:text>
+ </xsl:if>
+ <!-- don't print headings on blank pages -->
+ <xsl:if test="$latex.suppress.blank.page.headers=1">
+ <xsl:text>\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else\hbox{}\thispagestyle{empty}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.use.ucs='1'">
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.ucs.options"/>
+ <xsl:text>]{ucs}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.entities='catcode'">
+ <xsl:text>\catcode`\&amp;=\active\def&amp;{\@ifnextchar##{\begingroup\@sanitize\@docbooktolatexunicode\@gobble}{\&amp;}}&#10;</xsl:text>
+ <xsl:if test="$latex.use.ucs!='1'">
+ <xsl:text><![CDATA[
+% A few example Unicode characters.
+% For full support, use the unicode pacakge from Dominique Unruh/CTAN.
+% \else\ifnum#1=8216{\textquoteleft}%
+% \else\ifnum#1=8217{\textquoteright}%
+\newcommand{\unichar}[1]{%
+ \ifnum#1=8211{--}%
+ \else\ifnum#1=8212{---}%
+ \else\ifnum#1=8216{`}%
+ \else\ifnum#1=8217{'}%
+ \else\ifnum#1=8218{\glq}%
+ \else\ifnum#1=8220{``}%
+ \else\ifnum#1=8221{''}%
+ \else\ifnum#1=8222{\glqq}%
+ \else\&\##1;\fi%
+ \fi\fi\fi\fi\fi%
+ \fi\fi%
+}
+]]></xsl:text>
+ </xsl:if>
+ <xsl:text>\def\@docbooktolatexunicode#1;{\endgroup\edef\@dbtemp{#1}\unichar{\@dbtemp}}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.inputenc!=''">
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.inputenc"/>
+ <xsl:text>]{inputenc}&#10;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$latex.fontenc!=''">
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.fontenc"/>
+ <xsl:text>]{fontenc}&#10;</xsl:text>
+ </xsl:if>
+ <!-- make proper headers for unnumbered chapter-level components -->
+ <!-- TODO make proper headers for unnumbered section-level components -->
+ <xsl:text><![CDATA[
+\ifx\dblatex@chaptersmark\@undefined\def\dblatex@chaptersmark#1{\markboth{\MakeUppercase{#1}}{}}\fi
+\let\save@makeschapterhead\@makeschapterhead
+\def\dblatex@makeschapterhead#1{\vspace*{-80pt}\save@makeschapterhead{#1}}
+\def\@makeschapterhead#1{\dblatex@makeschapterhead{#1}\dblatex@chaptersmark{#1}}
+]]></xsl:text>
+ <xsl:call-template name="latex.preamble.essential.biblio"/>
+ <xsl:call-template name="latex.preamble.essential.callout"/>
+ <xsl:call-template name="latex.preamble.essential.citation"/>
+ <xsl:call-template name="latex.preamble.essential.footnote"/>
+ <xsl:call-template name="latex.preamble.essential.glossary"/>
+ <xsl:call-template name="latex.preamble.essential.index"/>
+ <xsl:text><![CDATA[
+\def\docbooktolatexgobble{\expandafter\@gobble}
+% Prevent multiple openings of the same aux file
+% (happens when backref is used with multiple bibliography environments)
+\ifx\AfterBeginDocument\undefined\let\AfterBeginDocument\AtBeginDocument\fi
+\AfterBeginDocument{
+ \let\latex@@starttoc\@starttoc
+ \def\@starttoc#1{%
+ \@ifundefined{docbooktolatex@aux#1}{%
+ \global\@namedef{docbooktolatex@aux#1}{}%
+ \latex@@starttoc{#1}%
+ }{}
+ }
+}
+% --------------------------------------------
+% Hacks for honouring row/entry/@align
+% (\hspace not effective when in paragraph mode)
+% Naming convention for these macros is:
+% 'docbooktolatex' 'align' {alignment-type} {position-within-entry}
+% where r = right, l = left, c = centre
+\newcommand{\docbooktolatex@align}[2]{\protect\ifvmode#1\else\ifx\LT@@tabarray\@undefined#2\else#1\fi\fi}
+\newcommand{\docbooktolatexalignll}{\docbooktolatex@align{\raggedright}{}}
+\newcommand{\docbooktolatexalignlr}{\docbooktolatex@align{}{\hspace*\fill}}
+\newcommand{\docbooktolatexaligncl}{\docbooktolatex@align{\centering}{\hfill}}
+\newcommand{\docbooktolatexaligncr}{\docbooktolatex@align{}{\hspace*\fill}}
+\newcommand{\docbooktolatexalignrl}{\protect\ifvmode\raggedleft\else\hfill\fi}
+\newcommand{\docbooktolatexalignrr}{}
+\ifx\captionswapskip\@undefined\newcommand{\captionswapskip}{}\fi
+]]></xsl:text>
+ <xsl:text>\makeatother&#10;</xsl:text>
+ </xsl:template>
+
+ <doc:template>
+ <refpurpose> Preamble for certain floats </refpurpose>
+ </doc:template>
+ <xsl:template name="latex.float.preamble">
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Commands to manage/style/create floats &#10;</xsl:text>
+ <xsl:text>% figures, tables, algorithms, examples, eqn &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text> \floatstyle{ruled}&#10;</xsl:text>
+ <xsl:text> \restylefloat{figure}&#10;</xsl:text>
+ <xsl:text> \floatstyle{ruled}&#10;</xsl:text>
+ <xsl:text> \restylefloat{table}&#10;</xsl:text>
+ <xsl:text> \floatstyle{ruled}&#10;</xsl:text>
+ <xsl:text> \newfloat{program}{ht}{lop}[section]&#10;</xsl:text>
+ <xsl:text> \floatstyle{ruled}&#10;</xsl:text>
+ <xsl:text> \newfloat{example}{ht}{loe}[section]&#10;</xsl:text>
+ <xsl:text> \floatname{example}{</xsl:text>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">example</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text> \floatstyle{ruled}&#10;</xsl:text>
+ <xsl:text> \newfloat{dbequation}{ht}{loe}[section]&#10;</xsl:text>
+ <xsl:text> \makeatletter\def\toclevel@dbequation{0}\makeatother&#10;</xsl:text>
+ <xsl:text> \floatname{dbequation}{</xsl:text>
+ <xsl:call-template name="gentext.element.name">
+ <xsl:with-param name="element.name">equation</xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>}&#10;</xsl:text>
+ <xsl:text> \floatstyle{boxed}&#10;</xsl:text>
+ <xsl:text> \newfloat{algorithm}{ht}{loa}[section]&#10;</xsl:text>
+ <xsl:text> \floatname{algorithm}{Algorithm}&#10;</xsl:text>
+ </xsl:template>
+
+ <doc:param name="latex.pdf.preamble" xmlns="">
+ <doc:description>
+ <screen>
+ \usepackage{ifthen}
+ % --------------------------------------------
+ % Check for PDFLaTeX/LaTeX
+ % --------------------------------------------
+ \newif\ifpdf
+ \ifx\pdfoutput\undefined
+ \pdffalse % we are not running PDFLaTeX
+ \else
+ \pdfoutput=1 % we are running PDFLaTeX
+ \pdftrue
+ \fi
+ % --------------------------------------------
+ % Load graphicx package with pdf if needed
+ % --------------------------------------------
+ \ifpdf
+ \usepackage[pdftex]{graphicx}
+ \pdfcompresslevel=9
+ \else
+ \usepackage{graphicx}
+ \fi
+ </screen>
+ </doc:description>
+ </doc:param>
+ <xsl:param name="latex.pdf.preamble">
+ <xsl:text>\usepackage{ifthen}&#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Check for PDFLaTeX/LaTeX &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\newif\ifpdf&#10;</xsl:text>
+ <xsl:text>\ifx\pdfoutput\undefined&#10;</xsl:text>
+ <xsl:text>\pdffalse % we are not running PDFLaTeX&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\pdfoutput=1 % we are running PDFLaTeX&#10;</xsl:text>
+ <xsl:text>\pdftrue&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Load graphicx package with pdf if needed &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\ifpdf&#10;</xsl:text>
+ <xsl:text>\usepackage[pdftex]{graphicx}&#10;</xsl:text>
+ <xsl:text>\pdfcompresslevel=9&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\usepackage{graphicx}&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ </xsl:param>
+
+ <doc:template name="latex.hyperref.preamble" xmlns="">
+ <refpurpose> Manage the part of the preamble that handles the hyperref package.</refpurpose>
+ <doc:description>
+ <para> This template outputs the LaTeX code <literal>\usepackage[...]{hyperref}</literal>
+ in order to use hyperlinks, backrefs and other goodies. If PDF support is activated,
+ outputs laTeX code to detect whether the document is being compiled with
+ <filename>pdflatex</filename> or <filename>latex</filename> to supply the
+ right parameters (pdftex, dvips, etc).
+ <doc:todo> The package options should be optained
+ from XSL variables.</doc:todo>
+ </para>
+ <para>Default Value with PDF support:
+ <screen>
+ % --------------------------------------------
+ % Load hyperref package with pdf if needed
+ % --------------------------------------------
+ \ifpdf
+ \usepackage[pdftex,bookmarksnumbered,colorlinks,backref, bookmarks, breaklinks, linktocpage]{hyperref}
+ \else
+ \usepackage[bookmarksnumbered,colorlinks,backref, bookmarks, breaklinks, linktocpage]{hyperref}
+ \fi
+ % --------------------------------------------
+ </screen>
+ </para>
+ <para>Default Value without PDF support:
+ <screen>
+ % --------------------------------------------
+ % Load hyperref package
+ % --------------------------------------------
+ \usepackage[bookmarksnumbered,colorlinks,backref, bookmarks, breaklinks, linktocpage]{hyperref}
+ </screen>
+ </para>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.latex.pdf.support"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.hyperref.param.common"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.hyperref.param.pdftex"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.hyperref.param.dvips"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ </doc:template>
+ <xsl:template name="latex.hyperref.preamble">
+ <xsl:choose>
+ <xsl:when test="$latex.pdf.support=1">
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Load hyperref package with pdf if needed &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\ifpdf&#10;</xsl:text>
+ <xsl:text>\usepackage[pdftex,</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.common" />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.pdftex" />
+ <xsl:text>]{hyperref}&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.common" />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.dvips" />
+ <xsl:text>]{hyperref}&#10;</xsl:text>
+ <!--
+ <xsl:text>\makeatletter\def\pdfmark@[#1]#2{}\makeatother&#10;</xsl:text>
+ -->
+ <xsl:text>\fi&#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Load hyperref package &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\usepackage[</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.common" />
+ <xsl:text>,</xsl:text>
+ <xsl:value-of select="$latex.hyperref.param.dvips" />
+ <xsl:text>]{hyperref}&#10;</xsl:text>
+ <!--
+ <xsl:text>\makeatletter\def\pdfmark@[#1]#2{}\makeatother&#10;</xsl:text>
+ -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <doc:param xmlns="">
+ <refpurpose> &LaTeX; mathematics support </refpurpose>
+ </doc:param>
+ <xsl:param name="latex.math.preamble">
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>% Math support &#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ <xsl:text>\usepackage{amsmath,amsthm, amsfonts, amssymb, amsxtra,amsopn}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{thm}{Theorem}[section]&#10;</xsl:text>
+ <xsl:text>%\newtheorem{cor}[section]{Corollary}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{lem}[section]{Lemma}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{defn}[section]{Definition}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{prop}[section]{Proposition}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{ax}{Axiom}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{theorem}[section]{Theorem}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{corollary}{Corollary}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{lemma}{Lemma}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{proposition}{Proposition}&#10;</xsl:text>
+ <xsl:text>%\theoremstyle{definition}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{definition}{Definition}&#10;</xsl:text>
+ <xsl:text>%\theoremstyle{remark}&#10;</xsl:text>
+ <xsl:text>%\newtheorem{rem}{Remark}&#10;</xsl:text>
+ <xsl:text>%\newtheorem*{notation}{Notation}&#10;</xsl:text>
+ <xsl:text>%\newcommand{\ntt}{\normalfont\ttfamily}&#10;</xsl:text>
+ <xsl:text>%\newcommand{\thmref}[1]{Theorem~\ref{#1}}&#10;</xsl:text>
+ <xsl:text>%\newcommand{\secref}[1]{\S\ref{#1}}&#10;</xsl:text>
+ <xsl:text>%\newcommand{\lemref}[1]{Lemma~\ref{#1}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\bysame}{\mbox{\rule{3em}{.4pt}}\,}&#10;</xsl:text>
+ <xsl:text> \newcommand{\A}{\mathcal{A}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\B}{\mathcal{B}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\XcY}{{(X,Y)}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\SX}{{S_X}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\SY}{{S_Y}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\SXY}{{S_{X,Y}}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\SXgYy}{{S_{X|Y}(y)}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\Cw}[1]{{\hat C_#1(X|Y)}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\G}{{G(X|Y)}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\PY}{{P_{\mathcal{Y}}}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\X}{\mathcal{X}}&#10;</xsl:text>
+ <xsl:text> \newcommand{\wt}{\widetilde}&#10;</xsl:text>
+ <xsl:text> \newcommand{\wh}{\widehat}&#10;</xsl:text>
+ <xsl:text> % --------------------------------------------&#10;</xsl:text>
+ <xsl:text> %\DeclareMathOperator{\per}{per}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\cov}{cov}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\non}{non}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\cf}{cf}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\add}{add}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\Cham}{Cham}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\IM}{Im}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\esssup}{ess\,sup}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\meas}{meas}&#10;</xsl:text>
+ <xsl:text> \DeclareMathOperator{\seg}{seg}&#10;</xsl:text>
+ <xsl:text>% --------------------------------------------&#10;</xsl:text>
+ </xsl:param>
+
+ <doc:template xmlns="">
+ <refpurpose> Declared graphic extensions </refpurpose>
+ <doc:description>
+ <para>
+ This template checks whether the user has overridden <command>grafic.default.extension</command>
+ Otherwise, declares .pdf, .png, .jpg if using pdflatex and .eps if using latex.
+ </para>
+ <programlisting><![CDATA[
+<xsl:template name="latex.graphicext">
+<xsl:choose>
+<xsl:when test="$graphic.default.extension !=''">
+ <xsl:text>\DeclareGraphicsExtensions{</xsl:text>
+ <xsl:if test="not(contains($graphic.default.extension,'.'))">
+ <xsl:text>.</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$graphic.default.extension"/>
+ <xsl:text>}&#10;</xsl:text>
+</xsl:when>
+<xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$latex.pdf.support=1">
+ <xsl:text>\ifpdf&#10;</xsl:text>
+ <xsl:text>\DeclareGraphicsExtensions{.pdf,.png,.jpg}&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\DeclareGraphicsExtensions{.eps}&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\DeclareGraphicsExtensions{.eps}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:otherwise>
+</xsl:choose>
+</xsl:template>
+]]></programlisting>
+ </doc:description>
+ <doc:variables>
+ <itemizedlist>
+ <listitem><simpara><xref linkend="param.graphic.default.extension"/></simpara></listitem>
+ <listitem><simpara><xref linkend="param.latex.pdf.support"/></simpara></listitem>
+ </itemizedlist>
+ </doc:variables>
+ </doc:template>
+ <xsl:template name="latex.graphicext">
+ <xsl:choose>
+ <xsl:when test="$graphic.default.extension !=''">
+ <xsl:text>\DeclareGraphicsExtensions{</xsl:text>
+ <xsl:if test="not(contains($graphic.default.extension,'.'))">
+ <xsl:text>.</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$graphic.default.extension"/>
+ <xsl:text>}&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$latex.pdf.support=1">
+ <xsl:text>\ifpdf&#10;</xsl:text>
+ <xsl:text>\DeclareGraphicsExtensions{.pdf,.png,.jpg}&#10;</xsl:text>
+ <xsl:text>\else&#10;</xsl:text>
+ <xsl:text>\DeclareGraphicsExtensions{.eps}&#10;</xsl:text>
+ <xsl:text>\fi&#10;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>\DeclareGraphicsExtensions{.eps}&#10;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
+