From: Hans Hagen <pragma@wxs.nl>
Subject: Re: No partial contents for parts after the first
Date: Mon, 28 Nov 2005 14:03:13 +0100 [thread overview]
Message-ID: <438B0011.1040300@wxs.nl> (raw)
In-Reply-To: <1481653777.20051126150304@iol.it>
Giuseppe Bilotta wrote:
>Friday, November 25, 2005 Giuseppe Bilotta wrote:
>
>
>
>>Thursday, November 24, 2005 Giuseppe Bilotta wrote:
>>
>>
>
>
>
>>>I'm using the latest ConTeXt reported here, and I'm noticing
>>>that partial contents for the second, third etc part are not
>>>available. I have a bunch of files each of which goes like
>>>
>>>
>
>
>
>>>\part{some part}
>>>
>>>
>
>
>
>>>Some text (not always)
>>>
>>>
>
>
>
>>>\placecontent
>>>
>>>
>
>
>
>>>\chapter{some chapter}
>>>
>>>
>
>
>
>>>Each of this file is \input from the master file. However,
>>>only in the first part you actually see the (part-specific)
>>>content: every other part reports
>>>
>>>
>
>
>
>>>system : part,chapter,section,subsection not found/processed
>>>
>>>
>
>
>
>
>>>The setup for the contents is as follows:
>>>
>>>
>
>
>
>>>\setupcombinedlist[content]
>>> [interaction=all,
>>> partnumber=no,
>>> alternative=c,
>>> level=subsection]
>>>
>>>
>
>
>
>>>\setuphead[part][alternative=middle,placehead=yes,resetnumber=no]
>>>
>>>
>
>
>
>>>The problem is the 'resetnumber': if I take that off,
>>>everything works perfectly.
>>>
>>>
>
>
>
>>I've been debugging this, and the reason for the thing not
>>coming up for parts after the first is that when
>>resetnumber=no the current level is not properly detected:
>>in one case you get
>>
>>
>
>
>
>>\currentlevel ->:1
>>
>>
>
>
>
>>in the other
>>
>>
>
>
>
>>\currentlevel ->:2:2:4:2
>>
>>
>
>
>
>>Which is obviously wrong. Indeed, the problem is here:
>>
>>
>
>
>
>>\listentry{part}{1}{1}{Introduction}{2::1:0:0:0:0:0:0::7}{8}
>>\listentry{chapter}{2}{1}{Presentation}{2::1:1:0:0:0:0:0::8}{9}
>>\listentry{section}{3}{1.1}{History and
>>motivation}{2::1:1:1:0:0:0:0::8}{9}
>>\listentry{chapter}{11}{2}{The
>>basics}{2::1:2:0:0:0:0:0::12}{13}
>>\listentry{section}{12}{2.1}{Notation}{2::1:2:1:0:0:0:0::12}{13}
>>(more stuff)
>>\listentry{subsection}{78}{2.4.2}{Scaling the
>>coordinate system}{2::1:2:4:2:0:0:0::31}{32}
>>\listentry{part}{79}{2}{Mathematical
>>tools}{2::2:2:4:2:0:0:0::34}{35}
>>\listentry{chapter}{82}{3}{B�zier cubic
>>analysis}{2::2:3:0:0:0:0:0::35}{36}
>>
>>
>
>
>
>>OOOPSIE! Since resetnumber=no, the listentry keeps the old
>>settings for chapter, section & the like. This is obviously
>>wrong. Even if the number is not reset, the sectionformat
>>*must* be reset, since at the beginning of the new
>>higher section(level) you are not in the previous one
>>anymore. So for example when starting a new part (with
>>resetnumber=no), and until
>>the first chapter of the new part is started we are in
>>chapter 0 for that part, not in chapter
>>'last-chapter-from-previous-part'.
>>
>>
>
>
>
>>Can this be fixed?
>>
>>
>
>
>Ok, I came up with a solution that seems to work:
>
>\def\definesection[#1]%
> {\doifundefined{\??se#1}
> {\doifelsenothing\firstsection
> {\def\firstsection{#1}%
> \setevalue{\??se#1\c!before}{\v!text}%
> \setevalue{\??se\v!text\c!after}{#1}}
> {\setevalue{\??se\commalistelement\c!after}{#1}%
> \setevalue{\??se#1\c!before}{\lastsection}%
> \setevalue{\??se\lastsection\c!after}{#1}}%
> \advance\nofsections \plusone
> \setevalue{\??se#1\c!level}{\the\nofsections}%
> \letvalue{\??se#1\c!after}\empty
> \setvalue{\e!next#1}{\@@nextsectionnumber{#1}}%
> \setvalue{#1\c!number}{\@@longsectionnumber{#1}}%
> \setvalue{#1\s!format}{\@@longformatnumber{#1}}%
> \setevalue{\??by#1}{#1}%
> \setevalue{\??by\v!by#1}{#1}%
> \makecounter{\??se#1}%
> \makecounter{\??se lastvalueof#1}% GB
> \edef\lastsection{#1}%
> \setvalue{\??sk#1}{#1}%
> \letvalue{\??se#1\c!marking}\empty
> \setupsection[#1][\c!previousnumber=\v!yes]}}%
>
>% New command preserves the value of the next sectionlevel
>% when resetnumber=no
>
>\def\checkpreservevalueafter#1%
> {\ifnum\getvalue{\??se#1\c!level}<\the\nofsections
> \edef\preservedsection{\getvalue{\??se#1\c!after}}%
> \ifconditional\@@resetsubheadnumbers
> \setcounter{\??se lastvalueof\preservedsection}%
> {0}%
> \else
> \setcounter{\??se lastvalueof\preservedsection}%
> {\countervalue{\??se\preservedsection}}%
> \fi
> \fi}
>
>\def\@@setsectionnumber#1#2%
> {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean
> \setcounter{\??se#1}{#2}%
> \checkpreservevalueafter{#1}
> \resetsectioncounters{#1}
> \checkpagecounter}
>
>\def\@@nextsectionnumber#1%
> {\letgvalueempty{\??se#1\s!start}% signal i.p.v. boolean
> \ifnum\countervalue{\??se lastvalueof#1}>\zerocount
> \setcounter{\??se#1}{\countervalue{\??se lastvalueof#1}}
> \setcounter{\??se lastvalueof#1}{0}
> \fi
> \pluscounter{\??se#1}%
> \checkpreservevalueafter{#1}
> \resetsectioncounters{#1}
> \checkpagecounter}
>
>This has been tested in a fairly complex document (some
>levels with resetnumber=no, some with the usual resetnumber;
>sectionblocks etc). It works, and fixes the placecontent not
>working. Will this go into mainline?
>
>
>
no problem, until some other problem shows up -)
Hans
next prev parent reply other threads:[~2005-11-28 13:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-24 19:26 Giuseppe Bilotta
2005-11-25 17:37 ` Giuseppe Bilotta
2005-11-25 18:24 ` Giuseppe Bilotta
2005-11-26 14:03 ` Re[2]: " Giuseppe Bilotta
2005-11-28 13:03 ` Hans Hagen [this message]
2005-11-28 13:01 ` Hans Hagen
2005-11-28 15:49 ` Re[2]: " Giuseppe Bilotta
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=438B0011.1040300@wxs.nl \
--to=pragma@wxs.nl \
--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).