ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Blank page added after pagecolumns
@ 2020-04-28 17:40 Joey McCollum
  2020-05-02 15:46 ` Joey McCollum
  0 siblings, 1 reply; 8+ messages in thread
From: Joey McCollum @ 2020-04-28 17:40 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 799 bytes --]

I am typesetting a document using pagecolumns to ensure that my footnotes
are set ragged-bottom in columns. I have observed some unexpected behavior
whenever the last column on a page is left incomplete: a blank page is
added at the end of the document. A minimal working example follows:

```

\starttext

\startpagecolumns[n=2]

\dorecurse{3}{\par\input zapf}

\stoppagecolumns

\stoptext
```

I typeset this using ConTeXt version 2020.03.10, as released with TeXLive
2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or
\dorecurse{6} (so that the text ends in the first column of a page), then
there is no problem. I have tried to fix this by specifying page=no in the
\startpagecolumns arguments, but it did not change anything. Is there
something else I am missing?

Thank you,

Joey

[-- Attachment #1.2: Type: text/html, Size: 1181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-04-28 17:40 Blank page added after pagecolumns Joey McCollum
@ 2020-05-02 15:46 ` Joey McCollum
  2020-05-04 18:45   ` Joey McCollum
  0 siblings, 1 reply; 8+ messages in thread
From: Joey McCollum @ 2020-05-02 15:46 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 1695 bytes --]

I recently found the pagecolumns manual (
http://www.pragma-ade.com/general/manuals/pagecolumns.pdf), and in several
of the examples (including those for side floats and footnotes), the
addition of a blank page after the end of the pagecolumns environment also
seems to occur. So when the manual says, "We always start at a new page and
end on a new one," does it mean that this is a feature of pagecolumns? And
if so, is there any way to disable it? I have no problem with a page break
after the end of the pagecolumns environment, but an empty page added after
the break seems unnecessary. I checked for a wiki page on the
\definepagecolumns command to get more information on its accepted inputs,
but there doesn't appear to be a page for this command.

Joey

On Tue, Apr 28, 2020 at 1:40 PM Joey McCollum <jmccollum20140511@gmail.com>
wrote:

> I am typesetting a document using pagecolumns to ensure that my footnotes
> are set ragged-bottom in columns. I have observed some unexpected behavior
> whenever the last column on a page is left incomplete: a blank page is
> added at the end of the document. A minimal working example follows:
>
> ```
>
> \starttext
>
> \startpagecolumns[n=2]
>
> \dorecurse{3}{\par\input zapf}
>
> \stoppagecolumns
>
> \stoptext
> ```
>
> I typeset this using ConTeXt version 2020.03.10, as released with TeXLive
> 2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or
> \dorecurse{6} (so that the text ends in the first column of a page), then
> there is no problem. I have tried to fix this by specifying page=no in the
> \startpagecolumns arguments, but it did not change anything. Is there
> something else I am missing?
>
> Thank you,
>
> Joey
>

[-- Attachment #1.2: Type: text/html, Size: 2426 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-02 15:46 ` Joey McCollum
@ 2020-05-04 18:45   ` Joey McCollum
  2020-05-11  0:34     ` Thangalin
  0 siblings, 1 reply; 8+ messages in thread
From: Joey McCollum @ 2020-05-04 18:45 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 2999 bytes --]

After continuing to look into this a bit, I noticed that a similar issue
involving the insertion of a blank page after a columnset environment has
been discussed on the mailing list in the thread "Blank page inserted when
text reaches column's end" (dated 08 Dec 2019). In that thread, a proposed
solution was to redefine the \page_grd_stop macro found in page-cst.mkiv as
follows:

```
\unprotect
\def\page_grd_stop{%
  \endgraf % needed, else wrong vsize in one par case
  \vfill % otherwise weird \placenotes[endnotes]
  \page_grd_command_set_vsize % needed
  \penalty\c_page_otr_eject_penalty
  %\page_grd_command_flush_page
  \page_otr_fill_and_eject_page
  \page_grd_command_set_vsize % why here
  \egroup
  \page_otr_command_set_vsize
  \page_otr_command_set_hsize
}
\protect
```

