MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Re: Change CellTags with FrontEnd

  • To: mathgroup at
  • Subject: [mg68777] Re: [mg68698] Re: Change CellTags with FrontEnd
  • From: John Fultz <jfultz at>
  • Date: Fri, 18 Aug 2006 03:12:33 -0400 (EDT)
  • Reply-to: jfultz at
  • Sender: owner-wri-mathgroup at

Here's what you want...

FrontEnd`SelectionAddCellTags[FrontEnd`InputNotebook[], "newtag"]]

That last argument can be a list as well as a single string, and there's a 
complementary SelectionRemoveCellTags[] command, too, which accepts the 
same syntax.  Sorry for not sending this out in response to your first 
request, which I saw, but hit me at a particularly busy time and slipped 
through the cracks.

And, while we're talking about notebook programming, let me add one more 
important point.  In 5.2 (and future) front ends, the preferred incantation 
is no longer LinkWrite, but MathLink`CallFrontEnd.  In this case, for 
example, it would be...

MathLink`CallFrontEnd[FrontEnd`SelectionAddCellTags[nb, "newtag"]]

It is generally true that anyplace where LinkWrite of $ParentLink used to 
be used to communicate with the FE, MathLink`CallFrontEnd is recommended in 
5.2 and will be required in all future versions of Mathematica.


John Fultz
jfultz at
User Interface Group
Wolfram Research, Inc.

On Thu, 17 Aug 2006 04:17:58 -0400 (EDT), Markus Huber wrote:
> Unfortunately this is not what I was looking for.
> But I found a possibility how to do it with the FrontEnd:
> SetOptions[NotebookSelection@InputNotebook[], CellTags -> ...];
> One problem still remains: You can only set CellTags this way (and
> overwrite existing ones), not add CellTags (that is what I was looking
> for).
> Markus Huber
> David Park schrieb:
>> Ingolf Dahl has an extensive package for manipulating cell tags. It is
>> available at
>> And a new version of my package is available at
>> and his email address for more information is ingolf.dahl at
>> David Park
>> djmp at
>> From: mqh [mailto:mhla at]
To: mathgroup at
>> I'd like to change the celltags of several cells that are not adjacent
>> via a program (not via the menu). Doing this for one cell is no
>> problem: I use a rule like
>> {Cell[a_, st_String, b___, CellTags -> tgs_, c___] :>
>> Cell[a, st, b, CellTags -> Union[Flatten[{tgs, newtag}]], c],
>> Cell[a_, st_String, b___ /; FreeQ[{b}, CellTags, \[Infinity]]] :>
>> Cell[a, st, b, CellTags -> settag]}.
>> The problem arises now if several cells are selected: I read them in,
>> apply the rule and paste them back, but the new cells appear now at the
>> wrong place. One can simply imitate this behaviour of M by selecting
>> several not adjacent cells and doing copy and paste: One will see that
>> the cells are pasted at the wrong place.
>> Doing the same thing via the menu entry Find > Add/Remove Cell Tags
>> this is no problem at all. So it appears to me that a solution using
>> the FrontEnd would be the best thing. But: I can find no documentation
>> about a FrontEndToken like "AddCellTags". The best thing I can do is
>> use
>> FrontEndTokenExecute[CellTagsEditDialog]
>> to open the dialog to change CellTags, but this is not what I want.
>> So can anybody tell me if there is an additional FrontEndToken that can
>> do what I want or has another idea? It should work for M4.0 - M5.2.

  • Prev by Date: Re: word problem
  • Next by Date: Bayesian Networks, Conditional Probability
  • Previous by thread: Re: Change CellTags with FrontEnd
  • Next by thread: RE: Re: Re: Change CellTags with FrontEnd