emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Schulte <schulte.eric@gmail.com>
To: Org Mode Mailing List <emacs-orgmode@gnu.org>
Subject: [PATCH] ox-latex.el --- CUSTOM_ID-as-section-label-in-latex-export
Date: Mon, 24 Jun 2013 10:26:15 -0600	[thread overview]
Message-ID: <87wqpjxyoo.fsf@gmail.com> (raw)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-CUSTOM_ID-as-section-label-in-latex-export.patch --]
[-- Type: text/x-patch, Size: 1694 bytes --]

From c087e84a8fd80b277bf064eb31f1b893c25f1b4a Mon Sep 17 00:00:00 2001
From: Eric Schulte <schulte.eric@gmail.com>
Date: Mon, 24 Jun 2013 10:25:03 -0600
Subject: [PATCH] CUSTOM_ID as section label in latex export

  When exporting to HTML, custom ids of headlines become references to
  the resulting section in the exported document.  This is both more
  stable and more readable than using section numbers.  This commit adds
  this option to the latex exporter.

* lisp/ox-latex.el (org-latex-headline): If headlines have the CUSTOM_ID
  property set, then this value is used as the label instead of the
  section number.
---
 lisp/ox-latex.el | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index f2c6261..68b43e1 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1399,10 +1399,15 @@ holding contextual information."
 			       todo todo-type priority text tags))
 	   ;; Associate \label to the headline for internal links.
 	   (headline-label
-	    (format "\\label{sec-%s}\n"
-		    (mapconcat 'number-to-string
-			       (org-export-get-headline-number headline info)
-			       "-")))
+	    ;; Optionally use the custom-id instead of section number
+	    (if (org-element-property :CUSTOM_ID headline)
+		(format "\\label{%s}\n"
+			(org-element-property :CUSTOM_ID headline))
+	      (format "\\label{sec-%s}\n"
+		      (mapconcat
+		       'number-to-string
+		       (org-export-get-headline-number headline info)
+		       "-"))))
 	   (pre-blanks
 	    (make-string (org-element-property :pre-blank headline) 10)))
       (if (or (not section-fmt) (org-export-low-level-p headline info))
-- 
1.8.3.1


[-- Attachment #2: Type: text/plain, Size: 46 bytes --]


-- 
Eric Schulte
http://cs.unm.edu/~eschulte

             reply	other threads:[~2013-06-24 16:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-24 16:26 Eric Schulte [this message]
2013-06-24 16:48 ` [PATCH] ox-latex.el --- CUSTOM_ID-as-section-label-in-latex-export Nicolas Goaziou
2013-06-24 17:08   ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87wqpjxyoo.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).