Unfortunately, this approach was found to have potential issues in that
thread, and it does not fix the problem with pagecolumns in my MWE. Are
pagecolumns commands aliased to pagegrid commands like columnset commands
are, or are they defined somewhere else? I checked page-col.mkiv, but it
seems to be too short to be the file that defines pagecolumns behavior.

Joey

On Sat, May 2, 2020 at 11:46 AM Joey McCollum <jmccollum20140511@gmail.com>
wrote:

> I recently found the pagecolumns manual (
> http://www.pragma-ade.com/general/manuals/pagecolumns.pdf), and in
> several of the examples (including those for side floats and footnotes),
> the addition of a blank page after the end of the pagecolumns environment
> also seems to occur. So when the manual says, "We always start at a new
> page and end on a new one," does it mean that this is a feature of
> pagecolumns? And if so, is there any way to disable it? I have no problem
> with a page break after the end of the pagecolumns environment, but an
> empty page added after the break seems unnecessary. I checked for a wiki
> page on the \definepagecolumns command to get more information on its
> accepted inputs, but there doesn't appear to be a page for this command.
>
> Joey
>
> On Tue, Apr 28, 2020 at 1:40 PM Joey McCollum <jmccollum20140511@gmail.com>
> wrote:
>
>> I am typesetting a document using pagecolumns to ensure that my footnotes
>> are set ragged-bottom in columns. I have observed some unexpected behavior
>> whenever the last column on a page is left incomplete: a blank page is
>> added at the end of the document. A minimal working example follows:
>>
>> ```
>>
>> \starttext
>>
>> \startpagecolumns[n=2]
>>
>> \dorecurse{3}{\par\input zapf}
>>
>> \stoppagecolumns
>>
>> \stoptext
>> ```
>>
>> I typeset this using ConTeXt version 2020.03.10, as released with TeXLive
>> 2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or
>> \dorecurse{6} (so that the text ends in the first column of a page), then
>> there is no problem. I have tried to fix this by specifying page=no in the
>> \startpagecolumns arguments, but it did not change anything. Is there
>> something else I am missing?
>>
>> Thank you,
>>
>> Joey
>>
>

[-- Attachment #1.2: Type: text/html, Size: 4103 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-04 18:45   ` Joey McCollum
@ 2020-05-11  0:34     ` Thangalin
  2020-05-14 21:03       ` Joey McCollum
  0 siblings, 1 reply; 8+ messages in thread
From: Thangalin @ 2020-05-11  0:34 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Bump.

See also: https://tex.stackexchange.com/q/542993/2148

On Mon, May 4, 2020 at 11:46 AM Joey McCollum
<jmccollum20140511@gmail.com> wrote:
>
> After continuing to look into this a bit, I noticed that a similar issue involving the insertion of a blank page after a columnset environment has been discussed on the mailing list in the thread "Blank page inserted when text reaches column's end" (dated 08 Dec 2019). In that thread, a proposed solution was to redefine the \page_grd_stop macro found in page-cst.mkiv as follows:
>
> ```
> \unprotect
> \def\page_grd_stop{%
>   \endgraf % needed, else wrong vsize in one par case
>   \vfill % otherwise weird \placenotes[endnotes]
>   \page_grd_command_set_vsize % needed
>   \penalty\c_page_otr_eject_penalty
>   %\page_grd_command_flush_page
>   \page_otr_fill_and_eject_page
>   \page_grd_command_set_vsize % why here
>   \egroup
>   \page_otr_command_set_vsize
>   \page_otr_command_set_hsize
> }
> \protect
> ```
>
> Unfortunately, this approach was found to have potential issues in that thread, and it does not fix the problem with pagecolumns in my MWE. Are pagecolumns commands aliased to pagegrid commands like columnset commands are, or are they defined somewhere else? I checked page-col.mkiv, but it seems to be too short to be the file that defines pagecolumns behavior.
>
> Joey
>
> On Sat, May 2, 2020 at 11:46 AM Joey McCollum <jmccollum20140511@gmail.com> wrote:
>>
>> I recently found the pagecolumns manual (http://www.pragma-ade.com/general/manuals/pagecolumns.pdf), and in several of the examples (including those for side floats and footnotes), the addition of a blank page after the end of the pagecolumns environment also seems to occur. So when the manual says, "We always start at a new page and end on a new one," does it mean that this is a feature of pagecolumns? And if so, is there any way to disable it? I have no problem with a page break after the end of the pagecolumns environment, but an empty page added after the break seems unnecessary. I checked for a wiki page on the \definepagecolumns command to get more information on its accepted inputs, but there doesn't appear to be a page for this command.
>>
>> Joey
>>
>> On Tue, Apr 28, 2020 at 1:40 PM Joey McCollum <jmccollum20140511@gmail.com> wrote:
>>>
>>> I am typesetting a document using pagecolumns to ensure that my footnotes are set ragged-bottom in columns. I have observed some unexpected behavior whenever the last column on a page is left incomplete: a blank page is added at the end of the document. A minimal working example follows:
>>>
>>> ```
>>>
>>> \starttext
>>>
>>> \startpagecolumns[n=2]
>>>
>>> \dorecurse{3}{\par\input zapf}
>>>
>>> \stoppagecolumns
>>>
>>> \stoptext
>>>
>>> ```
>>>
>>> I typeset this using ConTeXt version 2020.03.10, as released with TeXLive 2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or \dorecurse{6} (so that the text ends in the first column of a page), then there is no problem. I have tried to fix this by specifying page=no in the \startpagecolumns arguments, but it did not change anything. Is there something else I am missing?
>>>
>>> Thank you,
>>>
>>> Joey
>
> ___________________________________________________________________________________
> 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://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
> ___________________________________________________________________________________
___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-11  0:34     ` Thangalin
@ 2020-05-14 21:03       ` Joey McCollum
  2020-05-16  3:45         ` Joey McCollum
  0 siblings, 1 reply; 8+ messages in thread
From: Joey McCollum @ 2020-05-14 21:03 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 5558 bytes --]

Okay, I think I'm getting close, but I'm not quite there yet. The
pagecolumns source code is found in page-pcl.mkiv (
source.contextgarden.net/tex/context/base/mkiv/page-pcl.mkiv), and in that
code, the \page_col_stop_yes macro seems to have something to do with the
issue:

```
\unexpanded\def\page_col_stop_yes
  {\column % \page_otr_eject_page
   \page
   \endgroup
 % \setupoutputroutine[\s!singlecolumn]%
   \page_otr_command_set_vsize
   \page_otr_command_set_hsize
   \page
   \endgroup}
```

If I redefine this macro in my MWE as follows, I can remove the extra page
that is added when the last page ends with text in the last column:

```

\unprotect

\def\page_col_stop_yes

{\column %\page_otr_eject_page

%\page

\endgroup

% \setupoutputroutine[\s!singlecolumn]%

\page_otr_command_set_vsize

\page_otr_command_set_hsize

%\page

\endgroup}

\protect
```

Commenting out the \page calls does the trick in this case, but now, if the
last page ends with its text in a column before the last one, then the last
page is not typeset at all, and a blank page takes its place.

On Sun, May 10, 2020 at 8:34 PM Thangalin <thangalin@gmail.com> wrote:

> Bump.
>
> See also: https://tex.stackexchange.com/q/542993/2148
>
> On Mon, May 4, 2020 at 11:46 AM Joey McCollum
> <jmccollum20140511@gmail.com> wrote:
> >
> > After continuing to look into this a bit, I noticed that a similar issue
> involving the insertion of a blank page after a columnset environment has
> been discussed on the mailing list in the thread "Blank page inserted when
> text reaches column's end" (dated 08 Dec 2019). In that thread, a proposed
> solution was to redefine the \page_grd_stop macro found in page-cst.mkiv as
> follows:
> >
> > ```
> > \unprotect
> > \def\page_grd_stop{%
> >   \endgraf % needed, else wrong vsize in one par case
> >   \vfill % otherwise weird \placenotes[endnotes]
> >   \page_grd_command_set_vsize % needed
> >   \penalty\c_page_otr_eject_penalty
> >   %\page_grd_command_flush_page
> >   \page_otr_fill_and_eject_page
> >   \page_grd_command_set_vsize % why here
> >   \egroup
> >   \page_otr_command_set_vsize
> >   \page_otr_command_set_hsize
> > }
> > \protect
> > ```
> >
> > Unfortunately, this approach was found to have potential issues in that
> thread, and it does not fix the problem with pagecolumns in my MWE. Are
> pagecolumns commands aliased to pagegrid commands like columnset commands
> are, or are they defined somewhere else? I checked page-col.mkiv, but it
> seems to be too short to be the file that defines pagecolumns behavior.
> >
> > Joey
> >
> > On Sat, May 2, 2020 at 11:46 AM Joey McCollum <
> jmccollum20140511@gmail.com> wrote:
> >>
> >> I recently found the pagecolumns manual (
> http://www.pragma-ade.com/general/manuals/pagecolumns.pdf), and in
> several of the examples (including those for side floats and footnotes),
> the addition of a blank page after the end of the pagecolumns environment
> also seems to occur. So when the manual says, "We always start at a new
> page and end on a new one," does it mean that this is a feature of
> pagecolumns? And if so, is there any way to disable it? I have no problem
> with a page break after the end of the pagecolumns environment, but an
> empty page added after the break seems unnecessary. I checked for a wiki
> page on the \definepagecolumns command to get more information on its
> accepted inputs, but there doesn't appear to be a page for this command.
> >>
> >> Joey
> >>
> >> On Tue, Apr 28, 2020 at 1:40 PM Joey McCollum <
> jmccollum20140511@gmail.com> wrote:
> >>>
> >>> I am typesetting a document using pagecolumns to ensure that my
> footnotes are set ragged-bottom in columns. I have observed some unexpected
> behavior whenever the last column on a page is left incomplete: a blank
> page is added at the end of the document. A minimal working example follows:
> >>>
> >>> ```
> >>>
> >>> \starttext
> >>>
> >>> \startpagecolumns[n=2]
> >>>
> >>> \dorecurse{3}{\par\input zapf}
> >>>
> >>> \stoppagecolumns
> >>>
> >>> \stoptext
> >>>
> >>> ```
> >>>
> >>> I typeset this using ConTeXt version 2020.03.10, as released with
> TeXLive 2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or
> \dorecurse{6} (so that the text ends in the first column of a page), then
> there is no problem. I have tried to fix this by specifying page=no in the
> \startpagecolumns arguments, but it did not change anything. Is there
> something else I am missing?
> >>>
> >>> Thank you,
> >>>
> >>> Joey
> >
> >
> ___________________________________________________________________________________
> > 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://context.aanhet.net
> > archive  : https://bitbucket.org/phg/context-mirror/commits/
> > wiki     : http://contextgarden.net
> >
> ___________________________________________________________________________________
>
> ___________________________________________________________________________________
> 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://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>

[-- Attachment #1.2: Type: text/html, Size: 8592 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-14 21:03       ` Joey McCollum
@ 2020-05-16  3:45         ` Joey McCollum
  2020-05-16  8:12           ` Wolfgang Schuster
  0 siblings, 1 reply; 8+ messages in thread
From: Joey McCollum @ 2020-05-16  3:45 UTC (permalink / raw)
  To: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 7817 bytes --]

All right, I've found a tentative solution that appears to work in all
cases, but I'd like to know more about why the code I'm patching was
implemented in the first place, because I don't want to break anything
else. According to the code in page-pcl.mkiv, the \stoppagecolumns macro
has two implementations, \page_col_stop_yes and \page_col_stop_nop. The
choice of which implementation is used is determined by which of two
implementations of \startpagecolumns (\page_col_start_yes
and \page_col_start_nop) is used. That choice, in turn, is made in
the \page_col_start macro, in the following lines:

```
\c_page_col_n_of_columns\pagecolumnsparameter\c!n\relax
   \ifnum\c_page_col_n_of_columns>\plusone
     \expandafter\page_col_start_yes
   \else
     \expandafter\page_col_start_nop
   \fi
```

so if the number of columns (i.e., the n option for the
pagecolumns environment) is more than one, the "yes" implementation of the
start and stop commands is used.

But this seems wrong. The naming convention for the two implementations
("yes" and "nop") suggests that they should be related the parameters
"page=yes" and "page=no" (hence, no page, which is what I think "nop"
abbreviates), but the choice of which implementation to use is determined
not by the page parameter, but by the n parameter. Is this an error in the
code, or am I just understanding this incorrectly? Is there some reason why
a layout with more than one column would need special instructions to add a
blank page after stopping the environment?

In any event, I was able to solve the problem by patching the
\page_col_start_yes macro to invoke the \page_col_start_nop macro as
follows:

```

\unprotect

\def\page_col_stop_yes

{\page_col_stop_nop}

\protect
```

With this fix, the MWE I provided works regardless of which column the text
ends in. I'm content to consider the problem solved, but I would certainly
appreciate any feedback on my thoughts and questions about page-pcl.mkiv.

Joey

On Thu, May 14, 2020 at 5:03 PM Joey McCollum <jmccollum20140511@gmail.com>
wrote:

> Okay, I think I'm getting close, but I'm not quite there yet. The
> pagecolumns source code is found in page-pcl.mkiv (
> source.contextgarden.net/tex/context/base/mkiv/page-pcl.mkiv), and in
> that code, the \page_col_stop_yes macro seems to have something to do with
> the issue:
>
> ```
> \unexpanded\def\page_col_stop_yes
>   {\column % \page_otr_eject_page
>    \page
>    \endgroup
>  % \setupoutputroutine[\s!singlecolumn]%
>    \page_otr_command_set_vsize
>    \page_otr_command_set_hsize
>    \page
>    \endgroup}
> ```
>
> If I redefine this macro in my MWE as follows, I can remove the extra page
> that is added when the last page ends with text in the last column:
>
> ```
>
> \unprotect
>
> \def\page_col_stop_yes
>
> {\column %\page_otr_eject_page
>
> %\page
>
> \endgroup
>
> % \setupoutputroutine[\s!singlecolumn]%
>
> \page_otr_command_set_vsize
>
> \page_otr_command_set_hsize
>
> %\page
>
> \endgroup}
>
> \protect
> ```
>
> Commenting out the \page calls does the trick in this case, but now, if
> the last page ends with its text in a column before the last one, then the
> last page is not typeset at all, and a blank page takes its place.
>
> On Sun, May 10, 2020 at 8:34 PM Thangalin <thangalin@gmail.com> wrote:
>
>> Bump.
>>
>> See also: https://tex.stackexchange.com/q/542993/2148
>>
>> On Mon, May 4, 2020 at 11:46 AM Joey McCollum
>> <jmccollum20140511@gmail.com> wrote:
>> >
>> > After continuing to look into this a bit, I noticed that a similar
>> issue involving the insertion of a blank page after a columnset environment
>> has been discussed on the mailing list in the thread "Blank page inserted
>> when text reaches column's end" (dated 08 Dec 2019). In that thread, a
>> proposed solution was to redefine the \page_grd_stop macro found in
>> page-cst.mkiv as follows:
>> >
>> > ```
>> > \unprotect
>> > \def\page_grd_stop{%
>> >   \endgraf % needed, else wrong vsize in one par case
>> >   \vfill % otherwise weird \placenotes[endnotes]
>> >   \page_grd_command_set_vsize % needed
>> >   \penalty\c_page_otr_eject_penalty
>> >   %\page_grd_command_flush_page
>> >   \page_otr_fill_and_eject_page
>> >   \page_grd_command_set_vsize % why here
>> >   \egroup
>> >   \page_otr_command_set_vsize
>> >   \page_otr_command_set_hsize
>> > }
>> > \protect
>> > ```
>> >
>> > Unfortunately, this approach was found to have potential issues in that
>> thread, and it does not fix the problem with pagecolumns in my MWE. Are
>> pagecolumns commands aliased to pagegrid commands like columnset commands
>> are, or are they defined somewhere else? I checked page-col.mkiv, but it
>> seems to be too short to be the file that defines pagecolumns behavior.
>> >
>> > Joey
>> >
>> > On Sat, May 2, 2020 at 11:46 AM Joey McCollum <
>> jmccollum20140511@gmail.com> wrote:
>> >>
>> >> I recently found the pagecolumns manual (
>> http://www.pragma-ade.com/general/manuals/pagecolumns.pdf), and in
>> several of the examples (including those for side floats and footnotes),
>> the addition of a blank page after the end of the pagecolumns environment
>> also seems to occur. So when the manual says, "We always start at a new
>> page and end on a new one," does it mean that this is a feature of
>> pagecolumns? And if so, is there any way to disable it? I have no problem
>> with a page break after the end of the pagecolumns environment, but an
>> empty page added after the break seems unnecessary. I checked for a wiki
>> page on the \definepagecolumns command to get more information on its
>> accepted inputs, but there doesn't appear to be a page for this command.
>> >>
>> >> Joey
>> >>
>> >> On Tue, Apr 28, 2020 at 1:40 PM Joey McCollum <
>> jmccollum20140511@gmail.com> wrote:
>> >>>
>> >>> I am typesetting a document using pagecolumns to ensure that my
>> footnotes are set ragged-bottom in columns. I have observed some unexpected
>> behavior whenever the last column on a page is left incomplete: a blank
>> page is added at the end of the document. A minimal working example follows:
>> >>>
>> >>> ```
>> >>>
>> >>> \starttext
>> >>>
>> >>> \startpagecolumns[n=2]
>> >>>
>> >>> \dorecurse{3}{\par\input zapf}
>> >>>
>> >>> \stoppagecolumns
>> >>>
>> >>> \stoptext
>> >>>
>> >>> ```
>> >>>
>> >>> I typeset this using ConTeXt version 2020.03.10, as released with
>> TeXLive 2020. Notably, if \dorecurse{3} is changed to \dorecurse{2} or
>> \dorecurse{6} (so that the text ends in the first column of a page), then
>> there is no problem. I have tried to fix this by specifying page=no in the
>> \startpagecolumns arguments, but it did not change anything. Is there
>> something else I am missing?
>> >>>
>> >>> Thank you,
>> >>>
>> >>> Joey
>> >
>> >
>> ___________________________________________________________________________________
>> > 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://context.aanhet.net
>> > archive  : https://bitbucket.org/phg/context-mirror/commits/
>> > wiki     : http://contextgarden.net
>> >
>> ___________________________________________________________________________________
>>
>> ___________________________________________________________________________________
>> 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://context.aanhet.net
>> archive  : https://bitbucket.org/phg/context-mirror/commits/
>> wiki     : http://contextgarden.net
>>
>> ___________________________________________________________________________________
>>
>

[-- Attachment #1.2: Type: text/html, Size: 11485 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-16  3:45         ` Joey McCollum
@ 2020-05-16  8:12           ` Wolfgang Schuster
  2020-05-16 13:31             ` Joey McCollum
  0 siblings, 1 reply; 8+ messages in thread
From: Wolfgang Schuster @ 2020-05-16  8:12 UTC (permalink / raw)
  To: mailing list for ConTeXt users, Joey McCollum

Joey McCollum schrieb am 16.05.2020 um 05:45:
> All right, I've found a tentative solution that appears to work in all 
> cases, but I'd like to know more about why the code I'm patching was 
> implemented in the first place, because I don't want to break anything 
> else. According to the code in page-pcl.mkiv, the \stoppagecolumns macro 
> has two implementations, \page_col_stop_yes and \page_col_stop_nop. The 
> choice of which implementation is used is determined by which of two 
> implementations of \startpagecolumns (\page_col_start_yes 
> and \page_col_start_nop) is used. That choice, in turn, is made in 
> the \page_col_start macro, in the following lines:
> 
> ```
> \c_page_col_n_of_columns\pagecolumnsparameter\c!n\relax
>     \ifnum\c_page_col_n_of_columns>\plusone
>       \expandafter\page_col_start_yes
>     \else
>       \expandafter\page_col_start_nop
>     \fi
> ```
> 
> so if the number of columns (i.e., the n option for the 
> pagecolumns environment) is more than one, the "yes" implementation of 
> the start and stop commands is used.
> 
> But this seems wrong. The naming convention for the two implementations 
> ("yes" and "nop") suggests that they should be related the parameters 
> "page=yes" and "page=no" (hence, no page, which is what I think "nop" 
> abbreviates), but the choice of which implementation to use is 
> determined not by the page parameter, but by the n parameter. Is this an 
> error in the code, or am I just understanding this incorrectly? Is there 
> some reason why a layout with more than one column would need special 
> instructions to add a blank page after stopping the environment?

Why do you think "yes" and "nop" are related to the page-key?

> In any event, I was able to solve the problem by patching the 
> \page_col_start_yes macro to invoke the \page_col_start_nop macro as 
> follows:
> 
> ```
> 
> \unprotect
> 
> \def\page_col_stop_yes
> {\page_col_stop_nop}
> 
> \protect
> 
> ```
> 
> With this fix, the MWE I provided works regardless of which column the 
> text ends in. I'm content to consider the problem solved, but I would 
> certainly appreciate any feedback on my thoughts and questions about 
> page-pcl.mkiv.

You broke now now normal single columns text after the pagecolumns 
environment. A better fix is to add a check for the \column command at 
the end of the environment and add it only when we aren't in the last 
column.

\unexpanded\def\page_col_stop_yes
   {%\column % \page_otr_eject_page
    \ifnum\c_page_col_current<\c_page_col_n_of_columns
      \column
    \fi
    \page
    \endgroup
  % \setupoutputroutine[\s!singlecolumn]%
    \page_otr_command_set_vsize
    \page_otr_command_set_hsize
    \page
    \endgroup}

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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

* Re: Blank page added after pagecolumns
  2020-05-16  8:12           ` Wolfgang Schuster
@ 2020-05-16 13:31             ` Joey McCollum
  0 siblings, 0 replies; 8+ messages in thread
From: Joey McCollum @ 2020-05-16 13:31 UTC (permalink / raw)
  To: Wolfgang Schuster; +Cc: mailing list for ConTeXt users


[-- Attachment #1.1: Type: text/plain, Size: 3786 bytes --]

I thought that the "yes" and "nop" suffixes were related to "page=yes" and
"page=no" for a few reasons. First, because I thought "nop" could be
shorthand for "no page." More importantly, however, I thought they might be
related because setting page=no in \definepagecolumns does not appear to
have any effect, and patching \page_col_stop_yes to do what
\page_col_stop_nop does had the desired effect. But as you have shown,
doing this causes problems with the transition back to a single-column
layout, so I suppose that the \page_col_stop_yes and \page_col_stop_nop
macros are meant to implement behavior dependent on the number of columns.
Your suggestion to add a column if the column at the end of the environment
is not the last one is elegant and works on different variations of the
MWE, including cases with more than two columns.

Joey

On Sat, May 16, 2020 at 4:12 AM Wolfgang Schuster <
wolfgang.schuster.lists@gmail.com> wrote:

> Joey McCollum schrieb am 16.05.2020 um 05:45:
> > All right, I've found a tentative solution that appears to work in all
> > cases, but I'd like to know more about why the code I'm patching was
> > implemented in the first place, because I don't want to break anything
> > else. According to the code in page-pcl.mkiv, the \stoppagecolumns macro
> > has two implementations, \page_col_stop_yes and \page_col_stop_nop. The
> > choice of which implementation is used is determined by which of two
> > implementations of \startpagecolumns (\page_col_start_yes
> > and \page_col_start_nop) is used. That choice, in turn, is made in
> > the \page_col_start macro, in the following lines:
> >
> > ```
> > \c_page_col_n_of_columns\pagecolumnsparameter\c!n\relax
> >     \ifnum\c_page_col_n_of_columns>\plusone
> >       \expandafter\page_col_start_yes
> >     \else
> >       \expandafter\page_col_start_nop
> >     \fi
> > ```
> >
> > so if the number of columns (i.e., the n option for the
> > pagecolumns environment) is more than one, the "yes" implementation of
> > the start and stop commands is used.
> >
> > But this seems wrong. The naming convention for the two implementations
> > ("yes" and "nop") suggests that they should be related the parameters
> > "page=yes" and "page=no" (hence, no page, which is what I think "nop"
> > abbreviates), but the choice of which implementation to use is
> > determined not by the page parameter, but by the n parameter. Is this an
> > error in the code, or am I just understanding this incorrectly? Is there
> > some reason why a layout with more than one column would need special
> > instructions to add a blank page after stopping the environment?
>
> Why do you think "yes" and "nop" are related to the page-key?
>
> > In any event, I was able to solve the problem by patching the
> > \page_col_start_yes macro to invoke the \page_col_start_nop macro as
> > follows:
> >
> > ```
> >
> > \unprotect
> >
> > \def\page_col_stop_yes
> > {\page_col_stop_nop}
> >
> > \protect
> >
> > ```
> >
> > With this fix, the MWE I provided works regardless of which column the
> > text ends in. I'm content to consider the problem solved, but I would
> > certainly appreciate any feedback on my thoughts and questions about
> > page-pcl.mkiv.
>
> You broke now now normal single columns text after the pagecolumns
> environment. A better fix is to add a check for the \column command at
> the end of the environment and add it only when we aren't in the last
> column.
>
> \unexpanded\def\page_col_stop_yes
>    {%\column % \page_otr_eject_page
>     \ifnum\c_page_col_current<\c_page_col_n_of_columns
>       \column
>     \fi
>     \page
>     \endgroup
>   % \setupoutputroutine[\s!singlecolumn]%
>     \page_otr_command_set_vsize
>     \page_otr_command_set_hsize
>     \page
>     \endgroup}
>
> Wolfgang
>

[-- Attachment #1.2: Type: text/html, Size: 4731 bytes --]

[-- Attachment #2: Type: text/plain, Size: 493 bytes --]

___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

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

end of thread, other threads:[~2020-05-16 13:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-28 17:40 Blank page added after pagecolumns Joey McCollum
2020-05-02 15:46 ` Joey McCollum
2020-05-04 18:45   ` Joey McCollum
2020-05-11  0:34     ` Thangalin
2020-05-14 21:03       ` Joey McCollum
2020-05-16  3:45         ` Joey McCollum
2020-05-16  8:12           ` Wolfgang Schuster
2020-05-16 13:31             ` Joey McCollum

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