ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* (pdfe)TeX register clash?
@ 2001-11-15  4:12 F. Miller Maley
  2001-11-15  8:25 ` Hans Hagen
  0 siblings, 1 reply; 4+ messages in thread
From: F. Miller Maley @ 2001-11-15  4:12 UTC (permalink / raw)


I'm using ConTeXt with pdfeTeX to typeset a large manuscript, and things
have been going very well, but I had to work around the following problem.

When I defined variables using the plain TeX methods, e.g.

\newcount\Mycount
\newbox\Mybox

and started using these in my macros, it seemed to confuse ConTeXt about
which pages were left pages and which were right pages.  If I just blindly
say

\chardef\Mycount=200
\chardef\Mybox=200

then everything works.  It seems ConTeXt and I were using the same counter.

What is the preferred method for allocating variables (TeX registers) for
my own macros?  My apologies if this is a FAQ.  I couldn't find a FAQ file
for this mailing list.

By the way, I am using the (undocumented?) option \setuparranging[2SIDE].

-- Miller Maley


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

* Re: (pdfe)TeX register clash?
  2001-11-15  4:12 (pdfe)TeX register clash? F. Miller Maley
@ 2001-11-15  8:25 ` Hans Hagen
  2001-11-16  1:07   ` F. Miller Maley
  0 siblings, 1 reply; 4+ messages in thread
From: Hans Hagen @ 2001-11-15  8:25 UTC (permalink / raw)
  Cc: ntg-context

At 11:12 PM 11/14/2001 -0500, you wrote:
>I'm using ConTeXt with pdfeTeX to typeset a large manuscript, and things
>have been going very well, but I had to work around the following problem.
>
>When I defined variables using the plain TeX methods, e.g.
>
>\newcount\Mycount
>\newbox\Mybox
>
>and started using these in my macros, it seemed to confuse ConTeXt about
>which pages were left pages and which were right pages.  If I just blindly
>say
>
>\chardef\Mycount=200
>\chardef\Mybox=200
>
>then everything works.  It seems ConTeXt and I were using the same counter.
>
>What is the preferred method for allocating variables (TeX registers) for
>my own macros?  My apologies if this is a FAQ.  I couldn't find a FAQ file
>for this mailing list.

Context offers \newcount and \newbox (although the implementation is 
adapted to etex's >256 register count; i don't use the original etex macros).

So, there must be something else going on. How does the macro that uses the 
counter look? Maybe there is some unsafe testing going on there (lookahead 
problem).

Hans

-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------


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

* Re: (pdfe)TeX register clash?
  2001-11-15  8:25 ` Hans Hagen
@ 2001-11-16  1:07   ` F. Miller Maley
  2001-11-16  8:41     ` Hans Hagen
  0 siblings, 1 reply; 4+ messages in thread
From: F. Miller Maley @ 2001-11-16  1:07 UTC (permalink / raw)


Hans Hagen wrote:
> Context offers \newcount and \newbox (although the implementation is
> adapted to etex's >256 register count; i don't use the original etex macros).
>
> So, there must be something else going on. How does the macro that uses the 
> counter look? Maybe there is some unsafe testing going on there (lookahead 
> problem).

Thank you, this answers my question, and made me realize where my bug was.
Things are now working as expected, but perhaps there is a better solution
than the hack I came up with.  My real question is this:

Suppose I want to format something (a table, a section title) differently
depending on whether it appears on a left or right page.  I promise that
the two formats (left/right) will behave the same with regard to page
breaking.  What is the cleanest way to do this?

My idea was to (1) use the cross-reference mechanism to make a self-reference,
(2) extract the page number from the reference into a counter and (3) test it
with \ifodd.  Step (2) was a bit tricky, and my solution unfortunately relies
on ConTeXt internal macros (\doifreferencefoundelse, etc.).

-- Miller Maley


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

* Re: (pdfe)TeX register clash?
  2001-11-16  1:07   ` F. Miller Maley
@ 2001-11-16  8:41     ` Hans Hagen
  0 siblings, 0 replies; 4+ messages in thread
From: Hans Hagen @ 2001-11-16  8:41 UTC (permalink / raw)
  Cc: ntg-context

At 08:07 PM 11/15/2001 -0500, F. Miller Maley wrote:
>Hans Hagen wrote:
> > Context offers \newcount and \newbox (although the implementation is
> > adapted to etex's >256 register count; i don't use the original etex 
> macros).
> >
> > So, there must be something else going on. How does the macro that uses 
> the
> > counter look? Maybe there is some unsafe testing going on there (lookahead
> > problem).
>
>Thank you, this answers my question, and made me realize where my bug was.
>Things are now working as expected, but perhaps there is a better solution
>than the hack I came up with.  My real question is this:
>
>Suppose I want to format something (a table, a section title) differently
>depending on whether it appears on a left or right page.  I promise that
>the two formats (left/right) will behave the same with regard to page
>breaking.  What is the cleanest way to do this?
>
>My idea was to (1) use the cross-reference mechanism to make a self-reference,
>(2) extract the page number from the reference into a counter and (3) test it
>with \ifodd.  Step (2) was a bit tricky, and my solution unfortunately relies
>on ConTeXt internal macros (\doifreferencefoundelse, etc.).

there are two ways to do this:

\getpagestatus after which you can use \ifrightpage ....

watch out, \getpagestatus inserts a node

you can also try : \doifrightpageelse{...}{...}, but here you need to 
insert the \signalrightpage node yourself.

These mechanisms may merge some day. Both adapt themselves to 
single/doublesides and use two pass data (which is more efficient than 
references)

Concerning references:

\doifreferencefoundelse{blabla}
   {.... \currentrealreference holds the pagenumber which you can test on odd}
   {...}

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------


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

end of thread, other threads:[~2001-11-16  8:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-15  4:12 (pdfe)TeX register clash? F. Miller Maley
2001-11-15  8:25 ` Hans Hagen
2001-11-16  1:07   ` F. Miller Maley
2001-11-16  8:41     ` Hans Hagen

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