ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Wolfgang Schuster <schuster.wolfgang@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: Error with alternative (interactive) TOC
Date: Fri, 10 Oct 2014 13:02:47 +0200	[thread overview]
Message-ID: <BAC6A699-05C8-41E9-80F7-BCAC7169DCB2@gmail.com> (raw)
In-Reply-To: <CAANrE7oUMvnJQcXvfzK+M6LHnD-fiKBttJLmw8ZN+88rpJvy1g@mail.gmail.com>


Am 09.10.2014 um 20:24 schrieb Thangalin <thangalin@gmail.com>:

> Hi,
> 
> How do you make a custom TOC entry that links to the correct page?
> 
> In the following example, the last TOC item is not hyperlinked, and
> all the section hyperlinks are incorrect (off by one). Note that the
> chapters and sections are separate pages.

You’re wrong, there are links for all section entries but the area for the hyperlinks
are shifted upwards by half a line, it’s easier to notice when you increase the space
between the entries.

\setupinteraction[state=start]
\setuphead[section][page=yes,continue=no]

\define[3]\SectionTOC{\ruledhbox{#3 #2}}

\setuplist
  [section]
  [alternative=interactive,
   command=\SectionTOC,
   before={\blank[2*line]}]

\starttext

\placecontent

\chapter[title=Chapter]

\dorecurse{4}
  {\section{Section}
   Level \recurselevel.}

\stoptext


This problem can be fixed by adding \noindent in front of the \hbox command in the defintion
of the interactive alternative, i.e.

\startsetups[\??listrenderings:interactive]
   \edef\p_command{\listalternativeparameter\c!command}%
   \ifx\p_command\empty
       [\currentlist: \currentlistentrynumber\space -- \currentlistentrytitle\space -- \currentlistentrypagenumber]%
   \else
       \listparameter\c!before
-      \hbox \strc_lists_get_reference_attribute\v!all \strc_lists_get_destination_attribute {
+      \noindent\hbox \strc_lists_get_reference_attribute\v!all \strc_lists_get_destination_attribute {
           \p_command\currentlistentrynumber\currentlistentrytitle\currentlistentrypagenumber
       }
       \listparameter\c!after
   \fi
\stopsetups

but to ensure all entries all placed below each other you have to set "before=\endgraf“ with \setuplist.


BTW: The "vertical“ list alternative has the same problem with the wrong area for the hyperlink.

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:[~2014-10-10 11:02 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-09 18:24 Thangalin
2014-10-10 11:02 ` Wolfgang Schuster [this message]
2014-10-10 18:04   ` Thangalin
2014-10-10 21:02     ` 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=BAC6A699-05C8-41E9-80F7-BCAC7169DCB2@gmail.com \
    --to=schuster.wolfgang@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).