about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-10 12:09:58 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-07-10 12:09:58 +0000
commit46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74 (patch)
tree42a3e012c8c0f9db7b55edd210178d4c1c3816dc /pkgs
parent22557d5e1f35b9825f2217d2e63aed4d7ef04439 (diff)
downloadnixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar.gz
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar.bz2
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar.lz
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar.xz
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.tar.zst
nixlib-46db02a5e3d1cd1c1d0d5f1d313e01e0497dee74.zip
* Fix xrefs and callouts that refer to xml:ids (rather than ids).
  Will send upstream.

svn path=/nixpkgs/trunk/; revision=16312
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/misc/tex/dblatex/default.nix7
-rw-r--r--pkgs/misc/tex/dblatex/xmlid.patch253
2 files changed, 259 insertions, 1 deletions
diff --git a/pkgs/misc/tex/dblatex/default.nix b/pkgs/misc/tex/dblatex/default.nix
index 9044121b725c..56770dfa73c4 100644
--- a/pkgs/misc/tex/dblatex/default.nix
+++ b/pkgs/misc/tex/dblatex/default.nix
@@ -2,12 +2,17 @@
 
 stdenv.mkDerivation rec {
   name = "dblatex-0.2.11";
-  
+
   src = fetchurl {
     url = "mirror://sourceforge/dblatex/${name}.tar.bz2";
     sha256 = "cc1bd2c1aca5f6d03ef8516437321f75eba604d2067efe65f2d07815f56f7205";
   };
 
+  patches =
+    [ # Fix xrefs and callouts that refer to xml:ids (rather than ids).
+      ./xmlid.patch
+    ];
+
   buildPhase = "true";
   
   installPhase = "
diff --git a/pkgs/misc/tex/dblatex/xmlid.patch b/pkgs/misc/tex/dblatex/xmlid.patch
new file mode 100644
index 000000000000..7c8e5b702184
--- /dev/null
+++ b/pkgs/misc/tex/dblatex/xmlid.patch
@@ -0,0 +1,253 @@
+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>
+