Initial import of the Guide contributed to the project byRobert Kraske. Was originall...
[phpeclipse.git] / net.sourceforge.phpeclipse.help / docbook-src / guide / xsl / phpeclipse_pdf.xsl
diff --git a/net.sourceforge.phpeclipse.help/docbook-src/guide/xsl/phpeclipse_pdf.xsl b/net.sourceforge.phpeclipse.help/docbook-src/guide/xsl/phpeclipse_pdf.xsl
new file mode 100644 (file)
index 0000000..3d83104
--- /dev/null
@@ -0,0 +1,417 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                xmlns:exsl="http://exslt.org/common"
+                extension-element-prefixes="exsl"
+                exclude-result-prefixes="exsl"
+                version="1.0">
+
+<xsl:import href="file:///c:/docbook/docbook-xsl/fo/profile-docbook.xsl"/>
+<xsl:import href="file:///c:/docbook/docbook-xsl/fo/docbook.xsl"/>
+<xsl:import href="phpeclipse_pagemaster.xsl"/>
+
+<xsl:param name="profile.role" select="'with_index;fo;bold'"/>
+
+<xsl:param name="paper.type" select="'A4'"/>
+<xsl:param name="double.sided" select="1"/>
+<xsl:param name="section.autolabel" select="1"/>
+<xsl:param name="toc.section.depth" select="2"/>
+<xsl:param name="section.label.includes.component.label" select="1"/>
+<xsl:param name="draft.watermark.image" select="''"/>
+<xsl:param name="draft.mode" select="'no'"/>
+<xsl:param name="fop.extensions" select="1"/>
+
+<xsl:param name="headers.on.blank.pages" select="1"/>
+<xsl:param name="header.rule" select="1"/>
+<xsl:param name="line-height" select="'normal'"/>
+
+<xsl:param name="saxon.extensions" select="1"/>
+
+<xsl:param name="use.extensions"  select="1"/>
+<xsl:param name="callouts.extension"  select="1"/>
+<xsl:param name="textinsert.extension" select="1"/>
+<xsl:param name="tablecolumns.extension" select="'0'"></xsl:param>
+
+<xsl:param name="callout.graphics">1</xsl:param>
+<xsl:param name="callout.graphics.extension">.png</xsl:param>
+<xsl:param name="callout.graphics.path" select="'img/callouts/'"></xsl:param>
+
+<xsl:param name="admon.graphics" select="1"></xsl:param>
+<xsl:param name="admon.graphics.path">img/admon/</xsl:param>
+
+<xsl:param name="qanda.defaultlabel">none</xsl:param>
+
+<xsl:param name="insert.xref.page.number" select="1"/>
+<!--
+<xsl:param name="footnote.number.format" select="i"></xsl:param>
+<xsl:param name="footnote.number.symbols" select="*"></xsl:param>
+-->
+
+<xsl:param name="body.margin.top" select="'13mm'"/>
+<xsl:param name="body.margin.bottom" select="'5mm'"/>
+
+<xsl:param name="region.before.extent" select="'7.80mm'"/>
+<xsl:param name="region.after.extent" select="'5mm'"/>
+
+<xsl:param name="region.side.extent" select="'30mm'"/>
+<xsl:param name="region.side.margin" select="'4mm'"/>
+
+<xsl:param name="sidebar.background.color" select="'#eaECF0'"/>
+
+<!-- use vertical-align instead of baseline-shift (baseline-shift doesn't work with fop!) -->
+
+<xsl:template name="format.footnote.mark">
+  <xsl:param name="mark" select="'?'"/>
+  <fo:inline vertical-align="super" font-size="75%">
+    <xsl:copy-of select="$mark"/>
+  </fo:inline>
+</xsl:template>
+
+
+<!-- title.margin.left gives the distance between start of chapter and sections title and normal text flow. -->
+<!-- with -0pc the titles and the text flow begin at the same column. -->
+<xsl:param name="title.margin.left" select="'-0pc'"/>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="page.margin.inner">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">5mm</xsl:when>
+    <xsl:otherwise>5mm</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="page.margin.outer">
+  <xsl:choose>
+    <xsl:when test="$double.sided != 0">15mm</xsl:when>
+    <xsl:otherwise>20mm</xsl:otherwise>
+  </xsl:choose>
+</xsl:param>
+
+<!-- ==================================================================== -->
+
+<xsl:param name="formal.title.placement">
+figure after
+example before
+equation after
+table after
+procedure before
+</xsl:param>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="book.titlepage">
+  <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format">
+    <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>
+<!--
+    <xsl:call-template name="book.titlepage.separator"/>
+-->
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="header.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <xsl:variable name="candidate">
+    <!-- sequence can be odd, even, first, blank -->
+    <!-- position can be left, center, right -->
+    <xsl:choose>
+<!--
+      <xsl:when test="$sequence = 'odd' and $position = 'left'">
+        <fo:retrieve-marker retrieve-class-name="section.head.marker"
+                            retrieve-position="first-including-carryover"
+                            retrieve-boundary="page"/>
+      </xsl:when>
+-->
+      <xsl:when test="($sequence = 'odd' or $sequence = 'even' or
+                       $sequence = 'blank' or $sequence = 'first') and $position = 'center'">
+      </xsl:when>
+
+      <xsl:when test="($sequence = 'odd'   and $position = 'right') or
+                      ($sequence = 'even'  and $position = 'left') or
+                      ($sequence = 'blank' and $position = 'left') or
+                      ($sequence = 'first' and $position = 'right')">
+        <xsl:choose>
+          <xsl:when test="name(/book[position() = 1]) = 'book'">
+            <xsl:value-of select="ancestor-or-self::book/bookinfo/edition"/>
+          </xsl:when>
+
+          <xsl:when test="name(/article[position() = 1]) = 'article'">
+            <xsl:value-of  select="ancestor-or-self::article/articleinfo/edition"/>
+          </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:value-of select="name(/book[position() = 1])"/>
+            <xsl:value-of select="name(/article[position() = 1])"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:when test="($sequence = 'odd'   and $position = 'left') or
+                      ($sequence = 'even'  and $position = 'right') or
+                      ($sequence = 'blank' and $position = 'right') or
+                      ($sequence = 'first' and $position = 'left')">
+        <xsl:choose>
+          <xsl:when test="name(/book[position() = 1]) = 'book'">
+            <xsl:value-of select="ancestor-or-self::book/bookinfo/title"/>
+          </xsl:when>
+
+          <xsl:when test="name(/article[position() = 1]) = 'article'">
+            <xsl:value-of select="ancestor-or-self::article/articleinfo/title"/>
+          </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:value-of select="name(/book[position() = 1])"/>
+            <xsl:value-of select="name(/article[position() = 1])"/>
+          </xsl:otherwise>
+       </xsl:choose>
+
+      </xsl:when>
+<!--
+      <xsl:when test="$sequence = 'even' and $position = 'right'">
+         <fo:block><xsl:apply-templates select="." mode="object.title.markup"/></fo:block>
+      </xsl:when>
+-->
+
+      <xsl:when test="$sequence = 'first' and $position = 'left'">
+      </xsl:when>
+
+      <xsl:when test="$sequence = 'first' and $position = 'right'">
+      </xsl:when>
+
+      <xsl:when test="$sequence = 'first' and $position = 'center'">
+        <xsl:value-of select="ancestor-or-self::book/bookinfo/corpauthor"/>
+      </xsl:when>
+
+      <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 1">
+        <xsl:choose>
+          <xsl:when test="$position = 'left'">
+          </xsl:when>
+
+          <xsl:when test="$position = 'center'">
+            <!--  <xsl:text>This page intentionally left blank</xsl:text> -->
+          </xsl:when>
+
+          <xsl:when test="$position = 'right'">
+          </xsl:when>
+        </xsl:choose>
+      </xsl:when>
+
+    </xsl:choose>
+  </xsl:variable>
+
+  <!-- Does runtime parameter turn off blank page headers? -->
+  <xsl:choose>
+    <xsl:when test="$sequence='blank' and $headers.on.blank.pages=0">
+      <!-- no output -->
+    </xsl:when>
+
+    <xsl:when test="$pageclass = 'titlepage'">
+      <!-- titlepages have no headers -->
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:copy-of select="$candidate"/>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="footer.content">
+  <xsl:param name="pageclass" select="''"/>
+  <xsl:param name="sequence" select="''"/>
+  <xsl:param name="position" select="''"/>
+  <xsl:param name="gentext-key" select="''"/>
+
+  <fo:block>
+    <!-- pageclass can be front, body, back      -->
+    <!-- sequence can be odd, even, first, blank -->
+    <!-- position can be left, center, right     -->
+
+    <xsl:choose>
+      <xsl:when test="$pageclass = 'titlepage'">
+        <!-- nop; no footer on title pages -->
+      </xsl:when>
+
+      <!--
+      <xsl:when test="($sequence='even' and $double.sided != 0 and $position='left') or
+                      ($sequence='odd' and $double.sided != 0 and $position='right')">
+        page <fo:page-number/> of <fo:page-number-citation ref-id="TheVeryLastPage"/>
+      </xsl:when>
+      -->
+      <xsl:when test="($sequence='even'  and $position='left') or
+                      ($sequence='odd'   and $position='right') or
+                      ($sequence='first' and $position='right') or
+                      ($sequence='blank' and $position='left')">
+        <fo:page-number/>
+      </xsl:when>
+
+      <xsl:when test="($sequence='even'  and $position='right') or
+                      ($sequence='odd'   and $position='left') or
+                      ($sequence='first' and $position='left') or
+                      ($sequence='blank' and $position='right')">
+        <xsl:choose>
+          <xsl:when test="name(/book[position() = 1]) = 'book'">
+            <xsl:value-of select="ancestor-or-self::book/bookinfo/orgname"/>
+          </xsl:when>
+
+          <xsl:when test="name(/article[position() = 1]) = 'article'">
+            <xsl:value-of select="ancestor-or-self::article/articleinfo/orgname"/>
+          </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:value-of select="name(/book[position() = 1])"/>
+            <xsl:value-of select="name(/article[position() = 1])"/>
+          </xsl:otherwise>
+       </xsl:choose>
+
+      </xsl:when>
+
+      <xsl:when test="$position='center'">
+        <xsl:choose>
+          <xsl:when test="name(/book[position() = 1]) = 'book'">
+            <xsl:value-of select="ancestor-or-self::book/bookinfo/pubdate"/>
+          </xsl:when>
+
+          <xsl:when test="name(/article[position() = 1]) = 'article'">
+            <xsl:value-of select="ancestor-or-self::article/articleinfo/pubdate"/>
+          </xsl:when>
+
+          <xsl:otherwise>
+            <xsl:value-of select="name(/book[position() = 1])"/>
+            <xsl:value-of select="name(/article[position() = 1])"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+
+      <xsl:otherwise>
+        <!-- nop -->
+      </xsl:otherwise>
+    </xsl:choose>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="inline.frameseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:inline font-weight="bold" color="#555555">
+    <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>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="inline.highlightsseq">
+  <xsl:param name="content">
+    <xsl:apply-templates/>
+  </xsl:param>
+  <fo:block>
+  <fo:inline font-weight="bold" font-size="125%">
+    <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>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template  match="guibutton">
+  <xsl:call-template  name="inline.frameseq"/>
+</xsl:template>
+
+
+<xsl:template  match="guilabel">
+  <xsl:call-template  name="inline.frameseq"/>
+</xsl:template>
+
+
+<xsl:template  match="database">
+  <xsl:call-template  name="inline.boldseq"/>
+</xsl:template>
+
+
+<xsl:template  match="highlights">
+  <xsl:call-template  name="inline.highlightsseq"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="inline.monoseq">
+   <xsl:param name="content">
+     <xsl:apply-templates/>
+   </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:apply-templates select="exsl:node-set($content)" mode="hyphenate"/>
+   </fo:inline>
+</xsl:template>
+
+<xsl:template match="text()" mode="hyphenate" priority="2">
+   <xsl:call-template name="string.subst">
+     <xsl:with-param name="string">
+       <xsl:call-template name="string.subst">
+         <xsl:with-param name="string">
+           <xsl:call-template name="string.subst">
+             <xsl:with-param name="string" select="."/>
+             <xsl:with-param name="target" select="'.'"/>
+             <xsl:with-param name="replacement" select="'.&#x200B;'"/>
+           </xsl:call-template>
+         </xsl:with-param>
+         <xsl:with-param name="target" select="'\'"/>
+         <xsl:with-param name="replacement" select="'\&#x200B;'"/>
+       </xsl:call-template>
+     </xsl:with-param>
+     <xsl:with-param name="target" select="'/'"/>
+     <xsl:with-param name="replacement" select="'/&#x200B;'"/>
+   </xsl:call-template>
+</xsl:template>
+
+<xsl:template match="node()|@*" mode="hyphenate">
+   <xsl:copy>
+     <xsl:apply-templates select="node()|@*" mode="hyphenate"/>
+   </xsl:copy>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+</xsl:stylesheet>