X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/4d46ba6c455d3544dbf195424f61546978a82d75..1fdd33e6b409ee5c034915d121f773f007b95b9f:/librarian/pdf/wl2tex.xslt?ds=inline diff --git a/librarian/pdf/wl2tex.xslt b/librarian/pdf/wl2tex.xslt index f26f62a..58d2d81 100644 --- a/librarian/pdf/wl2tex.xslt +++ b/librarian/pdf/wl2tex.xslt @@ -89,6 +89,16 @@ </xsl:otherwise> </xsl:choose> </parm></cmd> + <xsl:if test="//utwor//utwor or //naglowek_czesc or //naglowek_akt or //srodtytul or //naglowek_scena or //naglowek_rozdzial"> + <cmd name="ifshowtoc" /> + <cmd name="setcounter" > + <parm>tocdepth</parm> + <parm>3</parm> + </cmd> + <cmd name="tableofcontents" /> + <cmd name="clearpage" /> + <cmd name="fi" /> + </xsl:if> <xsl:apply-templates select="powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny" /> <xsl:apply-templates select="utwor" mode="part" /> @@ -141,7 +151,7 @@ <xsl:choose> <xsl:when test="(powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny)/nazwa_utworu"> <!-- title in master --> - <xsl:apply-templates select="(powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny)/nazwa_utworu" mode="title" /> + <xsl:apply-templates select="(powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny)/nazwa_utworu" mode="part_title" /> <xsl:apply-templates select="(powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny)/podtytul" mode="title" /> </xsl:when> <xsl:otherwise> @@ -221,7 +231,15 @@ </xsl:template> <xsl:template match="rdf:RDF" mode="dctitle"> - <cmd name="nazwapodutworu"><parm> + <xsl:if test="../../rdf:RDF//use_subauthor"> + <cmd name="autorpodutworu"> + <parm><xsl:call-template name="authors" /></parm> + </cmd> + </xsl:if> + <cmd name="nazwanadpodutworu"><parm> + <xsl:apply-templates select=".//dc:title/node()" mode="inline" /> + </parm> + <parm> <xsl:apply-templates select=".//dc:title/node()" mode="inline" /> </parm></cmd> </xsl:template> @@ -249,7 +267,7 @@ <!-- ==================================================================================== --> <xsl:template - match="powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny|nota|dedykacja|dlugi_cytat|poezja_cyt|motto"> + match="powiesc|opowiadanie|liryka_l|liryka_lp|dramat_wierszowany_l|dramat_wierszowany_lp|dramat_wspolczesny|nota|dedykacja|dlugi_cytat|poezja_cyt|motto|ramka"> <cmd> <xsl:attribute name="name"> <xsl:value-of select="wl:texcommand(name())" /> @@ -295,9 +313,21 @@ </cmd> </xsl:template> +<xsl:template match="nazwa_utworu" mode="part_title"> + <xsl:if test="../../rdf:RDF//use_subauthor"> + <cmd name="autorpodutworu"><parm><xsl:call-template name="authors2"/></parm></cmd> + </xsl:if> + <cmd name="nazwapodutworu"> + <parm><xsl:apply-templates mode="inline"/></parm> + <parm> + <xsl:call-template name="strip-for-toc" /> + </parm> + </cmd> +</xsl:template> + <xsl:template - match="naglowek_akt|naglowek_czesc|srodtytul|naglowek_osoba|naglowek_podrozdzial|naglowek_scena|naglowek_rozdzial|miejsce_czas|didaskalia|lista_osoba|akap|akap_dialog|akap_cd|motto_podpis|naglowek_listy"> + match="naglowek_osoba|naglowek_podrozdzial|miejsce_czas|didaskalia|lista_osoba|akap|akap_diafrlog|akap_cd|motto_podpis|naglowek_listy|srodtytul"> <cmd> <xsl:attribute name="name"> <xsl:value-of select="wl:texcommand(name())" /> @@ -306,6 +336,26 @@ </cmd> </xsl:template> +<xsl:template match="naglowek_czesc|naglowek_rozdzial|naglowek_akt|naglowek_scena"> + <cmd> + <xsl:attribute name="name"> + <xsl:value-of select="wl:texcommand(name())" /> + </xsl:attribute> + <parm><xsl:apply-templates mode="inline"/></parm> + <parm> + <xsl:call-template name="strip-for-toc" /> + </parm> + </cmd> +</xsl:template> + +<xsl:template match="strofa" mode="inline"> + <env name="minipage"> + <opt>t</opt> + <parm><cmd name="linewidth" /></parm> + <parm><xsl:apply-templates select="." /></parm> + </env> +</xsl:template> + <xsl:template match="strofa"> <cmd name="strofa"><parm> <xsl:choose> @@ -362,7 +412,7 @@ <!-- ================================================ --> <xsl:template mode="inline" - match="pa|pe|pr|pt|mat|didask_tekst|slowo_obce|wyroznienie|osoba|indeks_dolny"> + match="pa|pe|pr|pt|mat|didask_tekst|slowo_obce|wyroznienie|osoba|indeks_dolny|wieksze_odstepy"> <cmd> <xsl:attribute name="name"> <xsl:value-of select="wl:texcommand(name())" /> @@ -424,6 +474,13 @@ </xsl:for-each> </xsl:template> +<xsl:template name="authors2"> + <xsl:for-each select="../..//dc:creator_parsed"> + <xsl:if test="position() != 1">, </xsl:if> + <xsl:apply-templates mode="inline" /> + </xsl:for-each> +</xsl:template> + <xsl:template name="editors"> <xsl:if test="@editors"> <xsl:text>Opracowanie redakcyjne i przypisy: </xsl:text> @@ -443,6 +500,28 @@ </xsl:if> </xsl:template> +<xsl:template name="strip-for-toc"> + <xsl:for-each select="./text() | nbsp | dywiz | alien | slowo_obce"> + <xsl:choose> + <xsl:when test="name() = 'nbsp'"> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:when test="name() = 'dywiz'"> + <xsl:text>-</xsl:text> + </xsl:when> + <xsl:when test="name() = 'alien'"> + <xsl:apply-templates mode="inline" /> + </xsl:when> + <xsl:when test="name() = 'slowo_obce'"> + <xsl:call-template name="strip-for-toc" /> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="."/> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> +</xsl:template> + <xsl:template match="data-sponsor" mode="sponsor"> <cmd name="par"><parm> <xsl:choose>