* Target and link text normalised to `orgtargetn'
@ 2015-04-14 9:25 Suvayu Ali
2015-04-14 12:08 ` Suvayu Ali
0 siblings, 1 reply; 35+ messages in thread
From: Suvayu Ali @ 2015-04-14 9:25 UTC (permalink / raw)
To: Emacs Org mode
Hello everyone,
I am exporting Org files to LaTeX. I noticed something strange
happening. The text of all my target text gets changed to `orgtargetn'
where n is some number. This breaks a lot of my LaTeX specific links.
For example, I use the varioref package to get entity specific
references, so \secref{sec:foo}, \figref{fig:bar}, \tabref{sec:baz} (it
even takes care of language, or punctuation as needed!). Now if the
target text changes from sec:foo to orgtarget1, of course the link
breaks.
I thought I would simply put the references into a normal org link,
[[sec:foo]], and use a filter to put the sec, fig, tab, etc. But of
course that doesn't work since I can't tell which is which as the text
has changed!
Is this intended? What is the rational? Can I switch this off with a
setting somewhere? I think this is a very recent change, afaict, it was
working as expected before.
Thanks for any response,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-14 9:25 Target and link text normalised to `orgtargetn' Suvayu Ali
@ 2015-04-14 12:08 ` Suvayu Ali
2015-04-14 12:59 ` Rasmus
2015-04-15 22:57 ` Rasmus
0 siblings, 2 replies; 35+ messages in thread
From: Suvayu Ali @ 2015-04-14 12:08 UTC (permalink / raw)
To: Emacs Org mode
Hi,
I found a partial answer.
On Tue, Apr 14, 2015 at 11:25:30AM +0200, Suvayu Ali wrote:
>
> I am exporting Org files to LaTeX. I noticed something strange
> happening. The text of all my target text gets changed to `orgtargetn'
> where n is some number. This breaks a lot of my LaTeX specific links.
>
> For example, I use the varioref package to get entity specific
Typo here, the package name is actually refstyle.
> references, so \secref{sec:foo}, \figref{fig:bar}, \tabref{sec:baz} (it
> even takes care of language, or punctuation as needed!). Now if the
> target text changes from sec:foo to orgtarget1, of course the link
> breaks.
The commit 4bbc054 introduces a variable org-latex-prefer-user-labels.
which is reponsible for this behaviour. Setting this variable to t
doesn't entirely solve my problem though. Normal targets like
<<par:interesting>> are still altered.
I think the docstring hints at that already.
For headlines that do not define the CUSTOM_ID property or elements
without a NAME, Org will continue to use its default labeling scheme
to generate labels and resolve links into proper references.
I guess a bare target is an element without a NAME. I find this a bit
strange, since the user already adds the target manually. So I think it
is already the user's responsibility to ensure it is consistent.
Shouldn't then Org leave this unchanged?
Thanks,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-14 12:08 ` Suvayu Ali
@ 2015-04-14 12:59 ` Rasmus
2015-04-14 13:37 ` Andreas Leha
2015-04-15 22:57 ` Rasmus
1 sibling, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-14 12:59 UTC (permalink / raw)
To: emacs-orgmode
Hi,
Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>> references, so \secref{sec:foo}, \figref{fig:bar}, \tabref{sec:baz} (it
>> even takes care of language, or punctuation as needed!). Now if the
>> target text changes from sec:foo to orgtarget1, of course the link
>> breaks.
>
> The commit 4bbc054 introduces a variable org-latex-prefer-user-labels.
> which is reponsible for this behaviour. Setting this variable to t
> doesn't entirely solve my problem though. Normal targets like
> <<par:interesting>> are still altered.
The change in behavior is approximately
160820bc9498e9364103e72b55a27cf92576dbb8 to
4bbc054bd252b975f483a29515495a9af9329c71.
IMO the issue is that org-export-get-reference does not map back to
default-type references (sec:·, fig:·). I think this should be fixed.
> I think the docstring hints at that already.
>
> For headlines that do not define the CUSTOM_ID property or elements
> without a NAME, Org will continue to use its default labeling scheme
> to generate labels and resolve links into proper references.
>
> I guess a bare target is an element without a NAME. I find this a bit
> strange, since the user already adds the target manually. So I think it
> is already the user's responsibility to ensure it is consistent.
> Shouldn't then Org leave this unchanged?
That seems like a bug.
—Rasmus
--
To err is human. To screw up 10⁶ times per second, you need a computer
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-14 12:59 ` Rasmus
@ 2015-04-14 13:37 ` Andreas Leha
0 siblings, 0 replies; 35+ messages in thread
From: Andreas Leha @ 2015-04-14 13:37 UTC (permalink / raw)
To: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Hi,
>
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>
>>> references, so \secref{sec:foo}, \figref{fig:bar}, \tabref{sec:baz} (it
>>> even takes care of language, or punctuation as needed!). Now if the
>>> target text changes from sec:foo to orgtarget1, of course the link
>>> breaks.
>>
>> The commit 4bbc054 introduces a variable org-latex-prefer-user-labels.
>> which is reponsible for this behaviour. Setting this variable to t
>> doesn't entirely solve my problem though. Normal targets like
>> <<par:interesting>> are still altered.
>
> The change in behavior is approximately
> 160820bc9498e9364103e72b55a27cf92576dbb8 to
> 4bbc054bd252b975f483a29515495a9af9329c71.
>
> IMO the issue is that org-export-get-reference does not map back to
> default-type references (sec:·, fig:·). I think this should be fixed.
>
>> I think the docstring hints at that already.
>>
>> For headlines that do not define the CUSTOM_ID property or elements
>> without a NAME, Org will continue to use its default labeling scheme
>> to generate labels and resolve links into proper references.
>>
>> I guess a bare target is an element without a NAME. I find this a bit
>> strange, since the user already adds the target manually. So I think it
>> is already the user's responsibility to ensure it is consistent.
>> Shouldn't then Org leave this unchanged?
>
> That seems like a bug.
>
Seems both, self-fixing and Rasmus-fixing.....
(Sorry, could not resist.)
Andreas
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-14 12:08 ` Suvayu Ali
2015-04-14 12:59 ` Rasmus
@ 2015-04-15 22:57 ` Rasmus
2015-04-16 0:18 ` Suvayu Ali
1 sibling, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-15 22:57 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 112 bytes --]
Hi,
Could you try the attached patches and see if they solve your issues?
Thanks,
Rasmus
--
C is for Cookie
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-ox-Change-label-naming-scheme.patch --]
[-- Type: text/x-diff, Size: 1205 bytes --]
From 8951c689a7812d6557ba65888e549013814e5f8a Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Wed, 15 Apr 2015 21:50:53 +0200
Subject: [PATCH 2/2] ox: Change label naming scheme
* ox.el (org-export-get-reference): Change labeling scheme.
160820bc94 and later changed the label naming scheme to follow types.
This commit maps to types to more standard names, e.g. 'headline' to
'sec'.
---
lisp/ox.el | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/lisp/ox.el b/lisp/ox.el
index d6dcc82..f7d0ef5 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -4149,9 +4149,18 @@ alphanumeric characters only."
h))))
(or (gethash datum cache)
(puthash datum
- (format "org%s%d"
+ (format "%s:%d"
(if type
- (replace-regexp-in-string "-" "" (symbol-name type))
+ (case type
+ (headline "sec")
+ (paragraph
+ (if (org-element-property :caption datum)
+ "fig" "paragraph"))
+ (latex-environment "eq")
+ (table "tbl")
+ (otherwise
+ (replace-regexp-in-string "-" ""
+ (symbol-name type))))
"secondarystring")
(incf (gethash type cache 0)))
cache))))
--
2.3.5
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0001-ox-latex-Wider-user-label-support.patch --]
[-- Type: text/x-diff, Size: 2528 bytes --]
From a01e6759a6a016fd4c684eaaa56544d8507c897f Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Wed, 15 Apr 2015 21:46:57 +0200
Subject: [PATCH 1/2] ox-latex: Wider user-label support
* ox-latex.el (org-latex--label): Add user-labels for targets and
radio-target.
(org-latex--wrap-label, org-latex-link, org-latex-target)
(org-latex-radio-target): Use org-latex--label.
---
lisp/ox-latex.el | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 61d16b1..b22b0a7 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1056,9 +1056,10 @@ return a unique label.
Eventually, if FULL is non-nil, wrap label within \"\\label{}\"."
(let* ((user-label
(org-element-property
- (if (memq (org-element-type element) '(headline inlinetask))
- :CUSTOM_ID
- :name)
+ (case (org-element-type element)
+ ((headline inlinetask) :CUSTOM_ID)
+ ((target radio-target) :value)
+ (otherwise :name))
element))
(label
(and (or user-label force)
@@ -1176,7 +1177,7 @@ should not be used for floats. See
(if (not (and (org-string-nw-p output) (org-element-property :name element)))
output
(concat (format "\\phantomsection\n\\label{%s}\n"
- (org-export-get-reference element info))
+ (org-latex--label element info))
output)))
(defun org-latex--text-markup (text markup info)
@@ -2088,7 +2089,7 @@ INFO is a plist holding contextual information. See
(let ((destination (org-export-resolve-radio-link link info)))
(if (not destination) desc
(format "\\hyperref[%s]{%s}"
- (org-export-get-reference destination info)
+ (org-latex--label destination info)
desc))))
;; Links pointing to a headline: Find destination and build
;; appropriate referencing command.
@@ -2416,7 +2417,7 @@ holding contextual information."
"Transcode a RADIO-TARGET object from Org to LaTeX.
TEXT is the text of the target. INFO is a plist holding
contextual information."
- (format "\\label{%s}%s" (org-export-get-reference radio-target info) text))
+ (format "\\label{%s}%s" (org-latex--label radio-target info) text))
;;;; Section
@@ -3029,7 +3030,7 @@ a communication channel."
"Transcode a TARGET object from Org to LaTeX.
CONTENTS is nil. INFO is a plist holding contextual
information."
- (format "\\label{%s}" (org-export-get-reference target info)))
+ (format "\\label{%s}" (org-latex--label target info)))
;;;; Timestamp
--
2.3.5
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-15 22:57 ` Rasmus
@ 2015-04-16 0:18 ` Suvayu Ali
2015-04-16 10:11 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Suvayu Ali @ 2015-04-16 0:18 UTC (permalink / raw)
To: emacs-orgmode
Hi Rasmus,
On Thu, Apr 16, 2015 at 12:57:46AM +0200, Rasmus wrote:
>
> Could you try the attached patches and see if they solve your issues?
Seems to work nicely. I'll keep using them rest of the week.
Thanks, :)
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-16 0:18 ` Suvayu Ali
@ 2015-04-16 10:11 ` Rasmus
2015-04-18 21:53 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-16 10:11 UTC (permalink / raw)
To: emacs-orgmode
Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> Hi Rasmus,
>
> On Thu, Apr 16, 2015 at 12:57:46AM +0200, Rasmus wrote:
>>
>> Could you try the attached patches and see if they solve your issues?
>
> Seems to work nicely. I'll keep using them rest of the week.
Pushed.
I removed support for radio targets as I don't really see the point in
those supporting custom labeling. They are transcoded as
<<<target>>
→
\hyperref{label}{target}
It makes little sense to label be the same as target, though it probably
would not create problems.
—Rasmus
--
A clever person solves a problem. A wise person avoids it
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-16 10:11 ` Rasmus
@ 2015-04-18 21:53 ` Nicolas Goaziou
2015-04-19 12:13 ` Suvayu Ali
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-18 21:53 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Hello,
Rasmus <rasmus@gmx.us> writes:
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>
>> Hi Rasmus,
>>
>> On Thu, Apr 16, 2015 at 12:57:46AM +0200, Rasmus wrote:
>>>
>>> Could you try the attached patches and see if they solve your issues?
>>
>> Seems to work nicely. I'll keep using them rest of the week.
>
> Pushed.
>
> I removed support for radio targets as I don't really see the point in
> those supporting custom labeling. They are transcoded as
>
> <<<target>>
> →
> \hyperref{label}{target}
>
> It makes little sense to label be the same as target, though it probably
> would not create problems.
I don't see the point of this change. The naming scheme is internal
anyway. Users are not supposed to use it directly.
If you want \label{foo} in the output, you can write
@@latex:\label{foo}@@.
Targets are for Org links and are expected to work across all back-ends,
so the problem they solve is slightly different.
Please revert f1548e1 and cf7d64f, they are not a correct solution.
Thank you.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-18 21:53 ` Nicolas Goaziou
@ 2015-04-19 12:13 ` Suvayu Ali
2015-04-19 12:57 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Suvayu Ali @ 2015-04-19 12:13 UTC (permalink / raw)
To: emacs-orgmode; +Cc: Rasmus
Hi Nicolas,
On Sat, Apr 18, 2015 at 11:53:01PM +0200, Nicolas Goaziou wrote:
> Hello,
>
> Rasmus <rasmus@gmx.us> writes:
>
> > Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> >
> >> Hi Rasmus,
> >>
> >> On Thu, Apr 16, 2015 at 12:57:46AM +0200, Rasmus wrote:
> >>>
> >>> Could you try the attached patches and see if they solve your issues?
> >>
> >> Seems to work nicely. I'll keep using them rest of the week.
> >
> > Pushed.
> >
> > I removed support for radio targets as I don't really see the point in
> > those supporting custom labeling. They are transcoded as
> >
> > <<<target>>
> > →
> > \hyperref{label}{target}
> >
> > It makes little sense to label be the same as target, though it probably
> > would not create problems.
>
> I don't see the point of this change. The naming scheme is internal
> anyway. Users are not supposed to use it directly.
Sorry, I don't think I quite understand. AFAIU, targets like
<<interesting>> have to be unique even inside the Org buffer for links
like this to work: [[interesting][very cool]], regardless of export. So
then why rename them during export?
> If you want \label{foo} in the output, you can write
> @@latex:\label{foo}@@.
>
> Targets are for Org links and are expected to work across all back-ends,
> so the problem they solve is slightly different.
How does the above solve the issue? I was not having problems with
getting to export \label{foo}, my problem was what do I put as `foo'
since in the exported TeX file foo was different.
Hopefully I made myself clear, or I'm not misunderstanding something.
Cheers,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 12:13 ` Suvayu Ali
@ 2015-04-19 12:57 ` Nicolas Goaziou
2015-04-19 13:24 ` Suvayu Ali
2015-04-19 14:02 ` Rasmus
0 siblings, 2 replies; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 12:57 UTC (permalink / raw)
To: Suvayu Ali; +Cc: emacs-orgmode, Rasmus
Hello,
Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> Sorry, I don't think I quite understand. AFAIU, targets like
> <<interesting>> have to be unique even inside the Org buffer for links
> like this to work: [[interesting][very cool]], regardless of export. So
> then why rename them during export?
There's no guarantee that, e.g., \label{interesting} is a valid syntax.
Think about <<100%>> for LaTeX. Actually such links were broken for
non-ASCII characters before the patch.
Note that this is transparent for the user: if <<interesting>> becomes
\label{foo}, [[interesting][very cool]] automatically becomes
\hyperref[foo]{very cool}.
Your problem is different AFAIU. You are relying on the internal pattern
of generated labels, i.e., you are eating Org's dog food. I advise
against it.
If you need explicitly "\label{interesting}", ask Org to write it with,
e.g., "@@latex:\label{foo}@@" or even better
#+MACRO: lbl @@latex:\label{$1}@@
{{{lbl(foo)}}}
> How does the above solve the issue? I was not having problems with
> getting to export \label{foo}, my problem was what do I put as `foo'
> since in the exported TeX file foo was different.
>
> Hopefully I made myself clear, or I'm not misunderstanding something.
Again <<target>> are for [[target]], \label{...} are for
\whateverref{..}. IOW, you are mixing two different concepts. Since you
write "\secref{fig:1}" in your documents, you can also write
"\label{fig:1}" there.
Org can only ensures you that [[target]] always point to <<target>>. No
more, no less.
There is another data point to consider: internal label scheme must not
follow a simple pattern, as a user might use the same and introduce
a label collision. E.g., if <<foo>> becomes par:foo, the following
line is problematic:
<<foo>> \label{par:foo} \ref{par:foo} [[foo]]
This is why I suggest to rever commit cf7d64f. It also introduces
a non-alphanumeric character ":", even though `org-export-get-reference'
uses only alphanumeric ones by portability concern (it is even specified
in its docstring).
Commit f1548e1 is different. I actually mostly agree with it (though
I was confused at first with the docstring change, which needs to be
fixed), but it breaks radio targets. It doesn't need to be reverted.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 12:57 ` Nicolas Goaziou
@ 2015-04-19 13:24 ` Suvayu Ali
2015-04-19 13:40 ` Nicolas Goaziou
2015-04-19 14:02 ` Rasmus
1 sibling, 1 reply; 35+ messages in thread
From: Suvayu Ali @ 2015-04-19 13:24 UTC (permalink / raw)
To: emacs-orgmode, Rasmus
Hi Nicolas,
On Sun, Apr 19, 2015 at 02:57:09PM +0200, Nicolas Goaziou wrote:
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>
> > Sorry, I don't think I quite understand. AFAIU, targets like
> > <<interesting>> have to be unique even inside the Org buffer for links
> > like this to work: [[interesting][very cool]], regardless of export. So
> > then why rename them during export?
>
> There's no guarantee that, e.g., \label{interesting} is a valid syntax.
> Think about <<100%>> for LaTeX. Actually such links were broken for
> non-ASCII characters before the patch.
>
> Note that this is transparent for the user: if <<interesting>> becomes
> \label{foo}, [[interesting][very cool]] automatically becomes
> \hyperref[foo]{very cool}.
>
> Your problem is different AFAIU. You are relying on the internal pattern
> of generated labels, i.e., you are eating Org's dog food. I advise
> against it.
Yes indeed. I wanted to use the location information provided by
refstyle, and varioref. By using \secref or \vpageref I would get
references like: section §3, on page 5, etc.
> If you need explicitly "\label{interesting}", ask Org to write it with,
> e.g., "@@latex:\label{foo}@@" or even better
>
> #+MACRO: lbl @@latex:\label{$1}@@
>
> {{{lbl(foo)}}}
>
Okay I see it now, in your last email I got a bit confused, but now I
follow. With your solution I use both label and reference using LaTeX,
bypassing Org. Of course this leaves me with links not working inside
Org. I was eventually going to use filters to transform the ref
commands to the alternate ones from refstyle and varioref to get both
LaTeX and Org side working as I wanted. Something like this:
<<sec:interesting>>
[[sec:interesting]]
Then transform \ref{sec:interesting} → \secref{sec:interesting} with a
filter; that way I would have my cake and eat it too! I see your point
though.
Thanks a lot for the comments. :)
Cheers,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 13:24 ` Suvayu Ali
@ 2015-04-19 13:40 ` Nicolas Goaziou
2015-04-19 13:49 ` Suvayu Ali
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 13:40 UTC (permalink / raw)
To: Suvayu Ali; +Cc: emacs-orgmode, Rasmus
Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> Okay I see it now, in your last email I got a bit confused, but now I
> follow. With your solution I use both label and reference using LaTeX,
> bypassing Org. Of course this leaves me with links not working inside
> Org. I was eventually going to use filters to transform the ref
> commands to the alternate ones from refstyle and varioref to get both
> LaTeX and Org side working as I wanted. Something like this:
>
> <<sec:interesting>>
>
> [[sec:interesting]]
>
> Then transform \ref{sec:interesting} → \secref{sec:interesting} with a
> filter; that way I would have my cake and eat it too! I see your point
> though.
You can do that with a non-nil `org-latex-prefer-user-labels'.
Otherwise, <<sec:interesting>> becomes \label{whatever}, defeating your
filter.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 13:40 ` Nicolas Goaziou
@ 2015-04-19 13:49 ` Suvayu Ali
2015-04-19 13:56 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Suvayu Ali @ 2015-04-19 13:49 UTC (permalink / raw)
To: emacs-orgmode, Rasmus
Hi Nicolas,
On Sun, Apr 19, 2015 at 03:40:07PM +0200, Nicolas Goaziou wrote:
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>
> > Okay I see it now, in your last email I got a bit confused, but now I
> > follow. With your solution I use both label and reference using LaTeX,
> > bypassing Org. Of course this leaves me with links not working inside
> > Org. I was eventually going to use filters to transform the ref
> > commands to the alternate ones from refstyle and varioref to get both
> > LaTeX and Org side working as I wanted. Something like this:
> >
> > <<sec:interesting>>
> >
> > [[sec:interesting]]
> >
> > Then transform \ref{sec:interesting} → \secref{sec:interesting} with a
> > filter; that way I would have my cake and eat it too! I see your point
> > though.
>
> You can do that with a non-nil `org-latex-prefer-user-labels'.
> Otherwise, <<sec:interesting>> becomes \label{whatever}, defeating your
> filter.
Ah, that was my report, that option did not work for me completely.
See: http://thread.gmane.org/gmane.emacs.orgmode/96887/focus=96888.
To summarise quickly, with the above option set to t all
references/links behave as I expect, except the ones where the target is
a `bare target'.
Does that mean there was indeed a bug?
Cheers,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 13:49 ` Suvayu Ali
@ 2015-04-19 13:56 ` Nicolas Goaziou
2015-04-19 14:06 ` Suvayu Ali
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 13:56 UTC (permalink / raw)
To: Suvayu Ali; +Cc: emacs-orgmode, Rasmus
Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
> Ah, that was my report, that option did not work for me completely.
> See: http://thread.gmane.org/gmane.emacs.orgmode/96887/focus=96888.
>
> To summarise quickly, with the above option set to t all
> references/links behave as I expect, except the ones where the target is
> a `bare target'.
>
> Does that mean there was indeed a bug?
Yes, Rasmus fixed it in f1548e11fe2972819bc48b88c6094b11150e5c8a. I just
fixed Rasmus' fix wrt radio targets.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 12:57 ` Nicolas Goaziou
2015-04-19 13:24 ` Suvayu Ali
@ 2015-04-19 14:02 ` Rasmus
2015-04-19 14:36 ` Nicolas Goaziou
1 sibling, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-19 14:02 UTC (permalink / raw)
To: emacs-orgmode
Hi Nicolas,
I hope you had a nice time "offline".
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> This is why I suggest to rever commit cf7d64f. It also introduces
> a non-alphanumeric character ":", even though `org-export-get-reference'
> uses only alphanumeric ones by portability concern (it is even specified
> in its docstring).
I think the label naming is worse now, and I think it's important to
produce good quality labels akin to what you would expect from
e.g. AUCTeX. However, I have reverted cf7d64fgit per your request.
Perhaps a solution for high-quality labels in ox-latex can be introduced
later a la org-latex--label.
> Commit f1548e1 is different. I actually mostly agree with it (though
> I was confused at first with the docstring change, which needs to be
> fixed),
I guess the fix is 88108f652f0d4ddb4250cb89c2453df1fc9ee671. Yes?
> but it breaks radio targets.
I agree, and I actually though I had left out that part when pushing.
Thanks for fixing.
—Rasmus
--
However beautiful the theory, you should occasionally look at the evidence
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 13:56 ` Nicolas Goaziou
@ 2015-04-19 14:06 ` Suvayu Ali
0 siblings, 0 replies; 35+ messages in thread
From: Suvayu Ali @ 2015-04-19 14:06 UTC (permalink / raw)
To: emacs-orgmode, Rasmus
On Sun, Apr 19, 2015 at 03:56:22PM +0200, Nicolas Goaziou wrote:
> Suvayu Ali <fatkasuvayu+linux@gmail.com> writes:
>
> > Ah, that was my report, that option did not work for me completely.
> > See: http://thread.gmane.org/gmane.emacs.orgmode/96887/focus=96888.
> >
> > To summarise quickly, with the above option set to t all
> > references/links behave as I expect, except the ones where the target is
> > a `bare target'.
> >
> > Does that mean there was indeed a bug?
>
> Yes, Rasmus fixed it in f1548e11fe2972819bc48b88c6094b11150e5c8a. I just
> fixed Rasmus' fix wrt radio targets.
Ah, okk. Up to speed now.
Cheers,
--
Suvayu
Open source is the future. It sets us free.
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 14:02 ` Rasmus
@ 2015-04-19 14:36 ` Nicolas Goaziou
2015-04-19 14:55 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 14:36 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> I hope you had a nice time "offline".
Yes I had, thank you.
> I think the label naming is worse now, and I think it's important to
> produce good quality labels akin to what you would expect from e.g.
> AUCTeX.
The goal is completely different. AUCTeX generates good quality labels
because they are meant for user consumption.
OTOH, `org-export-get-reference' creates impossible to guess labels, for
internal use only, e.g., much like what `gensym' does.
> However, I have reverted cf7d64fgit per your request.
Thank you.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 14:36 ` Nicolas Goaziou
@ 2015-04-19 14:55 ` Rasmus
2015-04-19 15:17 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-19 14:55 UTC (permalink / raw)
To: emacs-orgmode
Hi,
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> I hope you had a nice time "offline".
>
> Yes I had, thank you.
Cool!
>> I think the label naming is worse now, and I think it's important to
>> produce good quality labels akin to what you would expect from e.g.
>> AUCTeX.
>
> The goal is completely different. AUCTeX generates good quality labels
> because they are meant for user consumption.
I think it's very important that ox-latex outputs are also consumable. I
don't want to create another LyX. Of course we are very far from this
point.
> OTOH, `org-export-get-reference' creates impossible to guess labels, for
> internal use only, e.g., much like what `gensym' does.
I realize. /I/ think we should do better.
Cheers,
Rasmus
--
Lasciate ogni speranza o voi che entrate: siete nella mani di'machellaio
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 14:55 ` Rasmus
@ 2015-04-19 15:17 ` Nicolas Goaziou
2015-04-19 17:16 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 15:17 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> I think it's very important that ox-latex outputs are also consumable. I
> don't want to create another LyX. Of course we are very far from this
> point.
[...]
> I realize. /I/ think we should do better.
The only way to do better I can think of is to let "ox-latex.el"
implements its own labelling scheme, without relying on
`org-export-get-reference', which is not mandatory anyway.
Anyway, I'm not sure we need to bother since
`org-latex-prefer-user-labels' fills the gap.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 15:17 ` Nicolas Goaziou
@ 2015-04-19 17:16 ` Rasmus
2015-04-19 18:36 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-19 17:16 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> I realize. /I/ think we should do better.
>
> The only way to do better I can think of is to let "ox-latex.el"
> implements its own labelling scheme, without relying on
> `org-export-get-reference', which is not mandatory anyway.
That's what I meant. Or rather a wrapper like org-latex--label. A
mapping like the one that was reverted for ox-latex only. Or are there
pitfalls in that approach?
> Anyway, I'm not sure we need to bother since
> `org-latex-prefer-user-labels' fills the gap.
It does not IMO. I would rather not label sections manually.
—Rasmus
--
Enough with the bla bla!
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 17:16 ` Rasmus
@ 2015-04-19 18:36 ` Nicolas Goaziou
2015-04-20 8:55 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-19 18:36 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> That's what I meant. Or rather a wrapper like org-latex--label. A
> mapping like the one that was reverted for ox-latex only. Or are there
> pitfalls in that approach?
It will not give you predictability either since you cannot guess "4" in
"sec:4". Also, it is dangerous since a user could use \label{sec:4} for
something different. Hence the `gensym'-like approach: we're pretty safe
with "orgheadline4".
What is the real benefit of "sec:4" over "orgheadline4"? Aesthetics?
> It does not IMO. I would rather not label sections manually.
I don't understand that part. Would you mind elaborating a bit?
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-19 18:36 ` Nicolas Goaziou
@ 2015-04-20 8:55 ` Rasmus
2015-04-20 9:09 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-20 8:55 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> Rasmus <rasmus@gmx.us> writes:
>
>> That's what I meant. Or rather a wrapper like org-latex--label. A
>> mapping like the one that was reverted for ox-latex only. Or are there
>> pitfalls in that approach?
>
> It will not give you predictability either since you cannot guess "4" in
> "sec:4".
That's fine.
> Also, it is dangerous since a user could use \label{sec:4} for something
> different.
So we could replace ^org with a mapping, e.g. "headline" → "sec:" and
"table" → "tab:". Then there's the added safety of TYPE-NUMBER and the
expected prefix.
> What is the real benefit of "sec:4" over "orgheadline4"? Aesthetics?
Mostly aesthetics. "sec:4" is expected, though I have no numbers to back
this claim.
I would expect breakage following the change to be pretty rare, but one
example of breakage is fancyref:
\documentclass{article}
\usepackage{fancyref}
\begin{document}
\section{h1}
\label{sec:h1}
\section{h2}
\label{orgheading2}
See \fref{sec:h1} and \fref{orgheading2}
\end{document}
>> It does not IMO. I would rather not label sections manually.
>
> I don't understand that part. Would you mind elaborating a bit?
Given my taste for "standard" prefixes, I would rather not have to label
every section with some custom id to get a standard prefix in the output.
—Rasmus
--
I almost cut my hair, it happened just the other day
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 8:55 ` Rasmus
@ 2015-04-20 9:09 ` Nicolas Goaziou
2015-04-20 9:25 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-20 9:09 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> So we could replace ^org with a mapping, e.g. "headline" → "sec:" and
> "table" → "tab:". Then there's the added safety of TYPE-NUMBER and the
> expected prefix.
Do you mean "orgheadline1" becomes "orgsec:1" and "orgtable1" becomes
"orgtab:1"? In this case, I don't mind, as long as it is limited to
"ox-latex" and derived back-ends.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 9:09 ` Nicolas Goaziou
@ 2015-04-20 9:25 ` Rasmus
2015-04-20 9:58 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-20 9:25 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> Rasmus <rasmus@gmx.us> writes:
>
>> So we could replace ^org with a mapping, e.g. "headline" → "sec:" and
>> "table" → "tab:". Then there's the added safety of TYPE-NUMBER and the
>> expected prefix.
>
> Do you mean "orgheadline1" becomes "orgsec:1" and "orgtable1" becomes
> "orgtab:1"? In this case, I don't mind, as long as it is limited to
> "ox-latex" and derived back-ends.
No, like orgheadline1 → sec:headline1 and orgtable1 → tab:table1. It
seems a bit repetitive.
—Rasmus
--
Bang bang
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 9:25 ` Rasmus
@ 2015-04-20 9:58 ` Nicolas Goaziou
2015-04-20 10:02 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-20 9:58 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> No, like orgheadline1 → sec:headline1 and orgtable1 → tab:table1. It
> seems a bit repetitive.
I think this is no good.
"tab:table1" is something a user can use for its own LaTeX code, e.g. in
a latex block or environment. In this case, it might interfere with
Org's "tab:table1", which could label a different element.
However, "tab:orgtable1" or "sec:orgheadline1" are fine, IMO, since
"org" part can keep the label out of userland.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 9:58 ` Nicolas Goaziou
@ 2015-04-20 10:02 ` Rasmus
2015-04-20 10:33 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-20 10:02 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> However, "tab:orgtable1" or "sec:orgheadline1" are fine, IMO, since
> "org" part can keep the label out of userland.
That's fine with me as well.
—Rasmus
--
Evidence suggests Snowden used a powerful tool called monospaced fonts
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 10:02 ` Rasmus
@ 2015-04-20 10:33 ` Nicolas Goaziou
2015-04-20 13:13 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-20 10:33 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>
>> However, "tab:orgtable1" or "sec:orgheadline1" are fine, IMO, since
>> "org" part can keep the label out of userland.
>
> That's fine with me as well.
Fair enough. Do you want to take care of extending `org-latex--label'
appropriately?
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 10:33 ` Nicolas Goaziou
@ 2015-04-20 13:13 ` Rasmus
2015-04-20 15:35 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-20 13:13 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> Rasmus <rasmus@gmx.us> writes:
>
>> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>>
>>> However, "tab:orgtable1" or "sec:orgheadline1" are fine, IMO, since
>>> "org" part can keep the label out of userland.
>>
>> That's fine with me as well.
>
> Fair enough. Do you want to take care of extending `org-latex--label'
> appropriately?
Can we have conditional dependence on texmathp? If so, maybe something
like the attached, though the latex-environment part is ugly.
Results areq pretty ugly. E.g. for headline, table, figure, latex-math
env, latex-env:
\ref{sec:orgheadline1}, \ref{tab:orgtable1}, \ref{fig:orgparagraph1},
\ref{eq:orglatexenvironment1}, \ref{orglatexenvironment2}
—Rasmus
--
Vote for proprietary math!
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-latex-Use-standard-LaTeX-label-prefixes.patch --]
[-- Type: text/x-diff, Size: 1294 bytes --]
From cc2c027ab611c3abcdc5c7cac46b6f45d682657f Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Mon, 20 Apr 2015 15:06:55 +0200
Subject: [PATCH] ox-latex: Use standard LaTeX label prefixes.
* ox-latex.el (org-latex--label): Use standard LaTeX prefixes.
---
lisp/ox-latex.el | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 2727f1c..075f4e4 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -1067,7 +1067,22 @@ Eventually, if FULL is non-nil, wrap label within \"\\label{}\"."
(and (or user-label force)
(if (and user-label (plist-get info :latex-prefer-user-labels))
user-label
- (org-export-get-reference datum info)))))
+ (concat (case type
+ (headline "sec:")
+ (table "tab:")
+ (latex-environment
+ (and (featurep 'texmathp)
+ (with-temp-buffer
+ (insert (org-element-property :value datum))
+ (goto-char (point-min))
+ (search-forward "}" nil t)
+ (latex-mode)
+ (texmathp))
+ "eq:"))
+ (paragraph
+ (when (org-element-property :caption datum)
+ "fig:")))
+ (org-export-get-reference datum info))))))
(cond ((not full) label)
(label (format "\\label{%s}%s"
label
--
2.3.5
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 13:13 ` Rasmus
@ 2015-04-20 15:35 ` Nicolas Goaziou
2015-04-20 20:11 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-20 15:35 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Can we have conditional dependence on texmathp?
I guess it doesn't hurt. You need to declare it as an external function
in order to silence byte-compiler, tho.
> If so, maybe something like the attached, though the latex-environment
> part is ugly.
Another option is to simply extract environment from :value and decide
if it is a math environment or not. This is what `texmathp' does (i.e.,
`texmathp-tex-commands-default') although the list is configurable
(through `texmathp-tex-commands').
Nesting is not a problem here since you're only interested if the
top-most environment.
WDYT?
> Results areq pretty ugly. E.g. for headline, table, figure, latex-math
> env, latex-env:
>
> \ref{sec:orgheadline1}, \ref{tab:orgtable1}, \ref{fig:orgparagraph1},
> \ref{eq:orglatexenvironment1}, \ref{orglatexenvironment2}
OK.
> + (paragraph
> + (when (org-element-property :caption datum)
> + "fig:")))
Nitpick:
(and (org-element-property ...) "fig:")
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 15:35 ` Nicolas Goaziou
@ 2015-04-20 20:11 ` Rasmus
2015-04-20 21:03 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-20 20:11 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
> Rasmus <rasmus@gmx.us> writes:
>
>> Can we have conditional dependence on texmathp?
>
> I guess it doesn't hurt. You need to declare it as an external function
> in order to silence byte-compiler, tho.
You are right. Thanks.
>> If so, maybe something like the attached, though the latex-environment
>> part is ugly.
>
> Another option is to simply extract environment from :value and decide
> if it is a math environment or not. This is what `texmathp' does (i.e.,
> `texmathp-tex-commands-default') although the list is configurable
> (through `texmathp-tex-commands').
>
> Nesting is not a problem here since you're only interested if the
> top-most environment.
Yeah, I though of that, but that require us to maintain a list of latex
math environments, which may or may not be annoying. If we add such a
variable where should it live? org.el or ox-latex.el?
—Rasmus
--
This message is brought to you by the department of redundant departments
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 20:11 ` Rasmus
@ 2015-04-20 21:03 ` Nicolas Goaziou
2015-04-24 13:35 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-20 21:03 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Yeah, I though of that, but that require us to maintain a list of latex
> math environments, which may or may not be annoying.
Well, if an environment is not recognized as a math one, it still gets
a label. So, that's not a big deal to miss some of them.
> If we add such a variable where should it live? org.el or ox-latex.el?
ox-latex.el. This is a hack. There's no need to leak it elsewhere.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-20 21:03 ` Nicolas Goaziou
@ 2015-04-24 13:35 ` Rasmus
2015-04-24 19:42 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-24 13:35 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 544 bytes --]
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> Yeah, I though of that, but that require us to maintain a list of latex
>> math environments, which may or may not be annoying.
>
> Well, if an environment is not recognized as a math one, it still gets
> a label. So, that's not a big deal to miss some of them.
>
>> If we add such a variable where should it live? org.el or ox-latex.el?
>
> ox-latex.el. This is a hack. There's no need to leak it elsewhere.
Here's an updated patch.
—Rasmus
--
Need more coffee. . .
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-latex-Use-standard-LaTeX-label-prefixes.patch --]
[-- Type: text/x-diff, Size: 1931 bytes --]
From 5442c61a0ab793d0a0cb3507d4355a5d1fb2f623 Mon Sep 17 00:00:00 2001
From: Rasmus <rasmus@gmx.us>
Date: Mon, 20 Apr 2015 15:06:55 +0200
Subject: [PATCH] ox-latex: Use standard LaTeX label prefixes
* ox-latex.el (org-latex--label): Use standard LaTeX prefixes.
(org-latex-math-environments-re): New defconst.
---
lisp/ox-latex.el | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 2727f1c..2d7ffe5 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -209,6 +209,17 @@
("kbordermatrix" . "\\\\"))
"Alist between matrix macros and their row ending.")
+(defconst org-latex-math-environments-re
+ (concat (regexp-opt
+ '("equation" "eqnarray" "math" "displaymath"
+ "align" "gather" "multline" "flalign" "alignat"
+ "xalignat" "xxalignat"
+ "subequations"
+ ;; breqn
+ "dmath" "dseries" "dgroup" "darray"
+ ;; empheq
+ "empheq")) "*?")
+ "Regexp of LaTeX math environments.")
\f
;;; User Configurable Variables
@@ -1067,7 +1078,23 @@ Eventually, if FULL is non-nil, wrap label within \"\\label{}\"."
(and (or user-label force)
(if (and user-label (plist-get info :latex-prefer-user-labels))
user-label
- (org-export-get-reference datum info)))))
+ (concat (case type
+ (headline "sec:")
+ (table "tab:")
+ (latex-environment
+ (save-match-data
+ (let ((string (org-element-property :value datum)))
+ (string-match
+ (nth 1 (assoc "begin" org-latex-regexps))
+ string)
+ (and (org-string-match-p
+ org-latex-math-environments-re
+ (match-string 2 string))
+ "eq:"))))
+ (paragraph
+ (and (org-element-property :caption datum)
+ "fig:")))
+ (org-export-get-reference datum info))))))
(cond ((not full) label)
(label (format "\\label{%s}%s"
label
--
2.3.6
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-24 13:35 ` Rasmus
@ 2015-04-24 19:42 ` Nicolas Goaziou
2015-04-27 22:08 ` Rasmus
0 siblings, 1 reply; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-24 19:42 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Here's an updated patch.
Thank you. Some comments follow.
> +(defconst org-latex-math-environments-re
> + (concat (regexp-opt
> + '("equation" "eqnarray" "math" "displaymath"
> + "align" "gather" "multline" "flalign" "alignat"
> + "xalignat" "xxalignat"
> + "subequations"
> + ;; breqn
> + "dmath" "dseries" "dgroup" "darray"
> + ;; empheq
> + "empheq")) "*?")
ITYM "\\*?", not "*?".
Moreover, I think it is better to check only first line, i.e.,
(format "\\` *\\begin{%s}" (concat (regexp-opt ...) "\\*?"))
> + (save-match-data
> + (let ((string (org-element-property :value datum)))
> + (string-match
> + (nth 1 (assoc "begin" org-latex-regexps))
> + string)
> + (and (org-string-match-p
> + org-latex-math-environments-re
> + (match-string 2 string))
> + "eq:"))))
This is not needed. Choose an appropriate regexp for
`org-latex-math-environments-re' and forget about `org-latex-regexps'.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-24 19:42 ` Nicolas Goaziou
@ 2015-04-27 22:08 ` Rasmus
2015-04-27 22:15 ` Nicolas Goaziou
0 siblings, 1 reply; 35+ messages in thread
From: Rasmus @ 2015-04-27 22:08 UTC (permalink / raw)
To: emacs-orgmode
Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> Here's an updated patch.
>
> Thank you. Some comments follow.
Pushed with your recommendations. Thanks.
--
May the Force be with you
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: Target and link text normalised to `orgtargetn'
2015-04-27 22:08 ` Rasmus
@ 2015-04-27 22:15 ` Nicolas Goaziou
0 siblings, 0 replies; 35+ messages in thread
From: Nicolas Goaziou @ 2015-04-27 22:15 UTC (permalink / raw)
To: Rasmus; +Cc: emacs-orgmode
Rasmus <rasmus@gmx.us> writes:
> Pushed with your recommendations. Thanks.
Thank you.
Regards,
^ permalink raw reply [flat|nested] 35+ messages in thread
end of thread, other threads:[~2015-04-27 22:14 UTC | newest]
Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-14 9:25 Target and link text normalised to `orgtargetn' Suvayu Ali
2015-04-14 12:08 ` Suvayu Ali
2015-04-14 12:59 ` Rasmus
2015-04-14 13:37 ` Andreas Leha
2015-04-15 22:57 ` Rasmus
2015-04-16 0:18 ` Suvayu Ali
2015-04-16 10:11 ` Rasmus
2015-04-18 21:53 ` Nicolas Goaziou
2015-04-19 12:13 ` Suvayu Ali
2015-04-19 12:57 ` Nicolas Goaziou
2015-04-19 13:24 ` Suvayu Ali
2015-04-19 13:40 ` Nicolas Goaziou
2015-04-19 13:49 ` Suvayu Ali
2015-04-19 13:56 ` Nicolas Goaziou
2015-04-19 14:06 ` Suvayu Ali
2015-04-19 14:02 ` Rasmus
2015-04-19 14:36 ` Nicolas Goaziou
2015-04-19 14:55 ` Rasmus
2015-04-19 15:17 ` Nicolas Goaziou
2015-04-19 17:16 ` Rasmus
2015-04-19 18:36 ` Nicolas Goaziou
2015-04-20 8:55 ` Rasmus
2015-04-20 9:09 ` Nicolas Goaziou
2015-04-20 9:25 ` Rasmus
2015-04-20 9:58 ` Nicolas Goaziou
2015-04-20 10:02 ` Rasmus
2015-04-20 10:33 ` Nicolas Goaziou
2015-04-20 13:13 ` Rasmus
2015-04-20 15:35 ` Nicolas Goaziou
2015-04-20 20:11 ` Rasmus
2015-04-20 21:03 ` Nicolas Goaziou
2015-04-24 13:35 ` Rasmus
2015-04-24 19:42 ` Nicolas Goaziou
2015-04-27 22:08 ` Rasmus
2015-04-27 22:15 ` Nicolas Goaziou
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).