Hot answers tagged

61

Basic method There appears to be a mechanism for doing just that, though I have yet to map its capabilities. As a basic example for the time being: Themes`AddThemeRules["wizard", DefaultPlotStyle -> Thread@Directive[{Purple, Orange, Hue[0.6]}, Thick], LabelStyle -> 18, AxesStyle -> White, TicksStyle -> LightGray, Background -> ...


27

Update August 2014 The Legacy Solution below has been corrected to work in recent versions (9 and 10). At the same time however the introduction of PlotTheme functionality makes my solution largely academic as plot themes are designed to combine in the same manner. If no existing theme has the desired style you can create a custom one. This example ...


25

Illuminated by @Mr.Wizard's answer, here I provide a complete example of a self-made plot theme, called "Academic". It can be used as a base theme. The axes feature theme is based on the theme "AxesFrame" of "Scientific" with Black, AbsloteThicknees[1], FrontSize->12 axes/frames. The color feature theme is based on "VibrantColor" with modifications of ...


24

I wrote the ColorBar package exactly for this purpose and it makes such modifications easy. The README.m should give you all the instructions you need, but I'll summarize it here. After installing the package (copy ColorBar.m to FileNameJoin[{$UserBaseDirectory, "Applications"}]), do the following: ColorBar["TemperatureMap"] Now you can click on the ...


22

Here is one take on it -- the hard part was estimating how the PlotStyle option is turned into a list of directives. I think this works as the internal implementation: canonicalPlotStyle::usage = "Turn a PlotStyle option into the canonical form {_Directive...}"; canonicalPlotStyle[ps_] := Replace[ps, { a_List :> (Flatten[Directive @@ Flatten[{#}]] &...


22

This is similar to my Log question and similar methods can be used. $PrePrint = # /. { Csc[z_] :> 1 / Defer@Sin[z], Sec[z_] :> 1 / Defer@Cos[z] } &; Example: (x + y) Csc[x] Sec[y] (x + y)/(Cos[y] Sin[x])


22

Extending ColorData For some background consider reading this bookmarked conversation. The color scheme data itself is accessed through the definition of this Symbol: DataPaclets`ColorDataDump`colorSchemes The data is located by use of the list defined in: DataPaclets`ColorDataDump`colorSchemeNames That is to say the scheme is extracted using (...


21

I've never seen that command before but this does work at least in version 7 on Windows: FrontEndExecute[ AddMenuCommands[ "BackgroundDialog", {Delimiter, Item["L&inen", Background -> RGBColor[0.980, 0.941, 0.902]], Item["A&liceBlue", Background -> RGBColor[0.941, 0.973, 1.0]], Item["Min&tCream", Background -> RGBColor[0....


21

There is an undocumented file in the installation directory named specialArgFunctions.tr: NotebookOpen @ FileNameJoin @ { $InstallationDirectory, "SystemFiles", "FrontEnd", "SystemResources" , "FunctionalFrequency", "specialArgFunctions.tr" } This file describes in detail how to attach completion actions to each parameter of listed functions. For ...


20

You need to add the following to KeyEventTranslations.tr: Item[KeyEvent["Tab", Modifiers -> {Control}], FrontEndExecute[FrontEndToken["CycleNotebooksForward"]]], Item[KeyEvent["Tab", Modifiers -> {Shift, Control}], FrontEndExecute[FrontEndToken["CycleNotebooksBackward"]]], This will map Control-Tab and Control-Shift-Tab to cycling between ...


20

Ok, here's a very brief toy example while I don't have access to my desktop computer at work. It's easy enough to figure out, that a LogPlot of f is basically the plot of Log[f[x]]. And A LogLinearPlot is the plot of f[Exp[x]]. But we can extend this to arbitrary scalings of the axes. I start with defining a piecewise function which maps x values between 0 ...


20

If you are comfortable using undocumented and unsupported functionality we can do this with a ScalingFunctions option as I did for ListLogLinearPlot for the whole real numbers. (* listability *) (self : fn[off_, scale_])[x_List] := self /@ x (self : invfn[off_, scale_])[x_List] := self /@ x fn[off_, scale_][x_?NumericQ] := If[x < off, Log[x], x/...


18

OP seems to be mostly interested in Mathematica's built-in capabilities for grammar definition, parsing, and interpretation, but I think some of the questions asked can be seen and answered within a more general development perspective. General Building on the natural language interface used with Mathematica would be a great project. Any advice if ...


15

You could create a custom stylesheet that has a different background color and define it to be the default one. To do that, go to Format | Edit Stylesheet, select All in the "Choose a style" combo box. Select the appearing entry in the list below and set your appropriate style definitions for it, in your case that would be another background color using ...


15

You can see what can be done by running (maybe inspecting it in a browser first) Get["http://www.mertig.com/shortcuts.m"] This code will generate a modified copy of the default KeyEventTranslations.tr in : FileNameJoin[{$UserBaseDirectory, "SystemFiles", "FrontEnd", "TextResources", Switch[$OperatingSystem, "MacOSX", "Macintosh", "...


14

Preamble I will interpret your question in the narrow context of customizibility. Most of the information can be found in the documentation, but is alas scattered over several places. Below I will attempt to assemble a single sequence, mostly using this source. Where my description deviates from it, I will put the LS sign indicating that what follows ismy ...


14

Edit > Preferences > "Advanced" tab > Open Option Inspector In the Option Inspector's sidebar, drill down to Notebook Options > Window Properties. For the WindowElements option, uncheck "StatusArea" and "MagnificationPopUp". Here's what your Option Inspector should look like:


14

Here is another approach which is based on converting the plot to PDF format first. It makes the tick marks accessible as regular Graphics objects. Specifically, they (and the frame) show up as open JoinedCurve that can be identified by pattern matching. That leads to the following: p = Plot[{Sin[x], Cos[x]}, {x, 0, 3 Pi}, Frame -> True, FrameStyle -&...


13

Changing shortcuts isn't that complicated. All you have to do is change one line in the file KeyEventTranslations.tr in a location in your file system specified by this command: FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "TextResources", $OperatingSystem}] Locate the following line in a text editor and change the key into the one ...


13

Referencing Szabolcs's answer, here is the code that must be added to KeyEventTranslations.tr: Item[KeyEvent["m", Modifiers -> {Control}], FrontEndExecute[{ FrontEnd`SelectionMove[FrontEnd`SelectedNotebook[], All, Cell], FrontEnd`FrontEndToken["Clear"] }]], I chose Ctrl+M at random; change it to whatever you want. See this ...


