Initial revision
[xmldoc.git] / latex.xsl
1 <?xml version="1.0"?>
2 <!DOCTYPE xsl:stylesheet SYSTEM "xsl.dtd">
3 <xsl:stylesheet version="1.0"
4                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5                 xmlns="http://www.w3.org/TR/xhtml1/strict">
6
7 <xsl:strip-space elements="doc chapter section"/>
8 <xsl:output method="text" indent="yes" encoding="iso-8859-1"/>
9
10 <xsl:template match="article">
11 \documentclass[a4paper]{article}
12 \usepackage{graphics}
13 \usepackage{latexsym}
14 \usepackage{marvosym}
15 \begin{document}
16    <xsl:apply-templates/>
17 \end{document}
18 </xsl:template>
19
20 <xsl:template match="book">
21 \documentclass[a4paper]{book}
22 \usepackage{graphics}
23 \usepackage{latexsym}
24 \usepackage{marvosym}
25 \begin{document}
26    <xsl:apply-templates/>
27 \end{document}
28 </xsl:template>
29
30 <xsl:template match="report">
31 \documentclass[a4paper]{report}
32 \usepackage{graphics}
33 \usepackage{latexsym}
34 \usepackage{marvosym}
35 \begin{document}
36    <xsl:apply-templates/>
37 \end{document}
38 </xsl:template>
39
40 <xsl:template match="titlepage">
41    \begin{titlepage}
42    <xsl:apply-templates/>
43    \end{titlepage}
44 </xsl:template>
45
46 <xsl:template match="title">
47    \begin{center}
48    \sffamily\bfseries\LARGE{<xsl:apply-templates/>}
49    \end{center}
50 </xsl:template>
51
52 <xsl:template match="subtitle">
53    \begin{center}
54    \sffamily\bfseries\Large{<xsl:apply-templates/>}
55    \end{center}
56 </xsl:template>
57
58 <xsl:template match="author">
59    \begin{center}
60    \sffamily{<xsl:apply-templates/>}
61    \end{center}
62 </xsl:template>
63
64 <xsl:template match="date">
65    \begin{center}
66    \sffamily{<xsl:apply-templates/>}
67    \end{center}
68 </xsl:template>
69
70 <xsl:template match="docinfo">
71    \begin{tabular}{|l|l|}
72    \hline
73    \multicolumn{2}{|c|}{\textbf{Document Information}} \\
74    \hline
75    <xsl:apply-templates/>
76    \end{tabular}
77 </xsl:template>
78
79 <xsl:template match="infoitem">
80      <xsl:value-of select="@label"/> &amp;
81      <xsl:apply-templates/> \\
82      \hline
83 </xsl:template>
84
85 <xsl:template match="abstract">
86    
87    \vspace{0.5cm}
88    \begin{bfseries}Abstract:\end{bfseries}
89
90    \begin{quote}
91    <xsl:apply-templates/>
92    \end{quote}
93 </xsl:template>
94
95 <xsl:template match="toc">
96 \tableofcontents
97 \newpage
98 </xsl:template>
99
100 <xsl:template match="chapter/heading">
101    \chapter{<xsl:apply-templates/>}
102 </xsl:template>
103
104 <xsl:template match="section/heading">
105    \section{<xsl:apply-templates/>}
106 </xsl:template>
107
108 <xsl:template match="subsection/heading">
109    \subsection{<xsl:apply-templates/>}
110 </xsl:template>
111
112 <xsl:template match="subsubsection/heading">
113    \subsubsection{<xsl:apply-templates/>}
114 </xsl:template>
115
116 <xsl:template match="paragraph/heading">
117    \paragraph{<xsl:apply-templates/>}
118 </xsl:template>
119
120 <xsl:template match="subparagraph/heading">
121    \subparagraph{<xsl:apply-templates/>}
122 </xsl:template>
123
124 <xsl:template match="para">
125    
126      <xsl:apply-templates/>
127 </xsl:template>
128
129 <xsl:template match="quote">
130 \begin{quote} 
131      <xsl:apply-templates/>
132 \end{quote}
133 </xsl:template>
134
135 <xsl:template match="verbatim">
136 \begin{verbatim} 
137      <xsl:apply-templates/>
138 \end{verbatim}
139 </xsl:template>
140
141 <xsl:template match="itemize">
142 \begin{itemize}
143    <xsl:apply-templates/>
144 \end{itemize}
145 </xsl:template>
146
147 <xsl:template match="enumerate">
148 \begin{enumerate}
149    <xsl:apply-templates/>
150 \end{enumerate}
151 </xsl:template>
152
153 <xsl:template match="item">
154 \item <xsl:apply-templates/>
155 </xsl:template>
156
157 <xsl:template match="footnote">\footnote{<xsl:apply-templates/>}</xsl:template>
158
159 <xsl:template match="emph">\begin{itshape}<xsl:apply-templates/>\end{itshape}</xsl:template>
160
161 <xsl:template match="strong">\begin{bfseries}<xsl:apply-templates/>\end{bfseries}</xsl:template>
162
163 <xsl:template match="code">\begin{ttfamily}<xsl:apply-templates/>\end{ttfamily}</xsl:template>
164
165 <xsl:template match="remark">\begin{slshape}<xsl:apply-templates/>\end{slshape}</xsl:template>
166
167 <xsl:template match="sub">$_{<xsl:apply-templates/>}$</xsl:template>
168 <xsl:template match="sup">$^{<xsl:apply-templates/>}$</xsl:template>
169
170 <xsl:template match="table">
171 \begin{tabular}{<xsl:value-of select="@cpos"/>c}
172 <xsl:apply-templates/>
173 \end{tabular}
174 </xsl:template>
175
176 <xsl:template match="thead">
177 <xsl:apply-templates/>\\
178 </xsl:template>
179
180 <xsl:template match="thead/col">
181 \begin{bfseries}<xsl:apply-templates/>\end{bfseries}&amp;
182 </xsl:template>
183
184 <xsl:template match="row">
185 <xsl:apply-templates/>\\
186 </xsl:template>
187
188 <xsl:template match="row/col">
189 <xsl:apply-templates/>&amp;
190 </xsl:template>
191
192 <xsl:template match="picture">
193 \scalebox{<xsl:value-of select="@scale"/>}{\includegraphics{<xsl:value-of select="@eps"/>}}
194 </xsl:template>
195
196 <xsl:template match="label">\label{<xsl:value-of select="@name"/>}</xsl:template>
197
198 <xsl:template match="ref"><xsl:apply-templates/>\ref{<xsl:value-of select="@to"/>}</xsl:template>
199 <xsl:template match="page"><xsl:apply-templates/>\pageref{<xsl:value-of select="@to"/>}</xsl:template>
200 <xsl:template match="reference">
201 <xsl:apply-templates/>[<xsl:value-of select="@href"/>]
202 </xsl:template>
203
204 <xsl:template match="include">
205    <xsl:apply-templates select="document(@href)"/>
206 </xsl:template>
207
208 <xsl:template match="LaTeX">
209  <xsl:value-of select="@command"/>
210 </xsl:template>
211 </xsl:stylesheet>
212