Keybinding Note: This extension uses Emacs-style keybindings where Ctrl is used on all platforms (not Cmd on Mac), except where explicitly noted.
✅ Introduction
Org-mode uses a lightweight markup syntax that stays readable as plain text while providing rich formatting when rendered. This document covers the fundamental syntax elements you'll use in everyday writing.
The philosophy is simple: markup should be intuitive and unobtrusive. When you read an org file as plain text, the meaning is clear. When exported or rendered, the formatting appears polished.
✅ Text Markup
Text markup in org-mode uses paired delimiters around words or phrases. The key rule: markup delimiters must be adjacent to the text they format, with whitespace or punctuation on the outside.
✅ Emphasis Styles
Here's how to emphasize text in your writing:
When you want to make a point strongly, use asterisks for bold text. This draws the reader's attention to key concepts or important warnings.
For a gentler emphasis, italic text works well for introducing new terms, book titles like The Art of Computer Programming, or adding subtle stress to a phrase.
Sometimes you need to mark text as underlined to indicate titles or special significance. Underlines appear less frequently in modern writing but remain useful.
To indicate that something has been removed or is no longer valid, use strikethrough. This is handy for todo lists: buy milk done!
✅ Literal Text
When writing about code or technical content, you need text that renders exactly as typed:
Use verbatim for file paths like /usr/local/bin, environment variables like PATH, or any text that should appear in a monospace font without interpretation.
The code markup is similar but semantically indicates program code: print("hello"), variable names like myVariable, or command names like grep.
The difference is subtle—both render similarly, but verbatim suggests literal text while code suggests executable code.
✅ Markup Rules
Markup only works when the delimiters are properly placed:
The opening delimiter must follow whitespace or punctuation: start of line, space, or characters like
(,[,{The closing delimiter must precede whitespace or punctuation: end of line, space, period, comma, etc.
No whitespace immediately inside the delimiters
These work: bold, italic, text with bold inside, (bold in parens)
These don't: * bold * (spaces inside), *bold * (trailing space), word*bold* (no preceding space)
✅ Combining Markup
You can nest markup for combined effects, though keep it readable:
This is bold and italic. Or try underlined italic for something different.
The outer delimiter is processed first, so bold italic has bold as the primary emphasis containing italic text.
✅ Lists
Lists are fundamental to organized writing. Org-mode supports three types: unordered (bullet), ordered (numbered), and definition lists.
✅ Unordered Lists
Start a line with a dash, plus, or asterisk followed by a space:
First item in the list
Second item continues the thought
Third item wraps up
You can also use + or * as bullets (though * can conflict with headlines at the start of a line):
Alternative bullet style
Some prefer this look
It's a matter of taste
✅ Ordered Lists
For sequences where order matters, use numbers followed by a period or parenthesis:
First, gather your materials
Next, prepare the workspace
Then, begin the actual work
Finally, clean up when done
The numbers auto-increment conceptually, and you can use letters too:
a. Option A: the simple approach b. Option B: more complex but powerful c. Option C: advanced users only
✅ Nested Lists
Indent items to create hierarchy. Use consistent indentation (typically 2-3 spaces):
Main topic
Subtopic one
Detail about subtopic one
Another detail
Subtopic two
Another main topic
With its own subtopics
You can mix ordered and unordered:
First major step
Consider this aspect
And this one too
Second major step
More considerations
Final thoughts
✅ Definition Lists
When you need to define terms, use the :: separator:
term :: The word or phrase being defined
definition :: An explanation of what something means
org-mode :: A major mode for Emacs that provides outlining, task management, and literate programming
Definition lists are perfect for:
glossaries :: Collections of term definitions
parameter docs :: Explaining function arguments
feature lists :: Describing capabilities with explanations
The term appears before :: and the definition follows. Long definitions wrap naturally to subsequent lines.
✅ Checkboxes
Add checkboxes to list items for task tracking:
-
Task not yet started
-
Task in progress (partially complete)
-
Task completed
Toggle checkboxes with C-c C-c when the cursor is on the line.
Parent items can show progress:
Project tasks
-
Design the interface
-
Implement the backend
-
Write documentation
-
The [1/3] updates automatically as you check off subtasks. You can also use percentage format [33%].
You can use an attribute to create radio button style checkboxes where only one item can be selected:
-
Option A
-
Option B
-
Option C
✅ Paragraphs and Line Breaks
Paragraphs are simply blocks of text separated by blank lines:
This is the first paragraph. It can contain multiple sentences that flow together naturally. The text wraps based on your editor settings.
This is the second paragraph. The blank line above separates it from the first. Each paragraph represents a distinct thought or topic.
✅ Preserving Line Breaks
Normally, single line breaks within a paragraph are treated as spaces when exported. To force a line break, end the line with \\:
Or use verse blocks for poetry and formatted text:
Roses are red,
Violets are blue,
Org-mode is lovely,
And so are you.
✅ Horizontal Rules
Create a horizontal divider with five or more dashes on a line by themselves:
Some content above the rule.
Content continues below the rule.
Horizontal rules help separate major sections or indicate a scene break in narrative writing.
✅ Equations and Mathematics
Org-mode supports LaTeX math notation for scientific and technical writing.
✅ Inline Math
For mathematics within a sentence, use $...$ or \(...\):
The famous equation \(E = mc^2\) changed physics forever. Einstein showed that energy and mass are equivalent, with the speed of light \(c\) as the conversion factor.
In statistics, the mean \(\mu = \frac{1}{n}\sum_{i=1}^{n} x_i\) summarizes a dataset. The standard deviation \(\sigma\) measures spread around that mean.
The quadratic formula \(x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}\) solves any quadratic equation.
✅ Display Math
For equations that deserve their own line, use $$...$$ or \[...\]:
The Gaussian integral is remarkably elegant:
\[\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}\]
Maxwell's equations in differential form:
\[\nabla \cdot \mathbf{E} = \frac{\rho}{\epsilon_0}\]
\[\nabla \cdot \mathbf{B} = 0\]
✅ Equation Environments
For numbered equations or aligned systems, use LaTeX environments:
Or for aligned equations:
✅ Math Preview
In Scimax VS Code, hover over math expressions to see a rendered preview. See LaTeX Preview for full details.
✅ Footnotes
Add footnotes for supplementary information that would interrupt the main flow:
Org-mode[1] provides excellent support for academic writing. You can place footnotes anywhere in the document[2], and they render appropriately on export.
✅ Inline Footnotes
For quick notes, use inline footnotes that combine reference and definition:
The algorithm runs in O(n log n) time[1], making it practical for large datasets.
✅ Named Footnotes
Use descriptive names for footnotes you reference multiple times:
As noted in the original paper[smith2020], the results were reproducible[smith2020].
✅ Block Elements
Org-mode uses #+BEGIN_... and #+END_... pairs for special block content.
✅ Quote Blocks
For quotations:
The only way to do great work is to love what you do.
— Steve Jobs
✅ Example Blocks
For preformatted text that should render literally:
This text appears exactly as typed.
Indentation is preserved.
*Markup* is not processed.
✅ Center Blocks
For centered text:
This text will be centered when exported.
Multiple paragraphs can be centered together.
✅ Source Blocks
For code with syntax highlighting (covered in detail in Source Blocks):
def hello(name):
"""Greet someone by name."""
return f"Hello, {name}!"
✅ Comment Blocks
For content that should not appear in exports:
✅ Comments
Individual lines can be commented out:
Regular text continues here.
Everything after =# = at the start of a line is hidden from export but visible in the source.
For inline comments that span part of a line, there's no direct syntax—use comment blocks or restructure your content.
✅ Special Characters
✅ Entities
Org-mode supports named entities for special characters:
\alpha→ α,\beta→ β,\gamma→ γ (Greek letters)\rarr→ →,\larr→ ←,\harr→ ↔ (arrows)\deg→ °,\pm→ ±,\times→ × (symbols)\copy→ ©,\reg→ ®,\trade→ ™ (legal)
VS Code does not render the entities like Emacs does.
✅ Escaping Markup
To show literal markup characters without triggering formatting:
Use a zero-width space (not practical)
Use
verbatimorcodemarkup: the asterisk*creates boldUse an example block for longer passages
In source blocks and example blocks, all markup is automatically literal.
✅ Putting It All Together
Here's a sample document fragment showing these elements working together:
* Project Status Update
The /alpha release/ is *complete*. Key achievements:
1. Core functionality implemented
- Parser: 100% of syntax supported
- Exporter: HTML and PDF working
2. Documentation written
3. Tests passing
** Metrics
| Metric | Value |
|---------------+---------|
| Code coverage | 85% |
| Open issues | 12 |
The velocity $v = \frac{\Delta x}{\Delta t}$ of development has been steady.
** Next Steps
- [X] Finalize API
- [ ] Performance optimization
- [ ] User testing
This combines headlines, markup, lists, tables, math, and checkboxes into a cohesive document.
✅ Quick Reference
| Element | Syntax | Example |
|---|---|---|
| Bold | *text* | important |
| Italic | /text/ | emphasis |
| Underline | _text_ | underlined |
| Strikethrough | +text+ | |
| Verbatim | ==text= | /path/to/file |
| Code | ~text~ | variable |
| Unordered list | - item | - bullet point |
| Ordered list | 1. item | 1. numbered |
| Definition | - term :: def | - word :: meaning |
| Checkbox | - [ ] task | - [ ] todo item |
| Inline math | $equation$ | \(x^2\) |
| Display math | $$equation$$ | (centered equation) |
| Footnote | [fn:1] | reference[1] |
| Horizontal rule | ----- | (divider line) |
| Comment | # text | (hidden from export) |
Footnotes
Originally developed by Carsten Dominik starting in 2003.
Footnote definitions can appear anywhere, but placing them near their reference aids readability.
Smith et al., "Reproducibility in Science," Journal of Methods, 2020.