(incubating) | The Free and Open Productivity Suite
Announcing Apache OpenOffice 3.4
<xsl:stylesheet xmlns:bib="http://purl.org/NET/xbiblio/citeproc" xmlns:cs="http://purl.org/NET/xbiblio/csl" xmlns:db="http://docbook.org/ns/docbook" xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:exist="http://exist.sourceforge.net/NS/exist" xmlns:xdoc="http://www.pnp-software.com/XSLTdoc" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="2.0" exclude-result-prefixes="db xdoc xhtml mods xs cs exist bib">
<xsl:include href="../citeproc.xsl" />
<xsl:output method="text" version="1.0" encoding="utf-8" indent="no" />
<xsl:strip-space elements="*" />
<xdoc:doc type="stylesheet">
  
<xdoc:short>Stylesheet to transform DocBook NG to LaTeX.</xdoc:short>
  
<xdoc:author>Bruce D’Arcus</xdoc:author>
  
<xdoc:copyright>2004, Bruce D’Arcus</xdoc:copyright>
  
<xdoc:svnId>$Id: dbng-latex.xsl.src.html,v 1.2 2005/11/21 22:19:36 dnw Exp $</xdoc:svnId>
  
<xdoc:detail>
    
<p>This is to be a demo of the multi-output format capabilities of CiteProc.</p>
  
</xdoc:detail>
</xdoc:doc>

<xsl:template match="/">
<xsl:if test="db:article">\documentclass[10pt]{amsart}</xsl:if>
<xsl:if test="db:book|db:chapter">\documentclass[10pt]{amsbook}</xsl:if>
<xsl:text>
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage{lettrine}
  
\usepackage{hyperref}

\usepackage[LY1]{fontenc}
\usepackage{CronosProOSF}
\usepackage{WarnockProOSF}
%\usepackage{palatino}

\input protcode.tex
  
