[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue 4191: add an "\or" markup command (issue 169290045 by address@

From: dak
Subject: Re: Issue 4191: add an "\or" markup command (issue 169290045 by address@hidden)
Date: Wed, 12 Nov 2014 12:20:00 +0000

On 2014/11/12 11:37:41, Dan Eble wrote:
On 2014/11/12 06:58:19, dak wrote:
> Actually, if you want to go really nuts, instead of
interpret-markup-list you
> could use something akin to what map-markup-commands does in order
to throw
> yourself out of interpretation once you have the first stencil.  Not
sure it's
> worth the trouble, but at least markups are already safe for throws
> interpreting.

I'll experiment with that, because it may be worthwhile for someone
who has
several books with hundreds of markups.

It's quite unlikely that we are talking about a bottleneck here.  The
only possibly relevant reason for avoiding unnecessary evaluation might
be to avoid warnings or errors for stuff not getting produced anyway.  I
am not sure that for markup list commands, there will be much of an
expectation that its arguments will be evaluated lazily in some respect.
 And that's probably only possible in exceptional circumstances anyway.

So probably the catch/throw idea is rubbish.  But the
(interpret-markup-list layout props (list (car l))) thing seems
reasonably solid to me, and since then everything works on (car l), you
might consider using a call of `any' for going through the markup-list
rather than the named let.

Also, I realized that the result of patch set 2 is counter-intuitive
in that

\or {
   \column-lines { A B }
   \column-lines { C D }

Yields just A.  It seems like it should yield A B (in a column).

\column-lines does not yield things in a column but as separate stencils
that are individually aligned as \column would do before stacking them
vertically.  Since \or is to return just a single stencil, it would not
know how to arrange A and B.  It has no way to decide that they are to
be stacked vertically in preference over anything else.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]