Re: Re: Change CellTags with FrontEnd
- To: mathgroup at smc.vnet.net
- Subject: [mg68777] Re: [mg68698] Re: Change CellTags with FrontEnd
- From: John Fultz <jfultz at wolfram.com>
- Date: Fri, 18 Aug 2006 03:12:33 -0400 (EDT)
- Reply-to: jfultz at wolfram.com
- Sender: owner-wri-mathgroup at wolfram.com
Here's what you want... LinkWrite[$ParentLink, 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. Sincerely, John Fultz jfultz at wolfram.com 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 >> http://web.telia.com/~u31815170/Mathematica/ >> >> and his email address for more information is ingolf.dahl at telia.com. >> >> David Park >> djmp at earthlink.net >> http://home.earthlink.net/~djmp/ >> >> From: mqh [mailto:mhla at gmx.at] To: mathgroup at smc.vnet.net > >> >> 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.