Changes

Jump to navigation Jump to search
2,427 bytes added ,  07:35, 4 September 2020
Added MkIV solution for "Author in ToC"
{{cmd|setupheadtext|[content=All my contents]}}.
You can customize the appearance, number of shown levels and other attributes of predefined ToC. <span style="color:red; font-weight: bold;"> Please note that the <code>level</code> parameter has recently (02/2010) no effect in [[Mark IV]]MkIV, however you can set the number of levels used in the table of contents with the list option (see the next section)</span>, you . You may use {{cmd|placelist|[chapter,section]}} (optionally adding {{cmd|title|{Contents}}} before) instead of {{cmd|setupcombinedlist|[content][level=2]}}.
<context source="yes">
% ToC
% level=4, \subsubsubsections are not listed in ToC
% alternative=c, space to the page number is filled with dots
\setupcombinedlist[content][levellist=4{chapter,section,subsection,subsubsection}, alternative=c,]% in MkII replace list with level=4: \subsubsubsections are not listed in ToC
%\setuplist[chapter][width=5mm, style=bold]
</context>
== Setting the number of sections in the ToC in [[Mark IV]] ==
To set the number of sections included in the table of contents you can explicitly set the list of items included in the 'contents' list. To include chapter, section, and subsection, in the table of contents use:
<context mode=mkiv source="yes">
\starttext
Or to include subsubsection in the table of contents as well use:
<context mode=mkiv source="yes">
\starttext
\stoptext
</context>
 
In MkII this was achieved with the <code>level</code> parameter.
== Including unnumbered heads in the ToC ==
% Set area in which number is placed:
% distance from margin to left edge of title
% NB: recent versions of MkIV may ignore `width`
% for unnumbered entries, and may require
% you to set `margin`, instead.
\subject{Sub B}
\section{Sec C}
\stoptext
</context>
 
Quite probably, the un-numbered sections to be included are at the beginning or end of the document (e.g. a Preface and a Bibliography) and should *not* modify the enumeration of the actual numbered sections. In this case you
have to use "incrementnumber=list" instead. A slightly modified example would be:
 
<context mode=mkiv source=yes>
% mode=mkiv
\setuppapersize[A7][A7]
 
%list the "subject" sections in the ToC but don't modify the "section" counter:
\setuphead[subject] [incrementnumber=list]
 
%"width": distance between number and text in the ToC entry, "margin" : indent of ToC entry relative to left page margin
\setuplist[section][width=1.5em]
\setuplist[subsection][width=2.5em, margin=1.5em]
\setuplist[subject][margin=1.5em]
 
\setupcombinedlist[content][list={subject,section,subsection}]
 
\starttext
\completecontent
\subject{Preface}
\section{One}
\subsection{Sec A}
\section{Two}
\subject{Bibliography}
\stoptext
</context>
== Explicitly excluding headings from the ToC ==
To exclude headings from the table of contents, create a new heading that is a copy of the current heading. The new heading will not be in the list of heading that are printed to the table of contents(see previous section). The command to create a copy of a heading is \{{cmd|definehead}}. Below is an example of excluding some subheadings from the table of contents. Note that typically this would be done for all subsections under a specific section, but as seen below this is not required:
<context source="yes">
<texcode>
% MkII
\setuppagenumbering[numberseparator=/]
\placecombinedlist[MyContentsList]
</texcode>
<span style="color:red; font-weight: bold;">'''The above method does not work in MkIV (not anymore at least).</span> ''' Hence the code below illustrates how to get it working under MkIV. (Seems the example got lost?) It should be noted that MkIV and MkII are incompatible with respect to this feature.
As an example, consider that the frontmatter uses roman numerals and bodymatter remains unchanged. To reflect the romannumerals of the front matter in the ToC,
\stopsectionblockenvironment
</texcode>
 
== Adjusting spacing between lines in ToC ==
 
Sometimes you want your ToC to be denser than the interlinespace used in the document in general. You can achieve this by wrapping the ToC.
 
<texcode>
\start
\setupinterlinespace[small]
\placecontent
\stop
</texcode>
 
See {{cmd|setupinterlinespace}} for more options.
== Swap Page Number and Title ==
<texcode>
\placecontent[extras={6=page}] %puts break before Chapter 6 list item
</texcode>
Solution (MkIV solution given by Hans on the mailing list on September 2010-09-29, 2010, and applies to MKIV (at least.).
== Dots in section numbers ==
If you want to avoid a dot if there's no number, try this solution (by Wolfgang Schuster as of 2008-04-29):
 
<texcode>
\setuplist
== Author in ToC ==
(updated in 2020-09)
 
Add your author or other metadata to your section title in another brackets:
 
<texcode>
\startsection[title={Whatever}][author={A. Uthor},subtitle={I’d like to say}]
...
\stopsection
</texcode>
 
Now you can refer to this data as {{cmd|structureuservariable|2={subtitle}}} in text and headings, and as {{cmd|structurelistuservariable|2={author}}} in a list setup:
 
<texcode>
\define[1]\SectionTocEntry{%
\structurelistuservariable{author}\crlf%
#1\crlf% title
\structurelistuservariable{subtitle}}%
}
 
\setuplist[section][
textcommand=\SectionTocEntry,
]
</texcode>
 
You’ll probably have sections that don’t use that information, and you don’t want empty lines, do you? Then check on {{cmd| rawstructurelistuservariable}}:
 
<texcode>
\define[1]\SectionTocEntry{%
\doifnot{\rawstructurelistuservariable{author}}{}{\structurelistuservariable{author}\crlf}%
#1% title
\doifnot{\rawstructurelistuservariable{subtitle}}{}{\crlf\structurelistuservariable{subtitle}}}
</texcode>
 
=== MkII ===
 
see setup for author/title/subtitle titling and author in ToC in [[Proceedings_style]].
== Several ToC's in different languages ==
 
If you want to have two tables of contents in your document, one in a native
language and the other, for example, in english. This is how to do it:
== How ConTeXt MkII generates the ToC ==
(from Tobias Burnus [http://archive.contextgarden.net/message/20060809.162652.8f517267.en.html on the mailinglist])
In principle TeXExec should do this automatically.
 
MkIV uses *.tuc files and uses less runs.
== ToC (and other lists) via project structures ==
As of November 25, 2011, ConTeXt [[Mark IV]] supports the generation of lists via [[Project structure]]. Thus, given a product (possibly within some project), and given two or more components in that product with its own sections (chapters, sections, etc) or floats (figures, tables, etc); then each component can have its own list of contents independent of the other. This is done by setting ''criterium=component''. For example, create three files, one product and two components (slightly modified version of a sample posted by Hansin 2011):
<texcode>
\stoptext
</texcode>
 
 
== Other styles ==
 
* [[Horizontal_Table_of_Contents]]
 
[[Category:Basics]]

Navigation menu