rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man3 / pdf / opengl-pdf.xsl
CommitLineData
7faf1d71
AW
1<?xml version='1.0'?>\r
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
3 xmlns:exsl="http://exslt.org/common"\r
4 xmlns:fo="http://www.w3.org/1999/XSL/Format"\r
5 xmlns:ng="http://docbook.org/docbook-ng"\r
6 xmlns:db="http://docbook.org/ns/docbook"\r
7 exclude-result-prefixes="db ng exsl"\r
8 version='1.0'>\r
9\r
10<!-- It is important to use indent="no" here, otherwise verbatim -->\r
11<!-- environments get broken by indented tags...at least when the -->\r
12<!-- callout extension is used...at least with some processors -->\r
13<xsl:output method="xml" indent="no"/>\r
14\r
15<!-- ********************************************************************\r
16 $Id: docbook.xsl 6910 2007-06-28 23:23:30Z xmldoc $\r
17 ********************************************************************\r
18\r
19 This file is part of the XSL DocBook Stylesheet distribution.\r
20 See ../README or http://docbook.sf.net/release/xsl/current/ for\r
21 copyright and other information.\r
22\r
23 ******************************************************************** -->\r
24\r
25<!-- ==================================================================== -->\r
26\r
27<xsl:include href="../VERSION"/>\r
28<xsl:include href="param.xsl"/>\r
29<xsl:include href="../lib/lib.xsl"/>\r
30<xsl:include href="../common/l10n.xsl"/>\r
31<xsl:include href="../common/common.xsl"/>\r
32<xsl:include href="../common/utility.xsl"/>\r
33<xsl:include href="../common/labels.xsl"/>\r
34<xsl:include href="../common/titles.xsl"/>\r
35<xsl:include href="../common/subtitles.xsl"/>\r
36<xsl:include href="../common/gentext.xsl"/>\r
37<xsl:include href="../common/olink.xsl"/>\r
38<xsl:include href="../common/targets.xsl"/>\r
39<xsl:include href="../common/pi.xsl"/>\r
40<xsl:include href="autotoc.xsl"/>\r
41<xsl:include href="autoidx.xsl"/>\r
42<xsl:include href="lists.xsl"/>\r
43<xsl:include href="callout.xsl"/>\r
44<xsl:include href="verbatim.xsl"/>\r
45<xsl:include href="graphics.xsl"/>\r
46<xsl:include href="xref.xsl"/>\r
47<xsl:include href="formal.xsl"/>\r
48<xsl:include href="table.xsl"/>\r
49<xsl:include href="htmltbl.xsl"/>\r
50<xsl:include href="sections.xsl"/>\r
51<xsl:include href="inline.xsl"/>\r
52<xsl:include href="footnote.xsl"/>\r
53<xsl:include href="fo.xsl"/>\r
54<xsl:include href="fo-rtf.xsl"/>\r
55<xsl:include href="info.xsl"/>\r
56<xsl:include href="keywords.xsl"/>\r
57<xsl:include href="division.xsl"/>\r
58<xsl:include href="index.xsl"/>\r
59<xsl:include href="toc.xsl"/>\r
60<xsl:include href="refentry.xsl"/>\r
61<xsl:include href="math.xsl"/>\r
62<xsl:include href="admon.xsl"/>\r
63<xsl:include href="component.xsl"/>\r
64<xsl:include href="biblio.xsl"/>\r
65<xsl:include href="biblio-iso690.xsl"/>\r
66<xsl:include href="glossary.xsl"/>\r
67<xsl:include href="block.xsl"/>\r
68<xsl:include href="task.xsl"/>\r
69<xsl:include href="qandaset.xsl"/>\r
70<xsl:include href="synop.xsl"/>\r
71<xsl:include href="titlepage.xsl"/>\r
72<xsl:include href="titlepage.templates.xsl"/>\r
73<xsl:include href="pagesetup.xsl"/>\r
74<xsl:include href="pi.xsl"/>\r
75<xsl:include href="spaces.xsl"/>\r
76<xsl:include href="ebnf.xsl"/>\r
77<xsl:include href="../html/chunker.xsl"/>\r
78<xsl:include href="annotations.xsl"/>\r
79<xsl:include href="../common/stripns.xsl"/>\r
80\r
81<xsl:include href="fop.xsl"/>\r
82<xsl:include href="fop1.xsl"/>\r
83<xsl:include href="passivetex.xsl"/>\r
84<xsl:include href="xep.xsl"/>\r
85<xsl:include href="axf.xsl"/>\r
86<xsl:include href="ptc.xsl"/>\r
87\r
88<xsl:param name="stylesheet.result.type" select="'fo'"/>\r
89\r
90\r
91<!-- BEI -->\r
92<xsl:param name="symbol.font.family">Symbol,ZapfDingbats,Lucida Sans Unicode</xsl:param>\r
93<xsl:param name="funcsynopsis.style">ansi</xsl:param>\r
94<xsl:param name="citerefentry.link" select="1"></xsl:param>\r
95\r
96<xsl:template match="symbol[@role = 'symbolfont']">\r
97<fo:inline font-family="Symbol,ZapfDingbats,Lucida Sans Unicode">\r
98<xsl:apply-templates/>\r
99</fo:inline>\r
100</xsl:template>\r
101\r
102\r
103\r
104\r
105<!-- ==================================================================== -->\r
106\r
107<xsl:key name="id" match="*" use="@id|@xml:id"/>\r
108\r
109<!-- ==================================================================== -->\r
110\r
111<xsl:template match="*">\r
112 <xsl:message>\r
113 <xsl:value-of select="name(.)"/>\r
114 <xsl:text> encountered</xsl:text>\r
115 <xsl:if test="parent::*">\r
116 <xsl:text> in </xsl:text>\r
117 <xsl:value-of select="name(parent::*)"/>\r
118 </xsl:if>\r
119 <xsl:text>, but no template matches.</xsl:text>\r
120 </xsl:message>\r
121 <fo:block color="red">\r
122 <xsl:text>&lt;</xsl:text>\r
123 <xsl:value-of select="name(.)"/>\r
124 <xsl:text>&gt;</xsl:text>\r
125 <xsl:apply-templates/> \r
126 <xsl:text>&lt;/</xsl:text>\r
127 <xsl:value-of select="name(.)"/>\r
128 <xsl:text>&gt;</xsl:text>\r
129 </fo:block>\r
130</xsl:template>\r
131\r
132<!-- Update this list if new root elements supported -->\r
133<xsl:variable name="root.elements" select="' appendix article bibliography book chapter colophon dedication glossary index part preface qandaset refentry reference sect1 section set setindex '"/>\r
134\r
135\r
136\r
137\r
138<xsl:template match="/">\r
139 <!-- * Get a title for current doc so that we let the user -->\r
140 <!-- * know what document we are processing at this point. -->\r
141 <xsl:variable name="doc.title">\r
142 <xsl:call-template name="get.doc.title"/>\r
143 </xsl:variable>\r
144 <xsl:choose>\r
145 <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,\r
146 toss the namespace and continue. Use the docbook5 namespaced\r
147 stylesheets for DocBook5 if you don't want to use this feature.-->\r
148 <!-- include extra test for Xalan quirk -->\r
149 <xsl:when test="(function-available('exsl:node-set') or\r
150 contains(system-property('xsl:vendor'),\r
151 'Apache Software Foundation'))\r
152 and (*/self::ng:* or */self::db:*)">\r
153 <xsl:call-template name="log.message">\r
154 <xsl:with-param name="level">Note</xsl:with-param>\r
155 <xsl:with-param name="source" select="$doc.title"/>\r
156 <xsl:with-param name="context-desc">\r
157 <xsl:text>namesp. cut</xsl:text>\r
158 </xsl:with-param>\r
159 <xsl:with-param name="message">\r
160 <xsl:text>stripped namespace before processing</xsl:text>\r
161 </xsl:with-param>\r
162 </xsl:call-template>\r
163 <xsl:variable name="nons">\r
164 <xsl:apply-templates mode="stripNS"/>\r
165 </xsl:variable>\r
166 <xsl:call-template name="log.message">\r
167 <xsl:with-param name="level">Note</xsl:with-param>\r
168 <xsl:with-param name="source" select="$doc.title"/>\r
169 <xsl:with-param name="context-desc">\r
170 <xsl:text>namesp. cut</xsl:text>\r
171 </xsl:with-param>\r
172 <xsl:with-param name="message">\r
173 <xsl:text>processing stripped document</xsl:text>\r
174 </xsl:with-param>\r
175 </xsl:call-template>\r
176 <xsl:apply-templates select="exsl:node-set($nons)"/>\r
177 </xsl:when>\r
178 <!-- Can't process unless namespace removed -->\r
179 <xsl:when test="*/self::ng:* or */self::db:*">\r
180 <xsl:message terminate="yes">\r
181 <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>\r
182 <xsl:text> cannot proceed.</xsl:text>\r
183 </xsl:message>\r
184 </xsl:when>\r
185 <xsl:otherwise>\r
186 <xsl:choose>\r
187 <xsl:when test="$rootid != ''">\r
188 <xsl:variable name="root.element" select="key('id', $rootid)"/>\r
189 <xsl:choose>\r
190 <xsl:when test="count($root.element) = 0">\r
191 <xsl:message terminate="yes">\r
192 <xsl:text>ID '</xsl:text>\r
193 <xsl:value-of select="$rootid"/>\r
194 <xsl:text>' not found in document.</xsl:text>\r
195 </xsl:message>\r
196 </xsl:when>\r
197 <xsl:when test="not(contains($root.elements, concat(' ', local-name($root.element), ' ')))">\r
198 <xsl:message terminate="yes">\r
199 <xsl:text>ERROR: Document root element ($rootid=</xsl:text>\r
200 <xsl:value-of select="$rootid"/>\r
201 <xsl:text>) for FO output </xsl:text>\r
202 <xsl:text>must be one of the following elements:</xsl:text>\r
203 <xsl:value-of select="$root.elements"/>\r
204 </xsl:message>\r
205 </xsl:when>\r
206 <!-- Otherwise proceed -->\r
207 <xsl:otherwise>\r
208 <xsl:if test="$collect.xref.targets = 'yes' or\r
209 $collect.xref.targets = 'only'">\r
210 <xsl:apply-templates select="$root.element"\r
211 mode="collect.targets"/>\r
212 </xsl:if>\r
213 <xsl:if test="$collect.xref.targets != 'only'">\r
214 <xsl:apply-templates select="$root.element"\r
215 mode="process.root"/>\r
216 </xsl:if>\r
217 </xsl:otherwise>\r
218 </xsl:choose>\r
219 </xsl:when>\r
220 <!-- Otherwise process the document root element -->\r
221 <xsl:otherwise>\r
222 <xsl:variable name="document.element" select="*[1]"/>\r
223 <xsl:choose>\r
224 <xsl:when test="not(contains($root.elements,\r
225 concat(' ', local-name($document.element), ' ')))">\r
226 <xsl:message terminate="yes">\r
227 <xsl:text>ERROR: Document root element for FO output </xsl:text>\r
228 <xsl:text>must be one of the following elements:</xsl:text>\r
229 <xsl:value-of select="$root.elements"/>\r
230 </xsl:message>\r
231 </xsl:when>\r
232 <!-- Otherwise proceed -->\r
233 <xsl:otherwise>\r
234 <xsl:if test="$collect.xref.targets = 'yes' or\r
235 $collect.xref.targets = 'only'">\r
236 <xsl:apply-templates select="/"\r
237 mode="collect.targets"/>\r
238 </xsl:if>\r
239 <xsl:if test="$collect.xref.targets != 'only'">\r
240 <xsl:apply-templates select="/"\r
241 mode="process.root"/>\r
242 </xsl:if>\r
243 </xsl:otherwise>\r
244 </xsl:choose>\r
245 </xsl:otherwise>\r
246 </xsl:choose>\r
247 </xsl:otherwise>\r
248 </xsl:choose>\r
249</xsl:template>\r
250\r
251<xsl:template match="*" mode="process.root">\r
252 <xsl:variable name="document.element" select="self::*"/>\r
253\r
254 <xsl:call-template name="root.messages"/>\r
255\r
256 <xsl:variable name="title">\r
257 <xsl:choose>\r
258 <xsl:when test="$document.element/title[1]">\r
259 <xsl:value-of select="$document.element/title[1]"/>\r
260 </xsl:when>\r
261 <xsl:otherwise>[could not find document title]</xsl:otherwise>\r
262 </xsl:choose>\r
263 </xsl:variable>\r
264 \r
265 <!-- Include all id values in XEP output -->\r
266 <xsl:if test="$xep.extensions != 0">\r
267 <xsl:processing-instruction \r
268 name="xep-pdf-drop-unused-destinations">false</xsl:processing-instruction>\r
269 </xsl:if>\r
270\r
271 <fo:root xsl:use-attribute-sets="root.properties">\r
272 <xsl:attribute name="language">\r
273 <xsl:call-template name="l10n.language">\r
274 <xsl:with-param name="target" select="/*[1]"/>\r
275 </xsl:call-template>\r
276 </xsl:attribute>\r
277\r
278 <xsl:if test="$xep.extensions != 0">\r
279 <xsl:call-template name="xep-pis"/>\r
280 <xsl:call-template name="xep-document-information"/>\r
281 </xsl:if>\r
282 <xsl:if test="$axf.extensions != 0">\r
283 <xsl:call-template name="axf-document-information"/>\r
284 </xsl:if>\r
285\r
286 <xsl:call-template name="setup.pagemasters"/>\r
287\r
288 <xsl:if test="$fop.extensions != 0">\r
289 <xsl:apply-templates select="$document.element" mode="fop.outline"/>\r
290 </xsl:if>\r
291\r
292 <xsl:if test="$fop1.extensions != 0">\r
293 <xsl:variable name="bookmarks">\r
294 <xsl:apply-templates select="$document.element" \r
295 mode="fop1.outline"/>\r
296 </xsl:variable>\r
297 <xsl:if test="string($bookmarks) != ''">\r
298 <fo:bookmark-tree>\r
299 <xsl:copy-of select="$bookmarks"/>\r
300 </fo:bookmark-tree>\r
301 </xsl:if>\r
302 </xsl:if>\r
303\r
304 <xsl:if test="$xep.extensions != 0">\r
305 <xsl:variable name="bookmarks">\r
306 <xsl:apply-templates select="$document.element" mode="xep.outline"/>\r
307 </xsl:variable>\r
308 <xsl:if test="string($bookmarks) != ''">\r
309 <rx:outline xmlns:rx="http://www.renderx.com/XSL/Extensions">\r
310 <xsl:copy-of select="$bookmarks"/>\r
311 </rx:outline>\r
312 </xsl:if>\r
313 </xsl:if>\r
314\r
315 <xsl:if test="$arbortext.extensions != 0 and $ati.xsl11.bookmarks != 0">\r
316 <xsl:variable name="bookmarks">\r
317 <xsl:apply-templates select="$document.element"\r
318 mode="ati.xsl11.bookmarks"/>\r
319 </xsl:variable>\r
320 <xsl:if test="string($bookmarks) != ''">\r
321 <fo:bookmark-tree>\r
322 <xsl:copy-of select="$bookmarks"/>\r
323 </fo:bookmark-tree>\r
324 </xsl:if>\r
325 </xsl:if>\r
326\r
327 <xsl:apply-templates select="$document.element"/>\r
328 </fo:root>\r
329</xsl:template>\r
330\r
331<xsl:template name="root.messages">\r
332 <!-- redefine this any way you'd like to output messages -->\r
333 <!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE -->\r
334 <xsl:message>\r
335 <xsl:text>Making </xsl:text>\r
336 <xsl:value-of select="$page.orientation"/>\r
337 <xsl:text> pages on </xsl:text>\r
338 <xsl:value-of select="$paper.type"/>\r
339 <xsl:text> paper (</xsl:text>\r
340 <xsl:value-of select="$page.width"/>\r
341 <xsl:text>x</xsl:text>\r
342 <xsl:value-of select="$page.height"/>\r
343 <xsl:text>)</xsl:text>\r
344 </xsl:message>\r
345</xsl:template>\r
346\r
347<!-- ==================================================================== -->\r
348\r
349</xsl:stylesheet>\r