On 8/29/2013 10:15 AM, Hans Hagen wrote:
On 8/29/2013 4:06 AM, Aditya Mahajan wrote:
Hi,
I am trying to pick up on an old thread of creating an overview page
[1]. Basically, the idea is to create an overvew slide at the end of a
presentation that shows the first page of different sections in a
presentation. Based on Wolfgang's answer in that old thread, I save the
relevant pages in a box, and then display them again at the end of the
presentation.
This works, except that I get a series of warnings:
l.86 \placeoverviewpage
LuaTeX warning (ext4): destination with the same
identifier (name{aut:10}) has been already used, duplicate ignored
How do I get rid of these?
Tricky. The problem is that you flush a box (copy) so the message comes
from deep inside the backend (for good reason) and so we cannot
intercept it as "hey user, you use the same dest twice" simply because
it's a copy and not re-rendered.
There are two solutions:
(1) strip the box before copying (i can make a helper for that - later
as i have to go now): destinations, references, writes-to-lists etc
(2) you copy the old file before processing and use that one
\def\placeoverviewpage
{\startstandardmakeup[\c!align=\v!middle]
\getfiguredimensions[temp.pdf]%
\dorecurse{\noffigurepages}{\externalfigure[temp.pdf][\c!page=##1,\c!width=\overviewwidth]\relax\space}
\stopstandardmakeup}
I am afraid that I cannot create a small example illustrating this
warning, so I am attaching the complete test file.
[1]: http://thread.gmane.org/gmane.comp.tex.context/72556/focus=72571
[2] It has always been a wish of mine to have it as option in the engine
(pdfetex) but in luatex it's not that hard to do it myself now (i
already have a stripper so I can extend that one a bit).
attached ... you can run the module for an example (you need a new beta)
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
% experimental, based on an idea by Aditya, messed up by Hans.
\unprotect
\installnamespace{overview}
\installsimplecommandhandler \????overview {overview}
\initializeboxstack{\????overview}
\let\overviewsection\empty
\let\overview_previous_headnumber\!!minusone
\let\overview_current_headnumber \!!zerocount
\unexpanded\def\overview_save_page#1%
{\ifx\overviewsection\empty
\page_shipouts_normal{#1}%
\else
\xdef\overview_current_headnumber{\somenamedheadnumber\overviewsection\c!current}%
\setbox\nextbox\hbox{#1}%
\ifx\overview_previous_headnumber\overview_current_headnumber \else
\glet\overview_previous_headnumber\overview_current_headnumber
\setbox\scratchbox\copy\nextbox
\cleanupbox\scratchbox % remove nodes that should not be seen in the
backend twice
\writestatus{overview}{saving first page of
\overviewsection\space\overview_current_headnumber}%
\savebox{\????overview}{\overview_current_headnumber}{\box\scratchbox}%
\fi
\page_shipouts_normal{\box\nextbox}%
\fi}
\installshipoutmethod{overview}\overview_save_page
\definelistalternative
[overview]
[\c!renderingsetup=\??listrenderings:overview]
\setuplistalternative
[overview]
[\c!before=\dontleavehmode,
\c!after=\space,
\c!width=.4\textwidth] % or \listparameter\c!width
\startsetups[\??listrenderings:overview]
\doifboxelse{\????overview}{\currentlistentrynumber}
{\listalternativeparameter\c!before
\startcurrentlistentrywrapper
\scale
[\c!width=\listalternativeparameter\c!width]
{\foundbox{\????overview}{\currentlistentrynumber}}%
\stopcurrentlistentrywrapper
\listalternativeparameter\c!after}
{}%
\stopsetups
\unexpanded\def\placeoverviewpage
{\startstandardmakeup[\c!align=\v!middle]
\placelist
[\overviewsection]
[\c!criterium=\v!all,
\c!alternative=overview]
\stopstandardmakeup}
\appendtoks
\ifx\overviewsection\empty
\edef\overviewsection{\overviewparameter\c!level}%
\ifx\overviewsection\empty
\setuppaper[\c!method=\v!normal]%
\else
\setuppaper[\c!method=overview]%
\fi
\else
\writestatus{overview}{level is already set to \overviewsection, ignoring
\overviewparameter\c!level}%
\fi
\to \everysetupoverview
\protect
\continueifinputfile{m-pageview.mkiv}
\usemodule[pageview]
\setupinteraction
[state=start]
\setupoverview
[level=section]
\setuppapersize
[S4]
\starttext
\dorecurse{4}
{\startsection[title={Section #1}]
\dorecurse{3}{\input knuth \par}
\stopsection
\page}
\placeoverviewpage
\stoptext
___________________________________________________________________________________
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
___________________________________________________________________________________