1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-10 01:18:15 +03:00

Add Jerry's list of relevant TDB files to smbd manpage

(This used to be commit 9dac44bc41)
This commit is contained in:
Jelmer Vernooij 2004-06-07 20:20:34 +00:00 committed by Gerald W. Carter
parent 6576e9967c
commit a227b38588
7 changed files with 97 additions and 1409 deletions

View File

@ -274,6 +274,103 @@
diagnostics you are seeing.</para>
</refsect1>
<refsect1>
<title>TDB FILES</title>
<para>Samba stores it's data in several TDB (Trivial Database) files, usually located in <filename>/var/lib/samba</filename>.</para>
<para>
(*) information persistent across restarts (but not
necessarily important to backup).
</para>
<variablelist>
<varlistentry><term>account_policy.tdb*</term>
<listitem>
<para>NT account policy settings such as pw expiration, etc...</para>
</listitem>
</varlistentry>
<varlistentry><term>brlock.tdb</term>
<listitem><para>byte range locks</para></listitem>
</varlistentry>
<varlistentry><term>browse.dat</term>
<listitem><para>browse lists</para></listitem>
</varlistentry>
<varlistentry><term>connections.tdb</term>
<listitem><para>share connections (used to enforce max connections, etc...)</para></listitem>
</varlistentry>
<varlistentry><term>gencache.tdb</term>
<listitem><para>generic caching db</para></listitem>
</varlistentry>
<varlistentry><term>group_mapping.tdb*</term>
<listitem><para>group mapping information</para></listitem>
</varlistentry>
<varlistentry><term>locking.tdb</term>
<listitem><para>share modes &amp; oplocks</para></listitem>
</varlistentry>
<varlistentry><term>login_cache.tdb*</term>
<listitem><para>bad pw attempts</para></listitem>
</varlistentry>
<varlistentry><term>messages.tdb</term>
<listitem><para>Samba messaging system</para></listitem>
</varlistentry>
<varlistentry><term>netsamlogon_cache.tdb*</term>
<listitem><para>cache of user net_info_3 struct from net_samlogon() request (as a domain member)</para></listitem>
</varlistentry>
<varlistentry><term>ntdrivers.tdb*</term>
<listitem><para>installed printer drivers</para></listitem>
</varlistentry>
<varlistentry><term>ntforms.tdb*</term>
<listitem><para>installed printer forms</para></listitem>
</varlistentry>
<varlistentry><term>ntprinters.tdb*</term>
<listitem><para>installed printer information</para></listitem>
</varlistentry>
<varlistentry><term>printing/</term>
<listitem><para>directory containing tdb per print queue of cached lpq output</para></listitem>
</varlistentry>
<varlistentry><term>registry.tdb</term>
<listitem><para>Windows registry skeleton (connect via regedit.exe)</para></listitem>
</varlistentry>
<varlistentry><term>sessionid.tdb</term>
<listitem><para>session information (e.g. support for 'utmp = yes')</para></listitem>
</varlistentry>
<varlistentry><term>share_info.tdb*</term>
<listitem><para>share acls</para></listitem>
</varlistentry>
<varlistentry><term>winbindd_cache.tdb</term>
<listitem><para>winbindd's cache of user lists, etc...</para></listitem>
</varlistentry>
<varlistentry><term>winbindd_idmap.tdb*</term>
<listitem><para>winbindd's local idmap db</para></listitem>
</varlistentry>
<varlistentry><term>wins.dat*</term>
<listitem><para>wins database when 'wins support = yes'</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>SIGNALS</title>

View File