\catcode`\$=12

\setcounter{secnumdepth}{0}

\linespread{1.2}

\begin{document}
</xsl:text>
<xsl:apply-templates select="/*/db:info" />
<xsl:apply-templates select="//db:section | /*/db:para" />
\section*{References}

\pagestyle{empty}

{\everypar = {\hangafter=1 \parindent 0pt \hangindent 15pt\parskip 5pt}
  
<xsl:call-template name="bib:format-bibliography">
  
<xsl:with-param name="output-format" select="'latex'" />
</xsl:call-template>
<xsl:text>

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

<xsl:template match="db:info">
<xsl:text>\title{</xsl:text><xsl:value-of select="db:title" /><xsl:text>}
</xsl:text>
<xsl:text>\author{</xsl:text><xsl:apply-templates select="db:author" /><xsl:text>}</xsl:text>
<xsl:text>\address{</xsl:text><xsl:apply-templates select="db:author/db:affiliation" /><xsl:text>}</xsl:text>

<xsl:if test="db:abstract">
<xsl:text>\begin{abstract}</xsl:text>
<xsl:apply-templates select="db:abstract/db:para" />
<xsl:text>\end{abstract}</xsl:text>
</xsl:if>
<xsl:text>
\setprotcode\font 
 {\it \setprotcode \font} 
 {\bf \setprotcode \font} 
 {\bf \it \setprotcode \font} 
 \pdfprotrudechars=2

\maketitle

</xsl:text>
</xsl:template>

<xsl:template match="db:author">
<xsl:value-of select="db:firstname" /><xsl:text> </xsl:text><xsl:apply-templates select="db:surname" />
</xsl:template>

<xsl:template match="db:affiliation">
  
<xsl:apply-templates select="db:orgname" /><xsl:text>\\
  
</xsl:text>
  
<xsl:apply-templates select="db:orgdiv" /><xsl:text>\\
  
</xsl:text>
  
<xsl:apply-templates select="db:address/db:street" /><xsl:text>\\
  
</xsl:text>
  
<xsl:apply-templates select="db:address/db:city" /><xsl:text></xsl:text>
  
<xsl:apply-templates select="db:address/db:state" /><xsl:text> </xsl:text>
  
<xsl:apply-templates select="db:addess/db:postcode" /><xsl:text>\\
  
</xsl:text>
  
<xsl:text>\url{</xsl:text><xsl:apply-templates select="db:address/db:email" /><xsl:text>}</xsl:text>
</xsl:template>

  
<xsl:template match="db:section">
    
<xsl:variable name="depth" select="count(ancestor::db:section)" />
    
<xsl:choose>
      
<xsl:when test="$depth=0">
        
<xsl:text>\section{</xsl:text><xsl:apply-templates select="db:title" /><xsl:text>}</xsl:text>
      
</xsl:when>
      
<xsl:when test="$depth=1">
        
<xsl:text>\subsection{</xsl:text><xsl:apply-templates select="db:title" /><xsl:text>}</xsl:text>
      
</xsl:when>
      
<xsl:when test="$depth=2">
        
<xsl:text>\subsubsection{</xsl:text><xsl:apply-templates select="db:title" /><xsl:text>}</xsl:text>
      
</xsl:when>
      
<xsl:otherwise>
        
<xsl:text>
</xsl:text>
        
<xsl:text>% Sections nested too deeply for default output</xsl:text>
        
<xsl:text>
</xsl:text>
      
</xsl:otherwise>
    
</xsl:choose>
    
<xsl:apply-templates select="db:para" />
  
</xsl:template>

<xsl:template match="db:footnote">
  
<xsl:text>\footnote{</xsl:text>
  
<xsl:apply-templates select="db:para" />
  
<xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="db:citation">
  
<xsl:if test="($citeclass='note-bib' or $citeclass='note-nobib') and not(ancestor::db:footnote)">\footnote{</xsl:if>
  
<xsl:call-template name="bib:format-citation">
    
<xsl:with-param name="output-format" select="'latex'" />
  
</xsl:call-template>
  
<xsl:if test="($citeclass='note-bib' or $citeclass='note-nobib') and not(ancestor::db:footnote)">}</xsl:if>
</xsl:template>

<xsl:template match="db:para">
  
<xsl:choose>
    
<xsl:when test="parent::db:footnote">
      
<xsl:apply-templates />
    
</xsl:when>
    
<xsl:otherwise>
      
<xsl:text>
</xsl:text>
      
<xsl:apply-templates />
      
<xsl:text>
</xsl:text>    
    
</xsl:otherwise>
  
</xsl:choose>
</xsl:template>

<!-- inlines -->

<xsl:template match="db:emphasis">
  
<xsl:text>\emph{</xsl:text>
  
<xsl:apply-templates />
  
<xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="db:blockquote">
  
<xsl:text>\begin{quote}</xsl:text>
  
<xsl:apply-templates />
  
<xsl:text>\end{quote}</xsl:text>
</xsl:template>
  
<xsl:template match="db:foreignphrase | db:citetitle">
  
<xsl:text>\emph{</xsl:text>
  
<xsl:apply-templates />
  
<xsl:text>}</xsl:text>
</xsl:template>
  
<xsl:template match="db:acronym">
  
<xsl:text>\textsc{</xsl:text>
  
<xsl:value-of select="lower-case(.)" />
  
<xsl:text>}</xsl:text>
</xsl:template>
  
<xsl:template match="db:phrase[@role='socalled']">
  
<xsl:text></xsl:text>
  
<xsl:apply-templates />
  
<xsl:text>” </xsl:text>
</xsl:template>
  
<xsl:template match="db:quote">
  
<xsl:text></xsl:text>
  
<xsl:apply-templates select="text() | db:emphasis | db:nq" />
  
<xsl:text>” </xsl:text>
  
<xsl:apply-templates select="db:citation" />
</xsl:template>

</xsl:stylesheet>






































v

Apache Feather

Copyright & License | Privacy | Contact Us

Apache and the Apache feather logos are trademarks of The Apache Software Foundation. OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.

Apache OpenOffice is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.