On 5/25/2020 2:40 PM, Bruce Horrocks wrote:
I can't be the first to have wanted to try something like this. Is it possible 
to use tabulate (or any of the table types) to customise the layout of the 
table of contents?

I'd like 4 columns - title, subject, author and page - where subject and author 
will (eventually) be additional parameters supplied to \startchapter. Bonus 
points if it works in interactive mode as well.

Minimum non-working example below. This generates the 4 column values per 
chapter heading but they run together into a single paragraph as if the table 
formatting was not present.

%%% Begin %%%
\setuppapersize [A4] [A4]
\setupinteraction [state=start]
\setuplist [chapter]
   [ alternative=command, %interactive
     command=\myTOCrow,
     before=\myTOCbefore,
     after=\myTOCafter
   ]

% #1 == Section number; #2 == text; #3 == page number
\define[3]\myTOCrow{\NC #2 \NC dummy \NC John Doe \NC #3 \NC\NR }

\define\myTOCbefore{
   \starttabulate[|pw(8.75cm)|l|lw(4.2cm)|r|]
   \NC \underbars{Title}
   \NC \underbars{Subject}
   \NC \underbars{Author}
   \NC \underbars{Page}
   \NC\NR
}

\define\myTOCafter{%
   \stoptabulate }

\starttext
\title{Tabulated Table of Contents}
\placelist[chapter]

\startchapter[title=Tufte 1]
\input tufte
\stopchapter

\startchapter[title=Tufte 2]
\input tufte
\stopchapter
\stoptext
%%% End %%%
It's hard. Maybe I need to make a more low level accessor for that but multipass etc gets in the way. When you knwo the dimensions you can do this:

\usemodule[article-basic]

\definelistalternative
  [whatever]
  [renderingsetup=whatever]

\setuplist
  [chapter]
  [alternative=whatever]

\startsetups whatever
    \framed [offset=overlay,frame=off] {
        \framed [width=25mm,align=flushleft,frame=off,offset=0pt] {
            number: \currentlistentrynumber
        }
        \framed [width=4cm,align=normal,frame=off,offset=0pt] {
            title: \currentlistentrytitle
        }
        \framed [width=4cm,align=normal,frame=off,offset=0pt] {
            author: \structurelistuservariable{author}
        }
        \framed [width=2cm,align=flushright,frame=off,offset=0pt] {
            page: \currentlistentrypagenumber
        }
    }
\stopsetups

\starttext

    \starttitle[title={Tabulated Table of Contents}]
        \placelist[chapter]
    \stoptitle

    \dorecurse {3} {
        \startchapter[title=Covid 9][author=Cuomo]
            \input cuomo
        \stopchapter
    }

\stoptext


Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to