13

This can be accomplished using LinkWrite. You can place the following code in init.m. To add a color to the background colors submenu you can use... LinkWrite[$ParentLink, AddMenuCommands[ "BackgroundDialog", {Delimiter, Item["M&y Color", Background -> RGBColor[0.980, 0.941, 0.902]]}]] To add a link to the AddOns documentation you can use.....


13

You can SetOptions for the current notebook as: SetOptions[EvaluationNotebook[], Background -> LightGreen] to change the background to whatever colour you like. You can also supply an RGB colour as: SetOptions[EvaluationNotebook[], Background -> RGBColor[0.9, 0.7, 0.7]] Other possibilities for the first argument of SetOptions are $FrontEnd ...


13

To format all your output expressions as TraditionalForm, you can set the $Post variable as: $Post = TraditionalForm Here's how it would look: To clear the definition for $Post (if you need to), just evaluate $Post =. You can add this to your init.m if you'd like to make this apply to all notebooks henceforth, but I wouldn't suggest doing that.


13

This will add Quit to Control+Q (and Alt+V Q Q): FrontEndExecute[ FrontEnd`AddMenuCommands["MenuListQuitEvaluators", {MenuItem["AddMenu &Quit", FrontEnd`KernelExecute[ToExpression["Quit[]"]], MenuKey["q", Modifiers -> {"Control"}], System`MenuEvaluator -> Automatic]}]] It only persists for the front end session. Usually I keep ...


13

Thanks for asking this question; I might not have discovered this customizable area without it. The auto-completion option values are automatically loaded on Front End start from: FileNameJoin[{$InstallationDirectory, "SystemFiles", "FrontEnd", "SystemResources", "FunctionalFrequency", "OptionValues"}] This directory contains a series of Package (.m) ...


12

Open the Edit -> Preferences menu and try setting the following:


12

I usually press the down key until I get out of the cell, then press shift-up to select it. Here are two buttons that will select or delete the whole cell for you: select = Button["Select Cell", SelectionMove[SelectedNotebook[], All, Cell]] delete = Button["Delete Cell", SelectionMove[SelectedNotebook[], All, Cell]; FrontEndTokenExecute["Clear"]] ...


12

I think it is a vestigial artifact of older days when systems had only a few megabytes of memory and Mathematica was always in danger of running out of kernel memory. I don't think it makes any difference whether or not you remove the specification string "MemoryMonitor" in any recent version, because the widget it controlled no longer exists. Similarly, ...


11

Here's a quick solution. Note that it's only tested in Ubuntu - please test it in other operating systems and make any changes that are necessary. First we define a sendNotification command and then show how to create a style of input cell that automatically calls it. Also included is a palette that will modify any cell to have the appropriate CellEpilog ...


11

The default window size can be controlled from two different places. The first is the Global $FrontEnd WindowSize, set through the Option Inspector > Global Preferences or with: SetOptions[$FrontEnd, WindowSize -> {300, 900}] The second is the WindowSize of the style sheet itself. If it is defined, the WindowSize of the style sheet will overrule ...



Only top voted, non community-wiki answers of a minimum length are eligible