2 of 4 Added "front-end" tag. Edited text for clarity, added link to tutorial.

StyleSheet for custom application

I'm working on a package that needs to be installed into an arbitrary, "non standard" path (i.e., not $BaseDirectory or $UserBaseDirectory). I have added the package's path to $Path in order to allow Mathematica to load the package via Get or Needs, and this works well.

My problem is that the package also needs to include custom stylesheets and custom palettes, and these are not available in the front-end menus (Format-->Stylesheet and Palettes, respectively) when the package is loaded from a non-standard location.

If I put the package files in $BaseDirectory the custom stylesheet and palette are accessible from the front-end menus, since the package follows the standard structure:

  • package\FrontEnd\StyleSheets\mystyle.nb

  • package\FrontEnd\Palettes\mypalette.nb

but this doesn't seem to work if it is loaded from an arbitrary path.


This Wolfram tutorial says that:

Stylesheet are discovered by the front end in the following locations.

FrontEnd`FileName[{$UserBaseDirectory,"SystemFiles","FrontEnd","StyleSheets"}]

FrontEnd`FileName[{$InstallationDirectory,"SystemFiles","FrontEnd","StyleSheets"}]

Stylesheets contained in directories are grouped under submenus in the Stylesheet menu. Add-on applications following the same layout also add stylesheets to the menu.


How can I install a package in a directory that's not $UserBaseDirectory or $BaseDirectory, and still make the stylesheets and palettes available in the Mathematica menus?