source: freemind/trunk/fuentes/freemind/accessories/mm2latexbook.xsl @ 68

Last change on this file since 68 was 68, checked in by jrpelegrina, 4 years ago

First release to Xenial

File size: 5.8 KB
Line 
1<?xml version='1.0'?>
2
3<!--
4        : This code released under the GPL.
5        : (http://www.gnu.org/copyleft/gpl.html)
6    Document   : mm2latexarticl.xsl
7    Created on : 01 February 2004, 17:17
8    Author     : joerg feuerhake joerg.feuerhake@free-penguin.org
9    Description: transforms freemind mm format to latex scrartcl, handles crossrefs ignores the rest. feel free to customize it while leaving the ancient authors
10                    mentioned. thank you
11    Thanks to:  Tayeb.Lemlouma@inrialpes.fr for writing the LaTeX escape scripts and giving inspiration
12    ChangeLog:
13
14    See: http://freemind.sourceforge.net/
15-->
16
17<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
18<xsl:output omit-xml-declaration="yes" />
19
20<xsl:template match="map">
21
22<xsl:text>
23\documentclass[a4paper,12pt,single,pdftex]{scrbook}
24\usepackage{ngerman}
25 \usepackage{color} 
26 \usepackage{html} 
27 \usepackage{times} 
28 \usepackage{graphicx}
29 \usepackage{fancyheadings} 
30 \usepackage{hyperref} 
31 \setlength{\parindent}{0.6pt}
32 \setlength{\parskip}{0.6pt}
33 \title{</xsl:text><xsl:value-of select="node/@TEXT"/><xsl:text>}
34 </xsl:text>
35<!-- ======= Document Begining ====== -->
36<xsl:text>
37
38\begin{document}
39\maketitle
40%\newpage
41\tableofcontents
42\newpage
43
44</xsl:text>
45<!-- ======= Heading ====== -->
46<xsl:apply-templates select="Heading"/>
47<xsl:apply-templates select="node"/>
48
49
50<xsl:text>
51\end{document}
52</xsl:text>
53</xsl:template>
54
55
56<!-- ======= Body ====== -->
57
58<!-- Sections Processing -->
59<xsl:template match="node">
60<xsl:variable name="target" select="arrowlink/@DESTINATION"/>
61
62<xsl:if test="@ID != ''">
63<xsl:text>\label{</xsl:text><xsl:value-of select="@ID"/><xsl:text>}</xsl:text>
64</xsl:if>
65
66<xsl:if test="(count(ancestor::node())-2)=1">
67<xsl:text>\chapter</xsl:text>
68<xsl:text>{</xsl:text>
69<xsl:value-of select="@TEXT"/><xsl:text>}
70</xsl:text></xsl:if>
71<xsl:if test="(count(ancestor::node())-2)=2">
72<xsl:text>\section</xsl:text>
73<xsl:text>{</xsl:text>
74<xsl:value-of select="@TEXT"/><xsl:text>}
75</xsl:text></xsl:if>
76<xsl:if test="(count(ancestor::node())-2)=3">
77<xsl:text>\subsection</xsl:text>
78<xsl:text>{</xsl:text>
79<xsl:value-of select="@TEXT"/><xsl:text>}
80</xsl:text></xsl:if>
81<xsl:if test="(count(ancestor::node())-2)=4">
82<xsl:text>\subsubsection</xsl:text>
83<xsl:text>{</xsl:text>
84<xsl:value-of select="@TEXT"/><xsl:text>}
85</xsl:text></xsl:if>
86
87<xsl:if test="arrowlink/@DESTINATION != ''">
88<xsl:text>\ref{</xsl:text>
89<xsl:value-of select="arrowlink/@DESTINATION"/>
90<xsl:text>}</xsl:text>
91</xsl:if>
92
93<xsl:if test="(count(ancestor::node())-2)=5">
94<xsl:text>\paragraph</xsl:text>
95<xsl:text>{</xsl:text>
96<xsl:value-of select="@TEXT"/><xsl:text>}
97</xsl:text>
98<xsl:if test="current()/node">
99<xsl:call-template name="itemization"/>
100</xsl:if>
101</xsl:if>
102
103<!--<xsl:if test="(count(ancestor::node())-2)>4">
104
105<xsl:call-template name="itemization"/>
106
107</xsl:if>-->
108
109<xsl:if test="5 > (count(ancestor::node())-2)">
110<xsl:apply-templates select="node"/>
111</xsl:if>
112
113
114</xsl:template>
115
116<xsl:template name="itemization">
117<xsl:param name="i" select="current()/node" />
118
119<xsl:text>\begin{itemize}
120</xsl:text>
121<xsl:for-each select="$i">
122<xsl:if test="@ID != ''">
123<xsl:text>\label{</xsl:text><xsl:value-of select="@ID"/><xsl:text>}</xsl:text>
124</xsl:if>
125<xsl:text>\item </xsl:text>
126<xsl:value-of select="@TEXT"/>
127<xsl:if test="arrowlink/@DESTINATION != ''">
128<xsl:text>\ref{</xsl:text>
129<xsl:value-of select="arrowlink/@DESTINATION"/>
130<xsl:text>}</xsl:text>
131</xsl:if>
132<xsl:text>
133</xsl:text>
134</xsl:for-each >
135<xsl:if test="$i/node">
136<xsl:call-template name="itemization">
137<xsl:with-param name="i" select="$i/node"/>
138</xsl:call-template>
139</xsl:if>
140<xsl:text>\end{itemize}
141</xsl:text>
142</xsl:template>
143<!--Text Process -->
144<!--<xsl:apply-templates select="Body/node()"/>-->
145
146<!-- End of Sections Processing -->
147
148
149
150<!-- LaTeXChar: A recursif function that generates LaTeX special characters -->
151<xsl:template name="LaTeXChar">
152<xsl:param name="i"/>
153<xsl:param name="l"/>
154
155<xsl:variable name="SS">
156<xsl:value-of select="substring(normalize-space(),$l - $i + 1,1)" />
157</xsl:variable>
158
159<xsl:if test="$i > 0">
160
161<xsl:choose>
162 <xsl:when test="$SS = 'é'">
163 <xsl:text>\'{e}</xsl:text>
164 </xsl:when>
165 <xsl:when test="$SS = 'ê'">
166 <xsl:text>\^{e}</xsl:text>
167 </xsl:when>
168 <xsl:when test="$SS = 'è'">
169 <xsl:text>\`{e}</xsl:text>
170 </xsl:when>
171 <xsl:when test="$SS = 'ï'">
172 <xsl:text>\"{\i}</xsl:text>
173 </xsl:when>
174 <xsl:when test="$SS = 'î'">
175 <xsl:text>\^{i}</xsl:text>
176 </xsl:when>
177 <xsl:when test="$SS = 'à'">
178 <xsl:text>\`{a}</xsl:text>
179 </xsl:when>
180 <xsl:when test="$SS = 'á'">
181 <xsl:text>\'{a}</xsl:text>
182 </xsl:when>
183 <xsl:when test="$SS = 'â'">
184 <xsl:text>\^{a}</xsl:text>
185 </xsl:when>
186 <xsl:when test="$SS = 'ç'">
187 <xsl:text>\c{c}</xsl:text>
188 </xsl:when>
189 <xsl:when test="$SS = 'ô'">
190 <xsl:text>\^{o}</xsl:text>
191 </xsl:when>
192 <xsl:when test="$SS = 'ù'">
193 <xsl:text>\`{u}</xsl:text>
194 </xsl:when>
195 <xsl:when test="$SS = 'û'">
196 <xsl:text>\^{u}</xsl:text>
197 </xsl:when>
198 <xsl:when test="$SS = '|'">
199 <xsl:text>$|$</xsl:text>
200 </xsl:when>
201 <xsl:when test="$SS = '_'">
202 <xsl:text>\_</xsl:text>
203 </xsl:when>
204 <xsl:otherwise><xsl:value-of select="$SS"/></xsl:otherwise>
205</xsl:choose>
206
207<xsl:text></xsl:text> 
208
209<xsl:call-template name="LaTeXChar">
210<xsl:with-param name="i" select="$i - 1"/>
211<xsl:with-param name="l" select="$l"/>
212
213</xsl:call-template>
214</xsl:if>
215
216</xsl:template>
217<!-- End of LaTeXChar template -->
218
219
220
221
222
223<!-- Enumerates Process -->
224<xsl:template match="Enumerates">
225<xsl:text>
226\begin{enumerate}</xsl:text>
227<xsl:for-each select="Item">
228<xsl:text>
229\item </xsl:text>
230<xsl:value-of select="."/>
231</xsl:for-each>
232<xsl:text>
233\end{enumerate}
234</xsl:text>
235</xsl:template> <!--Enumerates Process -->
236
237<!-- Items Process -->
238<xsl:template match="Items">
239<xsl:text>
240\begin{itemize}</xsl:text>
241<xsl:for-each select="node">
242<xsl:text>
243\item </xsl:text>
244<xsl:value-of select="@TEXT"/>
245</xsl:for-each>
246<xsl:text>
247\end{itemize}
248</xsl:text>
249</xsl:template> <!--Items Process -->
250
251</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.