<?xml version='1.0' encoding="utf-8"?> <xsl:stylesheet exclude-result-prefixes="d" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook" xmlns:fo="http://www.w3.org/1999/XSL/Format" version='1.0'> <!-- ******************************************************************** $Id: spaces.xsl 9647 2012-10-26 17:42:03Z bobstayton $ ******************************************************************** XSL-FO specification treats all space characters like ordinary spaces. We need to map them to fo:leader with different widths in order to simulate desired behaviour. ******************************************************************** --> <xsl:template match="text()[namespace-uri(..) = '' or namespace-uri(..) = 'http://docbook.org/ns/docbook']"> <xsl:call-template name="space.2000.subst"> <xsl:with-param name="string" select="."/> </xsl:call-template> </xsl:template> <xsl:param name="space.enquad.width">0.5em</xsl:param> <!-- U+2000 --> <xsl:param name="space.emquad.width">1em</xsl:param> <!-- U+2001 --> <xsl:param name="space.enspace.width">0.5em</xsl:param> <!-- U+2002 --> <xsl:param name="space.emspace.width">1em</xsl:param> <!-- U+2003 --> <xsl:param name="space.3emspace.width">0.33em</xsl:param><!-- U+2004 --> <xsl:param name="space.4emspace.width">0.25em</xsl:param><!-- U+2005 --> <xsl:param name="space.6emspace.width">0.16em</xsl:param><!-- U+2006 --> <xsl:param name="space.figspace.width"></xsl:param> <!-- U+2007 --> <xsl:param name="space.punctspace.width"></xsl:param> <!-- U+2008 --> <xsl:param name="space.thinspace.width">0.2em</xsl:param><!-- U+2009 --> <xsl:param name="space.hairspace.width">0.1em</xsl:param><!-- U+200A --> <xsl:template name="space.2000.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.enquad.width != ''"> <xsl:call-template name="space.2001.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.enquad.width}"/> <xsl:call-template name="space.2000.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2001.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2001.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.emquad.width != ''"> <xsl:call-template name="space.2002.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.emquad.width}"/> <xsl:call-template name="space.2001.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2002.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2002.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.enspace.width != ''"> <xsl:call-template name="space.2003.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.enspace.width}"/> <xsl:call-template name="space.2002.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2003.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2003.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.emspace.width != ''"> <xsl:call-template name="space.2004.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.emspace.width}"/> <xsl:call-template name="space.2003.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2004.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2004.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.3emspace.width != ''"> <xsl:call-template name="space.2005.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.3emspace.width}"/> <xsl:call-template name="space.2004.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2005.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2005.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.4emspace.width != ''"> <xsl:call-template name="space.2006.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.4emspace.width}"/> <xsl:call-template name="space.2005.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2006.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2006.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.6emspace.width != ''"> <xsl:call-template name="space.2007.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.6emspace.width}"/> <xsl:call-template name="space.2006.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2007.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2007.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.figspace.width != ''"> <xsl:call-template name="space.2008.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.figspace.width}"/> <xsl:call-template name="space.2007.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2008.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2008.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.punctspace.width != ''"> <xsl:call-template name="space.2009.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.punctspace.width}"/> <xsl:call-template name="space.2008.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.2009.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.2009.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.thinspace.width != ''"> <xsl:call-template name="space.200A.subst"> <xsl:with-param name="string" select="substring-before($string, ' ')"/> </xsl:call-template> <fo:leader leader-length="{$space.thinspace.width}"/> <xsl:call-template name="space.2009.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:call-template name="space.200A.subst"> <xsl:with-param name="string" select="$string"/> </xsl:call-template> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="space.200A.subst"> <xsl:param name="string"/> <xsl:choose> <xsl:when test="contains($string, ' ') and $space.hairspace.width != ''"> <xsl:value-of select="substring-before($string, ' ')"/> <fo:leader leader-length="{$space.hairspace.width}"/> <xsl:call-template name="space.200A.subst"> <xsl:with-param name="string" select="substring-after($string, ' ')"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$string"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10838 | Robert Cowham |
Populate //guest/robert_cowham/perforce/utils/p4convert/... from //guest/perforce_software/p4convert/.... |
||
//guest/perforce_software/p4convert/docs/_build/docbook-xsl-ns-1.78.1/fo/spaces.xsl | |||||
#1 | 10706 | Paul Allen | Add document '_build' files. |