<?xml version='1.0'?> <!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]> <!--############################################################################# | $Id: para.mod.xsl,v 1.16 2004/01/13 14:17:45 j-devenish Exp $ |- ############################################################################# | $Author: j-devenish $ | | 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="para" xmlns=""> <referenceinfo> <releaseinfo role="meta"> $Id: para.mod.xsl,v 1.16 2004/01/13 14:17:45 j-devenish Exp $ </releaseinfo> <authorgroup> &ramon; &james; </authorgroup> <copyright> <year>2000</year> <year>2001</year> <year>2002</year> <year>2003</year> <holder>Ramon Casellas</holder> </copyright> <revhistory> <doc:revision rcasver="1.8">&rev_2003_05;</doc:revision> </revhistory> </referenceinfo> <title>Paragraphs <filename>para.mod.xsl</filename></title> <partintro> <para>The file <filename>para.mod.xsl</filename> contains the XSL template for <doc:db>para</doc:db>, <doc:db>simpara</doc:db> and <doc:db>formalpara</doc:db>.</para> <doc:variables> <itemizedlist> <listitem><simpara><xref linkend="param.latex.use.parskip"/></simpara></listitem> <listitem><simpara><xref linkend="param.latex.formalpara.title.style"/></simpara></listitem> </itemizedlist> </doc:variables> </partintro> </doc:reference> <doc:template xmlns=""> <refpurpose>Use normal paragraph spacing instead of parskip spacing</refpurpose> <doc:description> <para> Uses <function condition="latex">docbooktolatexnoparskip</function>. </para> </doc:description> <doc:variables> <itemizedlist> <listitem><simpara><xref linkend="param.latex.use.parskip"/></simpara></listitem> </itemizedlist> </doc:variables> <doc:notes> &essential_preamble; </doc:notes> </doc:template> <xsl:template name="latex.noparskip"> <xsl:if test="$latex.use.parskip=1"> <xsl:text>\docbooktolatexnoparskip </xsl:text> </xsl:if> </xsl:template> <doc:template xmlns=""> <refpurpose>Use parkip spacing, if user desires it</refpurpose> <doc:description> <para> Uses <function condition="latex">docbooktolatexrestoreparskip</function>. </para> </doc:description> <doc:variables> <itemizedlist> <listitem><simpara><xref linkend="param.latex.use.parskip"/></simpara></listitem> </itemizedlist> </doc:variables> <doc:notes> &essential_preamble; </doc:notes> </doc:template> <xsl:template name="latex.restoreparskip"> <xsl:if test="$latex.use.parskip=1"> <xsl:text>\docbooktolatexrestoreparskip </xsl:text> </xsl:if> </xsl:template> <doc:template basename="para" match="para|simpara" xmlns=""> <refpurpose>Process <doc:db>para</doc:db> and <doc:db>simpara</doc:db> elements</refpurpose> <doc:description> <para> Starts new lines above and below its contents. Thus, consecutive <doc:db basename="para">paras</doc:db> will have one blank line between them. </para> </doc:description> <doc:variables> <itemizedlist> <listitem><simpara><xref linkend="param.latex.use.parskip"/></simpara></listitem> </itemizedlist> </doc:variables> <doc:notes> <para>In &latex;, there is no distinction between <doc:db>para</doc:db> and <doc:db>simpara</doc:db>.</para> <para>The accuracy of block elements within <sgmltag basename="para">paras</sgmltag> is unknown.</para> <para><doc:todo>The use of <sgmltag>para</sgmltag> within <doc:db basename="footnote">footnotes</doc:db> is unproven.</doc:todo></para> </doc:notes> <doc:samples> <simplelist type='inline'> &test_blocks; </simplelist> </doc:samples> <doc:seealso> <itemizedlist> <listitem><simpara><xref linkend="template.para-noline"/></simpara></listitem> </itemizedlist> </doc:seealso> </doc:template> <xsl:template match="para|simpara"> <xsl:text> </xsl:text> <xsl:apply-templates/> <xsl:text> </xsl:text> </xsl:template> <doc:template match="formalpara" xmlns=""> <refpurpose>Process <doc:db>formalpara</doc:db> elements</refpurpose> <doc:description> <para> Starts new lines above and below its contents. </para> </doc:description> <doc:variables> <itemizedlist> <listitem><simpara>The <doc:db>title</doc:db> is typeset using <xref linkend="param.latex.formalpara.title.style"/></simpara></listitem> </itemizedlist> </doc:variables> <doc:notes> <para>The accuracy of block elements within <doc:db basename="formalpara">formalparas</doc:db> is unknown.</para> <para><doc:todo>The use of <sgmltag>formalpara</sgmltag> within <doc:db basename="footnote">footnotes</doc:db> is unproven.</doc:todo></para> <para>Calls <xref linkend="template.generate.formalpara.title.delimiter"/>.</para> </doc:notes> <doc:samples> <simplelist type='inline'> &test_blocks; </simplelist> </doc:samples> </doc:template> <xsl:template match="formalpara"> <xsl:text> {</xsl:text> <xsl:value-of select="$latex.formalpara.title.style"/> <xsl:text>{{</xsl:text> <xsl:apply-templates select="title"/> <xsl:text>}</xsl:text> <xsl:call-template name="generate.formalpara.title.delimiter"/> <xsl:text>}}\ </xsl:text> <xsl:apply-templates select="node()[not(self::title)]"/> <xsl:text> </xsl:text> </xsl:template> <doc:template xmlns=""> <refpurpose>Delimite a <doc:db>formalpara</doc:db>'s <doc:db>title</doc:db> from its <doc:db>para</doc:db></refpurpose> <doc:description> <para> Emits a full stop (period). </para> </doc:description> <doc:variables> &no_var; </doc:variables> <doc:notes> <para> This template can be used to emit any &LaTeX; sequence that you desire. You can make the appearance be conditional upon some attribute or document location, for instance. However, a 'space' will <emphasis>always</emphasis> be generated between this delimiter and the subsequent <doc:db>para</doc:db> contents. </para> </doc:notes> </doc:template> <xsl:template name="generate.formalpara.title.delimiter"> <xsl:text>.</xsl:text> </xsl:template> <doc:template basename="para" xmlns=""> <refpurpose>Suppressed paragraphs</refpurpose> <doc:description> <para> These paragraphs are not separated like normal paragraphs. </para> </doc:description> <doc:variables> &no_var; </doc:variables> <doc:notes> <para>This template exists to handle &latex; problems with <function condition="latex">par</function> in certain contexts. <doc:todo>These problems should be periodically reviewed by the &db2latex; team.</doc:todo></para> </doc:notes> <doc:samples> <simplelist type='inline'> &test_blocks; </simplelist> </doc:samples> </doc:template> <xsl:template match="textobject/para|step/para|entry/para|question/para" name="para-noline"> <xsl:if test="position()>1"> <xsl:text> </xsl:text> </xsl:if> <xsl:apply-templates/> <xsl:if test="position()<last()"> <xsl:text> </xsl:text> </xsl:if> </xsl:template> </xsl:stylesheet>