11
$\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$

1 Answer 1

14
$\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$
1
  • $\begingroup$ Well, I should've thought of that. Thanks, John! $\endgroup$ Jan 8, 2013 at 12:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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