<?xml version="1.0" encoding="iso-8859-1"?>

<!--
pdf.xsl

Copyright (c) 2001,2002,2003,2004,2005 Florent Villard (Warly)
All rights reserved.
-->

<xsl:stylesheet version="1.0"
	 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="text" omit-xml-declaration="yes" indent="no" encoding="iso-8859-1"/>

  <xsl:output doctype-public="-//W3C//DTD HTML 4.0//EN"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
\documentstyle[margin,line]{res}

% Logos
% =====

\font\attand=cmr7
%\font\MetafontLogoFont=logo10

\def\PS{{\tt P\small OST\tt S\small CRIPT}}
\def\ATT{{AT{\attand <xsl:text>\&amp;</xsl:text>}T}}
\def\MF{{METAFONT}}
\def\Cplusplus{{\rm C\raise.5ex\hbox{\small ++}}}
\def\AmSTeX{{$\cal A\kern-.1667em\lower.5ex\hbox{$\cal M$}\kern-.125em
S$-\TeX}}

\topmargin -0.2in
\oddsidemargin -.5in
\evensidemargin -.5in
\textwidth=6.1in

\begin{document}
         <xsl:apply-templates select="resume/header/name" mode="title"/>
         <xsl:apply-templates select="resume/header/address" mode="title"/>
\begin{resume}
	  <xsl:apply-templates select="resume"/>
	  <xsl:apply-templates select="resume/header/version" mode="title"/>
\end{resume}
\end{document}
  </xsl:template>


  <!-- Some miscelaneous Templates that I need -->
  <xsl:template name="NewLine">
<xsl:text>
</xsl:text>
  </xsl:template>
  
  <xsl:template name="NSpace">
    <xsl:param name="n" select="0"/>
    <xsl:if test="$n &gt; 0">
    <xsl:text> </xsl:text>
    <xsl:call-template name="NSpace">
    <xsl:with-param name="n" select="$n - 1" />
    </xsl:call-template>
    </xsl:if>
  </xsl:template>

  <xsl:template name="Indent">
    <xsl:param name="Length" select="4"/>
    <xsl:param name="Text"/>

    <!-- Put Space -->
    <xsl:call-template name="NSpace">
	<xsl:with-param name="n" select="$Length"/>
    </xsl:call-template>

    <!-- Display One Line -->
    <xsl:choose>
    <xsl:when test="contains($Text,'&#xA;')">
      <xsl:value-of select="substring-before($Text,'&#xA;')"/>
      <xsl:call-template name="NewLine"/>
      <xsl:call-template name="Indent">
	  <xsl:with-param name="Length" select="$Length"/>
	  <xsl:with-param name="Text" select="substring-after($Text,'&#xA;')"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$Text"/>
    </xsl:otherwise>
    </xsl:choose>

    <!-- Continue with the rest -->
  </xsl:template>
  
  <xsl:template name="Center">
    <xsl:call-template name="NewLine"/>
    <xsl:param name="Width" select="80"/>
    <xsl:param name="Text" />
    <xsl:call-template name="NSpace">
    <xsl:with-param name="n" select="($Width - string-length($Text)) div 2" />
    </xsl:call-template>
    <xsl:value-of select="$Text"/>
    <xsl:call-template name="NewLine"/>
  </xsl:template>

  <xsl:template name="FormatParagraph" >
    <xsl:param name="Text"  />
    <xsl:param name="Width" select="20"/>
    <xsl:param name="CPos"  select="0" />

    <!-- Put as many words on the line as possible -->
    <!-- Do it till we run out of things -->
   <xsl:if test="$CPos=0">
    <xsl:call-template name="NewLine"/>
   </xsl:if>
   <xsl:if test="string-length($Text) > 0">
    <xsl:choose>
        <xsl:when test="contains($Text,' ')">
	    <xsl:variable name="Word" select="substring-before($Text,' ')"/>
               <xsl:value-of select="$Word"/>
	      <xsl:if test="(1 + $CPos + string-length($Word)) &gt; $Width">
                  <xsl:call-template name="FormatParagraph">
	            <xsl:with-param name="Text" select="substring-after($Text,' ')"/>
	            <xsl:with-param name="Width" select="$Width"/>
	            <xsl:with-param name="CPos" select="0"/>
	          </xsl:call-template>
              </xsl:if> 
	      <xsl:if test="($CPos + string-length($Word)) &lt; $Width">
                  <xsl:text> </xsl:text>  
                  <xsl:call-template name="FormatParagraph">
	            <xsl:with-param name="Text" select="substring-after($Text,' ')"/>
	            <xsl:with-param name="Width" select="$Width"/>
	            <xsl:with-param name="CPos" select="$CPos + string-length($Word) + 1"/>
	          </xsl:call-template>
	      </xsl:if>
	</xsl:when>
        <xsl:otherwise><xsl:value-of select="$Text"/></xsl:otherwise>
    </xsl:choose>
   </xsl:if>
 </xsl:template>


  <!-- Suppress the keywords in the main body of the document -->
  <xsl:template match="keywords"/>
  <xsl:template match="docpath"/>

  <xsl:template match="keyword">
    <xsl:value-of select="."/>
  <!--
    <xsl:if test="position() != last()">
      <xsl:text>, </xsl:text>
    </xsl:if> -->
  </xsl:template>

  <xsl:template name="pathItem">
    <xsl:param name="style">unknown</xsl:param>
    <span class="{$style}">
      <a>
        <xsl:attribute name="href">
          <xsl:value-of select="uri"/>
        </xsl:attribute>
        <xsl:value-of select="label"/>
      </a>
      <xsl:text> > </xsl:text>
    </span>
  </xsl:template>

  <xsl:template match="head">
    <xsl:call-template name="pathItem">
      <xsl:with-param name="style">navHome</xsl:with-param>
    </xsl:call-template>
  </xsl:template>

  <xsl:template match="node">
    <xsl:call-template name="pathItem">
      <xsl:with-param name="style">navItem</xsl:with-param>
    </xsl:call-template>
  </xsl:template>

  <xsl:template match="tail">
    <span class="navTerminal">
      <xsl:value-of select="."/>
    </span>
  </xsl:template>

  <xsl:template match="address"/>
  <xsl:template match="address" mode="title">
