[NTG-context] Disappearing backgrounds/pagenumbers with \page[none]

Wolfgang Schuster schuster.wolfgang at gmail.com
Mon Feb 9 19:45:58 CET 2015


> Am 09.02.2015 um 18:12 schrieb Aditya Mahajan <adityam at umich.edu>:
> 
> On Mon, 9 Feb 2015, Hans Hagen wrote:
> 
>> On 2/9/2015 12:19 AM, Wolfgang Schuster wrote:
>>> 
>>>> Am 09.02.2015 um 00:10 schrieb Wolfgang Schuster
>>>> <schuster.wolfgang at gmail.com <mailto:schuster.wolfgang at gmail.com>>:
>>>> 
>>>> Hi,
>>>> 
>>>> there was a problem on TeX SE [1]  where page numbers disappear for a
>>>> whole chapter when \page[none] is used to hide the numbers on empty
>>>> left pages in a double sided document.
>>>> 
>>>> As can be seen in the following example the page numbers and
>>>> background on the last two pages disappear when “missing” mode is
>>>> enabled. This happens when the “blank” option for \page is used
>>>> without a change in the page number (we are already at page 3 when
>>>> \page[yes,blank,right] is expanded).
>>>> 
>>>> %%%% begin example
>>>> \setupbackgrounds[page][background=color,backgroundcolor=gray]
>>>> 
>>>> %\enablemode[missing]
>>>> 
>>>> \starttext
>>>> 
>>>> \dorecurse{6}{\input knuth\par}
>>>> 
>>>> % End the current page before \page[blank] is called
>>>> \doifmode{missing}{\page}
>>>> 
>>>> \page[yes,blank,right]
>>>> 
>>>> \dorecurse{6}{\input knuth\par}
>>>> 
>>>> \stoptext
>>>> %%%% end example
>>>> 
>>>> [1]
>> http://tex.stackexchange.com/questions/225603/missing-page-numbers-first-chapter-only-context
>>> 
>>> BTW: Shouldn’t the following assignment in page-ini.miv be global?
>>> 
>>> \appendtoks
>>>     \ifcase\pageornamentstate \or
>>>         \pageornamentstate\zerocount
>>>     \fi
>>> \to \everyaftershipout
>> 
>> sure
> 
> Not sure if this completely fixes the problem. For example:

The \global is necessary because otherwise the assignment won’t have any effect because
the output routine (and this is where \everyaftershipout is used) forms a group but this won’t
fix the problem with \page[none].

> \definepagebreak
>        [chapterpagebreak]
>        [yes, blank, right]
> 
> \setuphead [chapter]
>           [page=chapterpagebreak]
> 
> \showframe
> 
> \starttext
> \startchapter
>        [title={First Chapter Title}]
> 
> \dorecurse{6}{\input knuth \par}
> 
> \stopchapter
> \startchapter
>        [title={Second Chapter Title}]
> 
> \dorecurse{6}{\input knuth \par}
> 
> \stopchapter
> \stoptext
> 
> There is no page number on the first page of the first chapter, but there is one on the first page of the second chapter.

You don’t need the \chapter commands because it is a \page problem as can be seen in the following example
(the fix above solves the problem only for page 2 and upwards).

\starttext

\page[yes,blank,yes]

\dorecurse{6}{\input knuth\par}

\stoptext


To really fix the problem you have reset the \pageornamentstate value at
the end of the “yes”, „right” etc. keywords, e.g. (page-brk.mkiv)

\installpagebreakmethod \v!yes
  {\ifconditional\c_page_breaks_enabled
     \page_otr_flush_all_floats
     \page_otr_command_next_page
     \ifinsidecolumns       % this will move to MUL
       \page_otr_eject_page % otherwise sometimes no change
     \fi
-  \fi}
+  \fi
+  \global\pageornamentstate\zerocount}

and the automatic reset with \everyaftershipout has to be removed, otherwise
things like following example have page numbers on the page 2 and 3 which
should be empty.

\starttext

\page[yes,blank,+3]

\dorecurse{6}{\input knuth\par}

\stoptext


Wolfgang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ntg.nl/pipermail/ntg-context/attachments/20150209/0310f901/attachment-0001.html>


More information about the ntg-context mailing list