# Cell @ CellGroupData[... in Cells family

Bug introduced in V10.4 or earlier and persisting through V11.3

### Background

This question originates from two already posted questions updated with further doubts I've faced. I deleted one and merged content here.

Those issues are closely related, hard to separate and probably could be caused by the same internal features so I decided to make one question

### CellGroupData assumptions

First of all, according to tutorial/TheStructureOfCells a cell of the form Cell[CellGroupData[...],...] is a valid Cell so in my opinion we should expect consistent behavior.

CellGroupData second argument allows to specify which cells are visible. It could be Open, Closed, {cells indices}, or even {} to show no cell.

That is not the case in general:

### Issues

1. Inner CellGroupData expression are transparent to parent's visibility spec:

CellGroupData[
{ Cell[...]
, Cell @ CellGroupData[...]
, Cell[...]
}
, {2}
]


I'd expect the structure above to show only and exactly what Cell @ CellGroupData[...] contains.

It is not the case, the outer CellGroupData can't handle nested structure this way and just goes into deeper CellGroups which is unintuitive and contradicts CellGroupData documentation.

Try yourself

Notebook[
{ Cell @ CellGroupData[
{ Cell["1", "Text"]
, Cell @ CellGroupData[
{Cell["2-1", "Text"], Cell["2-2", "Text"]}]
, Cell["3", "Text"]
}
, {3}
]
}
, CellGrouping -> Manual
, ShowGroupOpener -> False
] // NotebookPut


1. Visibility spec problem for single cell CellGroupData

But if the group contains only one cell the {} visibility spec does not work:

Notebook[{
Cell @ CellGroupData[{ Cell["Group 1", "Chapter"] }, Open],
Cell @ CellGroupData[{Cell["Group 2", "Chapter"]}, {}]
},
CellGrouping -> Manual
] // NotebookPut


Add a second cell to the second group and it will disappear!

1. Cell @ CellGroupData as a first cell in Cell @ CellGroupData

When the first cell in a group contains another CellGroupData then the parent CellGroupData is confused.

Not only {} will still show whole group but even giving specific {1} cell position fails.

Notebook[{
Cell @ CellGroupData[{ Cell["Group 1", "Chapter"] }, Open],
Cell @ CellGroupData[
{ (*Cell["","Text"],*) (*uncomment this cell and everything is ok*)
Cell @ CellGroupData[{
Cell["Group 2", "Chapter"], Cell["Group 2", "Text"]
}]
, Cell["text", "Text"]
}
, {2}
]}
, CellGrouping -> Manual
] // NotebookPut


1. Deletion of CellGroups in Editable -> False notebook

You can delete each cell one by one, even those from the cell group. But if you try to delete after selecting group bracket you will get a beep and won't be able to delete it.

CreateDocument[
{ Cell @ CellGroupData[{
Cell["1", "Text"]
, Cell["2", "Text"]
}]
, Cell["2", "Text"]
}
, CellGrouping -> Manual
, Editable -> False
]


Whatever editable means, this is at least inconsistent.

related to cell structure

### Questions

How to understand cell groups behavior? Seems detached from 'cells framework' for me. Not to mention a minimal documentation.

Classification of faced 'issues' will be appreciated.

• some of those issues are already reported, will format an update about that soon.
– Kuba
Jul 21, 2017 at 16:12
• One thing I find worth mentioning that's caused me a major amount of confusion once is that if you copy and paste a CellObject that heads a cell group, that CellObject remembers its CellGroupData visibility spec. See this for what caused me such confusion. Jul 30, 2017 at 4:28