nixpkgs/pkgs/misc/tex/dblatex/xmlid.patch
Eelco Dolstra 46db02a5e3 * Fix xrefs and callouts that refer to xml:ids (rather than ids).
Will send upstream.

svn path=/nixpkgs/trunk/; revision=16312
2009-07-10 12:09:58 +00:00

254 lines
8.6 KiB
Diff

diff -rc dblatex-0.2.11-orig/xsl/callout.xsl dblatex-0.2.11/xsl/callout.xsl
*** dblatex-0.2.11-orig/xsl/callout.xsl 2009-06-21 21:53:58.000000000 +0200
--- dblatex-0.2.11/xsl/callout.xsl 2009-07-10 13:31:50.000000000 +0200
***************
*** 60,66 ****
<!-- Cannot use directly id() because it must work on several RTF -->
<!-- The element is also searched in the root tree for things stripped
in the RTF, like <areaset>s -->
! <xsl:variable name="coitem" select="($rnode//*[@id=$ref]|//*[@id=$ref])[1]"/>
<xsl:apply-templates select="$coitem" mode="coref.link">
<xsl:with-param name="circled" select="$circled"/>
<xsl:with-param name="from" select="local-name(.)"/>
--- 60,66 ----
<!-- Cannot use directly id() because it must work on several RTF -->
<!-- The element is also searched in the root tree for things stripped
in the RTF, like <areaset>s -->
! <xsl:variable name="coitem" select="($rnode//*[(@id|@xml:id)=$ref]|//*[(@id|@xml:id)=$ref])[1]"/>
<xsl:apply-templates select="$coitem" mode="coref.link">
<xsl:with-param name="circled" select="$circled"/>
<xsl:with-param name="from" select="local-name(.)"/>
***************
*** 102,108 ****
</xsl:when>
<xsl:otherwise>
<xsl:text>\hyperref[</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>]{</xsl:text>
<xsl:value-of select="$markup"/>
<xsl:text>}</xsl:text>
--- 102,108 ----
</xsl:when>
<xsl:otherwise>
<xsl:text>\hyperref[</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>]{</xsl:text>
<xsl:value-of select="$markup"/>
<xsl:text>}</xsl:text>
***************
*** 177,193 ****
<xsl:value-of select="$co-tagin"/>
<xsl:choose>
<xsl:when test="$co-hide != 0">
! <xsl:if test="@id">
<xsl:text>\colabel{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:if>
</xsl:when>
! <xsl:when test="@id">
<xsl:text>\coref{</xsl:text>
<xsl:value-of select="$conum"/>
<xsl:text>}{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:otherwise>
--- 177,193 ----
<xsl:value-of select="$co-tagin"/>
<xsl:choose>
<xsl:when test="$co-hide != 0">
! <xsl:if test="@id|@xml:id">
<xsl:text>\colabel{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:if>
</xsl:when>
! <xsl:when test="@id|@xml:id">
<xsl:text>\coref{</xsl:text>
<xsl:value-of select="$conum"/>
<xsl:text>}{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:otherwise>
***************
*** 208,214 ****
<xsl:param name="rnode" select="/"/>
<xsl:param name="co-tagin" select="'&lt;:'"/>
<xsl:param name="co-tagout" select="$co.tagout"/>
! <xsl:variable name="co" select="$rnode//*[@id=current()/@linkend]"/>
<xsl:choose>
<xsl:when test="$co">
--- 208,214 ----
<xsl:param name="rnode" select="/"/>
<xsl:param name="co-tagin" select="'&lt;:'"/>
<xsl:param name="co-tagout" select="$co.tagout"/>
! <xsl:variable name="co" select="$rnode//*[(@id|@xml:id)=current()/@linkend]"/>
<xsl:choose>
<xsl:when test="$co">
***************
*** 265,273 ****
<xsl:with-param name="rnode" select="$rnode"/>
</xsl:call-template>
<xsl:text>}]</xsl:text>
! <xsl:if test="@id and $co.linkends.show='1'">
<xsl:text>\collabel{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:if>
<xsl:apply-templates/>
--- 265,273 ----
<xsl:with-param name="rnode" select="$rnode"/>
</xsl:call-template>
<xsl:text>}]</xsl:text>
! <xsl:if test="(@id|@xml:id) and $co.linkends.show='1'">
<xsl:text>\collabel{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:if>
<xsl:apply-templates/>
diff -rc dblatex-0.2.11-orig/xsl/xref.xsl dblatex-0.2.11/xsl/xref.xsl
*** dblatex-0.2.11-orig/xsl/xref.xsl 2009-06-21 21:53:58.000000000 +0200
--- dblatex-0.2.11/xsl/xref.xsl 2009-07-10 13:20:18.000000000 +0200
***************
*** 523,529 ****
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id"/>
<xsl:with-param name="text">
<xsl:apply-templates
select="(refmeta/refentrytitle|refnamediv/refname[1])[1]"
--- 523,529 ----
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id|@xml:id"/>
<xsl:with-param name="text">
<xsl:apply-templates
select="(refmeta/refentrytitle|refnamediv/refname[1])[1]"
***************
*** 538,544 ****
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id"/>
<xsl:with-param name="text">
<xsl:apply-templates select="refname[1]" mode="xref.text"/>
</xsl:with-param>
--- 538,544 ----
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id|@xml:id"/>
<xsl:with-param name="text">
<xsl:apply-templates select="refname[1]" mode="xref.text"/>
</xsl:with-param>
***************
*** 550,556 ****
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id"/>
<xsl:with-param name="text">
<xsl:choose>
<xsl:when test="local-name(.)='term'">
--- 550,556 ----
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id|@xml:id"/>
<xsl:with-param name="text">
<xsl:choose>
<xsl:when test="local-name(.)='term'">
***************
*** 575,581 ****
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id"/>
<xsl:with-param name="text">
<xsl:call-template name="inline.italicseq">
<xsl:with-param name="content">
--- 575,581 ----
<xsl:call-template name="hyperlink.markup">
<xsl:with-param name="referrer" select="$referrer"/>
! <xsl:with-param name="linkend" select="@id|@xml:id"/>
<xsl:with-param name="text">
<xsl:call-template name="inline.italicseq">
<xsl:with-param name="content">
***************
*** 658,664 ****
<xsl:template match="co" mode="xref-to">
<xsl:call-template name="coref.link.create">
! <xsl:with-param name="ref" select="@id"/>
<xsl:with-param name="circled" select="1"/>
</xsl:call-template>
</xsl:template>
--- 658,664 ----
<xsl:template match="co" mode="xref-to">
<xsl:call-template name="coref.link.create">
! <xsl:with-param name="ref" select="@id|@xml:id"/>
<xsl:with-param name="circled" select="1"/>
</xsl:call-template>
</xsl:template>
***************
*** 897,921 ****
<xsl:template match="part|chapter|appendix|
sect1|sect2|sect3|sect4|sect5|section" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="figure|example|table|equation" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="step" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="*" mode="pagenumber.markup">
<xsl:text>\pageref{</xsl:text>
! <xsl:value-of select="@id"/>
<xsl:text>}</xsl:text>
</xsl:template>
--- 897,921 ----
<xsl:template match="part|chapter|appendix|
sect1|sect2|sect3|sect4|sect5|section" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="figure|example|table|equation" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="step" mode="label.markup">
<xsl:text>\ref{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:template>
<xsl:template match="*" mode="pagenumber.markup">
<xsl:text>\pageref{</xsl:text>
! <xsl:value-of select="@id|@xml:id"/>
<xsl:text>}</xsl:text>
</xsl:template>