86

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 -> ...


50

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, AbsoluteThickness[1], FontSize -> 12} axes/frames. The color feature theme is based on "VibrantColor" with modifications ...


41

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 ...


36

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 (slightly ...


31

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 left ...


29

Thanks to the hint by Jason. It is called AutoMultiplicationSymbol. It can be turned off in the Option Inspector: It worked. Now × does not show up. Version 11.1 on windows 7.


27

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) ...


26

Before you start using this, be aware that this is all undocumented and unsupported functionality. It may change at any time, it may crash Mathematica, and it may bite you when you least expect it. I wouldn't be surprised if it turned out that incorrect use messes up the internal state of the front end. Use at your own risk. I tried the examples I show ...


26

We can get old-style messages using Internal`$MessageMenu = False Needless to say, this is unsupported and undocumented functionality.


25

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", "...


25

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 this ...


24

Revision history: v0.8.0 (06-07-2018) VerificationTest template v0.7.0 (21-02-2018) V10.4 support As of v0.7.0 code templates should work in V10.4. Yes, in a beta stage at the moment. Feedback appreciated. Should work on Win/MacOs. https://github.com/kubaPod/DevTools Setup (*additional package I use to install github assets' paclets, you ...


22

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 ...


21

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/...


20

I have this palette open all the time: CreatePalette@Row@ { Button["(\[SelectionPlaceholder])", FrontEndExecute[ FrontEndToken[SelectedNotebook[], "SelectionParenthesize"]]], Button["[\[SelectionPlaceholder]]", FrontEndExecute[ FrontEndToken[SelectedNotebook[], "SelectionBracket"]]], Button["{\[...


20

Template Notebook I sunk some time into making a good template notebook for integrating with all this. It lives here: https://github.com/b3m2a1/mathematica-BTools/blob/master/Resources/Templates/ServiceConnectionTemplate.nb Original: If you just want the code I used to generate the paclet it lives here: PacletInstall["CustomServiceConnection", "Site"-&...


19

Personally I would use what bill_s suggested, Ctrl+A followed by Shift+Enter. But if you want to have one shortcut you can use what Timothy linked. Just add this line to the KeyEventTranslations.tr file: Item[KeyEvent["h", Modifiers -> {Control}], FrontEndExecute[FrontEndToken[SelectedNotebook[ ], "EvaluateNotebook"]]] it works for me. Your ...


19

Quick-n-dirty. I dispense with open/close bracket, trivial to put in if it matters: fn = ToExpression/@ImportString[StringReplace[#, ";" -> "\n"], "Table"] &; mymat = "2 4; 3 4 5 ; 5 6" // fn mymat2 = "a b;2 c; d 5" // fn {{2, 4}, {3, 4, 5}, {5, 6}} {{a, b}, {2, c}, {d, 5}}


19

Code See this for the main issue that made it take so long to get this up If you just want the service connection you can get it like this: PacletInstall["ServiceConnection_GoogleDrive", "Site"->"http://www.wolframcloud.com/objects/b3m2a1.paclets/PacletServer" ] Post So this turned out to be a bit of a bear to get the details right for, but not ...


18

Yes! It is possible, although it takes some spelunking. Upon some searching with Names, I came across three relevant contexts where the predictive interface functions live: PredictiveInterface`, PredictiveInterfaceDump`, and Predictions`. This last one is where the action happens. Luckily, the symbols were only ReadProtected, and their source code was ...


17

Most compatible solution: The solutions provided are not compatible with plots that contain labels. Here's a solution with possibility to add options: TwoAxisListPlot[{f_, g_}, opts___] := Module[{fgraph, ggraph, frange, grange, fticks, gticks}, {fgraph, ggraph} = MapIndexed[ ListPlot[#, Axes -> True, PlotStyle -> ColorData[1][#2[[1]]], ...


17

Update: So after adding the missing features I decided to give your actual problem a go. This is what I have: You'll note a little "Add Layer" ActionMenu on the right. That's really the only actual extension to the basic BlockBuilder[] interface I needed. Wasn't hard to get in. The Run function turned out to be something of a tough problem. I had ...


16

Here is the answer given by Rolf Mertig that includes many additional shortcuts. One of them Ctrl+t, evaluates whatever is stored in joker.m file (invoked by Ctrl+Shift+J). There are already two examples, coincidentally the second one is exactly what you need: NotebookApply[SelectedNotebook[], RowBox[{"\"", "\[SelectionPlaceholder]", "\""}], Before] Ok, ...


16

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 -&...


16

I would do it like this: The example graph g: g = Graph[{1 <-> 2, 2 <-> 3, 3 <-> 1}]; Desired locations of the vertice in result: vtxPosStore = Association[{ 1 -> {0, 0}, 2 -> {1, 0}, 3 -> {.5, 1} }]; Desired edge-shapes: edgeRoutingStore = Thread[# -> (Join[ ...


16

Supporting custom layers is on our to-do list, and should be ready for either 11.2 or 11.3. For interest: what applications do you want custom layers for? And how performant do you need your custom layer to be? (for example, do you want to be able to write your own CUDA implementation? Or are you happy with writing your own CPU layer?)


16

Define a new type of symbol (context) called highlight, SetOptions[$FrontEndSession, AutoStyleOptions -> {"SymbolContextStyles" -> {"highlight`" -> Green}}] AppendTo[$ContextPath, "highlight`"]; and before those important variables (symbols) appear for the first time, tell Mathematica to add them to the highlight context (e.g. var1 and ...


15

TL;DR; To set ShowGroupOpener on a global level, previously done by CurrentValue[$FrontEnd, ShowGroupOpener] = True, now use: CurrentValue[$FrontEnd, {StyleHints, "GroupOpener"}] = "OutsideFrame" This is what preferences menu does too. Further explanation The direct cause is Core.nb / All / Working style which, as a stylesheet setting, comes between the ...


14

Here is just a quick update of J.M.'s code to use some newer (read undocumented) functions in the Charting`context. TwoAxisListPlot[{list1_, list2_}, opts : OptionsPattern[]] := Module[{plot1, plot2, ranges}, {plot1, plot2} = ListLinePlot /@ {list1, list2}; ranges = Last@Charting`get2DPlotRange@# & /@ {plot1, plot2}; ListPlot[ {list1, Rescale[...


14

V11+ notes Stylesheet solution does not seem to work and the section repeatedly opens and closes. I am not sure why yet. If you are fine with details section permanently opened you can edit "Notebook" style and add: NotebookDynamicExpression :> Refresh[ CurrentValue[EvaluationNotebook[], {TaggingRules, "Openers", "NotesSection"}] = True , None ] ...


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