@ -1,154 +0,0 @@
<?xml version='1.0'?>
<!--#############################################################################
| PURPOSE:
| This is the "parent" stylesheet. The used "modules" are included here.
| output encoding text in ISO-8859-1 indented.
+ ############################################################################## -->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
exclude-result-prefixes="doc" version='1.0'>
<xsl:output method="text" encoding="ISO-8859-1" indent="yes"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/common/l10n.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/common/common.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/VERSION.xml"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/vars.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/latex.mapping.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/preamble.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/font.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/labelid.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/book-article.mod.xsl"/>
<!--
## commented out to prevent breaking the build - jerry
<xsl:include href="http://db2latex.sourceforge.net/xsl/dedication.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/preface.mod.xsl"/>
-->
<xsl:include href="http://db2latex.sourceforge.net/xsl/part-chap-app.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/sections.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/bridgehead.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/abstract.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/biblio.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/revision.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/admonition.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/verbatim.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/email.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/sgmltag.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/citation.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/qandaset.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/procedure.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/lists.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/callout.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/figure.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/graphic.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mediaobject.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/index.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/xref.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/formal.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/example.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/table.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/inline.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/authorgroup.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/dingbat.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/info.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/keywords.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/refentry.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/component.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/glossary.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/block.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/synop-oop.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/synop-struct.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/pi.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/footnote.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/texmath.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathelem.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.presentation.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.content.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.content.token.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.content.functions.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/mathml/mathml.content.constsymb.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/para.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/msgset.mod.xsl"/>
<xsl:include href="http://db2latex.sourceforge.net/xsl/errors.mod.xsl"/>
<xsl:include href="normalize-scape.mod.xsl"/>
<xsl:template match="/">
<xsl:variable name="xsl-vendor" select="system-property('xsl:vendor')"/>
<xsl:message>################################################################################</xsl:message>
<xsl:message> XSLT stylesheets DocBook - LaTeX 2e </xsl:message>
<xsl:message> Reqs: LaTeX 2e installation common packages </xsl:message>
<xsl:message>################################################################################</xsl:message>
<xsl:message> RELEASE : <xsl:value-of select="$VERSION"/> </xsl:message>
<xsl:message> VERSION : <xsl:value-of select="$CVSVERSION"/> </xsl:message>
<xsl:message> TAG : <xsl:value-of select="$TAG"/> </xsl:message>
<xsl:message> WWW : http://db2latex.sourceforge.net </xsl:message>
<xsl:message> SUMMARY : http://www.sourceforge.net/projects/db2latex </xsl:message>
<xsl:message> AUTHOR : Ramon Casellas casellas@infres.enst.fr </xsl:message>
<xsl:message> AUTHOR : James Devenish j-devenish@users.sf.net </xsl:message>
<xsl:message> USING : <xsl:call-template name="set-vendor"/> </xsl:message>
<xsl:message>################################################################################</xsl:message>
<xsl:apply-templates/>
</xsl:template>
<!--############################################################################# -->
<!-- XSL Processor Vendor -->
<!-- XSL Mailing Lists http://www.dpawson.co.uk/xsl/N10378.html -->
<!--############################################################################# -->
<xsl:template name="set-vendor">
<xsl:variable name="xsl-vendor" select="system-property('xsl:vendor')"/>
<xsl:choose>
<xsl:when test="contains($xsl-vendor, 'SAXON 6.4')">
<xsl:text>SAXON 6.4.X</xsl:text>
</xsl:when>
<xsl:when test="contains($xsl-vendor, 'SAXON 6.2')">
<xsl:text>SAXON 6.2.X</xsl:text>
</xsl:when>
<xsl:when test="starts-with($xsl-vendor,'SAXON')">
<xsl:text>SAXON</xsl:text>
</xsl:when>
<xsl:when test="contains($xsl-vendor,'Apache')">
<xsl:text>XALAN</xsl:text>
</xsl:when>
<xsl:when test="contains($xsl-vendor,'Xalan')">
<xsl:text>XALAN</xsl:text>
</xsl:when>
<xsl:when test="contains($xsl-vendor,'libxslt')">
<xsl:text>libxslt/xsltproc</xsl:text>
</xsl:when>
<xsl:when test="contains($xsl-vendor,'Clark')">
<xsl:text>XT</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>UNKNOWN</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,29 +0,0 @@
<?xml version='1.0'?>
<!--#############################################################################
|- #############################################################################
|
| PURPOSE:
+ ############################################################################## -->
<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'>
<xsl:template match="simplelist">
<xsl:if test="title"> <xsl:apply-templates select="title"/></xsl:if>
<xsl:text>&#10;\begin{itemize}&#10;</xsl:text>
<xsl:apply-templates select="member"/>
<xsl:text>&#10;\end{itemize}&#10;</xsl:text>
</xsl:template>
<xsl:template match="member">
<xsl:text>&#10;%--- Item&#10;</xsl:text>
<xsl:text>\item[] </xsl:text>
<xsl:apply-templates/>
<xsl:text>&#10;</xsl:text>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,395 +0,0 @@
<?xml version='1.0'?>
<!--#############################################################################
| $Id: normalize-scape.mod.xsl,v 1.1 2003/12/05 06:53:48 ab Exp $
|- #############################################################################
| $Author: ab $
|
| PURPOSE:
| Escape LaTeX and normalize-space templates.
| < > # $ % & ~ _ ^ \ { } |
+ ############################################################################## -->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
xmlns:exsl="http://exslt.org/common"
exclude-result-prefixes="doc"
extension-element-prefixes="exsl"
version='1.0'>
<!--############################################################################# -->
<!-- DOCUMENTATION -->
<doc:reference id="normalize-scape" xmlns="">
<referenceinfo>
<releaseinfo role="meta">
$Id: normalize-scape.mod.xsl,v 1.1 2003/12/05 06:53:48 ab Exp $
</releaseinfo>
<authorgroup>
<author> <firstname>Ramon</firstname> <surname>Casellas</surname> </author>
<author> <firstname>James</firstname> <surname>Devenish</surname> </author>
</authorgroup>
<copyright><year>2000</year><year>2001</year><year>2002</year><year>2003</year>
<holder>Ramon Casellas</holder>
</copyright>
</referenceinfo>
<title>Normalize and Scape strings.</title>
<partintro>
<section><title>Introduction</title>
<para></para>
</section>
</partintro>
</doc:reference>
<!--############################################################################# -->
<xsl:key name="character" match="character" use="unicode"/>
<xsl:param name="unicode.mapping.local" select="''"/>
<xsl:param name="unicode.mapping.default" select="'unicode.mapping.xml'"/>
<xsl:param name="unicode.mapping.languages" select="''"/>
<xsl:variable name="unicode.mapping.sources">
<xsl:if test="not(function-available('exsl:node-set'))">
<xsl:message terminate="yes">
<xsl:text>Error: this style requires support for extension 'exsl:node-set()'</xsl:text>
</xsl:message>
</xsl:if>
<file><xsl:value-of select="$unicode.mapping.local"/></file>
<xsl:call-template name="parse.unicode.mapping.languages">
<xsl:with-param name="languages" select="$unicode.mapping.languages"/>
</xsl:call-template>
<file><xsl:value-of select="$unicode.mapping.default"/></file>
</xsl:variable>
<xsl:variable name="unicode.mapping.database" select="document(exsl:node-set($unicode.mapping.sources)/file,document(''))/mapping"/>
<xsl:template name="parse.unicode.mapping.languages">
<xsl:param name="languages"/>
<xsl:if test="contains($languages,' ')">
<xsl:variable name="unicode.mapping.lang.file" select="concat('unicode.mapping.',substring-before($languages,' '),'.xml')"/>
<xsl:if test="document($unicode.mapping.lang.file)">
<file><xsl:value-of select="$unicode.mapping.lang.file"/></file>
</xsl:if>
<xsl:call-template name="parse.unicode.mapping.languages">
<xsl:with-param name="languages" select="substring-after($languages,' ')"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="not(string-length($languages)=0)">
<xsl:variable name="unicode.mapping.lang.file" select="concat('unicode.mapping.',$languages,'.xml')"/>
<xsl:if test="document($unicode.mapping.lang.file)">
<file><xsl:value-of select="$unicode.mapping.lang.file"/></file>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template name="scape">
<xsl:param name="string"/>
<xsl:if test="not(string-length($string)=0)">
<xsl:variable name="char" select="substring($string,1,1)"/>
<xsl:variable name="preferred">
<xsl:for-each select="$unicode.mapping.database">
<preferred><xsl:value-of select="key('character',$char)/preferred"/></preferred>
</xsl:for-each>
</xsl:variable>
<xsl:choose>
<!-- Do not optimize it to variable calculation. I already test it for speed with xsltproc :) -->
<xsl:when test="exsl:node-set($preferred)/preferred[not(string-length(.)=0)][1]">
<xsl:value-of select="exsl:node-set($preferred)/preferred[not(string-length(.)=0)][1]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$char"/>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="substring($string,2)"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="scape-href">
<xsl:param name="string"/>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="scape-verbatim">
<xsl:param name="string"/>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="scape.slash.hyphen">
<xsl:param name="string"/>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="scape-url">
<xsl:param name="string"/>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
<xsl:template match="example">
<xsl:variable name="placement">
<xsl:call-template name="generate.formal.title.placement">
<xsl:with-param name="object" select="local-name(.)" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="caption">
<xsl:text>{</xsl:text>
<xsl:value-of select="$latex.example.caption.style"/>
<xsl:text>{\caption{</xsl:text>
<!-- WARNING: do not scape if title output already scaped by original title parsing -->
<xsl:call-template name="scape">
<xsl:with-param name="string">
<xsl:apply-templates select="title" mode="caption.mode"/>
</xsl:with-param>
</xsl:call-template>
<xsl:text>}</xsl:text>
<xsl:text>}}&#10;</xsl:text>
</xsl:variable>
<xsl:call-template name="map.begin"/>
<xsl:if test="$placement='before'">
<xsl:text>\captionswapskip{}</xsl:text>
<xsl:value-of select="$caption"/>
<xsl:text>\captionswapskip{}</xsl:text>
</xsl:if>
<xsl:apply-templates />
<xsl:if test="$placement!='before'">
<xsl:value-of select="$caption"/>
</xsl:if>
<xsl:call-template name="map.end"/>
</xsl:template>
<!--############################################################################# -->
<!-- DOCUMENTATION -->
<doc:template name="normalize-scape" xmlns="">
<refpurpose> Abstract XSL template. </refpurpose>
<refdescription>
</refdescription>
</doc:template>
<!--############################################################################# -->
<xsl:template match="text()" name="text">
<xsl:call-template name="trim-outer">
<xsl:with-param name="string">
<xsl:choose>
<xsl:when test="ancestor::literal|ancestor::filename|ancestor::userinput|ancestor::systemitem|ancestor::prompt|ancestor::email|ancestor::sgmltag">
<xsl:call-template name="scape-verbatim">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<!--
<xsl:template match="abbrev/text()">
<xsl:variable name="string">
<xsl:call-template name="text()"/>
</xsl:variable>
<xsl:call-template name="string-replace">
<xsl:with-param name="to">.\ </xsl:with-param>
<xsl:with-param name="from">. </xsl:with-param>
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
-->
<xsl:template match="text()" mode="xref.text">
<xsl:call-template name="trim-outer">
<xsl:with-param name="string">
<xsl:call-template name="scape">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()" mode="xref-to">
<xsl:call-template name="trim-outer">
<xsl:with-param name="string">
<xsl:call-template name="scape">
<xsl:with-param name="string" select="."/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template match="text()" mode="latex.verbatim">
<!--
<xsl:call-template name="trim-outer">
<xsl:with-param name="string">
-->
<xsl:value-of select="."/>
<!--
</xsl:with-param>
</xsl:call-template>
-->
</xsl:template>
<!-- this template is noly used by xref.mod.xsl and only when
$latex.hyphenation.tttricks != 1. -->
<xsl:template match="text()" mode="slash.hyphen">
<xsl:call-template name="trim-outer">
<xsl:with-param name="string">
<xsl:call-template name="scape.slash.hyphen">
<xsl:with-param name="string" select="." />
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="trim-outer">
<xsl:param name="string"/>
<xsl:variable name="trimleft" select="position()=1"/>
<xsl:variable name="trimright" select="position()=last()"/>
<xsl:choose>
<xsl:when test="$trimleft and not($trimright)">
<xsl:value-of select="substring-before(normalize-space(concat($string,'$$')),'$$')"/>
</xsl:when>
<xsl:when test="$trimright and not($trimleft)">
<xsl:value-of select="substring-after(normalize-space(concat('$$',$string)),'$$')"/>
</xsl:when>
<xsl:when test="$trimleft and $trimright">
<xsl:value-of select="normalize-space($string)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="scape.slash.hyphen">
<xsl:param name="string" />
<xsl:choose>
<xsl:when test="contains($string,'://')">
<xsl:call-template name="string-replace">
<xsl:with-param name="to">/\dbz{}</xsl:with-param>
<xsl:with-param name="from">/</xsl:with-param>
<xsl:with-param name="string">
<xsl:call-template name="string-replace">
<xsl:with-param name="to">.\dbz{}</xsl:with-param>
<xsl:with-param name="from">.</xsl:with-param>
<xsl:with-param name="string">
<xsl:value-of select="substring-before($string,'://')"/>
<xsl:value-of select="'://'"/>
<xsl:call-template name="scape">
<xsl:with-param name="string" select="substring-after($string,'://')"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="string-replace">
<xsl:with-param name="to">/\dbz{}</xsl:with-param>
<xsl:with-param name="from">/</xsl:with-param>
<xsl:with-param name="string">
<xsl:call-template name="string-replace">
<xsl:with-param name="to">.\dbz{}</xsl:with-param>
<xsl:with-param name="from">.</xsl:with-param>
<xsl:with-param name="string">
<xsl:call-template name="scape">
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="normalize-scape" >
<xsl:param name="string"/>
<xsl:variable name="result">
<xsl:call-template name="scape"><xsl:with-param name="string" select="$string"/></xsl:call-template>
</xsl:variable>
<xsl:value-of select="normalize-space($result)"/>
</xsl:template>
<doc:template name="scape-optionalarg" xmlns="">
<refpurpose> Escape the ] character in LaTeX optional arguments (experimental) </refpurpose>
<refdescription>
</refdescription>
</doc:template>
<xsl:template name="scape-optionalarg" >
<xsl:param name="string"/>
<xsl:call-template name="string-replace">
<xsl:with-param name="to">{\rbrack}</xsl:with-param>
<xsl:with-param name="from">]</xsl:with-param>
<xsl:with-param name="string" select="$string"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="string-replace">
<xsl:param name="string"/>
<xsl:param name="from"/>
<xsl:param name="to"/>
<xsl:choose>
<xsl:when test="contains($string, $from)">
<xsl:variable name="before" select="substring-before($string, $from)"/>
<xsl:variable name="after" select="substring-after($string, $from)"/>
<xsl:variable name="prefix" select="concat($before, $to)"/>
<xsl:value-of select="$before"/>
<xsl:value-of select="$to"/>
<xsl:call-template name="string-replace">
<xsl:with-param name="string" select="$after"/>
<xsl:with-param name="from" select="$from"/>
<xsl:with-param name="to" select="$to"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
(c) David Carlisle
replace all occurences of the character(s) `from'
by the string `to' in the string `string'.
<xsl:template name="string-replace" >
<xsl:param name="string"/>
<xsl:param name="from"/>
<xsl:param name="to"/>
<xsl:choose>
<xsl:when test="contains($string,$from)">
<xsl:value-of select="substring-before($string,$from)"/>
<xsl:value-of select="$to"/>
<xsl:call-template name="string-replace">
<xsl:with-param name="string" select="substring-after($string,$from)"/>
<xsl:with-param name="from" select="$from"/>
<xsl:with-param name="to" select="$to"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
-->
</xsl:stylesheet>

