2 <!DOCTYPE xsl:transform [
3 <!ENTITY % latex.characters SYSTEM "ltexchar.mod">
7 <xsl:transform version="1.0"
8 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
10 <xsl:output method="text" encoding="ISO-8859-1" />
12 <xsl:strip-space elements="gamebook meta section data ol ul dl li dd footnotes footnote illustration instance" />
13 <xsl:preserve-space elements="p choice" />
20 Revision 1.1 2005/01/30 01:32:52 jonathan.blake
21 Initial freepository revision of XML support documents.
23 Revision 1.3 2002/10/30 06:33:22 jblake
24 Added capability to filter which illustrators' work is included in the output.
26 Revision 1.2 2002/10/20 06:29:58 jblake
27 Added support for CLOSE COMBAT SKILL from the Freeway Warrior books.
29 Revision 1.1 2002/10/15 23:30:23 jblake
38 The implementation of tables is incomplete and kludgy.
42 <!-- ====================== parameters ========================== -->
44 <xsl:param name="title-color"><xsl:text>0.0,0.0,0.0</xsl:text></xsl:param>
45 <xsl:param name="use-illustrators" />
47 <!-- ======================= variables ========================== -->
49 <xsl:variable name="newline">
54 <xsl:variable name="newparagraph">
55 <xsl:value-of select="$newline" />
56 <xsl:value-of select="$newline" />
59 <!-- ======================== Templates ========================= -->
61 <!-- ================= hierarchical sections ==================== -->
63 <xsl:template match="meta" />
65 <!-- ::::::::::::::::::: top-level section :::::::::::::::::::::: -->
67 <xsl:template match="/gamebook/section[@id='title']">
71 \documentclass[letterpaper,12pt,twoside]{book}
72 %\documentclass[a4paper,12pt,twoside]{book}
75 %\documentclass[letterpaper,12pt,oneside]{book}
76 %\documentclass[a4paper,12pt,oneside]{book}
78 \usepackage[pdftex]{graphicx}
83 \definecolor{titlecolor}{rgb}{</xsl:text><xsl:value-of select="$title-color" /><xsl:text>}
84 \definecolor{lightgray}{gray}{0.75}
86 %% headers and footers %%
89 \renewcommand{\chaptermark}[1]{}
90 \renewcommand{\sectionmark}[1]{}
93 \ifthenelse{\boolean{@twoside}}%
95 \fancyhead[CO]{\iffloatpage{}{</xsl:text><xsl:value-of select="/gamebook/meta/creator[@class='short']" /><xsl:text>}}
96 \fancyhead[CE]{\iffloatpage{}{\bfseries </xsl:text><xsl:value-of select="/gamebook/meta/title[1]" /><xsl:text>}}
97 \fancyhead[LO,RE]{\iffloatpage{}{\thepage}}}%
99 %\fancyhead[C]{\iffloatpage{}{\bfseries{</xsl:text><xsl:value-of select="/gamebook/meta/title[1]" /><xsl:text>:} \normalfont{</xsl:text><xsl:value-of select="/gamebook/meta/creator[@class='short']" /><xsl:text>}}}
100 %\fancyhead[R]{\iffloatpage{}{\thepage}}}
101 \renewcommand{\headrulewidth}{\iffloatpage{0pt}{0.4pt}}
103 \fancypagestyle{plain}{
105 \renewcommand{\headrulewidth}{0pt}
108 \fancypagestyle{empty}{
110 \renewcommand{\headrulewidth}{0pt}
113 %% hyper-references %%
114 \usepackage[pdftex,colorlinks=true,linkcolor=black,bookmarks=false]{hyperref}
116 %% custom style info %%
117 \setlength{\parindent}{0pt}
118 \setlength{\parskip}{1em}
119 \setlength{\headheight}{18pt}
120 \addtolength{\headwidth}{\marginparwidth}
121 \addtolength{\headwidth}{\marginparsep}
122 \setlength{\textheight}{44\baselineskip}
123 \ifthenelse{\lengthtest{\paperwidth = 210mm}}%
124 {%% if A4 (210.0 mm x 297.0 mm)
125 \addtolength{\topmargin}{-1\baselineskip}}%
126 {%% else if letter (8.5" x 11" == 215.9 mm x 279.4 mm)
127 \addtolength{\topmargin}{-2.5\baselineskip}}
130 \usepackage[T1]{fontenc}
131 \usepackage{souvenir}
132 %\renewcommand{\rmdefault}{souvnrttf}
136 %% new environments %%
137 \newenvironment{aonchoice}{\begin{list}{}{\setlength{\topsep}{0pt}} \item}{\end{list}}
138 \newenvironment{aoncombat}{\begin{list}{}{\setlength{\topsep}{0pt}} \item}{\end{list}}
139 \newenvironment{aonitemize}{\begin{list}{}{\setlength{\topsep}{0pt} \setlength{\parsep}{0pt} \setlength{\itemsep}{0pt}}}{\end{list}}
140 \newenvironment{aonordereditemize}{\begin{list}{\arabic{aoncounter}.}{\usecounter{aoncounter} \setlength{\topsep}{0pt} \setlength{\parsep}{0pt} \setlength{\itemsep}{0pt}}}{\end{list}}
141 \newcounter{aoncounter}
143 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
148 \vspace*{\stretch{0.7}}
150 \Huge{\textcolor{titlecolor}{\textbf{</xsl:text><xsl:value-of select="/gamebook/meta/title[1]" /><xsl:text>}}} \vspace{-0.8em}\\
152 \vspace*{\stretch{1}}
153 \normalsize{</xsl:text><xsl:apply-templates select="/gamebook/meta/creator[@class='medium']" /><xsl:text>}
155 \vspace*{\stretch{1.3}}
161 \vspace*{\stretch{1}}
164 <xsl:apply-templates select="/gamebook/meta/rights[@class='license-notification']" />
167 Publication Date: </xsl:text>
168 <xsl:value-of select="/gamebook/meta/date[@class='publication']/day" />
169 <xsl:text> </xsl:text>
171 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 1">
172 <xsl:text>January</xsl:text>
174 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 2">
175 <xsl:text>February</xsl:text>
177 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 3">
178 <xsl:text>March</xsl:text>
180 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 4">
181 <xsl:text>April</xsl:text>
183 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 5">
184 <xsl:text>May</xsl:text>
186 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 6">
187 <xsl:text>June</xsl:text>
189 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 7">
190 <xsl:text>July</xsl:text>
192 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 8">
193 <xsl:text>August</xsl:text>
195 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 9">
196 <xsl:text>September</xsl:text>
198 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 10">
199 <xsl:text>October</xsl:text>
201 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 11">
202 <xsl:text>November</xsl:text>
204 <xsl:when test="/gamebook/meta/date[@class='publication']/month = 12">
205 <xsl:text>December</xsl:text>
208 <xsl:text>Invalid Month</xsl:text>
211 <xsl:text> </xsl:text>
212 <xsl:value-of select="/gamebook/meta/date[@class='publication']/year" />
216 <xsl:apply-templates select="/gamebook/meta/description[@class='publication']" />
219 \vspace*{\stretch{3}}
225 \clearpage{\pagestyle{empty}\cleardoublepage}
227 \vspace*{\stretch{1}}
229 \thispagestyle{empty}
231 <xsl:apply-templates select="/gamebook/meta/description[@class='blurb']" />
232 <xsl:apply-templates select="/gamebook/meta/creator[@class='long']" />
235 \vspace*{\stretch{3}}
237 \clearpage{\pagestyle{empty}\cleardoublepage}
244 <xsl:apply-templates select="data/section[@class='frontmatter']" />
250 <xsl:if test="data/section[@class='mainmatter']">
251 <xsl:text>\begin{mainmatter}
255 <xsl:apply-templates select="data/section[@class='mainmatter']" />
262 <xsl:if test="data/section[@class='numbered']">
263 <xsl:apply-templates select="data/section[@class='numbered']" />
268 \ifthenelse{\boolean{@twoside}}%
274 \setcounter{topnumber}{6}
275 \renewcommand{\topfraction}{1}
276 \renewcommand{\textfraction}{0}
277 \setlength{\floatsep}{10pt}
280 <xsl:apply-templates select="data/section[@class='backmatter']" />
290 <xsl:template match="/gamebook/section[@id='toc']" />
292 <xsl:template match="section" />
294 <!-- ::::::::::: second-level frontmatter sections :::::::::::::: -->
296 <xsl:template match="/gamebook/section/data/section[@class='frontmatter']">
298 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
299 <xsl:value-of select="$newparagraph" />
301 <xsl:text>{\huge \hypertarget{</xsl:text>
302 <xsl:value-of select="@id" />
303 <xsl:text>}{</xsl:text>
304 <xsl:value-of select="meta/title" />
305 <xsl:text>}}</xsl:text>
306 <xsl:value-of select="$newline" />
307 <xsl:text>\addcontentsline{toc}{section}{\protect\numberline{}{</xsl:text>
308 <xsl:value-of select="meta/title" />
309 <xsl:text>}}</xsl:text>
310 <xsl:value-of select="$newparagraph" />
312 <xsl:apply-templates />
316 <!-- :::::::::::: third-level front matter sections ::::::::::::: -->
318 <xsl:template match="/gamebook/section/data/section/data/section[@class='frontmatter']">
320 <xsl:text>{\LARGE \hypertarget{</xsl:text>
321 <xsl:value-of select="@id" />
322 <xsl:text>}{</xsl:text>
323 <xsl:value-of select="meta/title" />
324 <xsl:text>}}</xsl:text>
325 <xsl:value-of select="$newparagraph" />
327 <xsl:apply-templates />
330 <xsl:template match="/gamebook/section/data/section/data/section[@class='frontmatter-separate']">
332 <xsl:text>\newpage</xsl:text><xsl:value-of select="$newline" />
333 <xsl:text>{\LARGE \hypertarget{</xsl:text>
334 <xsl:value-of select="@id" />
335 <xsl:text>}{</xsl:text>
336 <xsl:value-of select="meta/title" />
337 <xsl:text>}}</xsl:text>
338 <xsl:value-of select="$newline" />
339 <xsl:text>\addcontentsline{toc}{subsection}{\protect\numberline{}{</xsl:text>
340 <xsl:value-of select="meta/title" />
341 <xsl:text>}}</xsl:text>
342 <xsl:value-of select="$newparagraph" />
344 <xsl:apply-templates />
347 <!-- :::::::::::: fourth-level front matter sections :::::::::::: -->
349 <xsl:template match="/gamebook/section/data/section/data/section/data/section[@class='frontmatter']">
350 <xsl:text>{\Large \hypertarget{</xsl:text>
351 <xsl:value-of select="@id" />
352 <xsl:text>}{</xsl:text>
353 <xsl:value-of select="meta/title" />
354 <xsl:text>}}</xsl:text>
355 <xsl:value-of select="$newparagraph" />
357 <xsl:apply-templates />
360 <!-- ::::::::::::: fifth-level front matter sections :::::::::::: -->
362 <xsl:template match="/gamebook/section/data/section/data/section/data/section/data/section[@class='frontmatter']">
363 <xsl:text>{\large \hypertarget{</xsl:text>
364 <xsl:value-of select="@id" />
365 <xsl:text>}{</xsl:text>
366 <xsl:value-of select="meta/title" />
367 <xsl:text>}}</xsl:text>
368 <xsl:value-of select="$newparagraph" />
370 <xsl:apply-templates />
373 <!-- ::::::::::: second-level main matter sections :::::::::::::: -->
375 <xsl:template match="/gamebook/section/data/section[@class='mainmatter']">
376 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
377 <xsl:value-of select="$newparagraph" />
379 <xsl:text>{\huge \hypertarget{</xsl:text>
380 <xsl:value-of select="@id" />
381 <xsl:text>}{</xsl:text>
382 <xsl:value-of select="meta/title" />
383 <xsl:text>}}</xsl:text>
384 <xsl:value-of select="$newline" />
385 <xsl:text>\addcontentsline{toc}{section}{\protect\numberline{}{</xsl:text>
386 <xsl:value-of select="meta/title" />
387 <xsl:text>}}</xsl:text>
388 <xsl:value-of select="$newparagraph" />
390 <xsl:apply-templates />
394 <!-- :::::::::::: third-level main matter sections ::::::::::::: -->
396 <xsl:template match="/gamebook/section/data/section/data/section[@class='mainmatter'] | /gamebook/section/data/section/data/section[@class='mainmatter-separate']">
398 <xsl:text>\newpage</xsl:text><xsl:value-of select="$newline" />
399 <xsl:text>{\LARGE \hypertarget{</xsl:text>
400 <xsl:value-of select="@id" />
401 <xsl:text>}{</xsl:text>
402 <xsl:value-of select="meta/title" />
403 <xsl:text>}}</xsl:text>
404 <xsl:value-of select="$newline" />
405 <xsl:text>\addcontentsline{toc}{subsection}{\protect\numberline{}{</xsl:text>
406 <xsl:value-of select="meta/title" />
407 <xsl:text>}}</xsl:text>
408 <xsl:value-of select="$newparagraph" />
410 <xsl:apply-templates />
413 <!-- :::::::::::: fourth-level main matter sections :::::::::::: -->
415 <xsl:template match="/gamebook/section/data/section/data/section/data/section[@class='mainmatter'] | /gamebook/section/data/section/data/section/data/section[@class='mainmatter-separate']">
416 <xsl:text>{\Large \hypertarget{</xsl:text>
417 <xsl:value-of select="@id" />
418 <xsl:text>}{</xsl:text>
419 <xsl:value-of select="meta/title" />
420 <xsl:text>}}</xsl:text>
421 <xsl:value-of select="$newparagraph" />
423 <xsl:apply-templates />
426 <!-- ::::::::::::: fifth-level main matter sections :::::::::::: -->
428 <xsl:template match="/gamebook/section/data/section/data/section/data/section/data/section[@class='mainmatter']">
429 <xsl:text>{\large \hypertarget{</xsl:text>
430 <xsl:value-of select="@id" />
431 <xsl:text>}{</xsl:text>
432 <xsl:value-of select="meta/title" />
433 <xsl:text>}}</xsl:text>
434 <xsl:value-of select="$newparagraph" />
436 <xsl:apply-templates />
439 <!-- :::::::::::: third-level glossary sections ::::::::::::: -->
440 <!-- Glossary sections should be contained in a second level section. -->
442 <xsl:template match="/gamebook/section/data/section/data/section[@class='glossary'] | /gamebook/section/data/section/data/section[@class='glossary-separate']">
444 <xsl:text>\newpage</xsl:text><xsl:value-of select="$newline" />
445 <xsl:text>{\LARGE \hypertarget{</xsl:text>
446 <xsl:value-of select="@id" />
447 <xsl:text>}{</xsl:text>
448 <xsl:value-of select="meta/title" />
449 <xsl:text>}}</xsl:text>
450 <xsl:value-of select="$newparagraph" />
452 <xsl:apply-templates />
455 <!-- :::::::::::::::::: numbered sections ::::::::::::::::::::::: -->
457 <xsl:template match="/gamebook/section/data/section[@class='numbered']">
458 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text> <xsl:value-of select="$newparagraph" />
460 <xsl:if test="position() = 1">
461 <xsl:text>\newcommand{\aonmarks}{
462 \ifthenelse{\equal{\leftmark}{\rightmark}}
464 {\rightmark{} - \leftmark}}
465 \ifthenelse{\boolean{@twoside}}%
467 \fancyhead[RO,LE]{\iffloatpage{}{\large{\bfseries \aonmarks}}}
468 \fancyhead[LO,RE]{\iffloatpage{}{\thepage}}}
470 %\fancyhead[R]{\iffloatpage{}{\large{\bfseries \aonmarks}}}
471 %\fancyhead[L]{\iffloatpage{}{\thepage}}}</xsl:text> <xsl:value-of select="$newparagraph" />
474 <xsl:if test="not( self::node()[@id='numbered'] )">
475 <xsl:text>{\huge \hypertarget{</xsl:text>
476 <xsl:value-of select="@id" />
477 <xsl:text>}{</xsl:text>
478 <xsl:value-of select="meta/title" />
479 <xsl:text>}}</xsl:text>
480 <xsl:value-of select="$newline" />
482 <xsl:text>\addcontentsline{toc}{section}{\protect\numberline{}{</xsl:text>
483 <xsl:value-of select="meta/title" />
484 <xsl:text>}}</xsl:text>
485 <xsl:value-of select="$newparagraph" />
487 <xsl:apply-templates />
489 <xsl:value-of select="$newparagraph" />
490 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
493 <xsl:template match="/gamebook/section/data/section[@class='numbered']/data/section[@class='numbered']">
494 <xsl:variable name="section-title" select="meta/title[1]" />
496 <xsl:value-of select="$newline" />
497 <xsl:text>\vspace{\parskip} \hypertarget{</xsl:text>
498 <xsl:value-of select="@id" />
499 <xsl:text>}{} \hspace*{\fill} \markboth{</xsl:text>
500 <xsl:value-of select="$section-title" />
501 <xsl:text>}{</xsl:text>
502 <xsl:value-of select="$section-title" />
503 <xsl:text>} {\Large \bfseries </xsl:text>
504 <xsl:value-of select="$section-title" />
505 <xsl:text>} \hspace*{\fill}\\*[\parskip]</xsl:text>
506 <xsl:value-of select="$newline" />
508 <xsl:for-each select="data/illustration[@class='float' and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )]">
509 <xsl:text>\hspace*{\fill} \mbox{\itshape \hyperlink{ill</xsl:text>
510 <xsl:number count="illustration[@class='float' and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )]" from="/" level="any" format="1" />
511 <xsl:text>}{Illustration </xsl:text>
512 <xsl:number count="illustration[@class='float' and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )]" from="/" level="any" format="I" />
513 <xsl:text>}}\hspace*{\fill}\\*[\parskip]</xsl:text>
516 <xsl:apply-templates />
520 <!-- :::::::::::: second-level backmatter sections :::::::::::::: -->
522 <xsl:template match="/gamebook/section/data/section[@class='backmatter']">
524 <xsl:text>\clearpage{}</xsl:text>
525 <xsl:value-of select="$newparagraph" />
527 <xsl:text>{\huge \hypertarget{</xsl:text>
528 <xsl:value-of select="@id" />
529 <xsl:text>}{</xsl:text>
530 <xsl:value-of select="meta/title" />
531 <xsl:text>}}</xsl:text>
532 <xsl:value-of select="$newline" />
533 <xsl:text>\addcontentsline{toc}{section}{\protect\numberline{}{</xsl:text>
534 <xsl:value-of select="meta/title" />
535 <xsl:text>}}</xsl:text>
536 <xsl:value-of select="$newparagraph" />
538 <xsl:apply-templates />
541 <!-- ::::::::::::: third-level back matter sections ::::::::::::: -->
543 <xsl:template match="/gamebook/section/data/section/data/section[@class='backmatter']">
544 <xsl:text>{\LARGE \hypertarget{</xsl:text>
545 <xsl:value-of select="@id" />
546 <xsl:text>}{</xsl:text>
547 <xsl:value-of select="meta/title" />
548 <xsl:text>}}</xsl:text>
549 <xsl:value-of select="$newparagraph" />
551 <xsl:apply-templates />
554 <!-- ::::::::::::: fourth-level back matter sections ::::::::::::: -->
556 <xsl:template match="/gamebook/section/data/section/data/section/data/section[@class='backmatter']">
557 <xsl:text>{\Large \hypertarget{</xsl:text>
558 <xsl:value-of select="@id" />
559 <xsl:text>}{</xsl:text>
560 <xsl:value-of select="meta/title" />
561 <xsl:text>}}</xsl:text>
562 <xsl:value-of select="$newparagraph" />
564 <xsl:apply-templates />
567 <!-- :::::::::::::::::: dedication template ::::::::::::::::::::: -->
569 <xsl:template match="id( 'dedicate' )">
571 <xsl:text>\vspace*{\stretch{1}}</xsl:text>
572 <xsl:value-of select="$newparagraph" />
573 <xsl:text>\begin{center}</xsl:text>
574 <xsl:value-of select="$newline" />
575 <xsl:text>\thispagestyle{empty}</xsl:text>
576 <xsl:value-of select="$newline" />
577 <xsl:text>\itshape </xsl:text>
578 <xsl:apply-templates select="data/p" />
579 <xsl:value-of select="$newline" />
580 <xsl:text>\end{center}</xsl:text>
581 <xsl:value-of select="$newparagraph" />
582 <xsl:text>\vspace*{\stretch{3}}</xsl:text>
583 <xsl:value-of select="$newline" />
585 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
586 <xsl:value-of select="$newline" />
587 <xsl:text>\tableofcontents</xsl:text>
588 <xsl:value-of select="$newline" />
589 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
590 <xsl:value-of select="$newline" />
592 <xsl:text>\setcounter{page}{1}</xsl:text><xsl:value-of select="$newline" />
593 <xsl:text>\pagenumbering{arabic}</xsl:text><xsl:value-of select="$newline" />
597 <!-- ::::::::::::::::::::: map template ::::::::::::::::::::::::: -->
599 <xsl:template match="id( 'map' )">
600 <xsl:variable name="map-title" select="meta/title" />
602 <xsl:text>\clearpage{\pagestyle{empty}\cleardoublepage}</xsl:text>
603 <xsl:value-of select="$newparagraph" />
605 <xsl:for-each select="data/illustration[contains( $use-illustrators, concat( ':', meta/creator, ':' ) ) ]">
606 <xsl:variable name="illustration-src" select="instance[@class='pdf']/@src" />
608 <xsl:text>\hypertarget{map}{~}</xsl:text>
609 <xsl:value-of select="$newline" />
610 <xsl:text>\addcontentsline{toc}{section}{\protect\numberline{}{</xsl:text>
611 <xsl:value-of select="$map-title" />
612 <xsl:text>}}</xsl:text>
613 <xsl:value-of select="$newparagraph" />
615 <!-- <xsl:value-of select="$newline" />
616 <xsl:text>\begin{figure}[!h]</xsl:text>
617 <xsl:value-of select="$newline" />
618 <xsl:text>\centering</xsl:text>
619 <xsl:value-of select="$newline" />
620 <xsl:text>\thispagestyle{empty}</xsl:text>
621 <xsl:value-of select="$newline" />
622 <xsl:text>\rotatebox{90}{\includegraphics[width=550pt,keepaspectratio]{</xsl:text><xsl:value-of select="$illustration-src" /><xsl:text>}}%</xsl:text>
623 <xsl:value-of select="$newline" />
624 <xsl:text>\end{figure}</xsl:text> -->
626 <xsl:text>\thispagestyle{empty}</xsl:text><xsl:value-of select="$newline" />
627 <xsl:text>\newlength{\saveunitlength}</xsl:text><xsl:value-of select="$newline" />
628 <xsl:text>\setlength{\saveunitlength}{\unitlength}</xsl:text><xsl:value-of select="$newline" />
629 <xsl:text>\setlength{\unitlength}{1mm}</xsl:text><xsl:value-of select="$newline" />
630 <xsl:text>\ifthenelse{\boolean{@twoside}}%</xsl:text><xsl:value-of select="$newline" />
631 <xsl:text> {%% Two-sided %%</xsl:text><xsl:value-of select="$newline" />
632 <xsl:text> \begin{picture}(10,10)</xsl:text><xsl:value-of select="$newline" />
633 <xsl:text> \put(-23,-188){\includegraphics[angle=90,origin=c,width=20cm,height=28cm,keepaspectratio]{map.pdf}}</xsl:text><xsl:value-of select="$newline" />
634 <xsl:text> \end{picture}}%</xsl:text><xsl:value-of select="$newline" />
635 <xsl:text> {%% One-sided %%</xsl:text><xsl:value-of select="$newline" />
636 <xsl:text> \begin{picture}(10,10)</xsl:text><xsl:value-of select="$newline" />
637 <xsl:text> \put(-29,-188){\includegraphics[angle=90,origin=c,width=20cm,height=28cm,keepaspectratio]{map.pdf}}</xsl:text><xsl:value-of select="$newline" />
638 <xsl:text> \end{picture}}</xsl:text><xsl:value-of select="$newline" />
639 <xsl:text>\setlength{\unitlength}{\saveunitlength}</xsl:text><xsl:value-of select="$newline" />
644 <!-- ==================== block elements ======================== -->
646 <xsl:template match="p">
647 <xsl:apply-templates />
648 <xsl:value-of select="$newparagraph" />
651 <xsl:template match="ul">
652 <xsl:text>\begin{aonitemize}</xsl:text><xsl:value-of select="$newline" />
653 <xsl:apply-templates />
654 <xsl:text>\end{aonitemize}</xsl:text>
655 <xsl:value-of select="$newparagraph" />
658 <xsl:template match="ul[@class='unbulleted']">
659 <xsl:text>\begin{aonitemize}</xsl:text><xsl:value-of select="$newline" />
660 <xsl:apply-templates />
661 <xsl:text>\end{aonitemize}</xsl:text>
662 <xsl:value-of select="$newparagraph" />
665 <xsl:template match="ol">
666 <xsl:text>\begin{enumerate}</xsl:text><xsl:value-of select="$newline" />
667 <xsl:apply-templates />
668 <xsl:text>\end{enumerate}</xsl:text>
669 <xsl:value-of select="$newparagraph" />
672 <xsl:template match="dl">
673 <xsl:apply-templates />
676 <xsl:template match="table">
677 <xsl:text>\begin{tabular}{*{</xsl:text>
678 <xsl:for-each select="tr[1]">
679 <xsl:for-each select="th[1]">
680 <xsl:number count="th" />
683 <xsl:text>}{l}}</xsl:text>
684 <xsl:value-of select="$newline" />
685 <xsl:apply-templates />
686 <xsl:text>\end{tabular}</xsl:text>
687 <xsl:value-of select="$newparagraph" />
690 <xsl:template match="tr">
691 <xsl:apply-templates />
692 <xsl:text> \\</xsl:text>
695 <xsl:template match="th">
696 <xsl:text>\multicolumn{1}{</xsl:text>
698 <xsl:when test="@align='left'"><xsl:text>l}{\bfseries </xsl:text></xsl:when>
699 <xsl:when test="@align='right'"><xsl:text>r}{\bfseries </xsl:text></xsl:when>
700 <xsl:when test="@align='center'"><xsl:text>c}{\bfseries </xsl:text></xsl:when>
701 <xsl:otherwise><xsl:text>l}{\bfseries </xsl:text></xsl:otherwise>
703 <xsl:apply-templates />
704 <xsl:text>} </xsl:text>
705 <xsl:if test="position != last()"><xsl:text>&</xsl:text></xsl:if>
708 <xsl:template match="td">
709 <xsl:text>\multicolumn{1}{</xsl:text>
711 <xsl:when test="@align='left'"><xsl:text>l}{</xsl:text></xsl:when>
712 <xsl:when test="@align='right'"><xsl:text>r}{</xsl:text></xsl:when>
713 <xsl:when test="@align='center'"><xsl:text>c}{</xsl:text></xsl:when>
714 <xsl:otherwise><xsl:text>l}{</xsl:text></xsl:otherwise>
716 <xsl:apply-templates />
717 <xsl:text>} </xsl:text>
718 <xsl:if test="position != last()"><xsl:text>&</xsl:text></xsl:if>
721 <xsl:template match="combat">
722 <xsl:text>\begin{aoncombat}</xsl:text>
723 <xsl:apply-templates select="enemy" />
725 <xsl:when test="enemy-attribute[@class='combatskill']">
726 <xsl:text>: {\small COMBAT~SKILL}~</xsl:text>
727 <xsl:value-of select="enemy-attribute[@class='combatskill']" />
729 <xsl:when test="enemy-attribute[@class='closecombatskill']">
730 <xsl:text>: {\small CLOSE~COMBAT~SKILL}~</xsl:text>
731 <xsl:value-of select="enemy-attribute[@class='closecombatskill']" />
734 <xsl:text> ~~{\small ENDURANCE}~</xsl:text>
736 <xsl:when test="enemy-attribute[@class='target']">
737 <xsl:text>~({\small TARGET}~points)~</xsl:text>
738 <xsl:value-of select="enemy-attribute[@class='target']" />
740 <xsl:when test="enemy-attribute[@class='resistance']">
741 <xsl:text>~({\small RESISTANCE}~points)~</xsl:text>
742 <xsl:value-of select="enemy-attribute[@class='resistance']" />
745 <xsl:value-of select="enemy-attribute[@class='endurance']" />
748 <xsl:text>\end{aoncombat}</xsl:text>
749 <xsl:value-of select="$newparagraph" />
752 <xsl:template match="choice">
753 <xsl:variable name="link">
754 <xsl:value-of select="@idref" />
757 <xsl:text>\begin{aonchoice}</xsl:text>
758 <xsl:for-each select="* | text()">
760 <xsl:when test="self::link-text">
761 <xsl:text>\hyperlink{</xsl:text>
762 <xsl:value-of select="$link" />
763 <xsl:text>}{\bfseries </xsl:text>
764 <xsl:apply-templates />
765 <xsl:text>}</xsl:text>
768 <xsl:apply-templates select="." />
772 <xsl:text>\end{aonchoice}</xsl:text>
773 <xsl:value-of select="$newparagraph" />
776 <xsl:template match="signpost">
777 <xsl:text>\begin{center}</xsl:text><xsl:apply-templates /><xsl:text>\end{center}</xsl:text>
778 <xsl:value-of select="$newparagraph" />
781 <xsl:template match="blockquote">
782 <xsl:text>\begin{quote}</xsl:text><xsl:apply-templates /><xsl:text>\end{quote}</xsl:text>
783 <xsl:value-of select="$newparagraph" />
786 <xsl:template match="illustration">
788 <xsl:when test="instance[@class='pdf'] and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )">
789 <xsl:text>\begin{figure}[</xsl:text>
791 <xsl:when test="@class='inline'">!ht</xsl:when>
792 <xsl:when test="@class='float'">p</xsl:when>
793 <xsl:when test="@class='accent'">bt</xsl:when>
794 <xsl:otherwise><xsl:text>invalid class</xsl:text></xsl:otherwise>
796 <xsl:text>]</xsl:text>
797 <xsl:value-of select="$newline" />
798 <xsl:text>\centering</xsl:text>
799 <xsl:value-of select="$newline" />
800 <xsl:text>\includegraphics</xsl:text>
801 <xsl:if test="@class='float'">
802 <!--<xsl:text>[width=\textwidth,keepaspectratio]</xsl:text>-->
803 <xsl:text>[width=\textwidth,height=570pt,keepaspectratio]</xsl:text>
805 <xsl:text>{</xsl:text>
806 <xsl:value-of select="instance[@class='pdf']/@src" />
807 <xsl:text>} %</xsl:text>
808 <xsl:if test="@class='float'">
809 <xsl:value-of select="$newline" />
810 <xsl:text>\vspace*{\fill}</xsl:text>
811 <xsl:value-of select="$newline" />
812 <xsl:text>\\ \mbox{ \hypertarget{ill</xsl:text>
813 <xsl:number count="illustration[@class='float' and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )]" from="/" level="any" format="1" />
814 <xsl:text>}{Illustration </xsl:text>
815 <xsl:number count="illustration[@class='float' and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )]" from="/" level="any" format="I" />
816 <xsl:text>}}\\[1em]{\itshape </xsl:text>
817 <xsl:apply-templates select="meta/description" />
818 <xsl:text>}</xsl:text>
820 <xsl:value-of select="$newline" />
821 <xsl:text>\end{figure}</xsl:text>
822 <xsl:value-of select="$newline" />
825 <xsl:when test="instance[@class='tex'] and contains( $use-illustrators, concat( ':', meta/creator, ':' ) )">
826 <xsl:value-of select="$newline" />
827 <xsl:text>\begin{figure}[!h]</xsl:text>
828 <xsl:value-of select="$newline" />
829 <xsl:text>\centering</xsl:text>
830 <xsl:value-of select="$newline" />
831 <xsl:text>\input{</xsl:text><xsl:value-of select="instance[@class='tex']/@src" /><xsl:text>}</xsl:text>
832 <xsl:value-of select="$newline" />
833 <xsl:text>\end{figure}</xsl:text>
834 <xsl:value-of select="$newline" />
836 <xsl:text>\clearpage{}</xsl:text>
837 <xsl:value-of select="$newparagraph" />
845 <xsl:template match="instance" />
847 <xsl:template match="footnotes" />
849 <xsl:template match="footnote">
850 <xsl:apply-templates />
853 <xsl:template match="hr">
854 <xsl:text>\rule{\textwidth}{0.4pt}</xsl:text>
855 <xsl:value-of select="$newline" />
858 <xsl:template match="dt">
859 <xsl:text>{\bfseries </xsl:text><xsl:apply-templates /><xsl:text>}\\*\\*</xsl:text>
860 <xsl:value-of select="$newline" />
863 <xsl:template match="dd">
864 <xsl:apply-templates />
865 <xsl:value-of select="$newparagraph" />
868 <xsl:template match="li">
869 <xsl:text>\item </xsl:text><xsl:apply-templates />
870 <xsl:value-of select="$newline" />
873 <!-- ==================== inline elements ======================= -->
875 <xsl:template match="a">
876 <xsl:if test="@idref">
877 <xsl:text>\hyperlink{</xsl:text>
878 <xsl:value-of select="@idref" />
879 <xsl:text>}{</xsl:text>
882 <xsl:text>\hypertarget{</xsl:text>
883 <xsl:value-of select="@id" />
884 <xsl:text>}{</xsl:text>
887 <xsl:apply-templates />
889 <xsl:if test="@idref">
890 <xsl:text>}</xsl:text>
893 <xsl:text>}</xsl:text>
897 <xsl:template match="a[@class='footnote']">
898 <xsl:apply-templates />
899 <xsl:text>\footnote{</xsl:text>
900 <xsl:for-each select="id( @idref )">
901 <xsl:apply-templates />
903 <xsl:text>}</xsl:text>
906 <xsl:template match="em">
907 <xsl:text>\emph{</xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
910 <xsl:template match="strong">
911 <xsl:text>{\bfseries </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
914 <xsl:template match="cite">
915 <xsl:text>{\itshape </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
918 <xsl:template match="thought">
919 <xsl:text>{\itshape </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
922 <xsl:template match="onomatopoeia">
923 <xsl:text>{\itshape </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
926 <xsl:template match="spell">
927 <xsl:text>{\itshape </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
930 <xsl:template match="item">
931 <xsl:apply-templates />
934 <xsl:template match="foreign">
935 <xsl:text>{\itshape </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
938 <xsl:template match="quote">
939 <xsl:text>&lsquot;</xsl:text>
940 <xsl:apply-templates />
941 <xsl:text>&rsquot;</xsl:text>
944 <xsl:template match="quote//quote">
945 <xsl:text>&ldquot;</xsl:text>
946 <xsl:apply-templates />
947 <xsl:text>&rdquot;</xsl:text>
950 <xsl:template match="code">
951 <xsl:text>{\ttfamily </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
954 <xsl:template match="br">
955 <xsl:text>\\</xsl:text>
958 <xsl:template match="typ[@class='attribute']">
959 <xsl:text>{\small </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>
962 <xsl:template match="footnote//typ[@class='attribute']">
963 <xsl:text>{\scriptsize </xsl:text><xsl:apply-templates /><xsl:text>}</xsl:text>