Scroll this text up and down with ↑ and ↓ (arrow keys), or j and k.
Close the user guide and return to the editor with q or Esc.
The editor is divided into two sections: the stack and the document. The stack is where math expressions are built up; once you have built an expression on the stack that you want to keep, you can transfer it to the document for storage.
Expressions are entered using reverse Polish notation (RPN) which means
that operands come before their operators. For example, to enter the expression a+b
you would
first type
a then b
followed by + to apply the addition operation.
The stack is displayed bottom-up; that is, the item most recently placed on the stack (called the "stack top") is the one shown at the bottom of the screen. The older items are stacked up above it. Editor operations always work with the first few items on the stack. In this user guide, the labels x, y and z are used to refer to these first few items.
Note that items on the stack have a small colored bar shown to the left of them. This indicates the item's size as well as its "type": a symbolic expression (grey) or a piece of text (blue).
This editor is designed to be operated entirely from the keyboard. Most operations are performed using single keystrokes or pairs of keystrokes (a prefix key followed by a subcommand key).
Invalid or unassigned key inputs are silently ignored. Other errors are signaled by a brief flash of the screen.
x\enspace y \to x^y
x\enspace y \to x_y
(x), [x], \{x\}
.
These delimiters automatically adjust to fit their contents.
All other operations require prefix keys to be typed first. These keys switch into a corresponding mode. The current mode is displayed in grey in the upper-right corner of the stack. Each mode has its own keymap of operations, which are detailed in the following sections.
NOTE: Typing the prefix keys below while this user guide is being shown will jump directly to the corresponding section. Backspace returns here to this list of prefixes. (This does not apply if the user guide is "docked" into the documents section via ??.)
\mathcal{ABCDE}
\mathscr{ABCDE}
\mathbb{ABCDE}
The \ prefix starts math entry mode. A small input field will be shown where you can type a number or a simple math expression in infix notation. Enter will parse what you have typed and put it on the stack. A malformed expression will signal an error; allowed expressions include:
x
.5x
or xy
(interpreted as multiplying x
and y
).
x+2y
.
Allowed operators are: +-/*
(but not ^).
\to\frac{2}{3}
.
3\times{10}^{-4}
).\pi
symbol, as a special case.
For example: 1//2@i \to \frac{1}{2\pi i}
.
x^{\prime\prime}
.
x!
) is allowed.
(x+y)
. Square brackets and curly braces may also
be used, but they have to be properly matched.
Esc (or Ctrl+z) will cancel math entry mode.
NOTE: The input field used here is very limited and supports only character entry along with arrow keys to move around, Backspace, and Esc to cancel text entry. It is meant for entering short snippets of text; longer items should be created as pieces and assembled on the stack.
Plain Text Entry:
Typing Shift+Enter instead of Enter
will typeset your entry in a roman (non-italic) font instead of the normal italic math font,
and it will not be parsed as a math expression, so you can use any text you want. This can be
used to include normal English words or phrases in math expressions. Placeholders can still be
included using [].
NOTE: The conjunction
command available via ,'
is another way of including English words or phrases.
Named Operators:
Typing Tab instead of Enter
will typeset your entry as an operator name which behaves the same as built-in operators
such as \lim
and \sin
. This gives extra spacing between anything
concatenated to (or before) the operator name to match normal math notation. Only letters,
numbers, spaces and dashes are allowed in operator names.
LaTeX Entry:
Typing another \
after the first one will instead switch into LaTeX entry mode where you can enter an arbitrary
zero-argument LaTeX command. This can be used to create any standard LaTeX symbol.
For example: \\boxdot \to\boxdot
One-argument LaTeX commands can be created using Shift+Enter instead of
Enter.
For example: x\\utildeShift+Enter
\to\utilde{x}
The " prefix starts text entry mode which is similar to math entry but creates text objects. Text objects are shown with a blue bar to the left (instead of grey) and differ from normal math objects in some important ways:
Some simple math or text objects, including those entered with math entry or text entry modes, may be brought back into the math or text entry editor for further editing with Shift+Enter.
NOTE: Only sufficiently simple objects are editable this way; once further operations are performed they may no longer be editable. In this case, dissect mode may be helpful instead.
This prefix has a variety of commands for managing the stack and the document, and other utilities.
Stack Operations: These commands manipulate the stack with traditional RPN operations. These can optionally take numeric prefix arguments which specify the number of stack items to operate on. Prefix arguments are entered by typing one or more digits after the Tab and before one of the following subcommand keys. Also, instead of a digit, * may be used to indicate that the operation should apply to the entire stack. For example, to reverse the entire stack you can type Tab*a. In the descriptions below, N refers to the prefix argument if given, otherwise the default is used.
Document Operations: These commands transfer items between the stack and the document. The document has a shaded selection indicator which you can move with the ↑↓ arrow keys (without using the Tab prefix). Shift+↑ and Shift+↓ will shift the selected item up or down within the document.
Items inserted into the document will be placed directly below the current selection. There is also a small margin at the top of the document that can be selected to insert items at the very top.
Utilities:
Tabf opens the File Manager popup panel. If your browser supports it, you can save and manage separate documents in the internal browser storage (IndexedDB). Your data persists between browser sessions, but this may not work in Private/Incognito Mode. Each document has a filename but there is only one level of storage - no subfolders.
NOTE: You can use Tabs or Ctrl+s from the main screen to save the current document without opening the file manager first.
The Export/Import section of the file manager allows you to download your document storage as a .zip file for backup purposes, and to restore your storage from a previously-saved .zip file. The .zip file will contain one file per document, in JSON text format.
To download a .zip archive, click the 'Prepare Export' link; this will build the archive from your browser's storage and then present you a download link.
You can also export individual documents as .json files using the x command, and import them with the file upload field.
Assorted standalone math symbols. These all put exactly one object onto the stack.
0 \varnothing |
1 -1 |
2 \frac{1}{2} |
3 1/2 |
8 \infty |
a \forall |
b \bullet |
c \cdot |
C \bigcap |
d \partial |
e \exists |
E \nexists |
h \hslash |
i \int |
I \iint |
l \ell |
M \mp |
n \ne |
o \circ |
p \prod |
P \pm |
q = |
s \sum |
t \therefore |
U \bigcup |
v \vee |
V \bigvee |
w \wedge |
W \bigwedge |
y \oint |
Y \oiint |
. \dots |
> \cdots |
- - |
+ + |
* \star |
| | |
? ? |
! ! |
, , |
; ; |
: : |
` ` |
/ / |
\ \backslash |
_ \_ |
↑ \uparrow |
↓ \downarrow |
← \leftarrow |
→ \rightarrow |
@ @ |
# \# |
$ \$ |
% \% |
& \& |
Also available are:
\llbracket\mathsf{blank}\rrbracket
until it's combined with something.
Sometimes you may want to fill in part of an expression you are working on later, rather than including it immediately. You can insert a placeholder marker in your expression, and then later on substitute another expression where the placeholder is.
\htmlClass{placeholder_expr}{\blacksquare}
) onto the stack.
You can treat it like any other subexpression, applying operations to it and using it
in other expressions. All placeholders are identical.
\sqrt{1 + \htmlClass{placeholder_expr}{\blacksquare}} \enspace x^2 \to \sqrt{1+x^2}
These all modify a single item on the stack.
0 x_0 |
1 x^{-1} |
2 x^2 |
3 x^3 |
4 x^4 |
8 x\to\infty |
A \acute x |
b \bold{x} (bold roman) |
c 1-x (complement) |
d x^\dagger |
D x^\ddagger |
e \htmlClass{emphasized}{x} (emphasize) |
g \mathring x |
G \grave x |
h \hat x |
H \widehat{x\dots} |
i x^{-} |
I x^{+} |
k \mathfrak x (Fraktur) |
l x_\parallel |
m \mathtt x (monospace) |
M \mp x |
n \bar x |
o \overline{x\dots} |
p x_\perp |
P \pm x |
q = x |
r \mathrm x (roman) |
s \mathsf x (sans-serif) |
S \mathsfit x (italic sans) |
t \to x |
T \longrightarrow x |
u \breve x |
U \utilde{x\dots} |
v \vec x |
V \overrightharpoon{x\dots} |
w \check x |
W \widecheck{x\dots} |
x \boxed x (box) |
X \sout x (crossout) |
Y \widetilde{x\dots} |
z \cancel x (cancel) |
. \dot x |
> x. |
" \ddot x |
x\, (append space) |
' x' |
* x^{*} |
= \Rightarrow x |
- -x |
+ +x |
` x^\mathrm{T} (transpose) |
~ \tilde x |
/ 1/x |
_ \underline{x\dots} |
! \neg x |
\ \bcancel x |
[ \small x (smaller) |
] \large x (larger) |
{ \overbrace{x\dots} |
} \underbrace{x\dots} |
Tab \quad x (indent) |
These commands combine the top two stack items by placing a mathematical operator between them.
a apply (see below) | b x\bullet y |
c x\cap y |
d x^\dagger y |
e x,\dots,y |
f x\quad\mathrm{if}\quad y |
F x\quad\mathrm{iff}\quad y |
g x\gets y (gets) |
k or |
\left.x\,\middle\vert\,y\right.
|
l x\parallel y |
m x\pmod y |
M x\mp y |
n x\quad\mathrm{whe\mathbf{n}}\quad y |
o x\circ y |
O x\odot y |
p x\perp y |
P x\pm y |
q x\quad\mathrm{and}\quad y |
Q x\quad\mathrm{or}\quad y |
r x\quad\mathrm{fo\mathbf{r}}\quad y |
s or
x\,y
|
t x\to y |
T x\longrightarrow y |
u x\cup y |
v x\vee y |
V x\veebar y |
w x\wedge y |
W x\barwedge y |
x x\times y |
X x\otimes y |
[ x\llcorner y |
] x\lrcorner y |
= x\Rightarrow y |
- x\ominus y |
+ x\oplus y |
. x\cdot y |
, x,y |
> x\cdots y |
< \left\langle x,y\right\rangle |
( \left(x,y\right) |
* x*y |
: x\colon y |
; x;y |
` x^\mathrm{T} y |
/ x/y |
\ x\backslash y |
% x\div y |
Tab x\quad y |
' conjunction (see below) |
Apply:
The ,a
command takes three expressions from the stack, combining them into an
infix expression. The stack top becomes the infix operator. For example:
x\enspace y\enspace \circledast \to x\circledast y
Conjunction:
The ,'
command is for combining two expressions with an English phrase between them,
with some extra spacing.
Several of these are already available via dedicated commands such as
,F which
creates: x\quad\mathrm{iff}\quad y
.
This conjunction command starts a special text entry mode where you can
type in whatever phrase you want instead. Using Enter
creates an ordinary conjunction, while Shift+Enter
will make it bolded.
Similar to , these commands combine two items into an "equation" by placing a relational operator between them. NOTE: There is no real distinction between relational and infix operators internally, so this = prefix is just a way to get more keybindings available.
Equality-like relations:
a x\approx y (approx) |
c x\cong y (congruent) |
e x\equiv y |
E x\iff y |
f x\Leftarrow y (from) |
i x\in y (in) |
I x\notin y |
j x\Join y (join) |
m x\mapsto y (maps to) |
o x\circeq y |
= or q x = y |
! or n x\ne y |
p x\propto y (proportional) |
; x\coloncolon y |
: x\coloneqq y |
~ or t x\sim y |
. x\doteq y |
^ x\triangleq y |
? x\stackrel{?}{=} y |
- x\vdash y |
| x\vDash y |
|
Ordering relations:
l x < y |
g x > y |
< or [ x\le y |
> or ] x\ge y |
L x\ll y |
G x\gg y |
s x\subset y |
S x\subseteq y |
u x\supset y |
U x\supseteq y |
Variants of the above are available with the 2 subprefix:
2l x\prec y |
2g x\succ y |
2< or
2[ x\preceq y
|
2> or
2] x\succeq y
|
2L x\leqslant y |
2G x\geqslant y |
2s x\sqsubset y |
2S x\sqsubseteq y |
2u x\sqsupset y |
2U x\sqsupseteq y |
NOTE: "Negated" forms of relational operators can be
created with the /!
command. For example:
x\subseteq y \to x\not\subseteq y
This prefix has commands for building different kinds of expression structures and for applying common functions and operators.
Algebra and Calculus:
1 x \to \displaystyle{\frac{1}{x}} |
a or / x\enspace y \to \displaystyle{\frac{x}{y}} |
l x \to \lim\limits_x |
L x\enspace y \to \lim\limits_{x\to y} |
b x\enspace y \to \displaystyle{\binom{x}{y}} |
I x\enspace y \to \displaystyle{\int_x^y} |
=
x\enspace y\enspace z \to \displaystyle\sum_{x=y}^z
|
+
x\enspace y \to \displaystyle\sum_{x\ge y}^{\phantom z}
|
q \sqrt{x} |
Q \sqrt[3]{x} |
m \mathrm{Im}(x) |
M \mathrm{Re}(x) |
e \mathrm{e}^x |
E \exp x |
n \ln{x} |
N \log{x} |
2n \lg{x} |
2N \log_2{x} |
Trigonometric Functions:
\sin x
c \cos x
t \tan x
\sec x
C \csc x
T \cot x
Using - or h or 2 before the other trigonometric commands gives inverse, hyperbolic, and squared forms of the functions, respectively.
\to \cos^{-1} x
\to \coth x
\to \operatorname{sech}^{-1} x
\to \tan^2 x
Function Application:
f\enspace x \to f(x)
f\enspace x\enspace y \to f(x,y)
f\enspace x\enspace y\enspace z \to f(x,y,z)
f\enspace x\enspace y \to f(x\,|\,y)
f\enspace x\enspace y\enspace z \to f(x,y\,|\,z)
f\enspace x \to f[x]
f\enspace x \to f\{x\}
NOTE:
These commands should be used instead of simply concatenating the function name to
its (parenthesized) argument(s) with .
The spacing is tighter to match normal function notation.
Compare: f{\left(x\right)}
vs. f\left(x\right)
.
Other function patterns can be created by first building an argument list such as
x,y\,|\,z,w
and then applying to f
with
/o.
Vertical Stacking:
x\enspace y \to \overbrace{x}^y
} x\enspace y \to \underbrace{x}_y
x\enspace y \to \overset{y}{x}
U x\enspace y \to \underset{y}{x}
Probability and Statistics:
p
x \to \mathbb{P}{[x]}
|
probability |
P
x\enspace y \to \mathbb{P}{[x\,\vert\,y]}
|
conditional probability |
v x \to \mathrm{Var}{[x]} |
variance |
V x\enspace y \to \mathrm{Cov}{[x,y]} |
covariance |
x x \to \mathbb{E}{\left[x\right]} |
expectation |
X x\enspace y \to \mathbb{E}{\left[x\,\middle\vert\,y\right]} |
conditional expectation |
y x\enspace y \to \mathbb{E}_y{\left[x\right]} |
with subscript |
Y x\enspace y\enspace z \to \mathbb{E}_z{\left[x\,\middle\vert\,y\right]} |
conditional + subscript |
Shortcuts and Utilities:
x\enspace y \to \left.x\right\vert_{y}
"Where" notation, for example:
\left.\frac{1}{\sqrt{1-x^2}}\right\vert_{x=1/2}
x\times{10}^y
Scientific notation, for example:
1.23\times{10}^{-4}
x\enspace y\enspace z \to x_y^z
(shortcut for adding a subscript and superscript at once)
x≤y \to x\nleq y
Equation Splitting:
Tags:
Subprefix Modes: These commands enter dedicated modes for other types of operations. These are described in the following sections.
These are some shortcuts for quickly creating common types of expressions involving derivatives and differentials.
j y\enspace x \to \frac{\partial y}{\partial x} |
J y\enspace x \to \frac{\partial^2 y}{\partial x^2} |
q x \to \frac{\partial}{\partial x} |
Q x \to \frac{\partial^2}{\partial x^2} |
m x\enspace y \to \frac{\partial^2}{\partial x\,\partial y} |
M f\enspace x\enspace y \to \frac{\partial^2 f}{\partial x\,\partial y} |
k y\enspace x \to \frac{dy}{dx} |
K y\enspace x \to \frac{d^2 y}{dx^2} |
x x \to \frac{d}{dx} |
X x \to \frac{d^2}{dx^2} |
p x \to \partial x |
P x\enspace y \to \partial_y x |
g x \to \nabla x |
G x\enspace y \to \nabla_y x |
. x \to \nabla\cdot x |
c x \to \nabla\times x |
l x \to \nabla^2 x |
n x \to \Delta x (increment) |
d x \to dx |
2 x \to d^2 x |
3 x \to d^3 x |
4 x \to d^4 x |
f x\enspace y \to dx \wedge dy |
F x\enspace y\enspace z \to dx \wedge dy \wedge dz |
E
x\enspace y \to dx \wedge \cdots \wedge dy
|
|
i or I or
x\enspace y \to x\,dy (see below)
|
Integral Spacing: i and I and are meant for attaching a differential to an existing integral expression with appropriate spacing. The difference between the three is where the spacing goes:
\int x^2\,dx
\int dx\,x^2
\int dx
Differential Forms:
The f F E
commands for building differential forms will pull out minus signs as needed, as in:
-y\enspace x \to -dy \wedge dx
.
When concatenating differential forms to integral expressions, use
,
instead of to avoid parenthesizing the differential form.
For example:
\int f{(x,y)}\,dx\wedge dy
instead of
\int f{(x,y)} \left(dx\wedge dy\right)
.
Alternative Notation:
Some authors prefer an upright Roman-font "d" when writing differentials.
For example:
\frac{\mathrm{d}y}{\mathrm{d}x}
instead of
\frac{dy}{dx}
.
This can be done by using the
/D
prefix instead of
/d.
These commands are for quickly applying common limits to integral signs.
r \int \to \int_{-\infty}^\infty |
reals |
p \int \to \int_0^\infty |
positive |
n \int \to \int_{-\infty}^0 |
negative |
u \int \to \int_0^1 |
unit |
U \int \to \int_{-1}^1 |
symmetric unit |
t \int \to \int_0^{2\pi} |
trigonometric |
T \int \to \int_{-\pi}^\pi |
symmetric trigonometric |
These can apply to objects other than integral signs as well, for example:
\left[\frac{x^2}{2}\right]_0^1
Integral Sign + Limits:
Using the prefix /j
instead of /i
works like the above, except that the integral sign itself is created too,
rather than it having to exist beforehand.
Example:
/jr
\to \int_{-\infty}^{\infty}
These commands attach named operators like \max
to an expression from
the stack. No automatic parenthesization is performed, and operators with multiple
arguments need to have the arguments combined into one expression manually first
(e.g. with ,,).
Capitalized versions of these commands take two expressions from the stack,
placing the stack top under the operator name, and the other expression as the
operator's argument. For example:
/fg
creates \argmax x
while
/fG
creates \underset{x}{\argmax y}
a \arg |
c \gcd |
d \dim |
e \deg |
f \liminf |
g \argmax |
h \hom |
i \inf |
k \ker |
l \lim |
m \min |
n \argmin |
r \operatorname{tr} |
s \sup |
t \det |
u \limsup |
x \max |
NOTE: Arbitrarily-named operators can be created with math entry mode by finishing the entry with Tab.
These commands enclose expressions in various kinds of delimiter pairs. The delimiters automatically expand to fit the size of their contents.
Note that the most commonly-used delimiters are available directly as ( [ { without needing a prefix key.
b \left\langle x\right\vert (Dirac bra) |
c \left\lceil x\right\rceil (ceiling) |
d \llbracket x\rrbracket |
f \left\lfloor x\right\rfloor (floor) |
g \left\lgroup x\right\rgroup (grouped) |
i \left\langle x\,\middle\vert\,y\right\rangle (bra-ket) |
I \left\langle x\,\middle\vert\,y\,\middle\vert\,z\right\rangle |
k \left\vert x\right\rangle (Dirac ket) |
m \left\lmoustache x\right\rmoustache |
n or N
\left\lVert x\right\rVert (norm)
|
o \left(x\right] (half-open) |
O \left[x\right) |
w or W
\left. x\right\vert (where)
|
| \left\vert x\right\vert |
< \left\langle x\right\rangle |
( \left( x\right. |
) \left. x\right) |
[ \left[ x\right. |
] \left. x\right] |
{ \left\{ x\right. |
} \left. x\right\} |
. or blank (see below) |
Certain infix operators, when enclosed in delimiters, will also adjust to fit the size of the delimiters. These operators are:
x\,\vert\,y |
created by | ,k or ,| |
x\parallel y |
created by | ,l |
x/y |
created by | ,/ |
x\backslash y |
created by | ,\ |
Because of this, you can give these operators a flexible size anywhere by using
blank delimiters via ). or
) .
For example:
\displaystyle x/\frac{1}{\sqrt x} \to \left.x\middle/\frac{1}{\sqrt x}\right.
Other commands in this mode:
These last two commands l and r change an existing delimiter, or add a new one if none is present. After entering one of these commands, select the delimiter type from one of the following:
< \left\langle\right. |
> \left.\right\rangle |
( \left(\right. |
) \left.\right) |
[ \left[\right. |
] \left.\right] |
{ \left\{\right. |
} \left.\right\} |
g \left\lgroup\right. |
G \left.\right\rgroup |
m \left\lmoustache\right. |
M \left.\right\rmoustache |
n \left.\right\Vert |
c \left\lceil\right. |
C \left.\right\rceil |
f \left\lfloor\right. |
F \left.\right\rfloor |
| \left.\right| |
/ \left.\right/ |
\ \left.\right\backslash |
. or
\left.\right. (blank)
|
These commands are for building and manipulating arrayed structures like matrices, vectors and lists.
NOTE: Several of these commands take required prefix arguments to indicate the number of items to work on. These are entered by typing one or more digits after the | key and before the subcommand key. For example, to build a matrix row with 3 columns you can type |3(. This prefix argument is referred to as N in the descriptions below.
Matrix Row Building: These commands assemble N items from the stack into a 1xN row matrix with the indicated bracket type.
(\;\begin{pmatrix}a & b & c\end{pmatrix} |
[\;\begin{bmatrix}a & b & c\end{bmatrix} |
{\;\begin{Bmatrix}a & b & c\end{Bmatrix} |
v\;\begin{vmatrix}a & b & c\end{vmatrix} |
V\;\begin{Vmatrix}a & b & c\end{Vmatrix} |
m or
\;\begin{matrix}a & b & c\end{matrix}
|
A column matrix can be entered by first building a row matrix, then transposing with |T.
To change the bracket type of an existing matrix on the stack, use |t followed by one of the type keys above. For example |t{ changes the matrix to have curly braces.
Full Matrix Building: An entire matrix may also be assembled at once from the stack with elements in row-major order with the x command. This takes a prefix argument indicating the number of rows, then switches into a new mode expecting the number of columns, followed by one of the matrix row building keys above to indicate the matrix type.
For example, to build a 2x3 matrix from 6 elements on the stack, with square brackets, enter: |2x3[.
There are some shortcuts available for building common matrix and vector types:
$
a\enspace b\enspace c\enspace d\to
\begin{bmatrix} a & b \\ c & d \end{bmatrix}
|
|
@
a\enspace b\to
\begin{bmatrix} a \\ b \end{bmatrix}
|
#
a\enspace b\enspace c\to
\begin{bmatrix} a \\ b \\ c\end{bmatrix}
|
Matrix Manipulation: These commands operate on existing matrices.
Row and Column Separators: These commands place separator lines between rows or columns of a matrix. If lines are already there they will be removed instead. A prefix argument may be used to specify which row or column the separator is to be placed after, otherwise the first row or column will be used. A * prefix argument will apply separator lines to all rows or columns at once.
Alignment Building: These commands group multiple expressions into "aligned" structures of various types. Like the matrix row building operations, these also take a required prefix argument indicating how many items to combine.
\begin{gathered}
x^2 \colon x \ge 0 \\
0 \colon x < 0
\end{gathered}
\longrightarrow
\begin{cases}
x^2 & x \ge 0 \\
0 & x < 0
\end{cases}
\begin{gathered}
x^2 \colon x \ge 1 \\
x^3 \colon 0 \le x \le 1 \\
x^4
\end{gathered}
\longrightarrow
\begin{cases}
x^2 & \mathrm{if}\enspace x \ge 1 \\
x^3 & \mathrm{if}\enspace 0 \le x \le 1 \\
x^4 & \mathrm{otherwise}
\end{cases}
List Building: These commands build concatenated lists from individual items. As before, the number of items to concatenate must be given as a prefix argument.
x_1,x_2,x_n
x_1,x_2,\dots,x_n
x_1,x_2,x_n,\dots
x_1;\,x_2;\,x_n
x_1 + x_2 + \cdots + x_n
x_1 + x_2 + x_n + \cdots
Miscellaneous:
\sum
. Place the resulting object as the subscript or superscript of
the operator and they will be lined up in a stack underneath or above.
Entering dissect mode with _ (underscore) allows selecting and manipulating subexpressions of the stack top. This can be useful to copy out a part of an existing expression, or to replace a part with something else.
NOTE: These commands operate on the internal tree structure of expressions. Generally, the tree structure will reflect the way the expression was originally created, but there is no particular guarantee of this. Some ways of building expressions can flatten tree structure or change it in unexpected ways.
Once dissect mode is entered, the currently-selected subexpression will be highlighted in a special way and framed with an overbrace to show what is selected. The following commands will then be available:
These commands attempt to numerically evaluate the expression on the stack top, allowing the editor to operate as a simple calculator.
Evaluation requires the expression to be composed only
of constant values and operations involving them. For example,
\sin(\pi/6)
can be evaluated but not \sin(2\pi x)
,
although simple variable substitutions can be performed using the
| subcommand below.
The result of the evaluation will be a floating-point number.
However, if it can be closely approximated by a fraction, or
a factor of something like \sqrt{2}
, the result will instead
be represented that way.
NOTE: This numerical evaluation feature is experimental and not everything is guaranteed to be supported.
\sin\frac{\pi}{3} = \frac{\sqrt{3}}{2}
\sin(3) \approx 0.141120
z=123
is used to replace
a variable in the expression to be evaluated. The variable defaults to x
if omitted.
NOTE: Trigonometric functions use radians by default, but degrees
can be specified by a "degree marker" superscript using
'o`.
For example: 45 'o`
yields {45}^\circ
and the sine of this can be calculated via:
/s#=
\to\sin{{45}^\circ} = \frac{\sqrt{2}}{2}
.
Also, {45}^\circ\,\,
#=\to \frac{\pi}{4}
.
Lowercase Greek letters use the ; prefix:
a \alpha |
b \beta |
c \chi |
d \delta |
e \epsilon |
f \phi |
g \gamma |
h \eta |
i \iota |
j \varphi |
k \kappa |
l \lambda |
m \mu |
n \nu |
o \omega |
p \pi |
q \vartheta |
r \rho |
s \sigma |
t \tau |
u \upsilon |
v \theta |
w \omega |
x \xi |
y \psi |
z \zeta |
Uppercase Greek letters (and some variants) use the : prefix:
d \Delta |
e \varepsilon |
f \Phi |
g \Gamma |
k \varkappa |
l \Lambda |
m \varpi |
n \nabla |
o \Omega |
p \Pi |
q \vartheta |
r \varrho |
s \Sigma |
t \varsigma |
u \Upsilon |
v \Theta |
w \Omega |
x \Xi |
y \Psi |
6 \digamma |
Italic-slanted variants of uppercase Greek letters are also available using the ;: prefix:
d \varDelta |
f \varPhi |
g \varGamma |
l \varLambda |
o \varOmega |
p \varPi |
q \varTheta |
s \varSigma |
u \varUpsilon |
x \varXi |
y \varPsi |
NOTE: The sequences ;; and :: can be used as alternatives to ,; and ,: to join two expressions with a semicolon or colon.
NOTE: As a convenience, you can use uppercase keystrokes as well as lowercase in order to type the Greek letters that use : or ;:.
These commands let you change global configuration settings. The settings are saved between sessions in your browser.
a+b
and c+d
yields (a+b)(c+d)
.
$)
disables this behavior to yield a+bc+d
instead.
For maximum browser compatibility, Control/Alt/Command keys are not required. However the following Control key based shortcuts are available for optional use. On MacOS, the Command key also functions as an alias to Control.
x_0
(same as .0)
x^{-1}, x^2, x^3, x^4
(same as .1, etc.)
x \to \mathrm{e}^x
(same as /e)
f\enspace x\enspace y \to f(x\,|\,y)
(same as /k)
f\enspace x\enspace y\enspace z \to f(x,y\,|\,z)
(same as /K)
x \to -x
(same as .-)
f\enspace x \to f(x)
(same as /o)
f\enspace x\enspace y \to f(x,y)
(same as /r)
f\enspace x\enspace y\enspace z \to f(x,y,z)
(same as /R)
f \to f(x)
x\enspace y \to \frac{x}{y}
(same as //)