11

I'm setting up a stylesheet and and finding the process of defining related styles tedious and error prone. In particular, I have several related styles that need to have synchronized settings (e.g., such as "DisplayFormula" and "DisplayFormulaNumbered"). Is there a way to base one style on another, or perhaps simply to copy or duplicate an existing style as the starting point for another?

Alexey Popkov
  • 61,809
  • 7
  • 149
  • 368
orome
  • 12,819
  • 3
  • 52
  • 100

1 Answers1

14

This required editing the cell expression (Ctrl+Shift+E, or Cmd+Shift+E on Mac), but it's exactly what you're looking for:

Cell[StyleData["childstylename", StyleDefinitions-> StyleData["parentstylename"]],
    opts...]

To do this, your stylesheet has to either contain the parent style or inherit from another stylesheet which contains the parent style.

You can see many examples of this in the built-in Mathematica stylesheets, such as the "PrintTemporary" style (based on "Print"), "Graphics3D" (based on "Graphics"), and many of the hyperlink-type styles which inherit from "Link".

Note: stylesheet inheritance is available in Mathematica v6 and later. My examples above were referenced from v8 stylesheets, but may not apply to earlier versions.

John Fultz
  • 12,581
  • 58
  • 73