<xsl:text>\address{</xsl:text>
      <xsl:value-of select="street"/>\\
      <xsl:value-of select="zip"/><xsl:text> </xsl:text><xsl:value-of select="city"/>\\
      <xsl:value-of select="state"/>\\
      <xsl:apply-templates select="/resume/header/contact" mode="title"/>
</xsl:template>

  <xsl:template match="contact"/>
  <xsl:template match="contact" mode="title">
<xsl:value-of select="phone"/>\\
<xsl:value-of select="email"/>\\
<xsl:value-of select="url"/>
}
</xsl:template>

  <xsl:template match="version"/>
  
  <xsl:template match="version" mode="title">
    <xsl:call-template name="NewLine"/>
  \version{<xsl:value-of select="."/>}
</xsl:template>

    <xsl:template match="objective">
\section{\sc Objective}
  <xsl:call-template name="Indent">
     <xsl:with-param name="Text">
      <xsl:apply-templates/>
     </xsl:with-param>
  </xsl:call-template>
  </xsl:template>

  <!-- Past jobs, with level 2 heading. -->
  <xsl:template match="history">
\begin{format}
\title{l}\employer{r}\\
\location{l}\dates{r}\\
\body\\
\end{format}

\section{\sc Parcours Professionnel}
<xsl:apply-templates select="job"/></xsl:template>

  <!-- Format each job -->
  <xsl:template match="job">
      <xsl:apply-templates select="jobtitle"/>
      <xsl:apply-templates select="employer"/>
      <xsl:apply-templates select="location"/>
      <xsl:apply-templates select="period"/>
      <xsl:apply-templates select="description"/>
  </xsl:template>
		
<xsl:template match="period">
\dates{\bf <xsl:apply-templates select="from"/> -- <xsl:apply-templates select="to"/>}
</xsl:template>

<xsl:template match="date">
<xsl:apply-templates select="month"/><xsl:text> </xsl:text><xsl:apply-templates select="year"/>
</xsl:template>

  <xsl:template match="present">Présent</xsl:template>

