Emacs has a relatively convenient way to add accents to letters or to insert a Unicode character if you know the code point for the value. See these notes.
But usually you don’t know the Unicode values of symbols. Then what do you do?
TeX commands
You enter symbols by typing their corresponding TeX commands by using
M-x set-input-method RET tex
After doing that, you could, for example, enter π by typing \pi
.
You’ll see the backslash as you type the command, but once you finish you’ll see the symbol instead [1].
HTML entities
You may know the HTML entity for a symbol and want to use that to enter characters in Emacs. Unfortunately, the following does NOT work.
M-x set-input-method RET html
However, there is a slight variation on this that DOES work:
M-x set-input-method RET sgml
Once you’ve set your input method to sgml, you could, for example, type √
to insert a √ symbol.
Why SGML rather than HTML?
HTML was created by simplifying SGML (Standard Generalized Markup Language). Emacs is older than HTML, and so maybe Emacs supported SGML before HTML was written.
There may be some useful SGML entities that are not in HTML, though I don’t know. I imagine these days hardly anyone knows anything about SGML beyond the subset that lives on in HTML and XML.
Changing input modes
If you want to move between your default input mode and TeX mode, you can use the command toggle-input-method
. This is usually mapped to C-u C-\
.
You can see a list of all available input methods with list-input-methods
. Most of these are spoken languages, such as Arabic or Welsh, rather than technical input modes like TeX and SGML.
More Emacs posts
[1] I suppose there could be a problem if one command were a prefix of another. That is, if there were symbols \foo
and \foobar
and you intended to insert the latter, Emacs might think you’re done after you’ve typed the former. But I can’t think of a case where that would happen. TeX commands are nearly prefix codes. There are TeX commands like \tan
and \tanh
, but these don’t represent symbols per se. Emacs doesn’t need any help to insert the letters “tan” or “tanh” into a file.