<?xml version='1.0'?>
<!--

    License     : This code is released under the GPL.  [http://www.gnu.org/copyleft/gpl.html]
    Document    : fm2beamer.xsl
    Created on  : 01 February 2004
    Updated     : 17 November 2006
    Author      : Joerg Feuerhake    [joerg.feuerhake@free-penguin.org] (original stylesheet)
                : Robert Ladstaetter [robert@ladstaetter.info] (small adaptions to fit into latex beamer scheme)
		: Florian Thiel [thiel@inf.fu-berlin.de] (some tidying
		: of produced latex sources, new header)
    Thanks to   : Tayeb Lemlouma     [tayeb.lemlouma@inrialpes.fr] 
                  for writing the LaTeX escape scripts and giving inspiration
    Description : Transforms freemind mm format to latex beamer presentations.
    ChangeLog   : 

    See: http://freemind.sourceforge.net/
-->

<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>  
<xsl:output omit-xml-declaration="yes" />

<xsl:template match="map">

<!-- ==== HEADER ==== -->
<xsl:text disable-output-escaping="yes">
\documentclass{beamer}
\mode&lt;presentation&gt;
{
  \usetheme{Singapore}
  % oder ...
  \usecolortheme{lily}
  \setbeamercovered{transparent}
  % oder auch nicht
}

\usepackage[german]{babel}
% oder was auch immer

\usepackage[latin1]{inputenc}
% oder was auch immer

\usepackage{listings}
\usepackage{graphicx}

\usepackage{times}
\usepackage[T1]{fontenc}
% Oder was auch immer. Zu beachten ist, das Font und Encoding passen
% müssen. Falls T1 nicht funktioniert, kann man versuchen, die Zeile
% mit fontenc zu löschen.

\usepackage{url}

\title%[Kurzversion des Titels] % (optional, nur bei langen Titeln nötig)
{TITLE}

%\subtitle
%{} % (optional)

\author{AUTHOR}

\date%[Kurzversion des Anlass] % (optional)
{DATE}

\subject{SUBTITLE}
% Dies wird lediglich in den PDF Informationskatalog einfügt. Kann gut
% weggelassen werden.


% Falls eine Logodatei namens "university-logo-filename.xxx" vorhanden
% ist, wobei xxx ein von latex bzw. pdflatex lesbares Graphikformat
% ist, so kann man wie folgt ein Logo einfügen:

%\pgfdeclareimage[height=1cm]{logo}{logo}
%\logo{\pgfuseimage{logo}}

% Folgendes sollte gelöscht werden, wenn man nicht am Anfang jedes
% Unterabschnitts die Gliederung nochmal sehen möchte.
\AtBeginSection[]
{
  \begin{frame}&lt;beamer&gt;
    \frametitle{Gliederung}
    \tableofcontents[current,currentsection]
  \end{frame}
}

% Falls Aufzählungen immer schrittweise gezeigt werden sollen, kann
% folgendes Kommando benutzt werden:

\begin{document}

\begin{frame}
  \titlepage
\end{frame}

\begin{frame}
  \frametitle{Gliederung}
  \tableofcontents
\end{frame}
</xsl:text>

<!-- <xsl:apply-templates select="node"/> -->
<xsl:apply-templates/>

<xsl:text>
\end{document}
</xsl:text>

</xsl:template>


<!-- ======= Body ====== -->

<!-- Sections Processing -->
<xsl:template match="node">
<!--
		<xsl:variable name="target" select="arrowlink/@DESTINATION"/>
	-->
	<!-- xsl:if test="@ID != ''">
	<xsl:text>\label{</xsl:text><xsl:value-of select="@ID"/><xsl:text>}</xsl:text>
	</xsl:if -->
<!--
		<xsl:message>
			JO
			<xsl:value-of select="(count(ancestor::node())-2)"/>
			 called!
		</xsl:message>
	<xsl:message>
JODEL:			<xsl:value-of select="@TEXT"/>
	</xsl:message>
-->
	<xsl:if test="(count(ancestor::node())-2)=0">
		<xsl:apply-templates/>
	</xsl:if>

		
	<xsl:if test="(count(ancestor::node())-2)=1">
		<xsl:text>\section{</xsl:text>
		<xsl:value-of select="@TEXT"/>
			<xsl:text>}</xsl:text>
		<xsl:apply-templates/>
	</xsl:if>
	
	<xsl:if test="(count(ancestor::node())-2)=2">
		
		<xsl:text>\subsection{</xsl:text>
		<xsl:value-of select="@TEXT"/>
		<xsl:text>}</xsl:text>
		<xsl:apply-templates/>
	</xsl:if>
	
	<xsl:if test="(count(ancestor::node())-2)=3">
		<xsl:text>\frame{</xsl:text>
		<xsl:text>\frametitle{</xsl:text>
		<xsl:value-of select="@TEXT"/>
		<xsl:text>}
		</xsl:text>
		<xsl:if test="current()/node">
			<xsl:call-template name="itemization"></xsl:call-template>
		</xsl:if>
		<xsl:text>
			} 
		</xsl:text>
	</xsl:if>
	
	<xsl:if test="(count(ancestor::node())-2)=4">
		<xsl:value-of select="@TEXT"/>
		<!--
		<xsl:if test="current()/node">
		<xsl:text>\begin{itemize}</xsl:text>
		<xsl:call-template name="itemization"></xsl:call-template>
		<xsl:text>\end{itemize}</xsl:text>
		</xsl:if>
		-->
		
	</xsl:if>
	
	<xsl:if test="(count(ancestor::node())-2)>4">
		<xsl:text>called!</xsl:text>
		<xsl:call-template name="itemization"/>
	</xsl:if>
	
<!--	<xsl:if test="5 > (count(ancestor::node())-2)"> -->
<!--		<xsl:apply-templates select="node"/> -->
<!--		<xsl:text></xsl:text>
	</xsl:if>
	-->
<!--
	<xsl:if test="arrowlink/@DESTINATION != ''">
		<xsl:text>\ref{</xsl:text>
		<xsl:value-of select="arrowlink/@DESTINATION"/>
		<xsl:text>}</xsl:text>
	</xsl:if>
	-->
		
</xsl:template>

<xsl:template name="itemization">
	<xsl:param name="i" select="current()/node"/>

	<xsl:text>\begin{itemize}</xsl:text>
	<xsl:for-each select="$i">

		<!--		
		<xsl:if test="@ID != ''">
			<xsl:text>\label{</xsl:text>
			<xsl:value-of select="@ID"/>
			<xsl:text>}</xsl:text>
		</xsl:if>
		-->
		
		<xsl:text>
			\item </xsl:text>
		<xsl:value-of select="@TEXT"/>
		<!--
		<xsl:if test="arrowlink/@DESTINATION != ''">
			<xsl:text>\ref{</xsl:text>
			<xsl:value-of select="arrowlink/@DESTINATION"/>
			<xsl:text>}</xsl:text>
		</xsl:if>
		-->
	</xsl:for-each>
	<xsl:text>\end{itemize}</xsl:text>
</xsl:template>

<!--Text Process -->
<!--<xsl:apply-templates select="Body/node()"/>-->

<!-- End of Sections Processing -->



<!-- LaTeXChar: A recursive function that generates LaTeX special characters -->
<xsl:template name="LaTeXChar">
	<xsl:param name="i"/>
	<xsl:param name="l"/>
	
	<xsl:variable name="SS">
		<xsl:value-of select="substring(normalize-space(),$l - $i + 1,1)"/>
	</xsl:variable>
	
	<xsl:if test="$i > 0">
		
		<xsl:choose>
			<xsl:when test="$SS = 'é'">
				<xsl:text>\'{e}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'ê'">
				<xsl:text>\^{e}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'è'">
				<xsl:text>\`{e}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'ï'">
				<xsl:text>\"{\i}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'î'">
				<xsl:text>\^{i}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'à'">
				<xsl:text>\`{a}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'á'">
				<xsl:text>\'{a}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'â'">
				<xsl:text>\^{a}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'ç'">
				<xsl:text>\c{c}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'ô'">
				<xsl:text>\^{o}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'ù'">
				<xsl:text>\`{u}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = 'û'">
				<xsl:text>\^{u}</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = '|'">
				<xsl:text>$|$</xsl:text>
			</xsl:when>
			<xsl:when test="$SS = '_'">
				<xsl:text>\_</xsl:text>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="$SS"/>
			</xsl:otherwise>
		</xsl:choose>
		
		<xsl:text></xsl:text>
		
		<xsl:call-template name="LaTeXChar">
			<xsl:with-param name="i" select="$i - 1"/>
			<xsl:with-param name="l" select="$l"/>
			
		</xsl:call-template>
	</xsl:if>
	
</xsl:template>
<!-- End of LaTeXChar template -->

</xsl:stylesheet>