<xsl:template match="jobtitle">\title{\em <xsl:value-of select="."/>}
</xsl:template>

<xsl:template match="description">\begin{position}<xsl:value-of select="."/>
\end{position}
</xsl:template>

<xsl:template match="employer">\employer{\bf <xsl:value-of select="."/>}</xsl:template>

<xsl:template match="location">\location{<xsl:value-of select="."/>}
</xsl:template>

<xsl:template match="year | month | title | skill"><xsl:value-of select="."/>  </xsl:template>

  <xsl:template match="name"/>
  <xsl:template match="name" mode="title">
\name{\huge <xsl:value-of select="firstname"/> {\sc <xsl:value-of select="surname"/>}} 
  </xsl:template>

  <xsl:template match="academics">
\section{\sc Cursus}
       
<xsl:apply-templates select="degrees"/>
<xsl:apply-templates select="note"/>
       
  </xsl:template>

  <xsl:template match="degrees">
      <xsl:apply-templates select="degree"/>
      <xsl:text>\newline</xsl:text>
      <xsl:apply-templates select="note"/>
  </xsl:template>

  <xsl:template match="note">
\begin{footnotesize}
      <xsl:apply-templates/>
\end{footnotesize}
  </xsl:template>

  <xsl:template match="degree">
      <xsl:value-of select="level"/>
      <xsl:text> en </xsl:text>
      <xsl:value-of select="subject"/>
      <xsl:text>, </xsl:text>
      <xsl:apply-templates select="date"/>
      <xsl:text>, </xsl:text><xsl:call-template name="NewLine"/>
      <xsl:value-of select="institution"/>
      <xsl:text>. </xsl:text>
      <xsl:apply-templates select="annotation"/>
      <xsl:text>. </xsl:text>
  </xsl:template>

  <xsl:template match="institution">
	<xsl:text>    </xsl:text><xsl:value-of select="."/>
  </xsl:template>

  <xsl:template match="annotation">
	<xsl:value-of select="normalize-space(.)"/>
  </xsl:template>

  <xsl:template match="skillarea">
\section{\sc <xsl:value-of select="title"/>}
<xsl:apply-templates select="skillset"/></xsl:template>

  <xsl:template match="skillset">
\begin{tabular*}{\linewidth}{p{55pt}p{355pt}}
    <xsl:apply-templates select="title"/>
<xsl:text> &amp; </xsl:text>
    <xsl:apply-templates select="skills"/>
    <xsl:call-template name="NewLine"/>
\end{tabular*}
  </xsl:template>

  <xsl:template match="title">
{\bf <xsl:value-of select="."/>}<xsl:text>:</xsl:text></xsl:template>

  <xsl:template match="skills">
     <xsl:for-each select="skill">
      <xsl:value-of select="normalize-space(.)"/>
      <xsl:text>. </xsl:text>
     </xsl:for-each>
  </xsl:template>

  <xsl:template match="pubs">
    <xsl:text>Publications:</xsl:text>
    <xsl:apply-templates select="pub"/>
  </xsl:template>

  <xsl:template match="pub">
    <xsl:call-template name="Indent">
      <xsl:with-param name="Text">
      	<xsl:apply-templates/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:template>

   <xsl:template match="misc">
\section{\sc Divers}
    <xsl:apply-templates select="para"/>
  </xsl:template>

  <xsl:template match="copyright">
      Copyright 
      <xsl:text disable-output-escaping="yes">(C) </xsl:text>
      <xsl:value-of select="year"/> by
      <xsl:apply-templates select="name"/>.
      <xsl:value-of select="legalnotice"/>
  </xsl:template>

  <xsl:template match="para">
    <xsl:value-of select="."/>
    <xsl:text>\newline</xsl:text>
  </xsl:template>

  <xsl:template match="emphasis">
  <xsl:text>[</xsl:text>
    <xsl:value-of select="."/> 
  <xsl:text>]</xsl:text>
  </xsl:template>

  <xsl:template match="url">
        <xsl:value-of select="."/>
  </xsl:template>

  <xsl:template match="citation">
    <xsl:value-of select="."/>
  </xsl:template>

</xsl:stylesheet>
