On Sat, Feb 08, 2020 at 11:44:13PM +0900, Akira Yokosawa wrote: > On Sat, 8 Feb 2020 05:03:58 -0800, Paul E. McKenney wrote: > > On Sat, Feb 08, 2020 at 09:03:10PM +0900, Akira Yokosawa wrote: > >> >From 66df1c9aaaefb2ef5ccfd0c23837b33218a24f30 Mon Sep 17 00:00:00 2001 > >> From: Akira Yokosawa <akiyks@xxxxxxxxx> > >> Date: Sat, 8 Feb 2020 08:29:08 +0900 > >> Subject: [PATCH] SMPdesign: Fix meaningless consecutive blank pages > >> > >> In the introduction of Dining Philosophers, there is two-page > >> "think about it" gap before presenting an answer. > >> > >> Let's see what we need for print editions. > >> > >> When the question is on an odd page, the answer can be on the next page > >> (the other side of the question's page). > >> When the question is on an even page, the answer should be on the > >> next even page to prevent it from being spotted too early. > >> > >> For electronic editions, there needs to be a gap of at least one > >> page regardless of the question's position. > >> > >> As \cleardoublepage changes its behavior depending on whether it is > >> on an odd page (one blank page) or on an even page (nothing), it > >> can not cover the requirement for electronic editions. > >> > >> For our purpose, the sequence of \clearpage, "((Intentional blank page)", > >> and another \clearpage should suffice. > >> > >> Reported-by: Paul E. McKenney <paulmck@xxxxxxxxxx> > >> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx> > > > > I have queued this, thank you! > > > > It works as desired with the current setup because the discussion and the > > reveal both end up on even pages. You can check this using the "evince" > > PDF viewer by putting it into two-page mode (apologies for not saying > > so earlier, but I just now remembered myself). > > > > Wasting the single page isn't a disaster, as you say, but could the > > trick shown here avoid even that? > > > > https://tex.stackexchange.com/questions/6143/if-then-else-for-odd-page-even-page > > > > I tried this (but leaving out the recommended \strictpagecheck, which > > might mean that there could be errors when this occurs near the beginning > > of a page?) and it seems to handle both cases. Please see below for a > > patchlet on top of your patch. > > I've not tested it yet, but I think this trick should be enabled only > for print editions. > I'm wondering what is the right option to distinguish print editions > from electronic editions. > > One way would be to update autodate.sh and define a boolean as true > in autodate.tex when you have a tag of "Edition.nP". > > Does this sound reasonable to you? It would, except that people really do print non-print editions and sometimes they print releases or even random points in the git history. So I do not believe that we should distinguish. But if there is ever a reliable way to produce an ereader format, then agreed, we would want to distinguish. Or if we could figure out that the reader was reading it on a smartphone. Or am I missing a trick here? Thanx, Paul > Thanks, Akira > > > > > If this really works, could you please fold it into your patch with any > > needed adjustments? If it is broken in some way, well, I do have your > > existing patch which does represent a much-appreciated improvement! > > > > Thanx, Paul > > > > ------------------------------------------------------------------------ > > > > diff --git a/SMPdesign/partexercises.tex b/SMPdesign/partexercises.tex > > index 4ceaefe..82de2b9 100644 > > --- a/SMPdesign/partexercises.tex > > +++ b/SMPdesign/partexercises.tex > > @@ -84,6 +84,8 @@ there will be five forks available to four philosophers. > > At least one of these four will have two forks, and will thus be able > > to eat. > > > > +\clearpage // Comment out to see the other option. And move it around. > > + > > This general technique of numbering resources and acquiring them in > > numerical order is heavily used as a deadlock-prevention technique. > > However, it is easy to imagine a sequence of events that will result > > @@ -107,8 +109,12 @@ philosophers to eat concurrently. > > Please think about ways of partitioning the Dining Philosophers Problem > > before reading further. > > > > +\checkoddpage > > +\ifoddpage > > +\else > > \clearpage > > (Intentional blank page) > > +\fi > > \clearpage > > > > \begin{figure}[tb] > >