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
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 deeperCellGroups
which is unintuitive and contradictsCellGroupData
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
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
] // NotebookPutAdd a second cell to the second group and it will disappear!
Cell @ CellGroupData
as a first cell inCell @ CellGroupData
When the first cell in a group contains another
CellGroupData
then the parentCellGroupData
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
Deletion of
CellGroups
inEditable -> False
notebookYou 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.
Further reading
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.
Answer
[...] Thank you for consolidating all of the issues to a single StackExchange article. I have confirmed the behavior you are reporting in each of the four issues. I will add a link to this StackExchange article in the developers report I originally filed. [...]
[CASE:3918002]
Comments
Post a Comment