* org-e-latex: ignoreheading is not working any more. @ 2012-11-20 23:43 Yagnesh Raghava Yakkala 2012-11-21 12:37 ` Myles English 0 siblings, 1 reply; 9+ messages in thread From: Yagnesh Raghava Yakkala @ 2012-11-20 23:43 UTC (permalink / raw) To: emacs-orgmode Hi, I have been using example setting suggested by Nicolas (http://article.gmane.org/gmane.emacs.orgmode/55972) to tell exporter to skip particular headline (with ignoreheading tag). It seems recent commit made this setup obsolete. could anybody suggest me the alternative setting for this.? Thanks., -- ఎందరో మహానుభావులు అందరికి వందనములు YYR ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2012-11-20 23:43 org-e-latex: ignoreheading is not working any more Yagnesh Raghava Yakkala @ 2012-11-21 12:37 ` Myles English 2012-11-21 13:21 ` Nicolas Goaziou 0 siblings, 1 reply; 9+ messages in thread From: Myles English @ 2012-11-21 12:37 UTC (permalink / raw) To: Yagnesh Raghava Yakkala; +Cc: emacs-orgmode Hi Yagnesh, Yagnesh Raghava Yakkala writes: > I have been using example setting suggested by Nicolas > (http://article.gmane.org/gmane.emacs.orgmode/55972) to tell exporter to skip > particular headline (with ignoreheading tag). > > It seems recent commit made this setup obsolete. could anybody suggest me the > alternative setting for this.? I've been using this, (I notice it is significantly longer than the example in the link above so it may be overkill): #+BEGIN_SRC emacs-lisp (defun my-export-delete-headlines-tagged-noheading(heading-text) "Goto headline `heading-text'" (let ((wasfound t)) (while wasfound (progn (org-element-map (org-element-parse-buffer 'headline) 'headline (lambda (x) (if (member "noheading" (org-element-property :tags x)) (progn (goto-char (org-element-property :begin x)) (delete-region (point) (progn (forward-line 1) (point))) (goto-char (point-min))) (setq wasfound nil))) nil t)) ;; stop at first find, nil) ;; start again from the top of the buffer (goto-char (point-min)))) (add-to-list 'org-export-before-processing-hook 'my-export-delete-headlines-tagged-noheading) #+END_SRC Myles ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2012-11-21 12:37 ` Myles English @ 2012-11-21 13:21 ` Nicolas Goaziou 2012-11-21 15:15 ` Myles English 2013-01-08 15:40 ` Sebastian Hofer 0 siblings, 2 replies; 9+ messages in thread From: Nicolas Goaziou @ 2012-11-21 13:21 UTC (permalink / raw) To: Myles English; +Cc: Yagnesh Raghava Yakkala, emacs-orgmode Hello, Myles English <mylesenglish@gmail.com> writes: > Hi Yagnesh, > > Yagnesh Raghava Yakkala writes: >> I have been using example setting suggested by Nicolas >> (http://article.gmane.org/gmane.emacs.orgmode/55972) to tell exporter to skip >> particular headline (with ignoreheading tag). >> >> It seems recent commit made this setup obsolete. could anybody suggest me the >> alternative setting for this.? There are only two changes: #+BEGIN_SRC emacs-lisp (add-to-list 'org-e-latex-translate-table '(headline . my-e-latex-headline)) #+END_SRC is obsolete since `org-e-latex-translate-table' variable has been removed. If you want to install a new translator, you have to create a derived back-end, which is easy (see the example at the end of that link). Also, the hook will now be called with an argument: the back-end used as a symbol. Otherwise, the thread is still valid. > I've been using this, (I notice it is significantly longer than the > example in the link above so it may be overkill): > > #+BEGIN_SRC emacs-lisp > (defun my-export-delete-headlines-tagged-noheading(heading-text) > "Goto headline `heading-text'" > (let ((wasfound t)) > (while wasfound > (progn (org-element-map > (org-element-parse-buffer 'headline) > 'headline > (lambda (x) > (if (member "noheading" (org-element-property :tags x)) > (progn > (goto-char (org-element-property :begin x)) > (delete-region (point) > (progn > (forward-line 1) > (point))) > (goto-char (point-min))) > (setq wasfound nil))) > nil > t)) ;; stop at first find, > nil) ;; start again from the top of the buffer > (goto-char (point-min)))) > > (add-to-list 'org-export-before-processing-hook > 'my-export-delete-headlines-tagged-noheading) > #+END_SRC Each time you delete an headline, you parse the full buffer again, so, yes, it will be slow. You can simply reverse list returned by `org-element-map' (but don't stop at first find) and walk that list, deleting matching headlines along the way. #+begin_src emacs-lisp (defun my-export-delete-headlines-tagged-noheading (backend) (dolist (hl (nreverse (org-element-map (org-element-parse-buffer 'headline) 'headline 'identity))) (when (member "noheading" (org-element-property :tags hl)) (goto-char (org-element-property :begin hl)) (delete-region (point) (progn (forward-line) (point)))))) #+end_src Another option is to use `org-map-entries', which doesn't require to reverse the results (and doesn't use Org Element). This is left as an exercise. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2012-11-21 13:21 ` Nicolas Goaziou @ 2012-11-21 15:15 ` Myles English 2013-01-08 15:40 ` Sebastian Hofer 1 sibling, 0 replies; 9+ messages in thread From: Myles English @ 2012-11-21 15:15 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Yagnesh Raghava Yakkala, emacs-orgmode Hi Nicolas, Nicolas Goaziou writes: > Hello, > > Myles English <mylesenglish@gmail.com> writes: > >> Hi Yagnesh, >> >> Yagnesh Raghava Yakkala writes: >>> I have been using example setting suggested by Nicolas >>> (http://article.gmane.org/gmane.emacs.orgmode/55972) to tell exporter to skip >>> particular headline (with ignoreheading tag). >>> >>> It seems recent commit made this setup obsolete. could anybody suggest me the >>> alternative setting for this.? > > There are only two changes: > > #+BEGIN_SRC emacs-lisp > (add-to-list 'org-e-latex-translate-table '(headline . my-e-latex-headline)) > #+END_SRC > > is obsolete since `org-e-latex-translate-table' variable has been > removed. If you want to install a new translator, you have to create > a derived back-end, which is easy (see the example at the end of that > link). > > Also, the hook will now be called with an argument: the back-end used as > a symbol. > > Otherwise, the thread is still valid. > >> I've been using this, (I notice it is significantly longer than the >> example in the link above so it may be overkill): >> >> #+BEGIN_SRC emacs-lisp >> (defun my-export-delete-headlines-tagged-noheading(heading-text) >> "Goto headline `heading-text'" >> (let ((wasfound t)) >> (while wasfound >> (progn (org-element-map >> (org-element-parse-buffer 'headline) >> 'headline >> (lambda (x) >> (if (member "noheading" (org-element-property :tags x)) >> (progn >> (goto-char (org-element-property :begin x)) >> (delete-region (point) >> (progn >> (forward-line 1) >> (point))) >> (goto-char (point-min))) >> (setq wasfound nil))) >> nil >> t)) ;; stop at first find, >> nil) ;; start again from the top of the buffer >> (goto-char (point-min)))) >> >> (add-to-list 'org-export-before-processing-hook >> 'my-export-delete-headlines-tagged-noheading) >> #+END_SRC > > Each time you delete an headline, you parse the full buffer again, so, > yes, it will be slow. You can simply reverse list returned by > `org-element-map' (but don't stop at first find) and walk that list, > deleting matching headlines along the way. [kicks self] > #+begin_src emacs-lisp > (defun my-export-delete-headlines-tagged-noheading (backend) > (dolist (hl (nreverse (org-element-map (org-element-parse-buffer 'headline) > 'headline > 'identity))) > (when (member "noheading" (org-element-property :tags hl)) > (goto-char (org-element-property :begin hl)) > (delete-region (point) (progn (forward-line) (point)))))) > #+end_src > > Another option is to use `org-map-entries', which doesn't require to > reverse the results (and doesn't use Org Element). This is left as an > exercise. Thank you, there is lots of useful stuff to learn from in your reply, as always. Myles ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2012-11-21 13:21 ` Nicolas Goaziou 2012-11-21 15:15 ` Myles English @ 2013-01-08 15:40 ` Sebastian Hofer 2013-01-09 15:17 ` Nicolas Goaziou 1 sibling, 1 reply; 9+ messages in thread From: Sebastian Hofer @ 2013-01-08 15:40 UTC (permalink / raw) To: emacs-orgmode At Wed, 21 Nov 2012 14:21:25 +0100, Nicolas Goaziou wrote: > >> I have been using example setting suggested by Nicolas > >> (http://article.gmane.org/gmane.emacs.orgmode/55972) to tell exporter to skip > There are only two changes: > > #+BEGIN_SRC emacs-lisp > (add-to-list 'org-e-latex-translate-table '(headline . my-e-latex-headline)) > #+END_SRC > > is obsolete since `org-e-latex-translate-table' variable has been > removed. If you want to install a new translator, you have to create > a derived back-end, which is easy (see the example at the end of that > link). Hi Nicolas, Using said code-snippet I get following error: funcall: Wrong number of arguments: (lambda (headline contents info) (if (member "ignoreheading" (org-element-property :tags headline)) contents (org-e-latex-headline headline contents info))), 2 Does this have to do with this next comment, or is this unrelated? > Also, the hook will now be called with an argument: the back-end used as > a symbol. > > Otherwise, the thread is still valid. If yes I couldn't figure out which hook you were talking about. Could you give a few more details please? Thanks in advance Sebastian ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2013-01-08 15:40 ` Sebastian Hofer @ 2013-01-09 15:17 ` Nicolas Goaziou 2013-01-09 19:18 ` Sebastian Hofer 0 siblings, 1 reply; 9+ messages in thread From: Nicolas Goaziou @ 2013-01-09 15:17 UTC (permalink / raw) To: Sebastian Hofer; +Cc: emacs-orgmode Hello, Sebastian Hofer <sebhofer@gmail.com> writes: > Using said code-snippet I get following error: > > funcall: Wrong number of arguments: (lambda (headline contents info) > (if (member "ignoreheading" (org-element-property :tags headline)) > contents (org-e-latex-headline headline contents info))), 2 Would you mind pasting again the code you're using? I have lost the track of the thread. > Does this have to do with this next comment, or is this unrelated? > >> Also, the hook will now be called with an argument: the back-end used as >> a symbol. >> >> Otherwise, the thread is still valid. > > If yes I couldn't figure out which hook you were talking about. Could > you give a few more details please? I was talking about `org-export-before-processing-hook' or `org-export-before-parsing-hook', but it should be unrelated to the problem at hand. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2013-01-09 15:17 ` Nicolas Goaziou @ 2013-01-09 19:18 ` Sebastian Hofer 2013-01-10 18:44 ` Nicolas Goaziou 0 siblings, 1 reply; 9+ messages in thread From: Sebastian Hofer @ 2013-01-09 19:18 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Sebastian Hofer, emacs-orgmode At Wed, 09 Jan 2013 16:17:06 +0100, Nicolas Goaziou wrote: > > Hello, > > Sebastian Hofer <sebhofer@gmail.com> writes: > > > Using said code-snippet I get following error: > > > > funcall: Wrong number of arguments: (lambda (headline contents info) > > (if (member "ignoreheading" (org-element-property :tags headline)) > > contents (org-e-latex-headline headline contents info))), 2 > > Would you mind pasting again the code you're using? I have lost the > track of the thread. Sorry, it was stupid not to do it in the first place (I posted from gmane.com and it complained about too much quoted text). Anyway, here is the code I was talking about (from http://article.gmane.org/gmane.emacs.orgmode/55972): #+BEGIN_SRC emacs-lisp (defun my-e-latex-headline (headline contents info) (if (member "ignoreheading" (org-element-property :tags headline)) contents (org-e-latex-headline headline contents info))) #+END_SRC #+BEGIN_SRC emacs-lisp (org-export-define-derived-backend dissertation e-latex :translate-alist ((template . my-e-latex-headline))) (defun org-dissertation-export-to-pdf (&optional subtreep visible-only body-only ext-plist pub-dir) (interactive) (org-e-latex-compile (let ((outfile (org-export-output-file-name ".tex" subtreep pub-dir))) (org-export-to-file 'dissertation outfile subtreep visible-only body-only ext-plist)))) #+END_SRC > > > Does this have to do with this next comment, or is this unrelated? > > > >> Also, the hook will now be called with an argument: the back-end used as > >> a symbol. > >> > >> Otherwise, the thread is still valid. > > > > If yes I couldn't figure out which hook you were talking about. Could > > you give a few more details please? > > I was talking about `org-export-before-processing-hook' or > `org-export-before-parsing-hook', but it should be unrelated to the > problem at hand. > Thanks for your help! Sebastian ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2013-01-09 19:18 ` Sebastian Hofer @ 2013-01-10 18:44 ` Nicolas Goaziou 2013-01-10 19:04 ` Sebastian Hofer 0 siblings, 1 reply; 9+ messages in thread From: Nicolas Goaziou @ 2013-01-10 18:44 UTC (permalink / raw) To: Sebastian Hofer; +Cc: emacs-orgmode Hello, Sebastian Hofer <sebhofer@gmail.com> writes: > #+BEGIN_SRC emacs-lisp > (defun my-e-latex-headline (headline contents info) > (if (member "ignoreheading" (org-element-property :tags headline)) contents > (org-e-latex-headline headline contents info))) > #+END_SRC I suggest to use: (org-export-with-backend 'e-latex headline contents info) instead of (org-e-latex-headline headline contents info) to not depend on the name of the translator function used by the e-latex back-end. > #+BEGIN_SRC emacs-lisp > (org-export-define-derived-backend dissertation e-latex > :translate-alist ((template . my-e-latex-headline))) There's a typo here. It should be: :translate-alist ((headline . my-e-latex-headline)) Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: org-e-latex: ignoreheading is not working any more. 2013-01-10 18:44 ` Nicolas Goaziou @ 2013-01-10 19:04 ` Sebastian Hofer 0 siblings, 0 replies; 9+ messages in thread From: Sebastian Hofer @ 2013-01-10 19:04 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: Sebastian Hofer, emacs-orgmode At Thu, 10 Jan 2013 19:44:32 +0100, Nicolas Goaziou wrote: > > Hello, > > Sebastian Hofer <sebhofer@gmail.com> writes: > > > #+BEGIN_SRC emacs-lisp > > (defun my-e-latex-headline (headline contents info) > > (if (member "ignoreheading" (org-element-property :tags headline)) contents > > (org-e-latex-headline headline contents info))) > > #+END_SRC > > I suggest to use: > > (org-export-with-backend 'e-latex headline contents info) > > instead of > > (org-e-latex-headline headline contents info) > > to not depend on the name of the translator function used by the e-latex > back-end. > > > #+BEGIN_SRC emacs-lisp > > (org-export-define-derived-backend dissertation e-latex > > :translate-alist ((template . my-e-latex-headline))) > > There's a typo here. It should be: > > :translate-alist ((headline . my-e-latex-headline)) That worked perfectly! Thanks! Regards, Sebastian ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-01-10 22:06 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-11-20 23:43 org-e-latex: ignoreheading is not working any more Yagnesh Raghava Yakkala 2012-11-21 12:37 ` Myles English 2012-11-21 13:21 ` Nicolas Goaziou 2012-11-21 15:15 ` Myles English 2013-01-08 15:40 ` Sebastian Hofer 2013-01-09 15:17 ` Nicolas Goaziou 2013-01-09 19:18 ` Sebastian Hofer 2013-01-10 18:44 ` Nicolas Goaziou 2013-01-10 19:04 ` Sebastian Hofer
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.