emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Table of contents for just one section?
Date: Sun, 26 Oct 2014 16:01:10 +0100	[thread overview]
Message-ID: <87egtuq3ih.fsf@gmx.us> (raw)
In-Reply-To: 8761f7dlxd.fsf@nicolasgoaziou.fr

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. . .

  reply	other threads:[~2014-10-26 15:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87egtuq3ih.fsf@gmx.us \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).