From mboxrd@z Thu Jan 1 00:00:00 1970 From: Richard Lawrence Subject: Re: [patch] Support CUSTOM_ID property in latex export Date: Sat, 22 Feb 2014 12:35:24 -0800 Message-ID: <87a9di7unn.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me> References: <87y51cgmc5.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me> <87mwhsro6c.fsf@gmail.com> <87vbwggcwb.fsf@berkeley.edu> <87iosfs9sb.fsf@gmail.com> <871tz24y4q.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me> <87lhx82igv.fsf@gmail.com> <87mwho9hij.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me> <87d2ij2ryp.fsf@gmail.com> <87ob20gsxv.fsf@aquinas.i-did-not-set--mail-host-address--so-tickle-me> <878ut31ov6.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40638) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHJJz-0001Wd-Gt for emacs-orgmode@gnu.org; Sat, 22 Feb 2014 15:37:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WHJJu-0002sJ-1f for emacs-orgmode@gnu.org; Sat, 22 Feb 2014 15:37:15 -0500 Received: from mail-pa0-f45.google.com ([209.85.220.45]:59985) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WHJJt-0002s3-Ro for emacs-orgmode@gnu.org; Sat, 22 Feb 2014 15:37:09 -0500 Received: by mail-pa0-f45.google.com with SMTP id lf10so4892398pab.32 for ; Sat, 22 Feb 2014 12:37:08 -0800 (PST) In-Reply-To: <878ut31ov6.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Nicolas Goaziou Cc: emacs-orgmode@gnu.org Hi Nicolas and all, Thanks for your feedback. I have a couple of questions about your comments: Nicolas Goaziou writes: > I think you can remove "that it is unique throughout the generated > document", as it is already explained in the manual, and not specific to > this variable. True, it is explained that CUSTOM_ID must be unique, but not that the generated label must be. I have changed this to: "You are responsible for ensuring that the value is a valid LaTeX \\label key, and that no other \\label commands with the same key appear elsewhere in your document." That seems clearer to me; it forbids e.g. introducing labels with the same key on a #+LATEX: line. Sound good? > OTOH, it would be nice to specify what is a valid \label key (e.g., > forbidden characters) and that the default value doesn't have this > limitation (otherwise, that wouldn't be much of a trade-off). > >> + (let ((custom-label (and org-latex-custom-id-as-label >> + (org-element-property :CUSTOM_ID headline)))) > I can't actually find a clear explanation anywhere of exactly what is and isn't allowed in a label key. All the LaTeX documentation seems to just say: "A key can consist of any sequence of letters, digits, or punctuation characters. Upper and lowercase letters are different." But clearly, the issue is what sort of "punctuation" is allowed. ":" and "_" are OK, but "%" and "$" aren't...is there a definitive list somewhere I should refer to? Maybe I should just say the user should have a look at the regexp in org-export-solidify-link-text? > There is one thing to consider here. We can define the new variable as > a back-end options, i.e., add > > (:latex-manual-id nil nil org-latex-custom-id-as-label) > > > in the back-end definition (the name of the property doesn't matter > much, you can change it). > > This is not strictly necessary, but it allows, for example, to change > its value for specific projects (in the publishing sense) without > setting the variable globally. > > If you think it is useful to do so, > > (and org-latex-custom-id-as-label > > should become > > (and (plist-get info :latex-manual-id) > >> + (let* ((custom-label (and org-latex-custom-id-as-label >> + (org-element-property :CUSTOM_ID destination))) > > Ditto. > OK, that sounds like a good idea, but are these the only changes that would be necessary? Where should the name of the back-end option and its relationship to this variable be documented? Best, Richard (If possible, please encrypt your reply to me using my PGP key: Key ID: CF6FA646 Fingerprint: 9969 43E1 CF6F A646. See http://www.ocf.berkeley.edu/~rwl/encryption.html for more information.)