2
$\begingroup$

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
    

    enter image description here


  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.


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.

$\endgroup$
  • $\begingroup$ some of those issues are already reported, will format an update about that soon. $\endgroup$ – Kuba Jul 21 '17 at 16:12
  • $\begingroup$ 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. $\endgroup$ – b3m2a1 Jul 30 '17 at 4:28
0
$\begingroup$

[...] 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]

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.