* footnote export fails if footnote indented @ 2010-01-12 21:37 Dan Davison 2010-01-13 10:51 ` Carsten Dominik 0 siblings, 1 reply; 7+ messages in thread From: Dan Davison @ 2010-01-12 21:37 UTC (permalink / raw) To: emacs org-mode mailing list If you hit <TAB> on a footnote definition, it indents it away from column 1, to align with its heading. However, the footnote definition needs to start in column 1 in order for the footnote to be correctly exported. It would be nice if the footnote exported correctly even when indented (or if that's problematic, then a less preferable solution would be having <TAB> not indent it). Dan --------------------------------------- * A That[1] was a reference to a footnote. * Footnotes [1] This is the footnote --------------------------------------- ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-01-12 21:37 footnote export fails if footnote indented Dan Davison @ 2010-01-13 10:51 ` Carsten Dominik 2010-04-14 14:50 ` Carsten Dominik 0 siblings, 1 reply; 7+ messages in thread From: Carsten Dominik @ 2010-01-13 10:51 UTC (permalink / raw) To: Dan Davison; +Cc: emacs org-mode mailing list [-- Attachment #1: Type: text/plain, Size: 794 bytes --] On Jan 12, 2010, at 10:37 PM, Dan Davison wrote: > If you hit <TAB> on a footnote definition, it indents it away from > column 1, to align with its heading. However, the footnote definition > needs to start in column 1 in order for the footnote to be correctly > exported. It would be nice if the footnote exported correctly even > when > indented (or if that's problematic, then a less preferable solution > would be having <TAB> not indent it). Hi Dan, here is a patch that allows footnote definitions to be detached from the left margin. However, I am not sure if it breaks anything else - so extensive testing would be necessary... Also, renumbering footnotes etc will put them back at the margin currently. I am not sure how that should be handled otherwise.... - Carsten [-- Attachment #2: footnote-detach.patch --] [-- Type: application/octet-stream, Size: 3415 bytes --] diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el index 892bde7..bdff64e 100644 --- a/lisp/org-footnote.el +++ b/lisp/org-footnote.el @@ -62,7 +62,7 @@ "Regular expression for matching footnotes.") (defconst org-footnote-definition-re - (org-re "^\\(\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]\\)") + (org-re "^[ \t]*\\(\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]\\)") "Regular expression matching the definition of a footnote.") (defcustom org-footnote-section "Footnotes" @@ -143,7 +143,12 @@ extracted will be filled again." (defun org-footnote-at-reference-p () "Is the cursor at a footnote reference? If yes, return the beginning position, the label, and the definition, if local." - (when (org-in-regexp org-footnote-re 15) + (when (and (org-in-regexp org-footnote-re 15) + (save-excursion + (goto-char (match-beginning 0)) + (progn (if (equal (char-after) ?\n) (forward-char 1)) t) + (save-match-data + (string-match "\\S-" (buffer-substring (point-at-bol) (point)))))) (list (match-beginning 0) (or (match-string 1) (if (equal (match-string 2) "fn:") nil (match-string 2))) @@ -167,7 +172,7 @@ with start and label of the footnote if there is a definition at point." (interactive "sLabel: ") (org-mark-ring-push) (setq label (org-footnote-normalize-label label)) - (let ((re (format "^\\[%s\\]\\|.\\[%s:" label label)) + (let ((re (format "^[ \t]*\\[%s\\]\\|.\\[%s:" label label)) pos) (save-excursion (setq pos (or (re-search-forward re nil t) @@ -385,13 +390,13 @@ referenced sequence." (setq def (org-trim def)) (save-excursion (goto-char (point-min)) - (if (not (re-search-forward (concat "^\\[" (regexp-quote ref) + (if (not (re-search-forward (concat "^[ \t]*\\[" (regexp-quote ref) "\\]") nil t)) (setq def nil) (setq beg (match-beginning 0)) (setq beg1 (match-end 0)) (re-search-forward - (org-re "^[ \t]*$\\|^\\*+ \\|^\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]") + (org-re "^[ \t]*$\\|^\\*+ \\|^[ \t]*\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]") nil 'move) (setq def (buffer-substring beg1 (or (match-beginning 0) (point-max)))) @@ -524,14 +529,14 @@ and all references of a footnote label." (goto-char (point-min)) (while (re-search-forward org-footnote-re nil t) (setq l (or (match-string 1) (match-string 2))) - (when (equal l label) + (when (and (equal l label) (org-footnote-at-reference-p)) (delete-region (1+ (match-beginning 0)) (match-end 0)) (incf nref))) (goto-char (point-min)) - (setq def-re (concat "^\\[" (regexp-quote label) "\\]")) + (setq def-re (concat "^[ \t]*\\[" (regexp-quote label) "\\]")) (while (re-search-forward def-re nil t) (setq beg (match-beginning 0)) - (if (re-search-forward "^\\[\\|^[ \t]*$\\|^\\*+ " nil t) + (if (re-search-forward "^[ \t]*\\[\\|^[ \t]*$\\|^\\*+ " nil t) (goto-char (match-beginning 0)) (goto-char (point-max))) (delete-region beg (point)) @@ -567,7 +572,7 @@ and all references of a footnote label." (org-footnote-normalize 'sort) (when label (goto-char (point-min)) - (and (re-search-forward (concat "^\\[" (regexp-quote label) "\\]") + (and (re-search-forward (concat "^[ \t]*\\[" (regexp-quote label) "\\]") nil t) (progn (insert " ") (just-one-space))))))) [-- Attachment #3: Type: text/plain, Size: 1 bytes --] [-- Attachment #4: Type: text/plain, Size: 201 bytes --] _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-01-13 10:51 ` Carsten Dominik @ 2010-04-14 14:50 ` Carsten Dominik 2010-04-16 16:53 ` Dan Davison 0 siblings, 1 reply; 7+ messages in thread From: Carsten Dominik @ 2010-04-14 14:50 UTC (permalink / raw) To: Carsten Dominik; +Cc: Dan Davison, emacs org-mode mailing list Hi Dan, have you given this patch any serious testing, and do you have any remarks about it? Thanks. - Carsten On Jan 13, 2010, at 11:51 AM, Carsten Dominik wrote: > > On Jan 12, 2010, at 10:37 PM, Dan Davison wrote: > >> If you hit <TAB> on a footnote definition, it indents it away from >> column 1, to align with its heading. However, the footnote definition >> needs to start in column 1 in order for the footnote to be correctly >> exported. It would be nice if the footnote exported correctly even >> when >> indented (or if that's problematic, then a less preferable solution >> would be having <TAB> not indent it). > > Hi Dan, > > here is a patch that allows footnote definitions to be detached from > the left margin. However, I am not sure if it breaks anything else > - so extensive testing would be necessary... > > Also, renumbering footnotes etc will put them back at the margin > currently. I am not sure how that should be handled otherwise.... > > - Carsten > > <footnote-detach.patch> - Carsten ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-04-14 14:50 ` Carsten Dominik @ 2010-04-16 16:53 ` Dan Davison 2010-04-16 18:11 ` Samuel Wales 0 siblings, 1 reply; 7+ messages in thread From: Dan Davison @ 2010-04-16 16:53 UTC (permalink / raw) To: Carsten Dominik; +Cc: emacs org-mode mailing list Carsten Dominik <dominik@uva.nl> writes: > Hi Dan, > > have you given this patch any serious testing, and do you have > any remarks about it? Hi Carsten, I hadn't forgotten about this but I have been conscious that I wasn't giving it the testing it deserved. I don't export with footnotes that much, and when I do it tends to be to HTML. So I haven't noticed any problems, but perhaps some others who use footnotes more seriously than me could test out this patch for a bit? Sorry, I know I should have sent this email ages ago! Dan --8<---------------cut here---------------start------------->8--- diff --git a/lisp/org-footnote.el b/lisp/org-footnote.el index 84cd7b3..e9a2822 100644 --- a/lisp/org-footnote.el +++ b/lisp/org-footnote.el @@ -62,7 +62,7 @@ "Regular expression for matching footnotes.") (defconst org-footnote-definition-re - (org-re "^\\(\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]\\)") + (org-re "^[ \t]*\\(\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]\\)") "Regular expression matching the definition of a footnote.") (defcustom org-footnote-section "Footnotes" @@ -143,7 +143,12 @@ extracted will be filled again." (defun org-footnote-at-reference-p () "Is the cursor at a footnote reference? If yes, return the beginning position, the label, and the definition, if local." - (when (org-in-regexp org-footnote-re 15) + (when (and (org-in-regexp org-footnote-re 15) + (save-excursion + (goto-char (match-beginning 0)) + (progn (if (equal (char-after) ?\n) (forward-char 1)) t) + (save-match-data + (string-match "\\S-" (buffer-substring (point-at-bol) (point)))))) (list (match-beginning 0) (or (match-string 1) (if (equal (match-string 2) "fn:") nil (match-string 2))) @@ -167,7 +172,7 @@ with start and label of the footnote if there is a definition at point." (interactive "sLabel: ") (org-mark-ring-push) (setq label (org-footnote-normalize-label label)) - (let ((re (format "^\\[%s\\]\\|.\\[%s:" label label)) + (let ((re (format "^[ \t]*\\[%s\\]\\|.\\[%s:" label label)) pos) (save-excursion (setq pos (or (re-search-forward re nil t) @@ -385,13 +390,13 @@ referenced sequence." (setq def (org-trim def)) (save-excursion (goto-char (point-min)) - (if (not (re-search-forward (concat "^\\[" (regexp-quote ref) + (if (not (re-search-forward (concat "^[ \t]*\\[" (regexp-quote ref) "\\]") nil t)) (setq def nil) (setq beg (match-beginning 0)) (setq beg1 (match-end 0)) (re-search-forward - (org-re "^[ \t]*$\\|^\\*+ \\|^\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]") + (org-re "^[ \t]*$\\|^\\*+ \\|^[ \t]*\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]") nil 'move) (setq def (buffer-substring beg1 (or (match-beginning 0) (point-max)))) @@ -524,14 +529,14 @@ and all references of a footnote label." (goto-char (point-min)) (while (re-search-forward org-footnote-re nil t) (setq l (or (match-string 1) (match-string 2))) - (when (equal l label) + (when (and (equal l label) (org-footnote-at-reference-p)) (delete-region (1+ (match-beginning 0)) (match-end 0)) (incf nref))) (goto-char (point-min)) - (setq def-re (concat "^\\[" (regexp-quote label) "\\]")) + (setq def-re (concat "^[ \t]*\\[" (regexp-quote label) "\\]")) (while (re-search-forward def-re nil t) (setq beg (match-beginning 0)) - (if (re-search-forward "^\\[\\|^[ \t]*$\\|^\\*+ " nil t) + (if (re-search-forward "^[ \t]*\\[\\|^[ \t]*$\\|^\\*+ " nil t) (goto-char (match-beginning 0)) (goto-char (point-max))) (delete-region beg (point)) @@ -567,7 +572,7 @@ and all references of a footnote label." (org-footnote-normalize 'sort) (when label (goto-char (point-min)) - (and (re-search-forward (concat "^\\[" (regexp-quote label) "\\]") + (and (re-search-forward (concat "^[ \t]*\\[" (regexp-quote label) "\\]") nil t) (progn (insert " ") (just-one-space))))))) --8<---------------cut here---------------end--------------->8--- > > Thanks. > > - Carsten > > On Jan 13, 2010, at 11:51 AM, Carsten Dominik wrote: > >> >> On Jan 12, 2010, at 10:37 PM, Dan Davison wrote: >> >>> If you hit <TAB> on a footnote definition, it indents it away from >>> column 1, to align with its heading. However, the footnote definition >>> needs to start in column 1 in order for the footnote to be correctly >>> exported. It would be nice if the footnote exported correctly even >>> when >>> indented (or if that's problematic, then a less preferable solution >>> would be having <TAB> not indent it). >> >> Hi Dan, >> >> here is a patch that allows footnote definitions to be detached from >> the left margin. However, I am not sure if it breaks anything else >> - so extensive testing would be necessary... >> >> Also, renumbering footnotes etc will put them back at the margin >> currently. I am not sure how that should be handled otherwise.... >> >> - Carsten >> >> <footnote-detach.patch> > > - Carsten ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-04-16 16:53 ` Dan Davison @ 2010-04-16 18:11 ` Samuel Wales 2010-04-16 18:38 ` Dan Davison 0 siblings, 1 reply; 7+ messages in thread From: Samuel Wales @ 2010-04-16 18:11 UTC (permalink / raw) To: Dan Davison; +Cc: Carsten Dominik, emacs org-mode mailing list Here are 2 test cases for footnotes. Perhaps they can be put in a test directory somewhere if they are useful. My old relatively thorough test case with 11 specific documented points to test for: http://www.mail-archive.com/emacs-orgmode@gnu.org/msg10877.html And my recent one, sloppily put together and reproduced here: * top *** an article sadfkaj sdnfklaj nsfklandsf asd flkajnd sfa *** an article. exporting this to ascii does not export anonymous footnotes I sometimes[fn:3] mix regular[fn:1] footnotes and inline [fn:: There are issues here. For example, I have to type them in manually. You cannot leave empty; it won't accept it. Maybe it has to do with my ido setup. Exporting this to ASCII seems to silent fail. I tried "fn:: text" and "fn::text".] ones[fn:2]. === [fn:1] ordinary. note that if you put point here and do c-c c-c, you will get sent to the next article, which is disconcerting. i expected it to go up to the thing that points to it. this situation, where you have duplicate footnote numbers in the same file, but different org entries, is very common when you refile an article. \par don't know how to separate paragraphs in a footnote in a way that fill-paragraph with filladapt will understand. would be nice if a way were possible, imo. [fn:2] another [fn:3] a third # a comment *** another article ordinary [fn:1], inline[fn:This is a test.], and regular[fn:2] footnotes. === [fn:1] regular [fn:2] usual *** another article asdfj alkdfn akljdn fklajdf askdfn al;ksjnf lajdnf klajdnf skjdhflakjdnf klajnf [fn:1] [fn:1] test *** another article asdknf lakjdnf ak asdkjfn aldjf On 2010-04-16, Dan Davison <davison@stats.ox.ac.uk> wrote: > I hadn't forgotten about this but I have been conscious that I wasn't > giving it the testing it deserved. I don't export with footnotes that > much, and when I do it tends to be to HTML. So I haven't noticed any > problems, but perhaps some others who use footnotes more seriously than > me could test out this patch for a bit? Sorry, I know I should have sent > this email ages ago! -- Q: How many CDC "scientists" does it take to change a lightbulb? A: "You only think it's dark." [CDC has denied a deadly disease for 25 years] ========== Retrovirus: http://www.wpinstitute.org/xmrv/index.html ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-04-16 18:11 ` Samuel Wales @ 2010-04-16 18:38 ` Dan Davison 2010-04-16 19:07 ` Samuel Wales 0 siblings, 1 reply; 7+ messages in thread From: Dan Davison @ 2010-04-16 18:38 UTC (permalink / raw) To: Samuel Wales; +Cc: Carsten Dominik, emacs org-mode mailing list Samuel Wales <samologist@gmail.com> writes: > Here are 2 test cases for footnotes. Perhaps they can be put in a > test directory somewhere if they are useful. Hi Samuel, Thanks. You have obviously thought about this a lot more carefully than me. Is there any chance you could run your test files with Carsten's patch, with the footnote definitions tab indented away from the left margin, and report on whether the patch introduces any new problems? I did quickly try exporting your file but I wasn't sure how to interpret the output. Dan > > My old relatively thorough test case with 11 specific documented > points to test for: > > http://www.mail-archive.com/emacs-orgmode@gnu.org/msg10877.html > > And my recent one, sloppily put together and reproduced here: > > * top > *** an article > sadfkaj sdnfklaj nsfklandsf > asd flkajnd sfa > *** an article. exporting this to ascii does not export anonymous footnotes > I sometimes[fn:3] mix regular[fn:1] footnotes and inline > [fn:: There are issues here. For example, I have to type > them in manually. You cannot leave empty; it won't accept > it. Maybe it has to do with my ido setup. Exporting this > to ASCII seems to silent fail. I tried "fn:: text" and > "fn::text".] ones[fn:2]. > > === > > [fn:1] ordinary. note that if you put point here and do c-c > c-c, you will get sent to the next article, which is > disconcerting. i expected it to go up to the thing that > points to it. this situation, where you have duplicate > footnote numbers in the same file, but different org > entries, is very common when you refile an article. > \par > don't know how to separate paragraphs in a footnote in > a way that fill-paragraph with filladapt will understand. > would be nice if a way were possible, imo. > > [fn:2] another > > [fn:3] a third > # a comment > *** another article > ordinary [fn:1], inline[fn:This is a test.], and > regular[fn:2] footnotes. > > === > > [fn:1] regular > > [fn:2] usual > *** another article > asdfj alkdfn akljdn fklajdf > askdfn al;ksjnf lajdnf klajdnf > skjdhflakjdnf klajnf [fn:1] > > [fn:1] test > *** another article > asdknf lakjdnf ak > asdkjfn aldjf > > > On 2010-04-16, Dan Davison <davison@stats.ox.ac.uk> wrote: >> I hadn't forgotten about this but I have been conscious that I wasn't >> giving it the testing it deserved. I don't export with footnotes that >> much, and when I do it tends to be to HTML. So I haven't noticed any >> problems, but perhaps some others who use footnotes more seriously than >> me could test out this patch for a bit? Sorry, I know I should have sent >> this email ages ago! ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: footnote export fails if footnote indented 2010-04-16 18:38 ` Dan Davison @ 2010-04-16 19:07 ` Samuel Wales 0 siblings, 0 replies; 7+ messages in thread From: Samuel Wales @ 2010-04-16 19:07 UTC (permalink / raw) To: Dan Davison; +Cc: Carsten Dominik, emacs org-mode mailing list On 2010-04-16, Dan Davison <davison@stats.ox.ac.uk> wrote: > Samuel Wales <samologist@gmail.com> writes: > >> Here are 2 test cases for footnotes. Perhaps they can be put in a >> test directory somewhere if they are useful. > > Hi Samuel, > > Thanks. You have obviously thought about this a lot more carefully than > me. Is there any chance you could run your test files with Carsten's > patch, with the footnote definitions tab indented away from the left > margin, and report on whether the patch introduces any new problems? I > did quickly try exporting your file but I wasn't sure how to interpret > the output. For health reasons, I cannot at this time. > > Dan > >> >> My old relatively thorough test case with 11 specific documented >> points to test for: >> >> http://www.mail-archive.com/emacs-orgmode@gnu.org/msg10877.html >> >> And my recent one, sloppily put together and reproduced here: >> >> * top >> *** an article >> sadfkaj sdnfklaj nsfklandsf >> asd flkajnd sfa >> *** an article. exporting this to ascii does not export anonymous >> footnotes >> I sometimes[fn:3] mix regular[fn:1] footnotes and inline >> [fn:: There are issues here. For example, I have to type >> them in manually. You cannot leave empty; it won't accept >> it. Maybe it has to do with my ido setup. Exporting this >> to ASCII seems to silent fail. I tried "fn:: text" and >> "fn::text".] ones[fn:2]. >> >> === >> >> [fn:1] ordinary. note that if you put point here and do c-c >> c-c, you will get sent to the next article, which is >> disconcerting. i expected it to go up to the thing that >> points to it. this situation, where you have duplicate >> footnote numbers in the same file, but different org >> entries, is very common when you refile an article. >> \par >> don't know how to separate paragraphs in a footnote in >> a way that fill-paragraph with filladapt will understand. >> would be nice if a way were possible, imo. >> >> [fn:2] another >> >> [fn:3] a third >> # a comment >> *** another article >> ordinary [fn:1], inline[fn:This is a test.], and >> regular[fn:2] footnotes. >> >> === >> >> [fn:1] regular >> >> [fn:2] usual >> *** another article >> asdfj alkdfn akljdn fklajdf >> askdfn al;ksjnf lajdnf klajdnf >> skjdhflakjdnf klajnf [fn:1] >> >> [fn:1] test >> *** another article >> asdknf lakjdnf ak >> asdkjfn aldjf >> >> >> On 2010-04-16, Dan Davison <davison@stats.ox.ac.uk> wrote: >>> I hadn't forgotten about this but I have been conscious that I wasn't >>> giving it the testing it deserved. I don't export with footnotes that >>> much, and when I do it tends to be to HTML. So I haven't noticed any >>> problems, but perhaps some others who use footnotes more seriously than >>> me could test out this patch for a bit? Sorry, I know I should have sent >>> this email ages ago! > -- Q: How many CDC "scientists" does it take to change a lightbulb? A: "You only think it's dark." [CDC has denied a deadly disease for 25 years] ========== Retrovirus: http://www.wpinstitute.org/xmrv/index.html ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-04-16 19:07 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-01-12 21:37 footnote export fails if footnote indented Dan Davison 2010-01-13 10:51 ` Carsten Dominik 2010-04-14 14:50 ` Carsten Dominik 2010-04-16 16:53 ` Dan Davison 2010-04-16 18:11 ` Samuel Wales 2010-04-16 18:38 ` Dan Davison 2010-04-16 19:07 ` Samuel Wales
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).