On Tue, Mar 10, 2015 at 3:47 PM, Jacob Gerlach <jacobgerl...@gmail.com> wrote:
> After finally getting this function to work, I discovered that I had
> the same problem as when I used org-id: the link description causes
> exported latex references to use the headline text instead of the
> \label{}.
...
> This works for me, but I'd love to find a more elegant approach:

I had been waffling on whether to switch to the git version of org.
This was motivation to make the switch, so I decided to give a shot at
patching this.

Attached patch introduces `org-latex-prefer-section-references'. If
non-nil, links will use the generated \label even if the link has a
description.

I believe I did everything right - commit message, no failures on make test...

Regards,
Jake
From 50829ce7891bd9cd5c654da346ae1981fe6339f7 Mon Sep 17 00:00:00 2001
From: Jacob Gerlach <jacobgerl...@gmail.com>
Date: Wed, 11 Mar 2015 09:15:46 -0400
Subject: [PATCH] ox-latex.el: Customize link export behavior

* lisp/ox-latex.el (org-latex-prefer-section-references): Add new
  defcustom.
  (org-latex-link): Use customization when resolving links to
  headlines.

  TINYCHANGE
---
 lisp/ox-latex.el | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 6cec8a1..e1b2647 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -510,6 +510,17 @@ and resolve links into section references."
   :version "25.1"
   :package-version '(Org . "8.3"))
 
+(defcustom org-latex-prefer-section-references nil
+   "Toggle use of link descriptions for generating section labels.
+
+When this variable is non-nil, Org will resolve links into
+section references even when the link has a description."
+
+  :group 'org-export-latex
+  :version "25.1"
+  :package-version '(Org . "8.3")
+  :type 'boolean)
+
 ;;;; Footnotes
 
 (defcustom org-latex-footnote-separator "\\textsuperscript{,}\\,"
@@ -2075,14 +2086,15 @@ INFO is a plist holding contextual information.  See
 	  ;; LINK points to a headline.  If headlines are numbered
 	  ;; and the link has no description, display headline's
 	  ;; number.  Otherwise, display description or headline's
-	  ;; title.
+	  ;; title depending on the value of 
+	  ;; org-latex-prefer-section-references
 	  (headline
 	   (let* ((custom-label
 		   (and (plist-get info :latex-custom-id-labels)
 			(org-element-property :CUSTOM_ID destination)))
 		  (label (or custom-label
 			     (org-export-get-headline-id destination info))))
-	     (if (and (not desc)
+	     (if (and (or (not desc) org-latex-prefer-section-references)
 		      (org-export-numbered-headline-p destination info))
 		 (format "\\ref{%s}" label)
 	       (format "\\hyperref[%s]{%s}" label
-- 
1.9.1

Reply via email to