10
$\begingroup$

I build a lot of presentations and custom notebooks with very different stylesheets, and use Button and CreateDocument quite often to accommodate optional/procedurally generated content. For instance,

Map[Button[Style[ToString[#] <> " random images", "Text"], 
       CreateDocument[
          {Cell["Here are " <> ToString[#] <> " random image(s)", "Title"],             
           ExpressionCell[Column@Table[RandomImage[2, {200, 200}], {#}],
           "Output"]}]] &,
   Range[5]]

What I'd like to do is specify that the notebook generated by CreateDocument inherits the StyleSheet from the parent notebook, without having to save the StyleSheet and provide the StyleSheetPath Option in the CreateDocument function each time I change a style.

I imagine there's an undocumented feature, but haven't found it in my brief searches of StackExchange.

$\endgroup$
13
$\begingroup$

Add the following option to your CreateDocument call:

StyleDefinitions -> 
 CurrentValue[EvaluationNotebook[], StyleDefinitions]

This works for both embedded stylesheets and stylesheets on the StyleSheetPath. In this case, I use EvaluationNotebook to refer to the notebook containing the button but it could, of course, be whatever NotebookObject you wish to refer to.

$\endgroup$
  • $\begingroup$ Well, I should've thought of that. Thanks, John! $\endgroup$ – Martin John Hadley Jan 8 '13 at 12:20

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.