/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-pagesetup.xsl |
---|
0,0 → 1,249 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: manuel $ |
$Date: 2008-07-14 18:28:31 $ |
--> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
version="1.0"> |
<!-- This stylesheet controls page margins, sections page break, |
header content and titles size. --> |
<!-- The inner page margin. --> |
<xsl:param name="page.margin.inner" select="'0.32in'"/> |
<!-- The outer page margin. --> |
<xsl:param name="page.margin.outer" select="'0.32in'"/> |
<!-- The bottom margin of the page. --> |
<xsl:param name="page.margin.bottom" select="'0.35in'"/> |
<!-- The top margin of the page. --> |
<xsl:param name="page.margin.top" select="'0.35in'"/> |
<!-- The bottom margin of the body text. --> |
<xsl:param name="body.margin.bottom" select="'0.4in'"/> |
<!-- The top margin of the body text. --> |
<xsl:param name="body.margin.top" select="'0.4in'"/> |
<!-- Specifies the height of the header. --> |
<xsl:param name="region.before.extent" select="'0.25in'"/> |
<!-- Specifies the height of the footer. --> |
<xsl:param name="region.after.extent" select="'0.25in'"/> |
<!-- The start-indent for the body text. --> |
<xsl:param name="body.start.indent" select="'0pc'"/> |
<!-- Adjust the left margin for titles. --> |
<xsl:param name="title.margin.left">-0.8pc</xsl:param> |
<!-- Default table width on tables that do not specify an alternate |
width using the dbfo processing instruction. |
This value is used also on bookinfo/revhistory table. --> |
<xsl:param name="default.table.width" select="'70%'"/> |
<!-- Properties for component titles --> |
<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="concat($body.font.master, 'pt * 0.8')"/> |
</xsl:attribute> |
<xsl:attribute name="space-before.maximum"> |
<xsl:value-of select="concat($body.font.master, 'pt * 1.2')"/> |
</xsl:attribute> |
<xsl:attribute name="hyphenate">false</xsl:attribute> |
<xsl:attribute name="text-align"> |
<xsl:choose> |
<xsl:when test="((parent::article | parent::articleinfo | |
parent::info/parent::article) |
and not(ancestor::book) and not(self::bibliography)) |
or (parent::slides | parent::slidesinfo) |
or self::index">center</xsl:when> |
<xsl:otherwise>left</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:attribute name="start-indent"> |
<xsl:value-of select="$title.margin.left"/> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- Rule under headers? 1 =yes, 0 = no --> |
<xsl:param name="header.rule" select="0"/> |
<!-- Rule over footers? 1 =yes, 0 = no --> |
<xsl:param name="footer.rule" select="0"></xsl:param> |
<!-- Control depth of sections shown in running headers or footers. |
Be sure that no unneeded fo:marker are generated. --> |
<xsl:param name="marker.section.level" select="-1"></xsl:param> |
<!-- Force package's sect1 onto a new page --> |
<xsl:attribute-set name="section.level1.properties"> |
<xsl:attribute name="break-before"> |
<xsl:choose> |
<!--<xsl:when test="not(. = //*/sect1[1])"> |
<xsl:text>page</xsl:text> |
</xsl:when>--> |
<xsl:when test="preceding-sibling::sect1[position()=1]/sect2/@role='package' |
or self::sect1/sect2/@role='package'">page</xsl:when> |
<xsl:otherwise> |
<xsl:text>auto</xsl:text> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- part/partintro: |
Be sure that partintro is on a new page. --> |
<!-- The original template is in {docbook-xsl}/fo/divisions.xsl --> |
<xsl:template match="part/partintro"> |
<xsl:apply-templates select=".." mode="part.titlepage.mode"> |
<xsl:with-param name="additional.content"> |
<fo:block break-before="page"/> |
<xsl:if test="title"> |
<xsl:call-template name="partintro.titlepage"/> |
</xsl:if> |
<xsl:apply-templates/> |
</xsl:with-param> |
</xsl:apply-templates> |
<xsl:call-template name="generate.part.toc"> |
<xsl:with-param name="part" select=".."/> |
</xsl:call-template> |
</xsl:template> |
<!-- book title: |
Centered the title and removed unused code. |
Removed book.titlepage.separator. --> |
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl --> |
<xsl:template name="book.titlepage"> |
<fo:block margin-top="3in"> |
<fo:block> |
<xsl:call-template name="book.titlepage.before.recto"/> |
<xsl:call-template name="book.titlepage.recto"/> |
</fo:block> |
<fo:block> |
<xsl:call-template name="book.titlepage.before.verso"/> |
<xsl:call-template name="book.titlepage.verso"/> |
</fo:block> |
</fo:block> |
</xsl:template> |
<!-- book titlepage verso: |
Added missing bibliosource and revhistory support. |
Removed unused code. --> |
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl --> |
<xsl:template name="book.titlepage.verso"> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/title"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/corpauthor"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/authorgroup"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/author"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/othercredit"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/releaseinfo"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/pubdate"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/copyright"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/bibliosource"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/abstract"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/revhistory"/> |
<xsl:apply-templates mode="book.titlepage.verso.auto.mode" select="bookinfo/legalnotice"/> |
</xsl:template> |
<!-- bibliosource: |
Self-made template to handle bibliosource when inside bookinfo. --> |
<xsl:template match="bibliosource" mode="book.titlepage.verso.auto.mode"> |
<fo:block font-size="8pt"> |
<xsl:apply-templates/> |
</fo:block> |
</xsl:template> |
<!-- part title: |
Centered the title and removed unused code. --> |
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl --> |
<xsl:template name="part.titlepage"> |
<fo:block> |
<fo:block margin-top="3.5in"> |
<xsl:call-template name="part.titlepage.before.recto"/> |
<xsl:call-template name="part.titlepage.recto"/> |
</fo:block> |
<fo:block> |
<xsl:call-template name="part.titlepage.before.verso"/> |
<xsl:call-template name="part.titlepage.verso"/> |
</fo:block> |
<xsl:call-template name="part.titlepage.separator"/> |
</fo:block> |
</xsl:template> |
<!-- chapter title: |
Small font size and left alignament. --> |
<!-- The original template is in {docbook-xsl}/fo/titlepage.templates.xsl --> |
<xsl:template match="title" mode="chapter.titlepage.recto.auto.mode"> |
<fo:block xsl:use-attribute-sets="chapter.titlepage.recto.style" |
font-size="21pt" font-weight="bold" text-align="left"> |
<xsl:call-template name="component.title"> |
<xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/> |
</xsl:call-template> |
</fo:block> |
</xsl:template> |
<!-- sect2 title: |
Skip sect2.titlepage run when title is empty. |
Removed unused code. --> |
<!-- The original template is in {docbook-xsl}/fo/sections.xsl --> |
<xsl:template match="sect2"> |
<xsl:variable name="id"> |
<xsl:call-template name="object.id"/> |
</xsl:variable> |
<fo:block xsl:use-attribute-sets="section.level2.properties"> |
<xsl:attribute name="id"> |
<xsl:value-of select="$id"/> |
</xsl:attribute> |
<xsl:if test="not(string-length(title)=0)"> |
<xsl:call-template name="sect2.titlepage"/> |
</xsl:if> |
<xsl:apply-templates/> |
</fo:block> |
</xsl:template> |
<!-- header.table: |
Re-made template to not generate a fo:table in the header, |
allowing a more simple header.content customization. --> |
<!-- The original template is in {docbook-xsl}/fo/pagesetup.xsl --> |
<xsl:template name="header.table"> |
<xsl:param name="sequence" select="''"/> |
<xsl:param name="gentext-key" select="''"/> |
<xsl:choose> |
<xsl:when test="$gentext-key = 'book' or $sequence = 'blank'"/> |
<xsl:otherwise> |
<xsl:call-template name="header.content"> |
<xsl:with-param name="sequence" select="$sequence"/> |
</xsl:call-template> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
<!-- header.content |
Re-made template to show the book title and version on all pages. --> |
<!-- The original template is in {docbook-xsl}/fo/pagesetup.xsl --> |
<xsl:template name="header.content"> |
<xsl:param name="sequence" select="''"/> |
<fo:block> |
<xsl:attribute name="text-align"> |
<xsl:choose> |
<xsl:when test="$sequence = 'first' or $sequence = 'odd'">right</xsl:when> |
<xsl:otherwise>left</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:value-of select="/book/bookinfo/title"/> |
<xsl:text> - </xsl:text> |
<xsl:value-of select="/book/bookinfo/subtitle"/> |
</fo:block> |
</xsl:template> |
</xsl:stylesheet> |
/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-admon.xsl |
---|
0,0 → 1,81 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: manuel $ |
$Date: 2008-07-14 18:28:31 $ |
--> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
version="1.0"> |
<!-- This stylesheet controls how admonitions are displayed --> |
<!-- Use graphics in admonitions? 1 = yes, 0 = no --> |
<xsl:param name="admon.graphics" select="1"/> |
<!-- Path to admonition graphics relative to index.xml --> |
<xsl:param name="admon.graphics.path" select="'images/'"/> |
<!-- Global admonitions properties --> |
<xsl:attribute-set name="graphical.admonition.properties"> |
<xsl:attribute name="keep-together.within-column"> |
<xsl:variable name="keep.together"> |
<xsl:call-template name="pi.dbfo_keep-together"/> |
</xsl:variable> |
<xsl:choose> |
<xsl:when test="$keep.together != ''"> |
<xsl:value-of select="$keep.together"/> |
</xsl:when> |
<xsl:otherwise>always</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="padding-start">5pt</xsl:attribute> |
<xsl:attribute name="padding-top">5pt</xsl:attribute> |
<xsl:attribute name="padding-bottom">5pt</xsl:attribute> |
<xsl:attribute name="border-style">solid</xsl:attribute> |
<xsl:attribute name="border-width">0.5pt</xsl:attribute> |
<xsl:attribute name="background-color">#FFFFE6</xsl:attribute> |
<xsl:attribute name="border-color"> |
<xsl:choose> |
<xsl:when test="self::note | self::tip">#E0E0E0</xsl:when> |
<xsl:otherwise>#DCC</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- Properties for admonitions titles --> |
<xsl:attribute-set name="admonition.title.properties"> |
<xsl:attribute name="font-size">14pt</xsl:attribute> |
<xsl:attribute name="font-weight">bold</xsl:attribute> |
<xsl:attribute name="hyphenate">false</xsl:attribute> |
<xsl:attribute name="keep-with-next.within-column">always</xsl:attribute> |
<xsl:attribute name="color"> |
<xsl:choose> |
<xsl:when test="ancestor-or-self::important | ancestor-or-self::warning |
| ancestor-or-self::caution">#500</xsl:when> |
<xsl:otherwise>#000</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- Properties for admonitions text --> |
<xsl:attribute-set name="admonition.properties"> |
<xsl:attribute name="margin-right">5pt</xsl:attribute> |
</xsl:attribute-set> |
<!-- admon.graphic.width: |
Making the graphic smaller. --> |
<!-- The original template is in {docbook-xsl}/fo/admon.xsl --> |
<xsl:template match="*" mode="admon.graphic.width"> |
<xsl:param name="node" select="."/> |
<xsl:text>24pt</xsl:text> |
</xsl:template> |
</xsl:stylesheet> |
/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-lists.xsl |
---|
0,0 → 1,174 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: manuel $ |
$Date: 2008-07-14 18:28:31 $ |
--> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
version="1.0"> |
<!-- This stylesheet controls how list are generated. --> |
<!-- What spacing do you want before and after lists? --> |
<xsl:attribute-set name="list.block.spacing"> |
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute> |
</xsl:attribute-set> |
<!-- What spacing do you want between list items? --> |
<xsl:attribute-set name="list.item.spacing"> |
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.2em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute> |
</xsl:attribute-set> |
<!-- Properties that apply to each list-block generated by itemizedlist. --> |
<xsl:attribute-set name="itemizedlist.properties" |
use-attribute-sets="list.block.properties"> |
<xsl:attribute name="text-align">left</xsl:attribute> |
</xsl:attribute-set> |
<!-- Format variablelists lists as blocks? 1 = yes, 0 = no |
Default variablelist format. We override it when necesary |
using the list-presentation processing instruction. --> |
<xsl:param name="variablelist.as.blocks" select="1"/> |
<!-- Specifies the longest term in variablelists. |
Used when list-presentation = list --> |
<xsl:param name="variablelist.max.termlength">35</xsl:param> |
<!-- varlistentry mode block: |
Addibg a bullet, left alignament, and @kepp-*.* attributes |
for packages and paches list. --> |
<!-- The original template is in {docbook-xsl}/fo/list.xsl --> |
<xsl:template match="varlistentry" mode="vl.as.blocks"> |
<xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable> |
<xsl:choose> |
<xsl:when test="ancestor::variablelist/@role = 'materials'"> |
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing" |
keep-together.within-column="always" font-weight="bold" |
keep-with-next.within-column="always" text-align="left"> |
<xsl:text>• </xsl:text> |
<xsl:apply-templates select="term"/> |
</fo:block> |
<fo:block text-align="left" |
keep-together.within-column="always" |
keep-with-previous.within-column="always"> |
<xsl:apply-templates select="listitem"/> |
</fo:block> |
</xsl:when> |
<xsl:otherwise> |
<fo:block id="{$id}" xsl:use-attribute-sets="list.item.spacing" |
keep-together.within-column="always" |
keep-with-next.within-column="always" margin-left="1em"> |
<xsl:apply-templates select="term"/> |
</fo:block> |
<fo:block margin-left="2em"> |
<xsl:apply-templates select="listitem"/> |
</fo:block> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
<!-- segmentedlist: |
Making it an actual FO list to can indent items. |
Adjust vertical space. --> |
<!-- The original template is in {docbook-xsl}/fo/list.xsl --> |
<xsl:template match="segmentedlist"> |
<xsl:variable name="id"> |
<xsl:call-template name="object.id"/> |
</xsl:variable> |
<fo:list-block id="{$id}" provisional-distance-between-starts="12em" |
provisional-label-separation="1em" |
keep-together.within-column="always"> |
<xsl:choose> |
<xsl:when test="ancestor::appendix[@id='appendixc']"> |
<xsl:attribute name="space-before.optimum">0.2em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.4em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.2em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.4em</xsl:attribute> |
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute> |
</xsl:when> |
<xsl:otherwise> |
<xsl:attribute name="space-before.optimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.2em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.6em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0.2em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.6em</xsl:attribute> |
</xsl:otherwise> |
</xsl:choose> |
<xsl:apply-templates select="seglistitem/seg"/> |
</fo:list-block> |
</xsl:template> |
<!-- seg: |
Self-made template based on the original seg template |
found in {docbook-xsl}/fo/list.xsl |
Making segmentedlist an actual FO list to can indent items. --> |
<xsl:template match="seglistitem/seg"> |
<xsl:variable name="id"> |
<xsl:call-template name="object.id"/> |
</xsl:variable> |
<xsl:variable name="segnum" select="count(preceding-sibling::seg)+1"/> |
<xsl:variable name="seglist" select="ancestor::segmentedlist"/> |
<xsl:variable name="segtitles" select="$seglist/segtitle"/> |
<fo:list-item xsl:use-attribute-sets="compact.list.item.spacing"> |
<fo:list-item-label end-indent="label-end()" text-align="start"> |
<fo:block> |
<fo:inline font-weight="bold"> |
<xsl:apply-templates select="$segtitles[$segnum=position()]" |
mode="segtitle-in-seg"/> |
<xsl:text>:</xsl:text> |
</fo:inline> |
</fo:block> |
</fo:list-item-label> |
<fo:list-item-body start-indent="body-start()"> |
<fo:block id="{$id}"> |
<xsl:apply-templates/> |
</fo:block> |
</fo:list-item-body> |
</fo:list-item> |
</xsl:template> |
<!-- simplelist: |
Self-made template. Wrap it into a fo:block and process member childs. |
If @type is specified, the original templates will be used. |
NOTE: when using type='horiz' or type='vert', FOP-0.93 will complaints |
about not supported table-layout="auto" --> |
<xsl:template match="simplelist"> |
<fo:block xsl:use-attribute-sets="simplelist.properties"> |
<xsl:apply-templates mode="condensed"/> |
</fo:block> |
</xsl:template> |
<!-- member: |
Self-made template to wrap it into a fo:block using customized |
properties. --> |
<xsl:template match="member" mode="condensed"> |
<fo:block xsl:use-attribute-sets="simplelist.properties"> |
<xsl:call-template name="simple.xlink"> |
<xsl:with-param name="content"> |
<xsl:apply-templates/> |
</xsl:with-param> |
</xsl:call-template> |
</fo:block> |
</xsl:template> |
<!-- Properties associated with our simplelist format. --> |
<xsl:attribute-set name="simplelist.properties"> |
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute> |
<xsl:attribute name="space-before.optimum">0em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.2em</xsl:attribute> |
</xsl:attribute-set> |
</xsl:stylesheet> |
/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-xref.xsl |
---|
0,0 → 1,169 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: manuel $ |
$Date: 2008-07-14 18:28:31 $ |
--> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:xlink="http://www.w3.org/1999/xlink" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
exclude-result-prefixes="xlink" |
version="1.0"> |
<!-- This stylesheet fixes English punctuation in xref links |
(as was requested by the publisher) via adding @role propagation |
in xref tags. |
This hack may not work with xref flavours not used in the book. |
For other languages, just remove the xref @role attributes |
in the book XML sources and/or comment-out the inclusion of |
this file in lfs-pdf.xsl --> |
<!-- xref: |
Added role variable and use it when calling mode xref-to.--> |
<!-- The original template is in {docbook-xsl}/fo/xref.xsl --> |
<xsl:template match="xref" name="xref"> |
<xsl:param name="xhref" select="@xlink:href"/> |
<!-- is the @xlink:href a local idref link? --> |
<xsl:param name="xlink.idref"> |
<xsl:if test="starts-with($xhref,'#') |
and (not(contains($xhref,'(')) |
or starts-with($xhref, '#xpointer(id('))"> |
<xsl:call-template name="xpointer.idref"> |
<xsl:with-param name="xpointer" select="$xhref"/> |
</xsl:call-template> |
</xsl:if> |
</xsl:param> |
<xsl:param name="xlink.targets" select="key('id',$xlink.idref)"/> |
<xsl:param name="linkend.targets" select="key('id',@linkend)"/> |
<xsl:param name="target" select="($xlink.targets | $linkend.targets)[1]"/> |
<xsl:param name="refelem" select="local-name($target)"/> |
<!-- Added role variable --> |
<xsl:variable name="role" select="@role"/> |
<xsl:variable name="xrefstyle"> |
<xsl:choose> |
<xsl:when test="@role and not(@xrefstyle) |
and $use.role.as.xrefstyle != 0"> |
<xsl:value-of select="@role"/> |
</xsl:when> |
<xsl:otherwise> |
<xsl:value-of select="@xrefstyle"/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:variable> |
<xsl:variable name="content"> |
<fo:inline xsl:use-attribute-sets="xref.properties"> |
<xsl:choose> |
<xsl:when test="@endterm"> |
<xsl:variable name="etargets" select="key('id',@endterm)"/> |
<xsl:variable name="etarget" select="$etargets[1]"/> |
<xsl:choose> |
<xsl:when test="count($etarget) = 0"> |
<xsl:message> |
<xsl:value-of select="count($etargets)"/> |
<xsl:text>Endterm points to nonexistent ID: </xsl:text> |
<xsl:value-of select="@endterm"/> |
</xsl:message> |
<xsl:text>???</xsl:text> |
</xsl:when> |
<xsl:otherwise> |
<xsl:apply-templates select="$etarget" mode="endterm"/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:when> |
<xsl:when test="$target/@xreflabel"> |
<xsl:call-template name="xref.xreflabel"> |
<xsl:with-param name="target" select="$target"/> |
</xsl:call-template> |
</xsl:when> |
<xsl:when test="$target"> |
<xsl:if test="not(parent::citation)"> |
<xsl:apply-templates select="$target" mode="xref-to-prefix"/> |
</xsl:if> |
<xsl:apply-templates select="$target" mode="xref-to"> |
<xsl:with-param name="referrer" select="."/> |
<xsl:with-param name="xrefstyle" select="$xrefstyle"/> |
<!-- Propagate role --> |
<xsl:with-param name="role" select="$role"/> |
</xsl:apply-templates> |
<xsl:if test="not(parent::citation)"> |
<xsl:apply-templates select="$target" mode="xref-to-suffix"/> |
</xsl:if> |
</xsl:when> |
<xsl:otherwise> |
<xsl:message> |
<xsl:text>ERROR: xref linking to </xsl:text> |
<xsl:value-of select="@linkend|@xlink:href"/> |
<xsl:text> has no generated link text.</xsl:text> |
</xsl:message> |
<xsl:text>???</xsl:text> |
</xsl:otherwise> |
</xsl:choose> |
</fo:inline> |
</xsl:variable> |
<!-- Convert it into an active link --> |
<xsl:call-template name="simple.xlink"> |
<xsl:with-param name="content" select="$content"/> |
</xsl:call-template> |
<!-- Add standard page reference? --> |
<xsl:choose> |
<xsl:when test="not($target)"> |
<!-- page numbers only for local targets --> |
</xsl:when> |
<xsl:when test="starts-with(normalize-space($xrefstyle), 'select:') |
and contains($xrefstyle, 'nopage')"> |
<!-- negative xrefstyle in instance turns it off --> |
</xsl:when> |
<!-- positive xrefstyle already handles it --> |
<xsl:when test="not(starts-with(normalize-space($xrefstyle), 'select:') |
and (contains($xrefstyle, 'page') |
or contains($xrefstyle, 'Page'))) |
and ( $insert.xref.page.number = 'yes' |
or $insert.xref.page.number = '1') |
or local-name($target) = 'para'"> |
<xsl:apply-templates select="$target" mode="page.citation"> |
<xsl:with-param name="id" select="$target/@id|$target/@xml:id"/> |
</xsl:apply-templates> |
</xsl:when> |
</xsl:choose> |
</xsl:template> |
<!-- sect* mode xref-to: |
Propagate role to mode object.xref.markup (see ../lfs-common.xsl) --> |
<!-- The original template is in {docbook-xsl}/fo/xref.xsl --> |
<xsl:template match="section|simplesect|sect1|sect2|sect3|sect4|sect5 |
|refsect1|refsect2|refsect3|refsection" mode="xref-to"> |
<xsl:param name="referrer"/> |
<xsl:param name="xrefstyle"/> |
<xsl:param name="verbose" select="1"/> |
<xsl:param name="role"/> |
<xsl:apply-templates select="." mode="object.xref.markup"> |
<xsl:with-param name="purpose" select="'xref'"/> |
<xsl:with-param name="xrefstyle" select="$xrefstyle"/> |
<xsl:with-param name="referrer" select="$referrer"/> |
<xsl:with-param name="verbose" select="$verbose"/> |
<xsl:with-param name="role" select="$role"/> |
</xsl:apply-templates> |
</xsl:template> |
<!-- insert.title.markup: |
Apply the role value. --> |
<!-- The original template is in {docbook-xsl}/fo/xref.xsl --> |
<xsl:template match="*" mode="insert.title.markup"> |
<xsl:param name="purpose"/> |
<xsl:param name="xrefstyle"/> |
<xsl:param name="title"/> |
<xsl:param name="role"/> |
<xsl:choose> |
<xsl:when test="$purpose = 'xref' and titleabbrev"> |
<xsl:apply-templates select="." mode="titleabbrev.markup"/> |
</xsl:when> |
<xsl:otherwise> |
<xsl:copy-of select="$title"/> |
<xsl:value-of select="$role"/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
</xsl:stylesheet> |
/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-mixed.xsl |
---|
0,0 → 1,383 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: bdubbs $ |
$Date: 2009-01-08 22:58:12 $ |
--> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
version="1.0"> |
<!-- This stylesheet contains misc params, attribute sets and templates |
for output formating. |
This file is for that templates that don't fit in other files. --> |
<!-- What space do you want between normal paragraphs. --> |
<xsl:attribute-set name="normal.para.spacing"> |
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="orphans">3</xsl:attribute> |
<xsl:attribute name="widows">3</xsl:attribute> |
</xsl:attribute-set> |
<!-- Properties associated with verbatim text. --> |
<xsl:attribute-set name="verbatim.properties"> |
<xsl:attribute name="keep-with-previous.within-column">always</xsl:attribute> |
<xsl:attribute name="space-before.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.6em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0.4em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.8em</xsl:attribute> |
<xsl:attribute name="hyphenate">false</xsl:attribute> |
<xsl:attribute name="wrap-option">no-wrap</xsl:attribute> |
<xsl:attribute name="white-space-collapse">false</xsl:attribute> |
<xsl:attribute name="white-space-treatment">preserve</xsl:attribute> |
<xsl:attribute name="linefeed-treatment">preserve</xsl:attribute> |
<xsl:attribute name="text-align">start</xsl:attribute> |
</xsl:attribute-set> |
<!-- Should verbatim environments be shaded? 1 =yes, 0 = no --> |
<xsl:param name="shade.verbatim" select="1"/> |
<!-- Properties that specify the style of shaded verbatim listings --> |
<xsl:attribute-set name="shade.verbatim.style"> |
<xsl:attribute name="background-color">#E9E9E9</xsl:attribute> |
<xsl:attribute name="border-style">solid</xsl:attribute> |
<xsl:attribute name="border-width">0.5pt</xsl:attribute> |
<xsl:attribute name="border-color">#888</xsl:attribute> |
<xsl:attribute name="padding-start">5pt</xsl:attribute> |
<xsl:attribute name="padding-top">2pt</xsl:attribute> |
<xsl:attribute name="padding-bottom">2pt</xsl:attribute> |
</xsl:attribute-set> |
<!-- para: |
Skip empty "Home page" in packages.xml. |
Allow forced line breaks inside paragraphs emulating literallayout. |
Removed vertical space in variablelist. --> |
<!-- The original template is in {docbook-xsl}/fo/block.xsl --> |
<xsl:template match="para"> |
<xsl:choose> |
<xsl:when test="child::ulink[@url=' ']"/> |
<xsl:when test="./@remap='verbatim'"> |
<fo:block xsl:use-attribute-sets="verbatim.properties"> |
<xsl:call-template name="anchor"/> |
<xsl:apply-templates/> |
</fo:block> |
</xsl:when> |
<xsl:when test="ancestor::variablelist"> |
<fo:block> |
<xsl:attribute name="space-before.optimum">0.1em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">0.2em</xsl:attribute> |
<xsl:call-template name="anchor"/> |
<xsl:apply-templates/> |
</fo:block> |
</xsl:when> |
<xsl:otherwise> |
<fo:block xsl:use-attribute-sets="normal.para.spacing"> |
<xsl:call-template name="anchor"/> |
<xsl:apply-templates/> |
</fo:block> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
<!-- screen, literallayout: |
Self-made template that creates a fo:block wrapper with keep-together |
processing instruction support around the output generated by |
original screen templates. --> |
<xsl:template match="screen|literallayout"> |
<xsl:variable name="keep.together"> |
<xsl:call-template name="pi.dbfo_keep-together"/> |
</xsl:variable> |
<fo:block> |
<xsl:attribute name="keep-together.within-column"> |
<xsl:choose> |
<xsl:when test="$keep.together != ''"> |
<xsl:value-of select="$keep.together"/> |
</xsl:when> |
<!-- The following section has been modified by Martin Miehe. Page breaks |
should be allowed within the long script listings in the appendices. |
<xsl:otherwise>always</xsl:otherwise> |
--> |
<xsl:otherwise> |
<xsl:choose> |
<xsl:when test="ancestor::appendix">auto</xsl:when> |
<xsl:otherwise>always</xsl:otherwise> |
</xsl:choose> |
</xsl:otherwise> |
<!-- End of modification --> |
</xsl:choose> |
</xsl:attribute> |
<!-- The following lines were inserted by Martin Miehe. Scripts and rules |
in the appendices should have a smaller font-size so that at least |
80 characters fit to one line. --> |
<xsl:if test="ancestor::appendix"> <!-- name(/) != appendix" --> |
<xsl:attribute name="font-size">10pt</xsl:attribute> |
</xsl:if> |
<!-- End of insertion. --> |
<xsl:apply-imports/> |
</fo:block> |
</xsl:template> |
<!-- literal: |
Be sure that literal will use allways normal font weight. --> |
<!-- The original template is in {docbook-xsl}/fo/inline.xsl --> |
<xsl:template match="literal"> |
<fo:inline font-weight="normal"> |
<xsl:call-template name="inline.monoseq"/> |
</fo:inline> |
</xsl:template> |
<!-- inline.monoseq: |
Added hyphenate-url support to classname, exceptionname, interfacename, |
methodname, computeroutput, constant, envar, filename, function, code, |
literal, option, promt, systemitem, varname, sgmltag, tag, and uri --> |
<!-- The original template is in {docbook-xsl}/fo/inline.xsl --> |
<xsl:template name="inline.monoseq"> |
<xsl:param name="content"> |
<xsl:call-template name="simple.xlink"> |
<xsl:with-param name="content"> |
<xsl:choose> |
<xsl:when test="ancestor::para and not(ancestor::screen) |
and not(descendant::ulink)"> |
<xsl:call-template name="hyphenate-url"> |
<xsl:with-param name="url"> |
<xsl:apply-templates/> |
</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:otherwise> |
<xsl:apply-templates/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:with-param> |
</xsl:call-template> |
</xsl:param> |
<fo:inline xsl:use-attribute-sets="monospace.properties"> |
<xsl:if test="@dir"> |
<xsl:attribute name="direction"> |
<xsl:choose> |
<xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when> |
<xsl:otherwise>rtl</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:if> |
<xsl:copy-of select="$content"/> |
</fo:inline> |
</xsl:template> |
<!-- inline.italicmonoseq: |
Added hyphenate-url support to parameter, replaceable, structfield, |
function/parameter, and function/replaceable --> |
<!-- The original template is in {docbook-xsl}/fo/inline.xsl --> |
<xsl:template name="inline.italicmonoseq"> |
<xsl:param name="content"> |
<xsl:call-template name="simple.xlink"> |
<xsl:with-param name="content"> |
<xsl:choose> |
<xsl:when test="ancestor::para and not(ancestor::screen) |
and not(descendant::ulink)"> |
<xsl:call-template name="hyphenate-url"> |
<xsl:with-param name="url"> |
<xsl:apply-templates/> |
</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:otherwise> |
<xsl:apply-templates/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:with-param> |
</xsl:call-template> |
</xsl:param> |
<fo:inline font-style="italic" xsl:use-attribute-sets="monospace.properties"> |
<xsl:call-template name="anchor"/> |
<xsl:if test="@dir"> |
<xsl:attribute name="direction"> |
<xsl:choose> |
<xsl:when test="@dir = 'ltr' or @dir = 'lro'">ltr</xsl:when> |
<xsl:otherwise>rtl</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:if> |
<xsl:copy-of select="$content"/> |
</fo:inline> |
</xsl:template> |
<!-- Show external URLs in italic font --> |
<xsl:attribute-set name="xref.properties"> |
<xsl:attribute name="font-style"> |
<xsl:choose> |
<xsl:when test="self::ulink">italic</xsl:when> |
<xsl:otherwise>inherit</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- Center table title. --> |
<xsl:attribute-set name="formal.title.properties"> |
<xsl:attribute name="text-align"> |
<xsl:choose> |
<xsl:when test="local-name(.) = 'table'">center</xsl:when> |
<xsl:otherwise>left</xsl:otherwise> |
</xsl:choose> |
</xsl:attribute> |
</xsl:attribute-set> |
<!-- table.layout: |
We want all tables centered. Based on a hack posted |
by Ellen Juhlin on docbook-apps mailing list. --> |
<!-- The original template is in {docbook-xsl}/fo/table.xsl --> |
<xsl:template name="table.layout"> |
<xsl:param name="table.content" select="NOTANODE"/> |
<fo:table table-layout="fixed" width="100%"> |
<fo:table-column column-width ="proportional-column-width(1)"/> |
<fo:table-column> |
<!-- Set center column width equal to table width --> |
<xsl:attribute name="column-width"> |
<xsl:call-template name="table.width"/> |
</xsl:attribute> |
</fo:table-column> |
<fo:table-column column-width ="proportional-column-width(1)"/> |
<fo:table-body> |
<fo:table-row> |
<fo:table-cell column-number="2"> |
<xsl:copy-of select="$table.content"/> |
</fo:table-cell> |
</fo:table-row> |
</fo:table-body> |
</fo:table> |
</xsl:template> |
<!-- Revision History --> |
<!-- revhistory titlepage: |
Self-made template to add missing support on bookinfo. --> |
<xsl:template match="revhistory" mode="book.titlepage.verso.auto.mode"> |
<fo:block space-before.optimum="2em" |
space-before.minimum="1.5em" |
space-before.maximum="2.5em"> |
<xsl:apply-templates select="." mode="book.titlepage.verso.mode"/> |
</fo:block> |
</xsl:template> |
<!-- revhitory title properties --> |
<xsl:attribute-set name="revhistory.title.properties"> |
<xsl:attribute name="text-align">center</xsl:attribute> |
<xsl:attribute name="font-weight">bold</xsl:attribute> |
</xsl:attribute-set> |
<!-- revhistory/revision mode titlepage.mode: |
Removed authorinitials | author support placing |
revremark | revdescription instead on that table-cell. --> |
<!-- The original template is in {docbook-xsl}/fo/titlepage.xsl --> |
<xsl:template match="revhistory/revision" mode="titlepage.mode"> |
<xsl:variable name="revnumber" select="revnumber"/> |
<xsl:variable name="revdate" select="date"/> |
<xsl:variable name="revremark" select="revremark|revdescription"/> |
<fo:table-row> |
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties"> |
<fo:block> |
<xsl:if test="$revnumber"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key" select="'Revision'"/> |
</xsl:call-template> |
<xsl:call-template name="gentext.space"/> |
<xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/> |
</xsl:if> |
</fo:block> |
</fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties"> |
<fo:block> |
<xsl:apply-templates select="$revdate[1]"/> |
</fo:block> |
</fo:table-cell> |
<fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties"> |
<fo:block> |
<xsl:apply-templates select="$revremark[1]"/> |
</fo:block> |
</fo:table-cell> |
</fo:table-row> |
</xsl:template> |
<!-- Dummy sect1 --> |
<!-- sect1: |
Self-made template to skip dummy sect1 pages generation. --> |
<xsl:template match="sect1"> |
<xsl:choose> |
<xsl:when test="@role = 'dummy'"/> |
<xsl:otherwise> |
<xsl:apply-imports/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
<!-- sect1 mode fop1.outline: |
Self-made template to skip dummy sect1 bookmarks generation. --> |
<xsl:template match="sect1" mode="fop1.outline"> |
<xsl:choose> |
<xsl:when test="@role = 'dummy'"/> |
<xsl:otherwise> |
<xsl:apply-imports/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
<!-- toc.line: |
For dummy sect1 output only the title. --> |
<!-- The original template is in {docbook-xsl}/fo/autotoc.xsl --> |
<xsl:template name="toc.line"> |
<xsl:param name="toc-context" select="NOTANODE"/> |
<xsl:variable name="id"> |
<xsl:call-template name="object.id"/> |
</xsl:variable> |
<xsl:variable name="label"> |
<xsl:apply-templates select="." mode="label.markup"/> |
</xsl:variable> |
<xsl:choose> |
<xsl:when test="@role = 'dummy'"> |
<fo:block text-align="left"> |
<xsl:apply-templates select="." mode="titleabbrev.markup"/> |
</fo:block> |
</xsl:when> |
<xsl:otherwise> |
<fo:block xsl:use-attribute-sets="toc.line.properties"> |
<fo:inline keep-with-next.within-line="always"> |
<fo:basic-link internal-destination="{$id}"> |
<xsl:if test="$label != ''"> |
<xsl:copy-of select="$label"/> |
<xsl:value-of select="$autotoc.label.separator"/> |
</xsl:if> |
<xsl:apply-templates select="." mode="titleabbrev.markup"/> |
</fo:basic-link> |
</fo:inline> |
<fo:inline keep-together.within-line="always"> |
<xsl:text> </xsl:text> |
<fo:leader leader-pattern="dots" |
leader-pattern-width="3pt" |
leader-alignment="reference-area" |
keep-with-next.within-line="always"/> |
<xsl:text> </xsl:text> |
<fo:basic-link internal-destination="{$id}"> |
<fo:page-number-citation ref-id="{$id}"/> |
</fo:basic-link> |
</fo:inline> |
</fo:block> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:template> |
</xsl:stylesheet> |
/branches/lfs-6.7/stylesheets/lfs-xsl/pdf/lfs-index.xsl |
---|
0,0 → 1,140 |
<?xml version='1.0' encoding='ISO-8859-1'?> |
<!-- |
$LastChangedBy: manuel $ |
$Date: 2008-07-14 18:28:31 $ |
--> |
<!DOCTYPE xsl:stylesheet [ |
<!ENTITY lowercase "'AaÀàÁáÂâÃãÄäÅåĀāĂ㥹ǍǎǞǟǠǡǺǻȀȁȂȃȦȧḀḁẚẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặBbƀƁɓƂƃḂḃḄḅḆḇCcÇçĆćĈĉĊċČčƇƈɕḈḉDdĎďĐđƊɗƋƌDžDzȡɖḊḋḌḍḎḏḐḑḒḓEeÈèÉéÊêËëĒēĔĕĖėĘęĚěȄȅȆȇȨȩḔḕḖḗḘḙḚḛḜḝẸẹẺẻẼẽẾếỀềỂểỄễỆệFfƑƒḞḟGgĜĝĞğĠġĢģƓɠǤǥǦǧǴǵḠḡHhĤĥĦħȞȟɦḢḣḤḥḦḧḨḩḪḫẖIiÌìÍíÎîÏïĨĩĪīĬĭĮįİƗɨǏǐȈȉȊȋḬḭḮḯỈỉỊịJjĴĵǰʝKkĶķƘƙǨǩḰḱḲḳḴḵLlĹĺĻļĽľĿŀŁłƚLjȴɫɬɭḶḷḸḹḺḻḼḽMmɱḾḿṀṁṂṃNnÑñŃńŅņŇňƝɲƞȠNjǸǹȵɳṄṅṆṇṈṉṊṋOoÒòÓóÔôÕõÖöØøŌōŎŏŐőƟƠơǑǒǪǫǬǭǾǿȌȍȎȏȪȫȬȭȮȯȰȱṌṍṎṏṐṑṒṓỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợPpƤƥṔṕṖṗQqʠRrŔŕŖŗŘřȐȑȒȓɼɽɾṘṙṚṛṜṝṞṟSsŚśŜŝŞşŠšȘșʂṠṡṢṣṤṥṦṧṨṩTtŢţŤťŦŧƫƬƭƮʈȚțȶṪṫṬṭṮṯṰṱẗUuÙùÚúÛûÜüŨũŪūŬŭŮůŰűŲųƯưǓǔǕǖǗǘǙǚǛǜȔȕȖȗṲṳṴṵṶṷṸṹṺṻỤụỦủỨứỪừỬửỮữỰựVvƲʋṼṽṾṿWwŴŵẀẁẂẃẄẅẆẇẈẉẘXxẊẋẌẍYyÝýÿŸŶŷƳƴȲȳẎẏẙỲỳỴỵỶỷỸỹZzŹźŻżŽžƵƶȤȥʐʑẐẑẒẓẔẕẕ'"> |
<!ENTITY uppercase "'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPQQQRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVWWWWWWWWWWWWWWWXXXXXXYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZ'"> |
<!ENTITY primary 'normalize-space(concat(primary/@sortas, primary[not(@sortas) or @sortas = ""]))'> |
<!ENTITY scope "count(ancestor::node()|$scope) = count(ancestor::node()) and ($role = @role or $type = @type or (string-length($role) = 0 and string-length($type) = 0))"> |
]> |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
xmlns:fo="http://www.w3.org/1999/XSL/Format" |
version="1.0"> |
<!-- This stylesheet controls how the Index is generated. |
Entities comes from {docbook-xsl}/common/entities.ent --> |
<!-- Override for punctuation separating an index term from its list |
of page references. --> |
<xsl:param name="index.term.separator" select="': '"></xsl:param> |
<!-- Divisions title properties. --> |
<xsl:attribute-set name="index.div.title.properties"> |
<xsl:attribute name="margin-left">0pt</xsl:attribute> |
<xsl:attribute name="font-size">14.4pt</xsl:attribute> |
<xsl:attribute name="font-family"> |
<xsl:value-of select="$title.fontset"/> |
</xsl:attribute> |
<xsl:attribute name="font-weight">bold</xsl:attribute> |
<xsl:attribute name="keep-with-next.within-column">always</xsl:attribute> |
<xsl:attribute name="space-before.optimum">1em</xsl:attribute> |
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute> |
<xsl:attribute name="space-before.maximum">1.2em</xsl:attribute> |
<xsl:attribute name="space-after.optimum">0.5em</xsl:attribute> |
<xsl:attribute name="space-after.minimum">0.3em</xsl:attribute> |
<xsl:attribute name="space-after.maximum">0.7em</xsl:attribute> |
<xsl:attribute name="start-indent">0pt</xsl:attribute> |
</xsl:attribute-set> |
<!-- Properties applied to the block containing entries in an Index. --> |
<xsl:attribute-set name="index.entry.properties"> |
<xsl:attribute name="start-indent">0.5pc</xsl:attribute> |
</xsl:attribute-set> |
<!-- Divisions: |
Translate alphabetical divisons titles to by-type titles. --> |
<!-- The original template is in {docbook-xsl}/fo/autoidx.xsl --> |
<xsl:template match="indexterm" mode="index-div-basic"> |
<xsl:param name="scope" select="."/> |
<xsl:param name="role" select="''"/> |
<xsl:param name="type" select="''"/> |
<xsl:variable name="key" |
select="translate(substring(&primary;, 1, 1),&lowercase;,&uppercase;)"/> |
<xsl:variable name="divtitle" select="translate($key, &lowercase;, &uppercase;)"/> |
<xsl:if test="key('letter', $key)[&scope;] |
[count(.|key('primary', &primary;)[&scope;][1]) = 1]"> |
<fo:block> |
<xsl:if test="contains(concat(&lowercase;, &uppercase;), $key)"> |
<xsl:call-template name="indexdiv.title"> |
<xsl:with-param name="titlecontent"> |
<xsl:choose> |
<xsl:when test="$divtitle = 'A'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Packages</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:when test="$divtitle = 'B'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Programs</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:when test="$divtitle = 'C'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Libraries</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:when test="$divtitle = 'D'"> |
<xsl:choose> |
<xsl:when test="$book-type = 'blfs'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Kernel Configuration</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:otherwise> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Scripts</xsl:with-param> |
</xsl:call-template> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:when> |
<xsl:when test="$divtitle = 'E'"> |
<xsl:choose> |
<xsl:when test="$book-type = 'blfs'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Configuration Files</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:otherwise> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Others</xsl:with-param> |
</xsl:call-template> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:when> |
<xsl:when test="$divtitle = 'F'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Bootscripts</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:when test="$divtitle = 'G'"> |
<xsl:call-template name="gentext"> |
<xsl:with-param name="key">Others</xsl:with-param> |
</xsl:call-template> |
</xsl:when> |
<xsl:otherwise> |
<xsl:value-of select="$divtitle"/> |
</xsl:otherwise> |
</xsl:choose> |
</xsl:with-param> |
</xsl:call-template> |
</xsl:if> |
<fo:block xsl:use-attribute-sets="index.entry.properties"> |
<xsl:apply-templates select="key('letter', $key)[&scope;] |
[count(.|key('primary', &primary;)[&scope;][1])=1]" |
mode="index-primary"> |
<xsl:sort select="translate(&primary;, &lowercase;, &uppercase;)"/> |
<xsl:with-param name="scope" select="$scope"/> |
<xsl:with-param name="role" select="$role"/> |
<xsl:with-param name="type" select="$type"/> |
</xsl:apply-templates> |
</fo:block> |
</fo:block> |
</xsl:if> |
</xsl:template> |
</xsl:stylesheet> |