diff options
Diffstat (limited to 'plugins/Updater/bzip2-1.0.3/bz-fo.xsl')
-rw-r--r-- | plugins/Updater/bzip2-1.0.3/bz-fo.xsl | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/plugins/Updater/bzip2-1.0.3/bz-fo.xsl b/plugins/Updater/bzip2-1.0.3/bz-fo.xsl new file mode 100644 index 0000000000..ba3e30123f --- /dev/null +++ b/plugins/Updater/bzip2-1.0.3/bz-fo.xsl @@ -0,0 +1,276 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- -*- sgml -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> + +<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/> +<xsl:import href="bz-common.xsl"/> + +<!-- set indent = yes while debugging, then change to NO --> +<xsl:output method="xml" indent="yes"/> + +<!-- ensure only passivetex extensions are on --> +<xsl:param name="stylesheet.result.type" select="'fo'"/> +<!-- fo extensions: PDF bookmarks and index terms --> +<xsl:param name="use.extensions" select="'1'"/> +<xsl:param name="xep.extensions" select="0"/> +<xsl:param name="fop.extensions" select="0"/> +<xsl:param name="saxon.extensions" select="0"/> +<xsl:param name="passivetex.extensions" select="1"/> +<xsl:param name="tablecolumns.extension" select="'1'"/> + +<!-- ensure we are using single sided --> +<xsl:param name="double.sided" select="'0'"/> + +<!-- insert cross references to page numbers --> +<xsl:param name="insert.xref.page.number" select="1"/> + +<!-- <?custom-pagebreak?> inserts a page break at this point --> +<xsl:template match="processing-instruction('custom-pagebreak')"> + <fo:block break-before='page'/> +</xsl:template> + +<!-- show links in color --> +<xsl:attribute-set name="xref.properties"> + <xsl:attribute name="color">blue</xsl:attribute> +</xsl:attribute-set> + +<!-- make pre listings indented a bit + a bg colour --> +<xsl:template match="programlisting | screen"> + <fo:block start-indent="0.25in" wrap-option="no-wrap" + white-space-collapse="false" text-align="start" + font-family="monospace" background-color="#f2f2f9" + linefeed-treatment="preserve" + xsl:use-attribute-sets="normal.para.spacing"> + <xsl:apply-templates/> + </fo:block> +</xsl:template> +<!-- make verbatim output prettier --> +<xsl:template match="literallayout"> + <fo:block start-indent="0.25in" wrap-option="no-wrap" + white-space-collapse="false" text-align="start" + font-family="monospace" background-color="#edf7f4" + linefeed-treatment="preserve" + space-before="0em" space-after="0em"> + <xsl:apply-templates/> + </fo:block> +</xsl:template> + +<!-- workaround bug in passivetex fo output for itemizedlist --> +<xsl:template match="itemizedlist/listitem"> + <xsl:variable name="id"> + <xsl:call-template name="object.id"/></xsl:variable> + <xsl:variable name="itemsymbol"> + <xsl:call-template name="list.itemsymbol"> + <xsl:with-param name="node" select="parent::itemizedlist"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="item.contents"> + <fo:list-item-label end-indent="label-end()"> + <fo:block> + <xsl:choose> + <xsl:when test="$itemsymbol='disc'">•</xsl:when> + <xsl:when test="$itemsymbol='bullet'">•</xsl:when> + <xsl:otherwise>•</xsl:otherwise> + </xsl:choose> + </fo:block> + </fo:list-item-label> + <fo:list-item-body start-indent="body-start()"> + <xsl:apply-templates/> <!-- removed extra block wrapper --> + </fo:list-item-body> + </xsl:variable> + <xsl:choose> + <xsl:when test="parent::*/@spacing = 'compact'"> + <fo:list-item id="{$id}" + xsl:use-attribute-sets="compact.list.item.spacing"> + <xsl:copy-of select="$item.contents"/> + </fo:list-item> + </xsl:when> + <xsl:otherwise> + <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing"> + <xsl:copy-of select="$item.contents"/> + </fo:list-item> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- workaround bug in passivetex fo output for orderedlist --> +<xsl:template match="orderedlist/listitem"> + <xsl:variable name="id"> + <xsl:call-template name="object.id"/></xsl:variable> + <xsl:variable name="item.contents"> + <fo:list-item-label end-indent="label-end()"> + <fo:block> + <xsl:apply-templates select="." mode="item-number"/> + </fo:block> + </fo:list-item-label> + <fo:list-item-body start-indent="body-start()"> + <xsl:apply-templates/> <!-- removed extra block wrapper --> + </fo:list-item-body> + </xsl:variable> + <xsl:choose> + <xsl:when test="parent::*/@spacing = 'compact'"> + <fo:list-item id="{$id}" + xsl:use-attribute-sets="compact.list.item.spacing"> + <xsl:copy-of select="$item.contents"/> + </fo:list-item> + </xsl:when> + <xsl:otherwise> + <fo:list-item id="{$id}" xsl:use-attribute-sets="list.item.spacing"> + <xsl:copy-of select="$item.contents"/> + </fo:list-item> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- workaround bug in passivetex fo output for variablelist --> +<xsl:param name="variablelist.as.blocks" select="1"/> +<xsl:template match="varlistentry" mode="vl.as.blocks"> + <xsl:variable name="id"> + <xsl:call-template name="object.id"/></xsl:variable> + <fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing" + keep-together.within-column="always" + keep-with-next.within-column="always"> + <xsl:apply-templates select="term"/> + </fo:block> + <fo:block start-indent="0.5in" end-indent="0in" + space-after.minimum="0.2em" + space-after.optimum="0.4em" + space-after.maximum="0.6em"> + <fo:block> + <xsl:apply-templates select="listitem"/> + </fo:block> + </fo:block> +</xsl:template> + + +<!-- workaround bug in footers: force right-align w/two 80|30 cols --> +<xsl:template name="footer.table"> + <xsl:param name="pageclass" select="''"/> + <xsl:param name="sequence" select="''"/> + <xsl:param name="gentext-key" select="''"/> + <xsl:choose> + <xsl:when test="$pageclass = 'index'"> + <xsl:attribute name="margin-left">0pt</xsl:attribute> + </xsl:when> + </xsl:choose> + <xsl:variable name="candidate"> + <fo:table table-layout="fixed" width="100%"> + <fo:table-column column-number="1" column-width="80%"/> + <fo:table-column column-number="2" column-width="20%"/> + <fo:table-body> + <fo:table-row height="14pt"> + <fo:table-cell text-align="left" display-align="after"> + <xsl:attribute name="relative-align">baseline</xsl:attribute> + <fo:block> + <fo:block> </fo:block><!-- empty cell --> + </fo:block> + </fo:table-cell> + <fo:table-cell text-align="center" display-align="after"> + <xsl:attribute name="relative-align">baseline</xsl:attribute> + <fo:block> + <xsl:call-template name="footer.content"> + <xsl:with-param name="pageclass" select="$pageclass"/> + <xsl:with-param name="sequence" select="$sequence"/> + <xsl:with-param name="position" select="'center'"/> + <xsl:with-param name="gentext-key" select="$gentext-key"/> + </xsl:call-template> + </fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </xsl:variable> + <!-- Really output a footer? --> + <xsl:choose> + <xsl:when test="$pageclass='titlepage' and $gentext-key='book' + and $sequence='first'"> + <!-- no, book titlepages have no footers at all --> + </xsl:when> + <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0"> + <!-- no output --> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$candidate"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + + +<!-- fix bug in headers: force right-align w/two 40|60 cols --> +<xsl:template name="header.table"> + <xsl:param name="pageclass" select="''"/> + <xsl:param name="sequence" select="''"/> + <xsl:param name="gentext-key" select="''"/> + <xsl:choose> + <xsl:when test="$pageclass = 'index'"> + <xsl:attribute name="margin-left">0pt</xsl:attribute> + </xsl:when> + </xsl:choose> + <xsl:variable name="candidate"> + <fo:table table-layout="fixed" width="100%"> + <xsl:call-template name="head.sep.rule"> + <xsl:with-param name="pageclass" select="$pageclass"/> + <xsl:with-param name="sequence" select="$sequence"/> + <xsl:with-param name="gentext-key" select="$gentext-key"/> + </xsl:call-template> + <fo:table-column column-number="1" column-width="40%"/> + <fo:table-column column-number="2" column-width="60%"/> + <fo:table-body> + <fo:table-row height="14pt"> + <fo:table-cell text-align="left" display-align="before"> + <xsl:attribute name="relative-align">baseline</xsl:attribute> + <fo:block> + <fo:block> </fo:block><!-- empty cell --> + </fo:block> + </fo:table-cell> + <fo:table-cell text-align="center" display-align="before"> + <xsl:attribute name="relative-align">baseline</xsl:attribute> + <fo:block> + <xsl:call-template name="header.content"> + <xsl:with-param name="pageclass" select="$pageclass"/> + <xsl:with-param name="sequence" select="$sequence"/> + <xsl:with-param name="position" select="'center'"/> + <xsl:with-param name="gentext-key" select="$gentext-key"/> + </xsl:call-template> + </fo:block> + </fo:table-cell> + </fo:table-row> + </fo:table-body> + </fo:table> + </xsl:variable> + <!-- Really output a header? --> + <xsl:choose> + <xsl:when test="$pageclass = 'titlepage' and $gentext-key = 'book' + and $sequence='first'"> + <!-- no, book titlepages have no headers at all --> + </xsl:when> + <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 0"> + <!-- no output --> + </xsl:when> + <xsl:otherwise> + <xsl:copy-of select="$candidate"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + + +<!-- Bug-fix for Suse 10 PassiveTex version --> +<!-- Precompute attribute values 'cos PassiveTex is too stupid: --> +<xsl:attribute-set name="component.title.properties"> + <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute> + <xsl:attribute name="space-before.optimum"> + <xsl:value-of select="concat($body.font.master, 'pt')"/> + </xsl:attribute> + <xsl:attribute name="space-before.minimum"> + <xsl:value-of select="$body.font.master * 0.8"/> + <xsl:text>pt</xsl:text> + </xsl:attribute> + <xsl:attribute name="space-before.maximum"> + <xsl:value-of select="$body.font.master * 1.2"/> + <xsl:text>pt</xsl:text> + </xsl:attribute> + <xsl:attribute name="hyphenate">false</xsl:attribute> +</xsl:attribute-set> + + +</xsl:stylesheet> |