I am trying to emulate the shift and shift+tab feature in the Outline.nb
stylesheet that comes with Mathematica.
I added the following code to a private stylesheet at the notebook level.
Cell[StyleData["NUM"],
CellDingbat->Cell[
TextData[{
CounterBox["NUM"], "."}]],
CellMargins->{{80, 10}, {7, 7}},
ReturnCreatesNewCell->True,
StyleKeyMapping->{"Tab" -> "SubNUM"},
CellGroupingRules->{"SectionGrouping", 50},
DefaultNewCellStyle->"SubNUM",
DefaultReturnCreatedCellStyle->"NUM",
ParagraphIndent->0,
CounterIncrements->"NUM",
CounterAssignments->{{"SubNUM", 0}},
MenuSortingValue->1200,
MenuCommandKey->"1",
FontFamily->"Times",
FontColor->GrayLevel[0]]
Cell[StyleData["SubNUM"],
CellDingbat->Cell[
TextData[{
CounterBox["SubNUM"], "."}]],
CellMargins->{{120, 10}, {7, 7}},
ReturnCreatesNewCell->True,
StyleKeyMapping->{
"Tab" -> "Outline3", "Backspace" -> "NUM", KeyEvent["Tab", Modifiers -> {Shift}] -> "NUM"},
CellGroupingRules->{"SectionGrouping", 60},
ParagraphIndent->0,
CounterIncrements->"SubNUM",
CounterAssignments->{{"Outline3", 0}},
MenuSortingValue->1250,
MenuCommandKey->"2",
FontFamily->"Times",
FontColor->GrayLevel[0],
CounterBoxOptions->{CounterFunction:>(Part[
CharacterRange["a", "z"], #]& )}]
So Shift and Shift+Tab work perfectly in the notebook containing the stylesheet. I tried them and they both work.
However, when if I create a new notebook and then apply the stylesheet to that notebook I loose the shift+tab feature. But for some reason the tab feature does transfer over. It seems to break only the shift+tab feature. As you can see in the animated gif below, the tab key works, but shift+tab does not work.
I use the function below to apply the styles in my master stylesheet notebook to any notebook I am working in.
ApplyStylesheet:=Module[{nb,stylesheet},
nb=NotebookOpen[$HomeDirectory<>"/Library/Mobile Documents/com~apple~CloudDocs/Ventura College/Mathematica/Master Settings/MStylesheet.nb"];
stylesheet=Options[nb,StyleDefinitions];
NotebookClose[nb];
nb=InputNotebook[];
SetOptions[nb,stylesheet];
];
Edit 2: @Kuba - I was able to verify that your code below works like a charm. However, I was still having issues using it in conjuction with my ApplyStylesheet
function above. As it turns out
stylesheet=Options[nb,StyleDefinitions]
was not saving the contexts. As a solution for applying a master stylesheet to multiple notebooks, I name the master stylesheet configuration (like yours configuration below) and then call it within any notebook. Contexts are kept intact this way. Thank you!