Numerals gives you the power of an advanced calculator inside a math
code block, complete with currencies, units, variables, and math functions! Now you can perform calculations inline with your notes, and see both the input and the evaluated result. Numerals works with Live Preview as well as Reader view, and offers TeX-style rendering or Syntax Highlighting as well as auto-completion suggestions. Comments or explanations can be added with #
, and important results can be indicated with =>
after the calculation.
- Units
1ft + 12in
→2ft
20 mi / 4 hr to m/s
→2.235 m / s
9.81 m/s^2 * 100 kg * 40 m
→39.24 kJ
- Currency
$1,000 * 2
→2,000 USD
£10 + £0.75
→10.75 GBP
- Math functions
sqrt
,sin
,cos
,abs
,log
, etc (see mathjs for full list)
- Hex, Binary, Octal, and other bases
0xff + 0b100
→259
hex(0xff + 0b100)
→"0x103"
- Natural Constants
e
,i
,pi
,speedOfLight
,gravitationConstant
,vacuumImpedance
,avogadro
- And many more (see mathjs: Constants and mathjs: Units for more)
- Auto-complete suggestions
- By default will offer auto-complete suggestions for any variables defined in a math codeblock being edited
- Optional setting to include all available functions, constants, and physical constants
- Fractions:
fraction(1/3) + fraction(1/4)
→7/12
- Comments and Headings:
#
at the end of a line will be ignored, but rendered in faint text as a comment- A line starting with
#
will be ignored by the math engine, but will be bolded when rendered
- Result Annotation:
=>
at the end of a line (but before a comment) will tell Numerals that a result should be highlighted. Any line in that code block without a=>
annotation will be rendered faintly (or hidden depending on settings).
Numerals utilizes the mathjs library for all calculations. Numerals implements a preprocessor to allow more human-friendly syntax, such as currency symbols and thousands separators. For all available functions and capabilities (which includes matrices, vectors, symbolic algebra and calculus, etc), see the mathjs documentation
Numerals has been tested with the default theme and most other top themes. It uses default values such that it should play nice with any other theme. There are also several configurable settings to modify how Numerals renders math blocks
Numerals supports rendering inputs/ouputs as either:
- Plain Text
- TeX
- Syntax Highlighting
One of these options can either be chosen as a default from Numerals settings, or then can be applied on a per-block basis by using math-plain
, math-tex
, or math-highlight
rather than a math
code block.
- Answer is shown to the right of the input with a background color and a seperator.
- Distinctive style that seperates input from evaluated answers
- Answer to the right: answer is shown in the same line as the input, but right-aligned
- More subtle than 2-panes that works well with just a few calculations
- Answer is shown below the input, on the next line.
- Less compact vertically, but more compact horizontally
Choose between a consistent code block background color (left), or alternating rows to help track from input to result (right).
By default, Numerals will provide auto-completiom suggestions for variables that have been defined in a particular math
codeblock. Turning on Include Functions and Constants in Suggestions will also provide suggestions for all functions, math constants, and physical constants supported in Numerals.
Numerals can be found in the Obsidian community plugin list.
To try the latest features of Numerals before they are released, and provide helpful feedback and testing, try Numerals by using the Obsidian BRAT plugin.
- Ensure BRAT is installed
- Trigger the command
Obsidian42 - BRAT: Add a beta plugin for testing
- Enter this repository,
gtg922r/obsidian-numerals
- Activate Numerals plugin in community plugin list
- Support for mapping currency symbols to different currencies (#17)
both
$
and¥
can be mapped to different currencies in settings - Style Settings support for all colors and other style options (#13)
- Partial support added in 1.0.5
- Result annotation, similar to Calca feature (#4)
- Support added in 1.0.5
- Autocompletion of functions and variable inside math code block (#15)
- Support added in 1.0.8
- Inline calculation for inline code blocks (#5)
Feel free to suggest additional features by creating an issue!
There are a number of other plugins that address math and calculation use cases in Obsidian.
- If you are primarily interested in evaluating math expressions and inserting the result into your notes, look into meld-cp/obsidian-calc
- If you are looking for a full-featured Computer Algebra System including plots and with similar code block rendering, consider Canna71/obsidian-mathpad: Computer Algebra System (CAS) for Obsidian.md
There are also a number of "calculator as notes" apps that acted as the inspiration for Numerals. If you are looking for a purpose-built app outside of Obsidian, consider: