ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Wolfgang Schuster <wolfgang.schuster@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Highlight current chapter in list
Date: Thu, 8 Nov 2012 09:44:57 +0100	[thread overview]
Message-ID: <5D6E4FB4-9C56-49FE-8592-ACBB3F278D77@gmail.com> (raw)
In-Reply-To: <20121108002930.20b7f349@homerow>


Am 08.11.2012 um 00:29 schrieb Marco Patzer <homerow@lavabit.com>:

> Hi!
> 
> How do I highlight the current chapter in the table of contents? The
> TOC is displayed on each page. For illustration I misused the
> interaction colour, which of course only works for the first page of
> a chapter.
> 
>  \setupheadertexts
>    [\setups{headlist}]
> 
>  \startsetups [headlist]
>    \framed[align=normal, frame=off]
>      {\placelist [chapter] [alternative=f, criterium=all]}
>  \stopsetups
> 
>  \setupinteraction
>    [state=start,
>     color=lightgray,
>     contrastcolor=darkgreen]
> 
>  \starttext
>    \startchapter [title=alpha]                   \stopchapter
>    \startchapter [title=beta]  \page\input knuth \stopchapter
>    \startchapter [title=gamma]                   \stopchapter
>  \stoptext


You can use the marking mechanism to get the title of the current chapter.

The problem for the solution below is to get a expandable version of the
list entry because \currentlistentrytitle itself isn’t expandable and can’t
be used in \doifelse. Instead of using \ctxcommand better ask Hans for
a raw/expandable version of the tile/pagenumber commands.

\setupheadertexts
  [\setups{headlist}]

\startsetups [headlist]
  \framed[align=normal, frame=off]
    {\placelist [chapter] [alternative=highlight, criterium=all]}
\stopsetups

\definelistalternative
  [highlight]
  [renderingsetup=list:highlight]

\startsetups [list:highlight]
  \par
  \startlinealignment[middle]
    \doifelse{\fetchmark[chapter][first]}{\currentlistentrytitle}
   %\doifelse{\fetchmark[chapter][first]}{\ctxcommand{listtitle("\currentlist",\currentlistindex)}}
      {\color[red] {\currentlistentrytitle}}
      {\color[blue]{\currentlistentrytitle}}
  \stoplinealignment
  \par
\stopsetups

\setupinteraction
  [state=start,
   color=lightgray,
   contrastcolor=darkgreen]

\starttext
  \startchapter [title=alpha]                   \stopchapter
  \startchapter [title=beta]  \page\input knuth \stopchapter
  \startchapter [title=gamma]                   \stopchapter
\stoptext

Wolfgang
___________________________________________________________________________________
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  reply	other threads:[~2012-11-08  8:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-07 23:29 Marco Patzer
2012-11-08  8:44 ` Wolfgang Schuster [this message]
2012-11-08 10:06   ` Marco Patzer
2012-11-08 11:06     ` Hans Hagen
2012-11-08 11:15       ` Hans Hagen
2012-11-08 11:42         ` Marco Patzer
2012-11-08 17:32           ` Marco Patzer
2012-11-08 18:18             ` Hans Hagen
2012-11-09 16:53         ` Sietse Brouwer
2012-11-09 17:03           ` Hans Hagen
2012-11-08 21:37   ` Marco Patzer
2012-11-08 21:45     ` Marco Patzer
2012-11-08 21:48     ` Wolfgang Schuster
2012-11-08 22:16       ` Hans Hagen
2012-11-09  0:43         ` Tikz backgrounds (was Re: Highlight current chapter in list) Aditya Mahajan
2012-11-09  9:17           ` Hans Hagen

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

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

  git send-email \
    --in-reply-to=5D6E4FB4-9C56-49FE-8592-ACBB3F278D77@gmail.com \
    --to=wolfgang.schuster@gmail.com \
    --cc=ntg-context@ntg.nl \
    /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.
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 NNTP newsgroup(s).