View File

@ -1,743 +0,0 @@
<?xml version='1.0'?>
<!--#############################################################################
|- #############################################################################
|
| PURPOSE:
+ ############################################################################## -->
<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'>
<!--############################################################################# -->
<!-- DOCUMENTATION -->
<doc:reference id="table" xmlns="">
<referenceinfo>
<releaseinfo role="meta">
</releaseinfo>
<authorgroup>
<firstname>Ramon</firstname> <surname>Casellas</surname>
<firstname>James</firstname> <surname>Devenish</surname>
</authorgroup>
<copyright>
<year>2000</year> <year>2001</year> <year>2002</year> <year>2003</year>
<holder>Ramon Casellas</holder>
</copyright>
</referenceinfo>
<title>Tables <filename>table.mod.xsl</filename></title>
<partintro>
<section><title>Introduction</title>
<para></para>
</section>
</partintro>
</doc:reference>
<!--############################################################################# -->
<!-- DOCUMENTATION -->
<doc:template match="table|informaltable" xmlns="">
<refpurpose>XSL template for docbook tables. </refpurpose>
<refdescription>
<para></para>
<formalpara><title>Remarks and Bugs</title>
<itemizedlist>
</itemizedlist>
</formalpara>
<formalpara><title>Default Behaviour</title>
<screen></screen>
</formalpara>
</refdescription>
</doc:template>
<!--############################################################################# -->
<xsl:template match="table">
<xsl:variable name="placement">
<xsl:call-template name="generate.formal.title.placement">
<xsl:with-param name="object" select="local-name(.)" />
</xsl:call-template>
</xsl:variable>
<xsl:variable name="caption">
<xsl:text>\caption{</xsl:text>
<xsl:apply-templates select="title" mode="caption.mode"/>
<xsl:text>}&#10;</xsl:text>
</xsl:variable>
<xsl:call-template name="map.begin"/>
<xsl:if test="$placement='before'">
<xsl:text>\captionswapskip{}</xsl:text>
<xsl:value-of select="$caption" />
<xsl:text>\captionswapskip{}</xsl:text>
</xsl:if>
<xsl:apply-templates/>
<xsl:if test="$placement!='before'"><xsl:value-of select="$caption" /></xsl:if>
<xsl:call-template name="map.end"/>
</xsl:template>
<xsl:template match="table/title"/>
<xsl:template match="table/title" mode="caption.mode"><xsl:apply-templates /></xsl:template>
<xsl:template match="informaltable">
<xsl:call-template name="map.begin"/>
<xsl:apply-templates/>
<xsl:call-template name="map.end"/>
</xsl:template>
<xsl:template name="table.format.tabularx">
<xsl:param name="cols" select="1"/>
<xsl:param name="i" select="1"/>
<xsl:param name="colsep" select="1"/>
<!-- sum of numeric portions in 1*-like colwidths -->
<xsl:param name="starfactor" select="0"/>
<xsl:choose>
<!-- Out of the recursive iteration -->
<xsl:when test="$i > $cols"></xsl:when>
<!-- There are still columns to count -->
<xsl:otherwise>
<xsl:variable name="width">
<xsl:variable name="userchoice" select="colspec[@colnum=$i]/@colwidth"/>
<xsl:variable name="cells" select="thead/row/entry[$i]|tbody/row/entry[$i]"/>
<xsl:choose>
<xsl:when test="string-length($userchoice)=0 and count($cells//itemizedlist|$cells//orderedlist|$cells//variablelist)&gt;0">
<!-- In these specific circumstances, we MUST use a line-wrapped column
and yet the user hasn't specified one. -->
<xsl:value-of select="'1*'"/>
</xsl:when>
<xsl:otherwise>
<!-- In the general case, we just do what the user wants (may even
have no pre-specified width). -->
<xsl:value-of select="$userchoice"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Try to take heed of colspecs -->
<xsl:choose>
<xsl:when test="$width!=''">
<xsl:text>&gt;{</xsl:text>
<xsl:if test="contains($width,'*')">
<!-- see tabularx documentation -->
<xsl:text>\hsize=</xsl:text>
<xsl:value-of select="substring-before($width,'*') * $starfactor" />
<xsl:text>\hsize</xsl:text>
</xsl:if>
<xsl:choose>
<xsl:when test="colspec[@colnum=$i]/@align='left'"><xsl:text>\RaggedRight</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='right'"><xsl:text>\RaggedLeft</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='center'"><xsl:text>\Centering</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='char'"><xsl:message>Table column char alignment is not supported.</xsl:message></xsl:when>
</xsl:choose>
<xsl:text>}</xsl:text>
<xsl:choose>
<xsl:when test="contains($width,'*')">
<xsl:text>X</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>p{</xsl:text><xsl:value-of select="$width" /><xsl:text>}</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$i&lt;$cols and $colsep='1'">
<xsl:text>|</xsl:text>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="colspec[@colnum=$i]/@align='left'"><xsl:text>l</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='right'"><xsl:text>r</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='center'"><xsl:text>c</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='justify'"><xsl:text>X</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='char'"><xsl:text>c</xsl:text><xsl:message>Table column char alignment is not supported.</xsl:message></xsl:when>
<xsl:otherwise><xsl:text>X</xsl:text></xsl:otherwise>
</xsl:choose>
<xsl:if test="$i&lt;$cols and $colsep='1'">
<xsl:text>|</xsl:text>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<!-- Recursive for next column -->
<xsl:call-template name="table.format.tabularx">
<xsl:with-param name="i" select="$i+1"/>
<xsl:with-param name="cols" select="$cols"/>
<xsl:with-param name="starfactor" select="$starfactor"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- FIX THIS -->
<xsl:template name="table.format.tabular">
<xsl:param name="cols" select="1"/>
<xsl:param name="i" select="1"/>
<xsl:param name="colsep" select="1"/>
<xsl:choose>
<!-- Out of the recursive iteration -->
<xsl:when test="$i > $cols"></xsl:when>
<!-- There are still columns to count -->
<xsl:otherwise>
<!-- Try to take heed of colspecs -->
<xsl:choose>
<!-- RC 2003/03/19 : Added first 'test' : colspec[@colnum=$i] for xsltproc
Before this patch, parsing the doc with xsltproc the xsl:when clause
was evaluated to 'true' even if there was no colspec for the column
-->
<xsl:when test="colspec[@colnum=$i] and colspec[@colnum=$i]/@colwidth!='' and not(contains(colspec[@colnum=$i]/@colwidth,'*'))">
<xsl:choose>
<xsl:when test="colspec[@colnum=$i]/@align='left'"><xsl:text>&gt;{\RaggedRight}</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='right'"><xsl:text>&gt;{\RaggedLeft}</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='center'"><xsl:text>&gt;{\Centering}</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='char'"><xsl:message>Table column char alignment is not supported.</xsl:message></xsl:when>
</xsl:choose>
<xsl:text>p{</xsl:text><xsl:value-of select="colspec[@colnum=$i]/@colwidth" /><xsl:text>}</xsl:text>
<xsl:if test="$i&lt;$cols and $colsep='1'">
<xsl:text>|</xsl:text>
</xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="colspec[@colnum=$i]/@align='left'"><xsl:text>l</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='right'"><xsl:text>r</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='center'"><xsl:text>c</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='justify'"><xsl:text>l</xsl:text></xsl:when>
<xsl:when test="colspec[@colnum=$i]/@align='char'"><xsl:text>c</xsl:text><xsl:message>Table column char alignment is not supported.</xsl:message></xsl:when>
<xsl:otherwise><xsl:text>c</xsl:text></xsl:otherwise>
</xsl:choose>
<xsl:if test="$i&lt;$cols and $colsep='1'">
<xsl:text>|</xsl:text>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
<!-- Recursive for next column -->
<xsl:call-template name="table.format.tabular">
<xsl:with-param name="i" select="$i+1"/>
<xsl:with-param name="cols" select="$cols"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- See tabularx documentation. -->
<!-- For example, if we have a 1* column and a 3* column, then the
the hsizes for each column are (1/(1+3)*2) and (3/(1+3)*2).
The ratio of these to the star values (star values being 1 and 3)
is 2/(1+3).
BUT it is now very complicated because it takes into account columns
where the user has not specified a width but LaTeX requires a
fixed-width column (i.e. specialcols may vary).
Relies on there being (a) colspecs for every column or (b) no
colspecs.
-->
<xsl:template name="generate.starfactor">
<xsl:param name="i" select="1"/>
<xsl:param name="cols" select="count(colspec)"/>
<xsl:param name="sum" select="0"/>
<xsl:param name="specialcols" select="count(colspec[contains(@colwidth,'*')])"/>
<xsl:choose>
<xsl:when test="$i&lt;=$cols and colspec[position()=$i and contains(@colwidth,'*')]">
<!-- a * column -->
<xsl:call-template name="generate.starfactor">
<xsl:with-param name="i" select="$i+1"/>
<xsl:with-param name="cols" select="$cols"/>
<xsl:with-param name="sum" select="$sum+substring-before(colspec[$i]/@colwidth,'*')"/>
<xsl:with-param name="specialcols" select="$specialcols"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="$i&lt;=$cols">
<!-- not a * column, but we are going to pretend that it is -->
<xsl:variable name="cells" select="thead/row/entry[$i]|tbody/row/entry[$i]"/>
<xsl:variable name="problems" select="count($cells//itemizedlist|$cells//orderedlist|$cells//variablelist)"/>
<xsl:choose>
<xsl:when test="$problems &gt; 0">
<xsl:call-template name="generate.starfactor">
<xsl:with-param name="i" select="$i+1"/>
<xsl:with-param name="cols" select="$cols"/>
<xsl:with-param name="sum" select="$sum+1"/>
<xsl:with-param name="specialcols" select="$specialcols+1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="generate.starfactor">
<xsl:with-param name="i" select="$i+1"/>
<xsl:with-param name="cols" select="$cols"/>
<xsl:with-param name="sum" select="$sum"/>
<xsl:with-param name="specialcols" select="$specialcols"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$specialcols div $sum"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="tgroup">
<xsl:variable name="align" select="@align"/>
<xsl:variable name="frame">
<xsl:choose>
<xsl:when test="string-length(../@frame)&lt;1">all</xsl:when>
<xsl:otherwise>
<xsl:value-of select="../@frame"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="colspecs" select="./colspec"/>
<xsl:variable name="usex">
<xsl:choose>
<!-- if there are lists within cells, we need tabularx -->
<xsl:when test="$latex.use.tabularx=1 and (descendant::itemizedlist|descendant::orderedlist|descendant::variablelist)">
<xsl:text>1</xsl:text>
</xsl:when>
<!-- if there are instances of 1*-style colwidths, we need tabularx -->
<xsl:when test="$latex.use.tabularx=1 and contains(colspec/@colwidth,'*')">
<xsl:text>1</xsl:text>
</xsl:when>
<!-- if there are colspecs with 'justify' alignment and no explicit width, we need tabularx -->
<xsl:when test="$latex.use.tabularx=1 and count(colspec[@align='justify'])&gt;0">
<xsl:text>1</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>1</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="useminipage">
<!-- Hack to get around LaTeX issue with tabular (not necessary with tabularx).
This is NOT a good solution, and has problems of its own, but at least the footnotes
do not actually disappear (which is what would otherwise happen). -->
<xsl:if test="count(.//footnote)!=0">1</xsl:if>
</xsl:variable>
<xsl:choose>
<xsl:when test="$usex='1'">
<xsl:text>\begin{tabularx}{\linewidth}{</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:if test="$useminipage='1'"><xsl:text>\begin{minipage}{\linewidth}&#10;</xsl:text></xsl:if>
<xsl:text>\begin{tabular}{</xsl:text>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$frame='all' or $frame='sides'">
<xsl:text>|</xsl:text>
</xsl:if>
<xsl:choose>
<xsl:when test="$usex=1">
<xsl:call-template name="table.format.tabularx">
<xsl:with-param name="cols" select="@cols"/>
<xsl:with-param name="starfactor">
<xsl:call-template name="generate.starfactor">
<xsl:with-param name="cols" select="@cols"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="table.format.tabular">
<xsl:with-param name="cols" select="@cols"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$frame='all' or $frame='sides'">
<xsl:text>|</xsl:text>
</xsl:if>
<xsl:text>}&#10;</xsl:text>
<xsl:if test="$frame!='sides' and $frame!='none' and $frame!='bottom'">
<xsl:text>\hline &#10;</xsl:text>
</xsl:if>
<!-- APPLY TEMPLATES -->
<xsl:apply-templates/>
<!-- -->
<xsl:if test="$frame!='sides' and $frame!='none' and $frame!='top'">
<xsl:text>\hline &#10;</xsl:text>
</xsl:if>
<xsl:choose>
<xsl:when test="$usex=1">
<xsl:text>\end{tabularx}&#10;</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>\end{tabular}&#10;</xsl:text>
<xsl:if test="$useminipage='1'"><xsl:text>\end{minipage}&#10;</xsl:text></xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
<xsl:template name="generate.col">
<xsl:param name="countcol">1</xsl:param>
</xsl:template>
-->
<xsl:template match="colspec"></xsl:template>
<xsl:template match="spanspec"></xsl:template>
<xsl:template match="thead|tfoot">
<xsl:if test="@align">
<xsl:attribute name="align">
<xsl:value-of select="@align"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@char">
<xsl:attribute name="char">
<xsl:value-of select="@char"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@charoff">
<xsl:attribute name="charoff">
<xsl:value-of select="@charoff"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@valign">
<xsl:attribute name="valign">
<xsl:value-of select="@valign"/>
</xsl:attribute>
</xsl:if>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="thead/row/entry|tfoot/row/entry">
<xsl:call-template name="latex.entry.prealign"/>
<xsl:call-template name="latex.thead.row.entry"/>
<xsl:call-template name="latex.entry.postalign"/>
<xsl:choose>
<xsl:when test="position()=last()"><xsl:text> \tabularnewline&#10;</xsl:text></xsl:when>
<xsl:otherwise><xsl:call-template name="generate.latex.cell.separator"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="tbody">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="row">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="tbody/row|thead/row|tfoot/row">
<xsl:apply-templates/>
<!-- The rule below the last row in the table is controlled by the
Frame attribute of the enclosing Table or InformalTable and the RowSep
of the last row is ignored. If unspecified, this attribute is
inherited from enclosing elements, rowsep=1 by default. -->
<xsl:variable name="parent_position" select="count(../preceding-sibling::node())+1"/>
<xsl:variable name="grandparent_children" select="count(../../child::node())"/>
<xsl:if test="(count(@rowsep)=0 or @rowsep='1') and (position() != last() or $parent_position &lt; $grandparent_children)">
<xsl:text> \hline &#10;</xsl:text>
</xsl:if>
</xsl:template>
<xsl:template match="tbody/row/entry">
<xsl:call-template name="latex.entry.prealign"/>
<xsl:apply-templates/>
<xsl:call-template name="latex.entry.postalign"/>
<xsl:choose>
<xsl:when test="position()=last()"><xsl:text> \tabularnewline&#10;</xsl:text></xsl:when>
<xsl:otherwise><xsl:call-template name="generate.latex.cell.separator"/></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="latex.entry.prealign">
<xsl:variable name="span">
<xsl:choose>
<xsl:when test="@spanname!=''">
<xsl:call-template name="calculate.colspan">
<xsl:with-param name="namest" select="../../../spanspec[@spanname=@spanname]/@namest"/>
<xsl:with-param name="nameend" select="../../../spanspec[@spanname=@spanname]/@nameend"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="@namest!=''">
<xsl:call-template name="calculate.colspan"/>
</xsl:when>
<xsl:otherwise>-1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:if test="$span &gt; 1">
<xsl:text>\multicolumn{</xsl:text>
<xsl:value-of select="$span"/>
<xsl:text>|}{</xsl:text><!-- TODO take heed of @colsep -->
<xsl:choose>
<xsl:when test="@align='left'"><xsl:text>l</xsl:text></xsl:when>
<xsl:when test="@align='right'"><xsl:text>r</xsl:text></xsl:when>
<xsl:when test="@align='center'"><xsl:text>c</xsl:text></xsl:when>
<xsl:when test="@align='char'">c<xsl:message>Table entry char alignment is not supported.</xsl:message></xsl:when>
<xsl:otherwise>c</xsl:otherwise>
</xsl:choose>
<!-- use this as a hook for some general warnings -->
<xsl:text>}</xsl:text>
</xsl:if>
<!-- this is used when the entry's align spec wants to override the column default -->
<xsl:if test="$span &lt; 1">
<xsl:choose>
<xsl:when test="@align='left'"><xsl:text>\docbooktolatexalignll </xsl:text></xsl:when>
<xsl:when test="@align='right'"><xsl:text>\docbooktolatexalignrl </xsl:text></xsl:when>
<xsl:when test="@align='center'"><xsl:text>\docbooktolatexaligncl </xsl:text></xsl:when>
<xsl:when test="@align='char'"><xsl:message>Table entry char alignment is not supported.</xsl:message></xsl:when>
</xsl:choose>
</xsl:if>
<xsl:text>{</xsl:text>
<xsl:if test="@rotate='1'">
<xsl:text>\rotatebox{90}</xsl:text>
<xsl:if test="@align!=''"><xsl:message>entry[@rotate='1' and @align!=''] probably doesn't work.</xsl:message></xsl:if>
</xsl:if>
<xsl:text>{</xsl:text>
<!-- use this as a hook for some general warnings -->
<xsl:if test="@morerows!=''"><xsl:message>The morerows attribute is not supported.</xsl:message></xsl:if>
</xsl:template>
<xsl:template name="latex.entry.postalign">
<xsl:text>}}</xsl:text>
<!-- this is used when the entry's align spec wants to override the column default -->
<xsl:if test="@namest='' and @spanspec=''"><!-- TODO improve -->
<xsl:choose>
<xsl:when test="@align='left'"><xsl:text>\docbooktolatexalignlr </xsl:text></xsl:when>
<xsl:when test="@align='right'"><xsl:text>\docbooktolatexalignrr </xsl:text></xsl:when>
<xsl:when test="@align='center'"><xsl:text>\docbooktolatexaligncr </xsl:text></xsl:when>
</xsl:choose>
</xsl:if>
</xsl:template>
<xsl:template name="process.cell">
<xsl:param name="cellgi">td</xsl:param>
<xsl:variable name="empty.cell" select="count(node()) = 0"/>
<xsl:element name="{$cellgi}">
<xsl:if test="@morerows">
<xsl:attribute name="rowspan">
<xsl:value-of select="@morerows+1"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@namest">
<xsl:attribute name="colspan">
<xsl:call-template name="calculate.colspan"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@align">
<xsl:attribute name="align">
<xsl:value-of select="@align"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@char">
<xsl:attribute name="char">
<xsl:value-of select="@char"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@charoff">
<xsl:attribute name="charoff">
<xsl:value-of select="@charoff"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="@valign">
<xsl:attribute name="valign">
<xsl:value-of select="@valign"/>
</xsl:attribute>
</xsl:if>
<xsl:choose>
<xsl:when test="$empty.cell">
<xsl:text>&#160;</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates/>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>
<xsl:template name="generate.colgroup">
<xsl:param name="cols" select="1"/>
<xsl:param name="count" select="1"/>
<xsl:choose>
<xsl:when test="$count>$cols"></xsl:when>
<xsl:otherwise>
<xsl:call-template name="generate.col">
<xsl:with-param name="countcol" select="$count"/>
</xsl:call-template>
<xsl:call-template name="generate.colgroup">
<xsl:with-param name="cols" select="$cols"/>
<xsl:with-param name="count" select="$count+1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="generate.col">
<xsl:param name="countcol">1</xsl:param>
<xsl:param name="colspecs" select="./colspec"/>
<xsl:param name="count">1</xsl:param>
<xsl:param name="colnum">1</xsl:param>
<xsl:choose>
<xsl:when test="$count>count($colspecs)">
<col/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
<xsl:variable name="colspec.colnum">
<xsl:choose>
<xsl:when test="$colspec/@colnum">
<xsl:value-of select="$colspec/@colnum"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$colnum"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:choose>
<xsl:when test="$colspec.colnum=$countcol">
<col>
<xsl:if test="$colspec/@align">
<xsl:attribute name="align">
<xsl:value-of select="$colspec/@align"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$colspec/@char">
<xsl:attribute name="char">
<xsl:value-of select="$colspec/@char"/>
</xsl:attribute>
</xsl:if>
<xsl:if test="$colspec/@charoff">
<xsl:attribute name="charoff">
<xsl:value-of select="$colspec/@charoff"/>
</xsl:attribute>
</xsl:if>
</col>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="generate.col">
<xsl:with-param name="countcol" select="$countcol"/>
<xsl:with-param name="colspecs" select="$colspecs"/>
<xsl:with-param name="count" select="$count+1"/>
<xsl:with-param name="colnum">
<xsl:choose>
<xsl:when test="$colspec/@colnum">
<xsl:value-of select="$colspec/@colnum + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$colnum + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="colspec.colnum">
<!-- when this macro is called, the current context must be an entry -->
<xsl:param name="colname"></xsl:param>
<!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
<xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
<xsl:param name="count">1</xsl:param>
<xsl:param name="colnum">1</xsl:param>
<xsl:choose>
<xsl:when test="$count>count($colspecs)"></xsl:when>
<xsl:otherwise>
<xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
<!--
<xsl:value-of select="$count"/>:
<xsl:value-of select="$colspec/@colname"/>=
<xsl:value-of select="$colnum"/>
-->
<xsl:choose>
<xsl:when test="$colspec/@colname=$colname">
<xsl:choose>
<xsl:when test="$colspec/@colnum">
<xsl:value-of select="$colspec/@colnum"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$colnum"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="colspec.colnum">
<xsl:with-param name="colname" select="$colname"/>
<xsl:with-param name="colspecs" select="$colspecs"/>
<xsl:with-param name="count" select="$count+1"/>
<xsl:with-param name="colnum">
<xsl:choose>
<xsl:when test="$colspec/@colnum">
<xsl:value-of select="$colspec/@colnum + 1"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$colnum + 1"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="colspec.colwidth">
<!-- when this macro is called, the current context must be an entry -->
<xsl:param name="colname"></xsl:param>
<!-- .. = row, ../.. = thead|tbody, ../../.. = tgroup -->
<xsl:param name="colspecs" select="../../../../tgroup/colspec"/>
<xsl:param name="count">1</xsl:param>
<xsl:choose>
<xsl:when test="$count>count($colspecs)"></xsl:when>
<xsl:otherwise>
<xsl:variable name="colspec" select="$colspecs[$count=position()]"/>
<xsl:choose>
<xsl:when test="$colspec/@colname=$colname">
<xsl:value-of select="$colspec/@colwidth"/>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="colspec.colwidth">
<xsl:with-param name="colname" select="$colname"/>
<xsl:with-param name="colspecs" select="$colspecs"/>
<xsl:with-param name="count" select="$count+1"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="calculate.colspan">
<xsl:param name="namest" select="@namest"/>
<xsl:param name="nameend" select="@nameend"/>
<xsl:variable name="scol">
<xsl:call-template name="colspec.colnum">
<xsl:with-param name="colname" select="$namest"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="ecol">
<xsl:call-template name="colspec.colnum">
<xsl:with-param name="colname" select="$nameend"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$ecol - $scol + 1"/>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Id: unicode.mapping.dtd,v 1.1 2003/12/05 06:53:48 ab Exp $ -->
<!-- DTD for XML with mapping Unicode entities to LaTeX commands -->
<!-- Author: Vitaly Ostanin <vyt@altlinux.ru> -->
<!ELEMENT mapping (character+)>
<!ELEMENT character (unicode, latex?, mathlatex?, preferred)>
<!ELEMENT unicode (#PCDATA)>
<!ELEMENT latex (#PCDATA)>
<!ELEMENT mathlatex (#PCDATA)>
<!ELEMENT preferred (#PCDATA)>

View File

@ -1,72 +0,0 @@
<?xml version="1.0"?>
<!-- $Id: unicode.mapping.xml,v 1.1 2003/12/05 06:53:48 ab Exp $ -->
<!DOCTYPE mapping SYSTEM "unicode.mapping.dtd">
<mapping>
<character>
<unicode>&lt;</unicode>
<latex>\guilsinglleft{}</latex>
<preferred>\guilsinglleft{}</preferred>
</character>
<character>
<unicode>></unicode>
<latex>\guilsinglright{}</latex>
<preferred>\guilsinglright{}</preferred>
</character>
<character>
<unicode>#</unicode>
<latex>\#</latex>
<preferred>\#</preferred>
</character>
<character>
<unicode>$</unicode>
<latex>\textdollar{}</latex>
<mathlatex>\$</mathlatex>
<preferred>\textdollar{}</preferred>
</character>
<character>
<unicode>%</unicode>
<latex>\%</latex>
<preferred>\%</preferred>
</character>
<character>
<unicode>&amp;</unicode>
<latex>\&amp;</latex>
<preferred>\&amp;</preferred>
</character>
<character>
<unicode>~</unicode>
<latex>\textasciitilde{}</latex>
<preferred>\textasciitilde{}</preferred>
</character>
<character>
<unicode>_</unicode>
<latex>\_</latex>
<preferred>\_</preferred>
</character>
<character>
<unicode>^</unicode>
<latex>\^{}</latex>
<preferred>\^{}</preferred>
</character>
<character>
<unicode>\</unicode>
<latex>\textbackslash{}</latex>
<mathlatex>\backslash </mathlatex>
<preferred>\textbackslash{}</preferred>
</character>
<character>
<unicode>{</unicode>
<latex>\{</latex>
<preferred>\{</preferred>
</character>
<character>
<unicode>}</unicode>
<latex>\}</latex>
<preferred>\}</preferred>
</character>
<character>
<unicode>|</unicode>
<latex>$\vert$</latex>
<preferred>$\vert$</preferred>
</character>
</mapping>