* Table of contents for just one section? @ 2014-10-16 3:50 D. C. Toedt 2014-10-20 13:41 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: D. C. Toedt @ 2014-10-16 3:50 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1334 bytes --] I'd like to do sub-TOCs for individual sections and subsections. EXAMPLE *#+TOC: headlines 1* ** Business operations* {{{SUBTOC}}} # Inserts just the level-2 headings for this level-1 section *** Services* {{{SUBTOC}}} # Shows just the level-3 headings for this level-2 section *** Statements of work *** Changes to statements of work *** No obligation to agree to statement of work *** Sales of goods* {{{SUBTOC}}} etc. Any suggestions? Regards, and thanks in advance, --D. C. D. C. (Dell Charles) Toedt III *(my** last name is pronounced "Tate") * Attorney and neutral arbitrator -- tech contracts and intellectual property Lecturer, University of Houston Law Center Editor, Common Draft <http://www.commondraft.org/> project: A readable library of best-practices contract clauses, with extensive citations and commentary, updated often. dc@toedt.com LinkedIn: dctoedt <http://www.linkedin.com/in/dctoedt> Calendar <https://www.google.com/calendar/embed?src=dc.toedt@toedt.com&mode=WEEK> (redacted) O: +1 (713) 364-6545 C: +1 (713) 516-8968 Houston, Texas (Central time zone) Unless expressly stated otherwise, this message is not intended to serve as an electronic signature nor as assent to an agreement. [-- Attachment #2: Type: text/html, Size: 7070 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-16 3:50 Table of contents for just one section? D. C. Toedt @ 2014-10-20 13:41 ` Nicolas Goaziou 2014-10-20 14:06 ` D. C. Toedt 2014-10-26 10:53 ` Rasmus 0 siblings, 2 replies; 24+ messages in thread From: Nicolas Goaziou @ 2014-10-20 13:41 UTC (permalink / raw) To: D. C. Toedt; +Cc: emacs-orgmode Hello, "D. C. Toedt" <dc@toedt.com> writes: > I'd like to do sub-TOCs for individual sections and subsections. We could add a "local" keyword to TOC lines, e.g., #+TOC: headlines 1 local would mean only top level children in current headline. This feature is trivial to add to ox-ascii, probably easy for ox-html or ox-odt, assuming someone can provide the expected code. Implementing it in ox-latex probably boils down to requiring another package (minitoc?). WDYT? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-20 13:41 ` Nicolas Goaziou @ 2014-10-20 14:06 ` D. C. Toedt 2014-10-26 8:15 ` Nicolas Goaziou 2014-10-26 10:53 ` Rasmus 1 sibling, 1 reply; 24+ messages in thread From: D. C. Toedt @ 2014-10-20 14:06 UTC (permalink / raw) To: D. C. Toedt, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1604 bytes --] The local keyword would be great. Right now I'm interested only in HTML export -- I can use Pandoc to convert to anything else. Thanks! D. C. (Dell Charles) Toedt III *(my** last name is pronounced "Tate") * Attorney and neutral arbitrator -- tech contracts and intellectual property Lecturer, University of Houston Law Center Editor, Common Draft <http://www.commondraft.org/> project: A readable library of best-practices contract clauses, with extensive citations and commentary, updated often. dc@toedt.com LinkedIn: dctoedt <http://www.linkedin.com/in/dctoedt> Calendar <https://www.google.com/calendar/embed?src=dc.toedt@toedt.com&mode=WEEK> (redacted) O: +1 (713) 364-6545 C: +1 (713) 516-8968 Houston, Texas (Central time zone) Unless expressly stated otherwise, this message is not intended to serve as an electronic signature nor as assent to an agreement. On Mon, Oct 20, 2014 at 8:41 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Hello, > > "D. C. Toedt" <dc@toedt.com> writes: > > > I'd like to do sub-TOCs for individual sections and subsections. > > We could add a "local" keyword to TOC lines, e.g., > > #+TOC: headlines 1 local > > would mean only top level children in current headline. > > This feature is trivial to add to ox-ascii, probably easy for ox-html or > ox-odt, assuming someone can provide the expected code. > > Implementing it in ox-latex probably boils down to requiring another > package (minitoc?). > > WDYT? > > > Regards, > > -- > Nicolas Goaziou > [-- Attachment #2: Type: text/html, Size: 5234 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-20 14:06 ` D. C. Toedt @ 2014-10-26 8:15 ` Nicolas Goaziou 2014-10-26 11:03 ` D. C. Toedt 2014-10-26 11:32 ` Rasmus 0 siblings, 2 replies; 24+ messages in thread From: Nicolas Goaziou @ 2014-10-26 8:15 UTC (permalink / raw) To: D. C. Toedt; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 286 bytes --] Hello, "D. C. Toedt" <dc@toedt.com> writes: > The local keyword would be great. The following patch implements local tocs for ascii, html and odt export back-ends. I skipped latex because using minitoc looks too tricky to automate. Feedback welcome. Regards, -- Nicolas Goaziou [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-ox-Implement-local-table-of-contents.patch --] [-- Type: text/x-diff, Size: 13308 bytes --] From 56e720f11c172b16a72fb1ddb9ad78405361646d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou <mail@nicolasgoaziou.fr> Date: Sat, 25 Oct 2014 17:14:34 +0200 Subject: [PATCH] ox: Implement local table of contents * lisp/ox.el (org-export-collect-headlines): Allow to collect headlines locally. * testing/lisp/test-ox.el (test-org-export/collect-headlines): Add tests. * lisp/ox-ascii.el (org-ascii--build-toc): (org-ascii-keyword): * lisp/ox-html.el (org-html-toc): (org-html-keyword): * lisp/ox-latex.el (org-latex-keyword): * lisp/ox-odt.el (org-odt-toc): Allow local table of contents. --- lisp/ox-ascii.el | 33 +++++++++++++++++---------------- lisp/ox-html.el | 21 +++++++++++---------- lisp/ox-latex.el | 16 +++++++--------- lisp/ox-odt.el | 35 ++++++++++++++++++----------------- lisp/ox.el | 31 ++++++++++++++++++++++--------- testing/lisp/test-ox.el | 14 +++++++++++++- 6 files changed, 88 insertions(+), 62 deletions(-) diff --git a/lisp/ox-ascii.el b/lisp/ox-ascii.el index daad00f..ff0a5f4 100644 --- a/lisp/ox-ascii.el +++ b/lisp/ox-ascii.el @@ -744,7 +744,7 @@ caption keyword." (org-export-data caption info)) (org-ascii--current-text-width element info) info))))) -(defun org-ascii--build-toc (info &optional n keyword) +(defun org-ascii--build-toc (info &optional n keyword local) "Return a table of contents. INFO is a plist used as a communication channel. @@ -753,7 +753,10 @@ Optional argument N, when non-nil, is an integer specifying the depth of the table. Optional argument KEYWORD specifies the TOC keyword, if any, from -which the table of contents generation has been initiated." +which the table of contents generation has been initiated. + +When optional argument LOCAL is non-nil, build a table of +contents according to the current headline." (let ((title (org-ascii--translate "Table of Contents" info))) (concat title "\n" @@ -775,7 +778,7 @@ which the table of contents generation has been initiated." (or (not (plist-get info :with-tags)) (eq (plist-get info :with-tags) 'not-in-toc)) 'toc)))) - (org-export-collect-headlines info n) "\n"))))) + (org-export-collect-headlines info n keyword) "\n"))))) (defun org-ascii--list-listings (keyword info) "Return a list of listings. @@ -1452,24 +1455,22 @@ contextual information." "Transcode a KEYWORD element from Org to ASCII. CONTENTS is nil. INFO is a plist holding contextual information." - (let ((key (org-element-property :key keyword))) + (let ((key (org-element-property :key keyword)) + (value (org-element-property :value keyword))) (cond - ((string= key "ASCII") - (org-ascii--justify-element - (org-element-property :value keyword) keyword info)) + ((string= key "ASCII") (org-ascii--justify-element value keyword info)) ((string= key "TOC") (org-ascii--justify-element - (let ((value (downcase (org-element-property :value keyword)))) + (let ((case-fold-search t)) (cond - ((string-match "\\<headlines\\>" value) - (let ((depth (or (and (string-match "[0-9]+" value) - (string-to-number (match-string 0 value))) - (plist-get info :with-toc)))) - (org-ascii--build-toc - info (and (wholenump depth) depth) keyword))) - ((string= "tables" value) + ((org-string-match-p "\\<headlines\\>" value) + (let ((depth (and (string-match "\\<[0-9]+\\>" value) + (string-to-number (match-string 0 value)))) + (localp (org-string-match-p "\\<local\\>" value))) + (org-ascii--build-toc info depth keyword localp))) + ((org-string-match-p "\\<tables\\>" value) (org-ascii--list-tables keyword info)) - ((string= "listings" value) + ((org-string-match-p "\\<listings\\>" value) (org-ascii--list-listings keyword info)))) keyword info))))) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index c2152d9..276cb67 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -2017,16 +2017,17 @@ a plist used as a communication channel." \f ;;; Tables of Contents -(defun org-html-toc (depth info) +(defun org-html-toc (depth info &optional scope) "Build a table of contents. -DEPTH is an integer specifying the depth of the table. INFO is a -plist used as a communication channel. Return the table of -contents as a string, or nil if it is empty." +DEPTH is an integer specifying the depth of the table. INFO is +a plist used as a communication channel. Optional argument SCOPE +is an element defining the scope of the table. Return the table +of contents as a string, or nil if it is empty." (let ((toc-entries (mapcar (lambda (headline) (cons (org-html--format-toc-headline headline info) (org-export-get-relative-level headline info))) - (org-export-collect-headlines info depth))) + (org-export-collect-headlines info depth scope))) (outer-tag (if (and (org-html-html5-p info) (plist-get info :html-html5-fancy)) "nav" @@ -2539,13 +2540,13 @@ CONTENTS is nil. INFO is a plist holding contextual information." (cond ((string= key "HTML") value) ((string= key "TOC") - (let ((value (downcase value))) + (let ((case-fold-search t)) (cond ((string-match "\\<headlines\\>" value) - (let ((depth (or (and (string-match "[0-9]+" value) - (string-to-number (match-string 0 value))) - (plist-get info :with-toc)))) - (org-html-toc depth info))) + (let ((depth (and (string-match "\\<[0-9]+\\>" value) + (string-to-number (match-string 0 value)))) + (localp (org-string-match-p "\\<local\\>" value))) + (org-html-toc depth info (and localp keyword)))) ((string= "listings" value) (org-html-list-of-listings info)) ((string= "tables" value) (org-html-list-of-tables info)))))))) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 501648d..2010cc1 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -1755,18 +1755,16 @@ CONTENTS is nil. INFO is a plist holding contextual information." ((string= key "LATEX") value) ((string= key "INDEX") (format "\\index{%s}" value)) ((string= key "TOC") - (let ((value (downcase value))) + (let ((case-fold-search t)) (cond - ((string-match "\\<headlines\\>" value) - (let ((depth (or (and (string-match "[0-9]+" value) - (string-to-number (match-string 0 value))) - (plist-get info :with-toc)))) + ((org-string-match-p "\\<headlines\\>" value) + (let ((depth (and (string-match "\\<[0-9]+\\>" value) + (string-to-number (match-string 0 value))))) (concat - (when (wholenump depth) - (format "\\setcounter{tocdepth}{%s}\n" depth)) + (when depth (format "\\setcounter{tocdepth}{%s}\n" depth)) "\\tableofcontents"))) - ((string= "tables" value) "\\listoftables") - ((string= "listings" value) + ((org-string-match-p "\\<tables\\>" value) "\\listoftables") + ((org-string-match-p "\\<listings\\>" value) (case (plist-get info :latex-listings) ((nil) "\\listoffigures") (minted "\\listoflistings") diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el index cc156ff..fb7be31 100644 --- a/lisp/ox-odt.el +++ b/lisp/ox-odt.el @@ -1149,7 +1149,12 @@ See `org-odt--build-date-styles' for implementation details." (format "<text:a xlink:type=\"simple\" xlink:href=\"#%s\">%s</text:a>" headline-label text)) -(defun org-odt-toc (depth info) +(defun org-odt-toc (depth info &optional scope) + "Build a table of contents. +DEPTH is an integer specifying the depth of the table. INFO is +a plist containing current export properties. Optional argument +SCOPE, when non-nil, defines the scope of the table. Return the +table of contents as a string, or nil." (assert (wholenump depth)) ;; When a headline is marked as a radio target, as in the example below: ;; @@ -1161,18 +1166,12 @@ See `org-odt--build-date-styles' for implementation details." ;; /TOC/, as otherwise there will be duplicated anchors one in TOC ;; and one in the document body. ;; - ;; FIXME-1: Currently exported headings are memoized. `org-export.el' - ;; doesn't provide a way to disable memoization. So this doesn't - ;; work. - ;; - ;; FIXME-2: Are there any other objects that need to be suppressed + ;; FIXME: Are there any other objects that need to be suppressed ;; within TOC? (let* ((title (org-export-translate "Table of Contents" :utf-8 info)) - (headlines (org-export-collect-headlines - info (and (wholenump depth) depth))) + (headlines (org-export-collect-headlines info depth local)) (backend (org-export-create-backend - :parent (org-export-backend-name - (plist-get info :back-end)) + :parent (org-export-backend-name (plist-get info :back-end)) :transcoders (mapcar (lambda (type) (cons type (lambda (d c i) c))) (list 'radio-target))))) @@ -2013,7 +2012,8 @@ contextual information." (defun org-odt-keyword (keyword contents info) "Transcode a KEYWORD element from Org to ODT. -CONTENTS is nil. INFO is a plist holding contextual information." +CONTENTS is nil. INFO is a plist holding contextual +information." (let ((key (org-element-property :key keyword)) (value (org-element-property :value keyword))) (cond @@ -2022,14 +2022,15 @@ CONTENTS is nil. INFO is a plist holding contextual information." ;; FIXME (ignore)) ((string= key "TOC") - (let ((value (downcase value))) + (let ((case-fold-search t)) (cond - ((string-match "\\<headlines\\>" value) - (let ((depth (or (and (string-match "[0-9]+" value) + ((org-string-match-p "\\<headlines\\>" value) + (let ((depth (or (and (string-match "\\<[0-9]+\\>" value) (string-to-number (match-string 0 value))) - (plist-get info :with-toc)))) - (when (wholenump depth) (org-odt-toc depth info)))) - ((member value '("tables" "figures" "listings")) + (plist-get info :headline-levels))) + (localp (org-string-match-p "\\<local\\>" value))) + (org-odt-toc depth info (and localp keyword)))) + ((org-string-match-p "tables\\|figures\\|listings" value) ;; FIXME (ignore)))))))) diff --git a/lisp/ox.el b/lisp/ox.el index f018497..317a0ad 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -4774,7 +4774,7 @@ return nil." ;; `org-export-collect-tables', `org-export-collect-figures' and ;; `org-export-collect-listings' can be derived from it. -(defun org-export-collect-headlines (info &optional n) +(defun org-export-collect-headlines (info &optional n scope) "Collect headlines in order to build a table of contents. INFO is a plist used as a communication channel. @@ -4784,15 +4784,28 @@ the table of contents. Otherwise, it is set to the value of the last headline level. See `org-export-headline-levels' for more information. +Optional argument SCOPE, when non-nil, is an element. If it is +a headline, only children of SCOPE are collected. Otherwise, +collect children of the headline containing provided element. If +there is no such headline, collect all headlines. In any case, +argument N becomes relative to the level of that headline. + Return a list of all exportable headlines as parsed elements. -Footnote sections, if any, will be ignored." - (let ((limit (plist-get info :headline-levels))) - (setq n (if (wholenump n) (min n limit) limit)) - (org-element-map (plist-get info :parse-tree) 'headline - #'(lambda (headline) - (unless (org-element-property :footnote-section-p headline) - (let ((level (org-export-get-relative-level headline info))) - (and (<= level n) headline)))) +Footnote sections are ignored." + (let* ((scope (cond ((not scope) (plist-get info :parse-tree)) + ((eq (org-element-type scope) 'headline) scope) + ((org-export-get-parent-headline scope)) + (t (plist-get info :parse-tree)))) + (limit (plist-get info :headline-levels)) + (n (if (not (wholenump n)) limit + (min (if (eq (org-element-type scope) 'org-data) n + (+ (org-export-get-relative-level scope info) n)) + limit)))) + (org-element-map (org-element-contents scope) 'headline + (lambda (headline) + (unless (org-element-property :footnote-section-p headline) + (let ((level (org-export-get-relative-level headline info))) + (and (<= level n) headline)))) info))) (defun org-export-collect-elements (type info &optional predicate) diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el index 9a0e787..e74220c 100644 --- a/testing/lisp/test-ox.el +++ b/testing/lisp/test-ox.el @@ -3075,7 +3075,19 @@ Another text. (ref:text) (= 1 (length (org-test-with-parsed-data "#+OPTIONS: H:1\n* H1\n** H2" - (org-export-collect-headlines info 2)))))) + (org-export-collect-headlines info 2))))) + ;; Collect headlines locally. + (should + (= 2 + (org-test-with-parsed-data "* H1\n** H2\n** H3" + (let ((scope (org-element-map tree 'headline #'identity info t))) + (length (org-export-collect-headlines info nil scope)))))) + ;; When collecting locally, optional level is relative. + (should + (= 1 + (org-test-with-parsed-data "* H1\n** H2\n*** H3" + (let ((scope (org-element-map tree 'headline #'identity info t))) + (length (org-export-collect-headlines info 1 scope))))))) \f -- 2.1.2 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 8:15 ` Nicolas Goaziou @ 2014-10-26 11:03 ` D. C. Toedt 2015-03-16 22:35 ` D. C. Toedt 2014-10-26 11:32 ` Rasmus 1 sibling, 1 reply; 24+ messages in thread From: D. C. Toedt @ 2014-10-26 11:03 UTC (permalink / raw) To: D. C. Toedt, emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 1272 bytes --] Many thanks! I'll wait till this shows up in the package updater (I've toyed with Git only enough to be dangerous) but am eagerly looking forward to trying it. D. C. (Dell Charles) Toedt III *(my** last name is pronounced "Tate") * Attorney and neutral arbitrator -- tech contracts and intellectual property Lecturer, University of Houston Law Center Editor, Common Draft <http://www.commondraft.org/> contract form file dc@toedt.com LinkedIn: dctoedt <http://www.linkedin.com/in/dctoedt> Calendar <https://www.google.com/calendar/embed?src=dc.toedt@toedt.com&mode=WEEK> (redacted) O: +1 (713) 364-6545 C: +1 (713) 516-8968 Houston, Texas (Central time zone) Unless expressly stated otherwise, this message is not intended to serve as an electronic signature nor as assent to an agreement. On Sun, Oct 26, 2014 at 3:15 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > Hello, > > "D. C. Toedt" <dc@toedt.com> writes: > > > The local keyword would be great. > > The following patch implements local tocs for ascii, html and odt export > back-ends. I skipped latex because using minitoc looks too tricky to > automate. > > Feedback welcome. > > > Regards, > > -- > Nicolas Goaziou > [-- Attachment #2: Type: text/html, Size: 4503 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 11:03 ` D. C. Toedt @ 2015-03-16 22:35 ` D. C. Toedt 2015-03-16 22:47 ` Rasmus 2015-03-16 23:13 ` Thomas S. Dye 0 siblings, 2 replies; 24+ messages in thread From: D. C. Toedt @ 2015-03-16 22:35 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 2580 bytes --] I see this feature is now in the beta of Org-Mode 8.3. Excellent! I'm doing several things with it in the forthcoming release of the Common Draft contract clause library (linked below). I also see that there now seems to be some reluctance by the maintainers to accept donations. (See http://comments.gmane.org/gmane.emacs.orgmode/83318). Has that been resolved? I'd like to do a donation. *D. C. Toedt III **(I go by "D. C.," which stands for Dell Charles; my** last name is pronounced "Tate") * Attorney and neutral arbitrator -- tech contracts and intellectual property Editor, Common Draft <http://www.commondraft.org/> contract clauses and templates, with research notes Lecturer, University of Houston Law Center dc@toedt.com LinkedIn: dctoedt <http://www.linkedin.com/in/dctoedt> Calendar <https://www.google.com/calendar/embed?src=dc.toedt@toedt.com&mode=WEEK> (redacted) O: +1 (713) 364-6545 C: +1 (713) 516-8968 Houston, Texas (Central time zone) Unless expressly stated otherwise, this message is not intended to serve as an electronic signature nor as assent to an agreement. On Sun, Oct 26, 2014 at 6:03 AM, D. C. Toedt <dc@toedt.com> wrote: > Many thanks! I'll wait till this shows up in the package updater (I've > toyed with Git only enough to be dangerous) but am eagerly looking forward > to trying it. > > > > D. C. (Dell Charles) Toedt III *(my** last name is pronounced "Tate") * > Attorney and neutral arbitrator -- tech contracts and intellectual property > Lecturer, University of Houston Law Center > Editor, Common Draft <http://www.commondraft.org/> contract form file > dc@toedt.com LinkedIn: dctoedt <http://www.linkedin.com/in/dctoedt> > Calendar > <https://www.google.com/calendar/embed?src=dc.toedt@toedt.com&mode=WEEK> > (redacted) > O: +1 (713) 364-6545 C: +1 (713) 516-8968 > > > > Houston, Texas (Central time zone) > > Unless expressly stated otherwise, this message is not intended > to serve as an electronic signature nor as assent to an agreement. > > > > On Sun, Oct 26, 2014 at 3:15 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> > wrote: > >> Hello, >> >> "D. C. Toedt" <dc@toedt.com> writes: >> >> > The local keyword would be great. >> >> The following patch implements local tocs for ascii, html and odt export >> back-ends. I skipped latex because using minitoc looks too tricky to >> automate. >> >> Feedback welcome. >> >> >> Regards, >> >> -- >> Nicolas Goaziou >> > > [-- Attachment #2: Type: text/html, Size: 10102 bytes --] ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-03-16 22:35 ` D. C. Toedt @ 2015-03-16 22:47 ` Rasmus 2015-03-16 23:13 ` Thomas S. Dye 1 sibling, 0 replies; 24+ messages in thread From: Rasmus @ 2015-03-16 22:47 UTC (permalink / raw) To: emacs-orgmode Hi, "D. C. Toedt" <dc@toedt.com> writes: > I see this feature is now in the beta of Org-Mode 8.3. Excellent! I'm > doing several things with it in the forthcoming release of the Common Draft > contract clause library (linked below). > > I also see that there now seems to be some reluctance by the maintainers to > accept donations. (See http://comments.gmane.org/gmane.emacs.orgmode/83318). > Has that been resolved? I'd like to do a donation. Nicolas implemented the feature you are talking about. You could get in touch with him. For general donations there's a button on the main Org site. As to the discussion you cite, I don't know. Hope it helps, Rasmus -- I feel emotional landscapes they puzzle me ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-03-16 22:35 ` D. C. Toedt 2015-03-16 22:47 ` Rasmus @ 2015-03-16 23:13 ` Thomas S. Dye 1 sibling, 0 replies; 24+ messages in thread From: Thomas S. Dye @ 2015-03-16 23:13 UTC (permalink / raw) To: D. C. Toedt; +Cc: emacs-orgmode Aloha D. C., "D. C. Toedt" <dc@toedt.com> writes: > I also see that there now seems to be some reluctance by the maintainers to > accept donations. (See http://comments.gmane.org/gmane.emacs.orgmode/83318). > Has that been resolved? I'd like to do a donation. I think that was just Carsten's reluctance as he scaled back his Org mode work. So, yes, I believe it has been resolved. All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 8:15 ` Nicolas Goaziou 2014-10-26 11:03 ` D. C. Toedt @ 2014-10-26 11:32 ` Rasmus 2014-10-26 13:01 ` Nicolas Goaziou 1 sibling, 1 reply; 24+ messages in thread From: Rasmus @ 2014-10-26 11:32 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > I skipped latex because using minitoc looks too tricky to > automate. Sorry, I didn't see this when I posted my other post. I think we can do it with titletoc. I have used other functionality of titletoc, and it 'doesn't sucks'ᵀᴹ. Below is an example. The output is more inline with normal tocs, but you can also style it [I've used this for making paragraph-TOCs in the past]. So ox-latex needs to insert at least the following to initialize a local TOC \startcontents[ID-level] % need not be unique and might not be neceasary \printcontents[ID-level]{}{(1+ level)}{TOC OPTIONS} And, importantly — and mildely annoyingly — \startcontents[ID] *after* the next heading of the same level. There are some preamble options, but since we are doing it programically, it might be safer to insert it into the body. It seems it need not be same unique ID. An example: \documentclass{book} \usepackage{titletoc} \begin{document} \part{p1} \startcontents[level-0] \printcontents[level-0]{}{0}{\setcounter{tocdepth}{2}} \chapter{c1} \startcontents[level-1] \printcontents[level-1]{}{1}{\setcounter{tocdepth}{1}} \section{s1} \subsection{s2} \chapter{c2} \startcontents[level-1] \section{s3} \part{p2} \startcontents[level-0] \chapter{c3} \end{document} The only "challenge" is to insert \startcontents[ID] in the next headline of same level. The brute force method would be very bad. Maybe doing it like section numbers are determined? Let me know what you think and whether you will do it. —Rasmus -- What will be next? ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 11:32 ` Rasmus @ 2014-10-26 13:01 ` Nicolas Goaziou 2014-10-26 15:01 ` Rasmus 0 siblings, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2014-10-26 13:01 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Hello, Rasmus <rasmus@gmx.us> writes: > I think we can do it with titletoc. I have used other functionality > of titletoc, and it 'doesn't sucks'ᵀᴹ. Below is an example. The > output is more inline with normal tocs, but you can also style it > [I've used this for making paragraph-TOCs in the past]. > > So ox-latex needs to insert at least the following to initialize a > local TOC > > \startcontents[ID-level] % need not be unique and might not be neceasary > \printcontents[ID-level]{}{(1+ level)}{TOC OPTIONS} > > And, importantly — and mildely annoyingly — \startcontents[ID] *after* > the next heading of the same level. I don't quite get this part. Does that string need to be inserted only after the second sibling (i.e., not after the third, too)? What happens if there is no other sibling? > There are some preamble options, but since we are doing it > programically, it might be safer to insert it into the body. The patch will not insert "\usepackage{titletoc}" for the user, however, à la `org-latex-listings'. > It seems it need not be same unique ID. > > An example: > > \documentclass{book} > \usepackage{titletoc} > \begin{document} > \part{p1} > \startcontents[level-0] > \printcontents[level-0]{}{0}{\setcounter{tocdepth}{2}} > \chapter{c1} > \startcontents[level-1] > \printcontents[level-1]{}{1}{\setcounter{tocdepth}{1}} > \section{s1} \subsection{s2} > \chapter{c2} > \startcontents[level-1] > \section{s3} > \part{p2} > \startcontents[level-0] > \chapter{c3} > \end{document} > > The only "challenge" is to insert \startcontents[ID] in the next > headline of same level. The brute force method would be very bad. What do you call the "brute force"? > Maybe doing it like section numbers are determined? What do you mean? > Let me know what you think and whether you will do it. I can try to implement it. I also note that these tocs do not have any title. Would it make sense to remove title from local tocs in other back-ends too? Thanks for your feedback. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 13:01 ` Nicolas Goaziou @ 2014-10-26 15:01 ` Rasmus 2014-10-26 15:10 ` Rasmus 2015-01-11 21:49 ` Nicolas Goaziou 0 siblings, 2 replies; 24+ messages in thread From: Rasmus @ 2014-10-26 15:01 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> I think we can do it with titletoc. I have used other functionality >> of titletoc, and it 'doesn't sucks'ᵀᴹ. Below is an example. The >> output is more inline with normal tocs, but you can also style it >> [I've used this for making paragraph-TOCs in the past]. >> >> So ox-latex needs to insert at least the following to initialize a >> local TOC >> >> \startcontents[ID-level] % need not be unique and might not be neceasary >> \printcontents[ID-level]{}{(1+ level)}{TOC OPTIONS} >> >> And, importantly — and mildely annoyingly — \startcontents[ID] *after* >> the next heading of the same level. > > I don't quite get this part. Does that string need to be inserted only > after the second sibling (i.e., not after the third, too)? What happens > if there is no other sibling? Ah, it's much easier to use \stopcontents[level-i] to end contents collection. Revising the example: \documentclass{book} \usepackage{titletoc} \begin{document} \part{p1} \startcontents[level-0] \printcontents[level-0]{}{0}{\setcounter{tocdepth}{2}} \chapter{c1} \startcontents[level-1] \printcontents[level-1]{}{1}{\setcounter{tocdepth}{1}} \section{s1} \subsection{s2} \stopcontents[level-1] \chapter{c2} \section{s3} \stopcontents[level-0] \part{p2}\chapter{c3} \end{document} Note that the contents is determined by the .pcf file. Maybe that's easier to to understand than my babeling. Also, "pcf" should be added to `org-latex-logfiles-extensions'. >> There are some preamble options, but since we are doing it >> programically, it might be safer to insert it into the body. > > The patch will not insert "\usepackage{titletoc}" for the user, however, > à la `org-latex-listings'. Great. > What do you call the "brute force"? I meant to insert \startcontents[ID-level] after each, say, chapter unconditionally rather than inserterting as few \startcontents[ID-level] as possible. But ignore that: \stopcontents[ID-level] it's much cleaner. >> Let me know what you think and whether you will do it. > > I can try to implement it. > > I also note that these tocs do not have any title. Would it make sense > to remove title from local tocs in other back-ends too? No idea. Both makes sense, but maybe including the TOC-title is too verbose? In any case, I think it's easy to add a title if you. Based on article.cls and book.cls, I think we can generalize the toc-title to "heading one level down in level and unnumbered with title \contentsname". The TOC title for chapter is thus \section*{\contentsname}. For \part it's \chapter*{\contentsname}. I guess you can use the cdr in level part of `org-latex-classes', though it would be incompatible with e.g. \addsec{·} of KOMA-Script. —Rasmus Article.cls: \newcommand\tableofcontents{% \section*{\contentsname \@mkboth{% \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% \@starttoc{toc}% } Book.cls: \newcommand\tableofcontents{% \if@twocolumn \@restonecoltrue\onecolumn \else \@restonecolfalse \fi \chapter*{\contentsname \@mkboth{% \MakeUppercase\contentsname}{\MakeUppercase\contentsname}}% \@starttoc{toc}% \if@restonecol\twocolumn\fi } —Rasmus -- And I faced endless streams of vendor-approved Ikea furniture. . . ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 15:01 ` Rasmus @ 2014-10-26 15:10 ` Rasmus 2015-01-11 21:49 ` Nicolas Goaziou 1 sibling, 0 replies; 24+ messages in thread From: Rasmus @ 2014-10-26 15:10 UTC (permalink / raw) To: emacs-orgmode Rasmus <rasmus@gmx.us> writes: >> I also note that these tocs do not have any title. Would it make sense >> to remove title from local tocs in other back-ends too? > > No idea. Both makes sense, but maybe including the TOC-title is too > verbose? In any case, I think it's easy to add a title if you. Based > on article.cls and book.cls, I think we can generalize the toc-title > to "heading one level down in level and unnumbered with title > \contentsname". The TOC title for chapter is thus > \section*{\contentsname}. For \part it's \chapter*{\contentsname}. I > guess you can use the cdr in level part of `org-latex-classes', though > it would be incompatible with e.g. \addsec{·} of KOMA-Script. To be clear for chapters the command would be: \printcontents[level-1]{}{0}{\setcounter{tocdepth}{1}% \section*{\contentsname}} -- C is for Cookie ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-26 15:01 ` Rasmus 2014-10-26 15:10 ` Rasmus @ 2015-01-11 21:49 ` Nicolas Goaziou 2015-01-11 22:37 ` Rasmus 1 sibling, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-11 21:49 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Hello, Rasmus <rasmus@gmx.us> writes: > Ah, it's much easier to use \stopcontents[level-i] to end contents > collection. Revising the example: > > \documentclass{book} > \usepackage{titletoc} > \begin{document} > \part{p1} > \startcontents[level-0] > \printcontents[level-0]{}{0}{\setcounter{tocdepth}{2}} > \chapter{c1} > \startcontents[level-1] > \printcontents[level-1]{}{1}{\setcounter{tocdepth}{1}} > \section{s1} \subsection{s2} > \stopcontents[level-1] > \chapter{c2} > \section{s3} > \stopcontents[level-0] > \part{p2}\chapter{c3} > \end{document} > > Note that the contents is determined by the .pcf file. Maybe that's > easier to to understand than my babeling. Also, "pcf" should be added > to `org-latex-logfiles-extensions'. Done. > No idea. Both makes sense, but maybe including the TOC-title is too > verbose? Local TOC have no title. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-11 21:49 ` Nicolas Goaziou @ 2015-01-11 22:37 ` Rasmus 2015-01-12 8:38 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: Rasmus @ 2015-01-11 22:37 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Hello, > > Rasmus <rasmus@gmx.us> writes: > >> Ah, it's much easier to use \stopcontents[level-i] to end contents >> collection. Revising the example: >> >> \documentclass{book} >> \usepackage{titletoc} >> \begin{document} >> \part{p1} >> \startcontents[level-0] >> \printcontents[level-0]{}{0}{\setcounter{tocdepth}{2}} >> \chapter{c1} >> \startcontents[level-1] >> \printcontents[level-1]{}{1}{\setcounter{tocdepth}{1}} >> \section{s1} \subsection{s2} >> \stopcontents[level-1] >> \chapter{c2} >> \section{s3} >> \stopcontents[level-0] >> \part{p2}\chapter{c3} >> \end{document} >> >> Note that the contents is determined by the .pcf file. Maybe that's >> easier to to understand than my babeling. Also, "pcf" should be >> added >> to `org-latex-logfiles-extensions'. > > Done. That looks cool! Thanks! One more thing. For LaTeX, *we must load titletoc before hyperref*. E.g. cf. here: http://tex.stackexchange.com/questions/79547/weird-behavior-of-partial-toc-with-titletoc Or just try this document: #+LATEX_HEADER: \usepackage{titletoc} * section 1 #+TOC: headlines 1 local ** sub 1 Which produces (in LaTeX): [full-TOC] 1. SECTION 1 section.1 ← artifact from loading after hyperref [sub-toc] 1.1 SUB 1 * Solutions 1. We could use org-latex-packages-alist but that's another forced dependency; ugh! 2. Alternatively, we could ensure that hyperref is always loaded last which is the almost-always safe rule of thumb rule anyway¹. Since we already have org-latex-hyperref-template we could drop hyperref from org-latex-packages-alist and make its presence implicit based on that variable. 3. Or we can add to the manual this deficit and advice how to solve it "manually". 4. It's also possible to solve it on the LaTeX side with something like \BeforePackage from KOMA-Script. Again, more dependencies. 5. We could provide placement mechanisms to #+LATEX_HEADER-keywords Of these I think 2. or 1. are the acceptable solutions. 1. is easier, but as adds more dependencies which sucks. So I prefer 2. WDYT? —Rasmus Footnotes: ¹ Exceptions, including some notable ones (it's a mess): http://tex.stackexchange.com/questions/1863/which-packages-should-be-loaded-after-hyperref-instead-of-before -- A page of history is worth a volume of logic ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-11 22:37 ` Rasmus @ 2015-01-12 8:38 ` Nicolas Goaziou 2015-01-12 10:45 ` Rasmus 0 siblings, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-12 8:38 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > One more thing. For LaTeX, *we must load titletoc before hyperref*. Requiring packages is not our problem. > 3. Or we can add to the manual this deficit and advice how to solve it > "manually". I don't mind updating the footnote relative to titletoc package in the manual. Do you want to provide a patch? Regards, ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-12 8:38 ` Nicolas Goaziou @ 2015-01-12 10:45 ` Rasmus 2015-01-12 23:12 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: Rasmus @ 2015-01-12 10:45 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >> One more thing. For LaTeX, *we must load titletoc before hyperref*. > > Requiring packages is not our problem. For titletoc, you can only enable it by either 1. adding a new org-latex-class 2. insert titletoc in org-latex-default-packages-alist manually. org-latex-packages-alist won't work as it's inserted later. This seems like a problem to me. [I'm sure there also exits a clever filter that can do it]. >> 3. Or we can add to the manual this deficit and advice how to solve it >> "manually". > > I don't mind updating the footnote relative to titletoc package in the > manual. Do you want to provide a patch? I can add documentation, but please reconfirm that you find the above limitations acceptable and want to see suggestions of modifying org-latex-packages-alist in the manual! —Rasmus -- m-mm-mmm-mmmm bacon! ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-12 10:45 ` Rasmus @ 2015-01-12 23:12 ` Nicolas Goaziou 2015-01-13 1:23 ` Rasmus 0 siblings, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-12 23:12 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > I can add documentation, but please reconfirm that you find the above > limitations acceptable and want to see suggestions of modifying > org-latex-packages-alist in the manual! AFAIU, this is the only solution since we do not support titletoc in core. The modification is pretty trivial, too. Regards, ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-12 23:12 ` Nicolas Goaziou @ 2015-01-13 1:23 ` Rasmus 2015-01-13 9:30 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: Rasmus @ 2015-01-13 1:23 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > AFAIU, this is the only solution since we do not support titletoc in > core. As said, I'd prefer load hyperref via org-latex-hyperref-template, but it's probably too big a change too late. Though, it would resolve the "issue" that if I do (setq org-latex-default-packages-alist (delete '("" "hyperref" nil) org-latex-default-packages-alist)) Hypersetup is still inserted. > The modification is pretty trivial, too. Of course, but isn't it contradicting the docstring of org-latex-default-packages-alist? > Therefore you should not modify this variable unless you know what you > are doing. Unless I've managed to convenience you otherwise I will add a footnote explaining and recommending the following snippet (with-eval-after-load 'ox-latex (require 'cl) (let* ((packages (mapcar (lambda (elt) (and (listp elt) (nth 1 elt))) org-latex-default-packages-alist)) (pos (position "hyperref" packages :test 'equal)) (titletocp (member "titletoc" packages))) (when (and pos (not titletocp)) (push '("" "titletoc" nil) (nthcdr pos org-latex-default-packages-alist))))) Cheers, Rasmus -- . . . The proofs are technical in nature and provides no real understanding ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-13 1:23 ` Rasmus @ 2015-01-13 9:30 ` Nicolas Goaziou 2015-01-13 10:21 ` Rasmus 0 siblings, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-13 9:30 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > As said, I'd prefer load hyperref via org-latex-hyperref-template, but > it's probably too big a change too late. Though, it would resolve the > "issue" that if I do > > (setq org-latex-default-packages-alist > (delete '("" "hyperref" nil) > org-latex-default-packages-alist)) > > Hypersetup is still inserted. The issue is not to remove hyperref, which is a default package for a good reason. The problem is to require titletoc before hyperref. IOW, this is orthogonal to the problem at hand. > Of course, but isn't it contradicting the docstring of > org-latex-default-packages-alist? No it isn't. It is a defcustom after all, and the manual can ensure the user knows what he is doing. > Unless I've managed to convenience you otherwise I will add a footnote > explaining and recommending the following snippet > > (with-eval-after-load 'ox-latex > (require 'cl) > (let* ((packages (mapcar (lambda (elt) (and (listp elt) (nth 1 elt))) > org-latex-default-packages-alist)) > (pos (position "hyperref" packages :test 'equal)) > (titletocp (member "titletoc" packages))) > (when (and pos (not titletocp)) > (push '("" "titletoc" nil) > (nthcdr pos org-latex-default-packages-alist))))) It is way too opaque IMO. Suggesting to put ("" "titletoc" nil) before ("" hyperref nil) should be enough. Regards, ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-13 9:30 ` Nicolas Goaziou @ 2015-01-13 10:21 ` Rasmus 2015-01-13 10:43 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: Rasmus @ 2015-01-13 10:21 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> As said, I'd prefer load hyperref via org-latex-hyperref-template, but >> it's probably too big a change too late. Though, it would resolve the >> "issue" that if I do >> >> (setq org-latex-default-packages-alist >> (delete '("" "hyperref" nil) >> org-latex-default-packages-alist)) >> >> Hypersetup is still inserted. > > The issue is not to remove hyperref, which is a default package for > a good reason. The problem is to require titletoc before hyperref. I was putting this to further support another solution, namely moving hyperref to a single defcustom, allowing hyperref to be inserted after all other header-lines. > IOW, this is orthogonal to the problem at hand. I disagree. >> Unless I've managed to convenience you otherwise I will add a footnote >> explaining and recommending the following snippet >> >> (with-eval-after-load 'ox-latex >> (require 'cl) >> (let* ((packages (mapcar (lambda (elt) (and (listp elt) (nth 1 elt))) >> org-latex-default-packages-alist)) >> (pos (position "hyperref" packages :test 'equal)) >> (titletocp (member "titletoc" packages))) >> (when (and pos (not titletocp)) >> (push '("" "titletoc" nil) >> (nthcdr pos org-latex-default-packages-alist))))) > > It is way too opaque IMO. Suggesting to put ("" "titletoc" nil) before > ("" hyperref nil) should be enough. That's what it does... But without the need of having a direct copy of org-latex-default-packages-alist in your init.el. I'm not suggesting to put the snippet there without any prose. —Rasmus -- When in doubt, do it! ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-13 10:21 ` Rasmus @ 2015-01-13 10:43 ` Nicolas Goaziou 2015-01-13 11:56 ` Rasmus 0 siblings, 1 reply; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-13 10:43 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > I was putting this to further support another solution, namely moving > hyperref to a single defcustom, allowing hyperref to be inserted after all > other header-lines. As you pointed out already, moving hyperref after all other header lines introduces problems with another set of packages. Therefore, we could end up with package combinations that this variable couldn't handle. > That's what it does... But without the need of having a direct copy of > org-latex-default-packages-alist in your init.el. I'm not suggesting to > put the snippet there without any prose. `org-latex-default-packages-alist' can be customized, and customization allows to easily add "titletoc" before "hyperref". No need to rely on this confusing snippet. Regards, ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-13 10:43 ` Nicolas Goaziou @ 2015-01-13 11:56 ` Rasmus 2015-01-13 15:36 ` Nicolas Goaziou 0 siblings, 1 reply; 24+ messages in thread From: Rasmus @ 2015-01-13 11:56 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> I was putting this to further support another solution, namely moving >> hyperref to a single defcustom, allowing hyperref to be inserted after all >> other header-lines. > > As you pointed out already, moving hyperref after all other header lines > introduces problems with another set of packages. Therefore, we could > end up with package combinations that this variable couldn't handle. Of which we do not rely at the moment. From a user POW it's easy to load stuff at the end of the preamble e.g. using scrfile (\AfterPackage{}{}) or etoolbox (\AtEndPreamble{}). >> That's what it does... But without the need of having a direct copy of >> org-latex-default-packages-alist in your init.el. I'm not suggesting to >> put the snippet there without any prose. > > `org-latex-default-packages-alist' can be customized, and customization > allows to easily add "titletoc" before "hyperref". No need to rely on > this confusing snippet. Which again will copy the current value into your init, potentially ignoring future updates of the variable (say if we add or remove packages at a later point). [Correct me if I'm wrong]. Anyway, I edited the org.texi as we won't agreement. —Rasmus -- Tack, ni svenska vakttorn. Med plutonium tvingar vi dansken på knä! ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2015-01-13 11:56 ` Rasmus @ 2015-01-13 15:36 ` Nicolas Goaziou 0 siblings, 0 replies; 24+ messages in thread From: Nicolas Goaziou @ 2015-01-13 15:36 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: >> As you pointed out already, moving hyperref after all other header lines >> introduces problems with another set of packages. Therefore, we could >> end up with package combinations that this variable couldn't handle. > > Of which we do not rely at the moment. Of course, but I'm just pointing out that silently postponing the problem is worse than admitting there is one and let the user sort it out, with guidance. We should really stay away from the LaTeX packages mess. > From a user POW it's easy to load > stuff at the end of the preamble e.g. using scrfile (\AfterPackage{}{}) or > etoolbox (\AtEndPreamble{}). For an intermediate LaTeX user, this is easy. It is also for an intermediate Org user (e.g., who knows how to modify `org-latex-classes'). For beginners in both topics, there is the footnote in org.texi. > Which again will copy the current value into your init, potentially > ignoring future updates of the variable (say if we add or remove packages > at a later point). [Correct me if I'm wrong]. You're right. But I don't see why we should try to get around this common issue specifically for this problem, even though it exists for every defcustom. There is :version keyword for this matter. > Anyway, I edited the org.texi as we won't agreement. Thank you. I don't want to separate "hyperref" from `org-latex-default-packages-alist' and treat it differently. Regards, ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: Table of contents for just one section? 2014-10-20 13:41 ` Nicolas Goaziou 2014-10-20 14:06 ` D. C. Toedt @ 2014-10-26 10:53 ` Rasmus 1 sibling, 0 replies; 24+ messages in thread From: Rasmus @ 2014-10-26 10:53 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Hello, > > "D. C. Toedt" <dc@toedt.com> writes: > >> I'd like to do sub-TOCs for individual sections and subsections. > > We could add a "local" keyword to TOC lines, e.g., > > #+TOC: headlines 1 local > > would mean only top level children in current headline. > > This feature is trivial to add to ox-ascii, probably easy for ox-html or > ox-odt, assuming someone can provide the expected code. > > Implementing it in ox-latex probably boils down to requiring another > package (minitoc?). I'm pretty sure you need an exernal package. titletoc or minitoc. At least memoir seems to have issues with minitoc. KOMA-Script seems to be ok. titletoc scores points for having a 24 pages manual, versus 800+ pages. Personally, I don't like the default style of minitoc. > WDYT? It's neat and I'd probably never use it. —Rasmus -- Hooray! ^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2015-03-16 23:14 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-10-16 3:50 Table of contents for just one section? D. C. Toedt 2014-10-20 13:41 ` Nicolas Goaziou 2014-10-20 14:06 ` D. C. Toedt 2014-10-26 8:15 ` Nicolas Goaziou 2014-10-26 11:03 ` D. C. Toedt 2015-03-16 22:35 ` D. C. Toedt 2015-03-16 22:47 ` Rasmus 2015-03-16 23:13 ` Thomas S. Dye 2014-10-26 11:32 ` Rasmus 2014-10-26 13:01 ` Nicolas Goaziou 2014-10-26 15:01 ` Rasmus 2014-10-26 15:10 ` Rasmus 2015-01-11 21:49 ` Nicolas Goaziou 2015-01-11 22:37 ` Rasmus 2015-01-12 8:38 ` Nicolas Goaziou 2015-01-12 10:45 ` Rasmus 2015-01-12 23:12 ` Nicolas Goaziou 2015-01-13 1:23 ` Rasmus 2015-01-13 9:30 ` Nicolas Goaziou 2015-01-13 10:21 ` Rasmus 2015-01-13 10:43 ` Nicolas Goaziou 2015-01-13 11:56 ` Rasmus 2015-01-13 15:36 ` Nicolas Goaziou 2014-10-26 10:53 ` Rasmus
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).