diff options
Diffstat (limited to 'doc/src/sgml/stylesheet-fo.xsl')
-rw-r--r-- | doc/src/sgml/stylesheet-fo.xsl | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/doc/src/sgml/stylesheet-fo.xsl b/doc/src/sgml/stylesheet-fo.xsl new file mode 100644 index 0000000..0c4dff9 --- /dev/null +++ b/doc/src/sgml/stylesheet-fo.xsl @@ -0,0 +1,135 @@ +<?xml version="1.0" encoding="utf-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0" + xmlns:fo="http://www.w3.org/1999/XSL/Format"> + +<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl"/> +<xsl:include href="stylesheet-common.xsl" /> + +<xsl:param name="fop1.extensions" select="1"></xsl:param> +<xsl:param name="tablecolumns.extension" select="0"></xsl:param> +<xsl:param name="toc.max.depth">3</xsl:param> +<xsl:param name="ulink.footnotes" select="1"></xsl:param> +<xsl:param name="use.extensions" select="1"></xsl:param> +<xsl:param name="variablelist.as.blocks" select="1"></xsl:param> +<xsl:param name="orderedlist.label.width">1.5em</xsl:param> + +<xsl:attribute-set name="monospace.verbatim.properties" + use-attribute-sets="verbatim.properties monospace.properties"> + <xsl:attribute name="wrap-option">wrap</xsl:attribute> +</xsl:attribute-set> + +<xsl:attribute-set name="nongraphical.admonition.properties"> + <xsl:attribute name="border-style">solid</xsl:attribute> + <xsl:attribute name="border-width">1pt</xsl:attribute> + <xsl:attribute name="border-color">black</xsl:attribute> + <xsl:attribute name="padding-start">12pt</xsl:attribute> + <xsl:attribute name="padding-end">12pt</xsl:attribute> + <xsl:attribute name="padding-top">6pt</xsl:attribute> + <xsl:attribute name="padding-bottom">6pt</xsl:attribute> +</xsl:attribute-set> + +<xsl:attribute-set name="admonition.title.properties"> + <xsl:attribute name="text-align">center</xsl:attribute> +</xsl:attribute-set> + +<!-- Make all tables default to left alignment, for consistency with HTML --> +<xsl:attribute-set name="table.table.properties"> + <xsl:attribute name="text-align">left</xsl:attribute> +</xsl:attribute-set> + +<!-- fix missing space after vertical simplelist + https://github.com/docbook/xslt10-stylesheets/issues/31 --> +<xsl:attribute-set name="normal.para.spacing"> + <xsl:attribute name="space-after.optimum">1em</xsl:attribute> + <xsl:attribute name="space-after.minimum">0.8em</xsl:attribute> + <xsl:attribute name="space-after.maximum">1.2em</xsl:attribute> +</xsl:attribute-set> + +<!-- Change display of some elements --> + +<xsl:template match="command"> + <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<xsl:template match="confgroup" mode="bibliography.mode"> + <fo:inline> + <xsl:apply-templates select="conftitle/text()" mode="bibliography.mode"/> + <xsl:text>, </xsl:text> + <xsl:apply-templates select="confdates/text()" mode="bibliography.mode"/> + <xsl:value-of select="$biblioentry.item.separator"/> + </fo:inline> +</xsl:template> + +<xsl:template match="isbn" mode="bibliography.mode"> + <fo:inline> + <xsl:text>ISBN </xsl:text> + <xsl:apply-templates mode="bibliography.mode"/> + <xsl:value-of select="$biblioentry.item.separator"/> + </fo:inline> +</xsl:template> + +<!-- formatting for entries in tables of functions --> +<xsl:template match="entry[@role='func_table_entry']/para"> + <fo:block margin-left="4em" text-align="left"> + <xsl:if test="self::para[@role='func_signature']"> + <xsl:attribute name="text-indent">-3.5em</xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </fo:block> +</xsl:template> + +<!-- formatting for entries in tables of catalog/view columns --> +<xsl:template match="entry[@role='catalog_table_entry']/para"> + <fo:block margin-left="4em" text-align="left"> + <xsl:if test="self::para[@role='column_definition']"> + <xsl:attribute name="text-indent">-3.5em</xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </fo:block> +</xsl:template> + +<!-- overrides stylesheet-common.xsl --> +<!-- FOP needs us to be explicit about the font to use for right arrow --> +<xsl:template match="returnvalue"> + <fo:inline font-family="{$symbol.font.family}">→ </fo:inline> + <xsl:call-template name="inline.monoseq"/> +</xsl:template> + +<!-- FOP needs us to be explicit about use of symbol font in some cases --> +<xsl:template match="phrase[@role='symbol_font']"> + <fo:inline font-family="{$symbol.font.family}"><xsl:value-of select="."/></fo:inline> +</xsl:template> + +<!-- bug fix from <https://sourceforge.net/p/docbook/bugs/1360/#831b> --> + +<xsl:template match="varlistentry/term" mode="xref-to"> + <xsl:param name="verbose" select="1"/> + <xsl:apply-templates mode="no.anchor.mode"/> +</xsl:template> + +<!-- include refsects in PDF bookmarks + (https://github.com/docbook/xslt10-stylesheets/issues/46) --> + +<xsl:template match="refsect1|refsect2|refsect3" + mode="bookmark"> + + <xsl:variable name="id"> + <xsl:call-template name="object.id"/> + </xsl:variable> + <xsl:variable name="bookmark-label"> + <xsl:apply-templates select="." mode="object.title.markup"/> + </xsl:variable> + + <fo:bookmark internal-destination="{$id}"> + <xsl:attribute name="starting-state"> + <xsl:value-of select="$bookmarks.state"/> + </xsl:attribute> + <fo:bookmark-title> + <xsl:value-of select="normalize-space($bookmark-label)"/> + </fo:bookmark-title> + <xsl:apply-templates select="*" mode="bookmark"/> + </fo:bookmark> +</xsl:template> + +</xsl:stylesheet> |