ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Distinguished item in \placelist?
@ 2001-12-01 20:19 F. Miller Maley
  2001-12-03  9:58 ` Hans Hagen
  0 siblings, 1 reply; 4+ messages in thread
From: F. Miller Maley @ 2001-12-01 20:19 UTC (permalink / raw)


Suppose that in an interactive document, I would like to have a local
table of contents (e.g. \placelist[section]) on each page, but I would
like the current portion (e.g. section) to be highlighted in some way,
perhaps by style or color, within the list.  What mechanisms are needed
to achieve this?

I can envision doing it by somehow extracting mark information and list
information into control sequences and comparing them with \ifx.  However,
I usually find that whatever I want to do, ConTeXt already has a way of doing!

-- Miller Maley


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Distinguished item in \placelist?
  2001-12-01 20:19 Distinguished item in \placelist? F. Miller Maley
@ 2001-12-03  9:58 ` Hans Hagen
  2001-12-07  6:20   ` F. Miller Maley
  0 siblings, 1 reply; 4+ messages in thread
From: Hans Hagen @ 2001-12-03  9:58 UTC (permalink / raw)
  Cc: ntg-context

At 03:19 PM 12/1/2001 -0500, F. Miller Maley wrote:
>Suppose that in an interactive document, I would like to have a local
>table of contents (e.g. \placelist[section]) on each page, but I would
>like the current portion (e.g. section) to be highlighted in some way,
>perhaps by style or color, within the list.  What mechanisms are needed
>to achieve this?
>
>I can envision doing it by somehow extracting mark information and list
>information into control sequences and comparing them with \ifx.  However,
>I usually find that whatever I want to do, ConTeXt already has a way of doing!

Well, it's not a feature, but since the info is available, i can imagine 
something like this:

Say that I patch a macro :

\unprotected \def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders 
gedefinieerd
   {\doiftoclevelelse[#5]
      {\def\currentlist{#1}%
       \ifundefined{\??li\currentlist\c!huidige}\else
         \doif{#3}\currentheadnumber
           {\edef\currentlist{\getvalue{\??li\currentlist\c!huidige}}}%
       \fi
       \dodolijstelement\currentlist{#2}{#3}{#4}{#5}{#6}}
      {}}

(this assumes a version where \currentheadnumber is known)

now we can define a fake list (since i can imagine that you want to set up 
some layout characteristics)

\definelist [fakesection] [section]

\setuplist [fakesection] [before=\blank,after=\blank,color=green]

\setuplist [section] [current=fakesection]

\setupcolors[state=start]\setupinteraction[state=start]

\starttext

\chapter{test}

\section{test}
\section{test}
\section{test}

\placelist[section][criterium=previous]

\section{test}
\section{test}

\stoptext

We can have a vote for adding this feature -)

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Distinguished item in \placelist?
  2001-12-03  9:58 ` Hans Hagen
@ 2001-12-07  6:20   ` F. Miller Maley
  2001-12-10 10:14     ` Hans Hagen
  0 siblings, 1 reply; 4+ messages in thread
From: F. Miller Maley @ 2001-12-07  6:20 UTC (permalink / raw)


Hans Hagen wrote:
> Say that I patch a macro :
> 
> \unprotected \def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders
> gedefinieerd
>    {\doiftoclevelelse[#5]
>       {\def\currentlist{#1}%
>        \ifundefined{\??li\currentlist\c!huidige}\else
>          \doif{#3}\currentheadnumber
>            {\edef\currentlist{\getvalue{\??li\currentlist\c!huidige}}}%
>        \fi
>        \dodolijstelement\currentlist{#2}{#3}{#4}{#5}{#6}}
>       {}}
> 
> (this assumes a version where \currentheadnumber is known)
> etc.

After considerable hacking, I got this to work!  It didn't work as written
for various reasons, mainly having to do (as far as I could tell) with the
order in which things are expanded, and the \ifundefined ... \else ... \fi
confusing TeX about \if...\fi nesting.  Anyway, the most serious problem
was that \currentheadnumber expands to a single number, but argument #3
is usually something like 1.2 or 1.2.3, the details depending on the level
and the "stopper".  I can hack around this problem in specific cases but
I don't have a general solution yet.  One plan would be to expand
\headnumber[#1] and compare it with #3, but \headnumber (or rather
\kopnummer) seems to be protected from expansion in eTeX.

I may be the only one voting for it, but I do think this would be a nifty
feature of ConTeXt.

-- Miller Maley


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Distinguished item in \placelist?
  2001-12-07  6:20   ` F. Miller Maley
@ 2001-12-10 10:14     ` Hans Hagen
  0 siblings, 0 replies; 4+ messages in thread
From: Hans Hagen @ 2001-12-10 10:14 UTC (permalink / raw)
  Cc: ntg-context

At 01:20 AM 12/7/2001 -0500, F. Miller Maley wrote:
>Hans Hagen wrote:
> > Say that I patch a macro :
> >
> > \unprotected \def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders
> > gedefinieerd
> >    {\doiftoclevelelse[#5]
> >       {\def\currentlist{#1}%
> >        \ifundefined{\??li\currentlist\c!huidige}\else
> >          \doif{#3}\currentheadnumber
> >            {\edef\currentlist{\getvalue{\??li\currentlist\c!huidige}}}%
> >        \fi
> >        \dodolijstelement\currentlist{#2}{#3}{#4}{#5}{#6}}
> >       {}}
> >
> > (this assumes a version where \currentheadnumber is known)
> > etc.
>
>After considerable hacking, I got this to work!  It didn't work as written
>for various reasons, mainly having to do (as far as I could tell) with the
>order in which things are expanded, and the \ifundefined ... \else ... \fi
>confusing TeX about \if...\fi nesting.

ah, but this is not a problem in the latest version -)

>Anyway, the most serious problem
>was that \currentheadnumber expands to a single number, but argument #3
>is usually something like 1.2 or 1.2.3, the details depending on the level
>and the "stopper".  I can hack around this problem in specific cases but
>I don't have a general solution yet.  One plan would be to expand
>\headnumber[#1] and compare it with #3, but \headnumber (or rather
>\kopnummer) seems to be protected from expansion in eTeX.

hm. here \currentheadnumber gives the full number,

\chapter{Test}  \currentheadnumber
\section{Test}  \currentheadnumber

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-12-10 10:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-12-01 20:19 Distinguished item in \placelist? F. Miller Maley
2001-12-03  9:58 ` Hans Hagen
2001-12-07  6:20   ` F. Miller Maley
2001-12-10 10:14     ` Hans Hagen

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