initial commit
parent
a4d13a3f32
commit
5ca4ff7890
@ -0,0 +1,372 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tei="http://www.tei-c.org/ns/1.0"
|
||||
exclude-result-prefixes="xs" version="1.0">
|
||||
<xsl:output omit-xml-declaration="yes" method="text" indent="no" encoding="UTF-8"/>
|
||||
<!-- param pour l'id de l'acte -->
|
||||
<xsl:param name="numero"/>
|
||||
<!-- STRUCTURATION GLOBALE -->
|
||||
<xsl:template match="/">\documentclass{article}
|
||||
\usepackage[frenchb]{babel}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{setspace}
|
||||
\usepackage{endnotes}
|
||||
\renewcommand{\theendnote}{(\alph{endnote})}
|
||||
\renewcommand*{\enoteheading}{}
|
||||
% URLs
|
||||
\usepackage[colorlinks=true,linkcolor=black,anchorcolor=black,citecolor=black,filecolor=black,menucolor=black,runcolor=black,urlcolor=blue]{hyperref}
|
||||
\usepackage{xurl}
|
||||
\usepackage{tabularx}
|
||||
\usepackage[textwidth=6in]{geometry}
|
||||
\usepackage[]{graphicx}
|
||||
\usepackage[dvipsnames]{xcolor}
|
||||
\usepackage{chngcntr}% http://ctan.org/pkg/chngcntr
|
||||
\xdefinecolor{rhodamine}{named}{Rhodamine}
|
||||
\counterwithout{subsubsection}{subsection}
|
||||
\renewcommand\thesubsection{\Roman{subsection}.}
|
||||
\renewcommand\thesubsubsection{§ \arabic{subsubsection}}
|
||||
\renewcommand*\contentsname{\centering{Sommaire}}
|
||||
|
||||
% source How to vertically center two images next to each other?
|
||||
% https://tex.stackexchange.com/questions/7219/how-to-vertically-center-two-images-next-to-each-other
|
||||
|
||||
\title{Actes de Charles Ier}
|
||||
\author{Jean-Damien Généro}
|
||||
\date{Juillet 2022}
|
||||
|
||||
\begin{document}
|
||||
<xsl:apply-templates select="//text"/>
|
||||
\end{document}</xsl:template>
|
||||
<xsl:template match="//text">
|
||||
<xsl:apply-templates/></xsl:template>
|
||||
|
||||
<xsl:template match="//div[@xml:id]">
|
||||
\section{<xsl:value-of select="./@n"/>.}
|
||||
<xsl:apply-templates/>
|
||||
<xsl:if test=".//note[@type='na']">
|
||||
<xsl:text>\medskip
|
||||
|
||||
\theendnotes
|
||||
|
||||
\setcounter{endnote}{0}
|
||||
|
||||
</xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>\endgroup
|
||||
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
<!-- RÈGLES GLOBALES DE MISE EN FORME -->
|
||||
<xsl:template match="hi[@rend='sup']">
|
||||
<!-- exposant -->
|
||||
<xsl:text>\up{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="hi[@rend='i']">
|
||||
<!-- italique -->
|
||||
<xsl:text>\textit{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="hi[@rend='bold']">
|
||||
<!-- gras -->
|
||||
<xsl:text>\textbf{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="hi[@rend='smallcaps']">
|
||||
<!-- petites majuscules -->
|
||||
<xsl:text>\textsc{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="ref[@type='external']">
|
||||
<!-- liens -->
|
||||
<xsl:text>\href{</xsl:text><xsl:value-of select="@target"/><xsl:text>}{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="head">
|
||||
<!-- texte établi, deperditum -->
|
||||
<xsl:text>
|
||||
\begin{center}
|
||||
\textsc{</xsl:text><xsl:apply-templates/>}<xsl:text>
|
||||
\end{center}
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="biblStruct">
|
||||
<!-- référence bibliographique structurée -->
|
||||
<xsl:if test="parent::witness/@n='a'">
|
||||
<!-- si c'est l'édition a. -->
|
||||
<xsl:value-of select="parent::witness/@n"/>
|
||||
<xsl:text>. </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::witness/@n='b'">
|
||||
<!-- si c'est l'édition b. -->
|
||||
<xsl:value-of select="parent::witness/@n"/>
|
||||
<xsl:text>. </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:for-each select=".//author/persName">
|
||||
<!-- identité du ou des auteurs -->
|
||||
<xsl:if test="./addName">
|
||||
<xsl:apply-templates select="./addName"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="./forename"/>
|
||||
<xsl:if test="./surname">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="./surname"/>
|
||||
</xsl:if>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:for-each>
|
||||
<xsl:choose>
|
||||
<!-- titre -->
|
||||
<xsl:when test=".//monogr/title[@level='a']">
|
||||
<!-- 1/ s'il s'agit d'un article -->
|
||||
<xsl:text>« </xsl:text>
|
||||
<!-- titre de l'article entre guillemets français -->
|
||||
<xsl:apply-templates select=".//monogr/title[@level='a']"/>
|
||||
<xsl:text> », dans </xsl:text>
|
||||
<!-- titre de la revue en italique -->
|
||||
<xsl:text>\textit{</xsl:text><xsl:apply-templates select=".//monogr/title[@level='j']"/><xsl:text>}</xsl:text>
|
||||
<xsl:if test=".//biblScope[@unit='part']">
|
||||
<!-- si la revue est organisée en séries (@part) -->
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='part']/@n"/>
|
||||
</xsl:if>
|
||||
<xsl:text>, n°</xsl:text>
|
||||
<!-- numéro de la revue -->
|
||||
<xsl:choose>
|
||||
<!-- il s'agit d'un numéro unique -->
|
||||
<xsl:when test=".//biblScope[@unit='issue']/@n">
|
||||
<xsl:value-of select=".//biblScope[@unit='issue']/@n"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- le numéro n'est pas unique -->
|
||||
<xsl:value-of select=".//biblScope[@unit='issue']/@from"/>
|
||||
<xsl:text>-</xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='issue']/@to"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- 2/ il ne s'agit pas d'un article : c'est un titre de monographie -->
|
||||
<xsl:text>\textit{</xsl:text><xsl:apply-templates select=".//monogr/title[@level='m']"/><xsl:text>}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:if test=".//imprint/biblScope[@unit='volume']">
|
||||
<xsl:value-of select=".//imprint/biblScope[@unit='volume']/@n"/>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test=".//respStmt/persName">
|
||||
<!-- éditeur -->
|
||||
<xsl:for-each select=".//respStmt/persName">
|
||||
<xsl:apply-templates select="./forename"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select="./surname"/>
|
||||
<xsl:if test="position()!= last()">, </xsl:if>
|
||||
</xsl:for-each>
|
||||
<xsl:text> (</xsl:text>
|
||||
<xsl:apply-templates select=".//imprint/respStmt/resp"/>
|
||||
<xsl:text>), </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test=".//pubPlace">
|
||||
<!-- lieu de publication -->
|
||||
<xsl:apply-templates select=".//pubPlace"/>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test=".//publisher">
|
||||
<!-- éditeur -->
|
||||
<xsl:apply-templates select=".//publisher"/>
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<!-- date -->
|
||||
<xsl:value-of select=".//date/@when"/>
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:if test=".//biblScope[@unit='page']">
|
||||
<!-- pagination -->
|
||||
<xsl:choose>
|
||||
<xsl:when test=".//biblScope[@unit='page']/@n">
|
||||
<!-- il y a une page -->
|
||||
<xsl:text>p. </xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@n"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- il y a plusieurs pages -->
|
||||
<xsl:text>pp. </xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@from"/>
|
||||
<xsl:text>-</xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@to"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
<xsl:if test=".//biblScope[@unit='entry']">
|
||||
<!-- la localisation dans la page est précisée (numéro d'index, preuve, appendice et al.) -->
|
||||
<xsl:text>, n°</xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='entry']/@n"/>
|
||||
<xsl:if test="./text()">
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select=".//biblScope[@unit='entry']"/>
|
||||
</xsl:if>
|
||||
</xsl:if>
|
||||
<xsl:if test=".//ref">
|
||||
<!-- il y a un lien vers une numérisation ou autre -->
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:apply-templates select=".//ref"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::witness">
|
||||
<xsl:text>.</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<xsl:template match="bibl">
|
||||
<!-- référence bibliographique non structurée -->
|
||||
<!-- titre -->
|
||||
<xsl:text>\textit{</xsl:text><xsl:value-of select="./title"/><xsl:text>}</xsl:text>
|
||||
<xsl:if test="./biblScope[@unit='volume']">
|
||||
<!-- numéro du volume s'il existe -->
|
||||
<xsl:text>, </xsl:text>
|
||||
<xsl:value-of select="./biblScope[@unit='volume']/@n"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="./biblScope[@unit='page']">
|
||||
<!-- pagination si elle précisée -->
|
||||
<xsl:choose>
|
||||
<!-- une page -->
|
||||
<xsl:when test=".//biblScope[@unit='page']/@n">
|
||||
<xsl:text>, p. </xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@n"/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<!-- plusieurs pages -->
|
||||
<xsl:text>, pp. </xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@from"/>
|
||||
<xsl:text>-</xsl:text>
|
||||
<xsl:value-of select=".//biblScope[@unit='page']/@to"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:if>
|
||||
<xsl:if test="./biblScope[@unit='entry']">
|
||||
<xsl:text>, n°</xsl:text>
|
||||
<xsl:value-of select="./biblScope[@unit='entry']/@n"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="parent::witness">
|
||||
<xsl:text>.</xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
<!-- DATATION -->
|
||||
<xsl:template match="docDate">
|
||||
<xsl:text>\begingroup
|
||||
|
||||
\begin{center}
|
||||
</xsl:text>
|
||||
<xsl:choose>
|
||||
<!-- dates de temps et de lieu -->
|
||||
<xsl:when test="not(contains(placeName,'NS'))">
|
||||
<xsl:text>\textbf{</xsl:text>
|
||||
<xsl:apply-templates select="date"/>
|
||||
<xsl:text>. -- </xsl:text>
|
||||
<xsl:apply-templates select="placeName"/>
|
||||
<xsl:text>.}</xsl:text>
|
||||
</xsl:when>
|
||||
<!-- date de temps uniquement -->
|
||||
<xsl:otherwise>
|
||||
<xsl:text>\textbf{</xsl:text>
|
||||
<xsl:apply-templates select="date"/>
|
||||
<xsl:text>.}</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>
|
||||
\end{center}</xsl:text>
|
||||
</xsl:template>
|
||||
<xsl:template match="date">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<xsl:template match="docDate/placeName">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<!-- pas de template pour le premier argument, qui est utilisé pour la page de présentation du corpus -->
|
||||
<xsl:template match="argument[1]"/>
|
||||
<!-- REGESTE -->
|
||||
<xsl:template match="argument[2]">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<xsl:template match="argument[2]/p">
|
||||
<xsl:text>\textit{</xsl:text><xsl:apply-templates/><xsl:text>}
|
||||
|
||||
\bigskip
|
||||
</xsl:text>
|
||||
</xsl:template>
|
||||
<!-- TABLEAU DE LA TRADITION -->
|
||||
<xsl:template match="listWit"><xsl:text>\begin{small}
|
||||
|
||||
</xsl:text><xsl:apply-templates/>
|
||||
<xsl:text>\end{small}
|
||||
|
||||
\bigskip
|
||||
|
||||
</xsl:text>
|
||||
<!-- <xsl:apply-templates select="facsimile"/> -->
|
||||
</xsl:template>
|
||||
<xsl:template match="witness">
|
||||
<!-- Plusieurs cas : -->
|
||||
<xsl:choose>
|
||||
<!-- Quand il y a une analyse -->
|
||||
<xsl:when test="@n='analyse'">
|
||||
<xsl:text>
|
||||
|
||||
\textsc{Analyse} : </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<!-- Quand il y a une mention -->
|
||||
<xsl:when test="@n='mention'">
|
||||
<xsl:text>
|
||||
|
||||
\textsc{Mention} : </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<!-- Quand il y a un indiqué -->
|
||||
<xsl:when test="@n='indique'">
|
||||
<xsl:text>
|
||||
|
||||
\textsc{Indiqué} : </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<!-- Dans tous les cas -->
|
||||
<xsl:otherwise>
|
||||
<xsl:apply-templates/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<!-- APPELS DE NOTE DANS LE TEXTE -->
|
||||
<!-- notes critique : bas de page -->
|
||||
<xsl:template match="note[@type='n1']">
|
||||
<xsl:text>\footnote{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<!-- notes paléographiques -->
|
||||
<xsl:template match="note[@type='na']">
|
||||
<xsl:text>\endnote{</xsl:text><xsl:apply-templates/><xsl:text>}</xsl:text>
|
||||
</xsl:template>
|
||||
<!-- TEXTE DE L'ACTE -->
|
||||
<xsl:template match="div[@type='acte']">
|
||||
<!-- corps de l'acte -->
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<xsl:template match="div[@type='acte']/p">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:template>
|
||||
<xsl:template match="div[@type='MHT']">
|
||||
<!-- mention hors teneur (mht) -->
|
||||
<xsl:choose>
|
||||
<!-- indication sur le positionnement de la mht -->
|
||||
<xsl:when test="@subtype='gauche'">
|
||||
<xsl:text>\textit{(À gauche :)} </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<xsl:when test="@subtype='droite'">
|
||||
<xsl:text>\textit{(À droite :)} </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<xsl:when test="@subtype='replidroit'">
|
||||
<xsl:text>\textit{(Sur le repli, à droite :)} </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
<xsl:when test="@subtype='repligauche'">
|
||||
<xsl:text>\textit{(Sur le repli, à gauche :)} </xsl:text><xsl:apply-templates/>
|
||||
</xsl:when>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template match="div[@type='sign']">
|
||||
<!-- signature -->
|
||||
<xsl:for-each select="child::p">
|
||||
<xsl:text>\medskip
|
||||
|
||||
\textit{(Signé :)} </xsl:text><xsl:apply-templates/>
|
||||
</xsl:for-each>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
Loading…
Reference in New Issue