lilypond-devel
[Top][All Lists]

## Re: Issue 4083: Implement \tagGroup command (issue 137920043 by address@

 From: Keith OHara Subject: Re: Issue 4083: Implement \tagGroup command (issue 137920043 by address@hidden) Date: Sat, 06 Sep 2014 22:21:46 -0700 User-agent: Opera Mail/12.16 (Win32)

Patch set 5 will probably be fine.

My concern was that someone would be confused that adding to the list of tags
to keep
\keepWithTag editorial { ... \tag#'editorial \tag#'score \bar'||'  }
\keepWithTag part.editorial { ... \tag#'editorial \tag#'score \bar'||'  }
can reduce the things that are kept.  But that will not likely come up, and you
do explain it in the docstring for \keepWithTag

Don't put too much value on symmetry between how the tags in \keepWithTag, and
the tags on each given piece of music enter, into the keep-or-remove decision.
One set defines a single filter, the other describes each item that is going
through the filter.  The keep-or-remove decision is part of an asymmetric
operation.

On Sat, 06 Sep 2014 12:45:40 -0700, <address@hidden> wrote:


On 2014/09/06 18:55:42, Keith wrote:

The old patch :
\keepWithTag will keep music if any tag matches,
removing music with unmatching tags,
but ignoring tags in a different tagGroupfrom any of the tags to keep.


But "if any tag matches" becomes very tricky to explain when one needs
to implement a behavior where \tag A { \tag B ... is supposed to be
equivalent to \tag A \tag B ... while \keepWithTag A \keepWithTag B is
different from \keepWithTag A.B even when A and B are in different tag
groups.


The explanation above does cover the points you think might be tricky.

\tag A { \tag B ...   has not to date been equivalent to   \tag A \tag B ...
The explanation above says when B would be "ignored" by keepWithTag.  If A is
ignored, or if B is ignored, the expressions just above are equivalent.

\keepWithTag A.B might keep more music than \keepWithTag A \keepWithTag B. The
explanation above seems to make that clear, because it is easier to match "any
tag" in A and B than to match each of A and B.