#+TITLE: Org Mode 标记速查表
#+OPTIONS: ^:{}
#+TAGS: org-mode, markup, cheatsheet, productivity
#+DESCRIPTION: Org Mode 富文本标记、结构、表格与 Babel 功能的速查清单,涵盖常见语法与导出注意事项。
* Org Mode 标记速查表 (Markup Cheatsheet)
Org Mode 的核心在于其强大的大纲和文档结构能力,以及丰富的富文本标记。
** 1. 文档结构 (Document Structure)
| 功能 | Org Mode 语法 | Org Mode 示例 | 描述 |
|--------------------+-------------------------------+---------------------------------------------------------------+-----------------------------------------------------|
| *标题 (Headlines)* | =* 标题一= | * 章节标题 | 一级标题。标题级别由星号数量决定。 |
| *子标题* | =** 标题二= | ** 1.1 小节 | 二级标题,以此类推。 |
| *TODO 状态* | =* TODO 任务= | * TODO 编写报告 | 在标题星号后添加 =TODO=、=DONE= 等状态关键词。 |
| *优先级* | =* [\#A] 标题= | * [\#A] 紧急任务 | 优先级默认为 A, B, C。=\#A= 为最高。 |
| *计划时间* | =SCHEDULED: <YYYY-MM-DD Day>= | SCHEDULED: <2025-11-20 Wed> | 设置任务的计划开始日期。 |
| *截止时间* | =DEADLINE: <YYYY-MM-DD Day>= | DEADLINE: <2025-11-25 Mon> | 设置任务的最后截止日期。 |
| *标签 (Tags)* | =* 标题 :tag:= | * 会议记录 :WORK:MEETING: | 在标题末尾使用冒号 =:= 包裹标签。 |
| *属性抽屉* | =:PROPERTIES:= | :PROPERTIES: :AUTHOR: Gemini :END: | 用于存储标题的元数据(如 ID, 计划日期, 优先级等)。 |
| *通用抽屉* | =:DRAWER_NAME:= | :LOGBOOK: CLOCK: [2025-11-15 10:00]--[2025-11-15 11:00] :END: | 用于存储非属性的隐藏信息,如日志、归档内容。 |
| *普通段落* | 纯文本 | 这是一个普通的段落。 | 段落之间用一个或多个空行分隔。 |
** 2. 富文本标记 (Rich Contents Markup)
| 功能/样式 | Org Mode 语法 | Org Mode 示例 | 描述 |
|------------------+----------------------------------+-------------------------------------------------------------------------------------+------------------------------------------------------|
| *粗体* | =*粗体文字*= | *重要信息* | 用于强调文字。 |
| /斜体/ | =/斜体文字/= | /待办事项/ | 用于强调文字。 |
| _下划线_ | =_下划线文字_= | _关键定义_ | 用于强调文字。 |
| +删除线+ | =+删除线文字+= | +已废弃+ | 用于表示已删除的内容。 |
| =等宽字体= | ==等宽文字== | =main.c= | 用于短小的代码片段或需要等宽字体显示的内容。 |
| ~逐字~ | =~代码~= | ~ls -l~ | 类似于等宽字体,用于代码或命令。 |
| 链接 | =[[URL][描述文字]]= | [[https://google.com][Google 搜索]] | 外部链接。 |
| 内部链接 | =[[file:path.org][描述]]= | [[file:report.org][项目报告]] | 链接到本地文件或Org文件的标题。 |
| 图像 | =[[./path/to/image.png]]= | [[./assets/logo.png]] | 插入图像,导出时可见。 |
| 无序列表 | =- 列表项= | - 苹果 | 使用 =-=、=+= 或 =*= 开头,后跟一个空格。 |
| 有序列表 | =1. 列表项= | 1. 第一步 | 使用数字后跟点号或括号,再跟一个空格。 |
| 源代码块 (显示) | =#+BEGIN_SRC [语言]...#+END_SRC= | #+BEGIN_SRC python\nprint("Hello")\n#+END_SRC | 嵌入多行代码或脚本。 |
| 引用块 | =#+BEGIN_QUOTE ... #+END_QUOTE= | #+BEGIN_QUOTE 这是引用内容。 #+END_QUOTE | 突出显示大段引用的文字。 |
| 水平分割线 | =-----= | ----- | 插入一条水平线(五个或更多连字符)。 |
| 脚标引用 | =文本[fn:名称]= | 一个观点[fn:示例] | 在文本中插入脚标引用。 |
| 脚标定义 | =[fn:名称] 内容= | 见文档底部 | 在文档底部或任意位置定义脚标。 |
| 下标 | =H_{2}O= | CO_{2} | 将 =_= 后面的内容显示为下标(请使用大括号)。 |
| 上标 | =E=mc^{2}= | T^{2} | 将 =^= 后面的内容显示为上标(请使用大括号)。 |
| *LaTeX 行内公式* | =$$\\text{公式}\$$= | $$\alpha + \beta = 1$$ | 用于显示数学公式,默认在行内。 |
| *LaTeX 显示公式* | =#+BEGIN_LATEX ... #+END_LATEX= | #+BEGIN_LATEX\n \\sum_{n=1}^{\infty} \\frac{1}{n^2} = \\frac{\pi^2}{6}\n#+END_LATEX | 用于显示独立的、居中的数学公式块。 |
| *特殊符号* | =\\text= 或 =\\symbol= | \lambda 或 \oplus | 使用 LaTeX 符号名称,导出时自动转换为相应符号。 |
| *特殊字符转义* | =\\字符= | \*星号 | 在需要保留特殊符号(如 =*=、=/=、=_=)的原义时使用。 |
** 3. 表格与电子表格 (Tables and Spreadsheets)
| 功能 | Org Mode 语法 | Org Mode 示例 | 描述 | | | | | | | |
|--------------------+----------------------+----------------------------------+------------------------------------------------------+---+--------------------------------+--------------------------------------+------+---+--------+----------------|
| *创建表格* | = | 内容 | 内容 | = | | 姓名 | 年龄 | | 使用 = | = 分隔单元格。 |
| *分隔线* | = | -= | | - | | 用于分隔标题行或对数据进行视觉分组。 | | | | |
| *引用(单元格)* | =@R$C= | | @1$2 | | 引用第 R 行、第 C 列的单元格。 | | | | | |
| *引用(列)* | =$C= | | $3 | | 引用当前行的第 C 列。 | | | | | |
| *表格公式 (TBLFM)* | =#+TBLFM: $C='公式'= | #+TBLFM: $3='sum($1, $2)' | 定义表格公式,用于计算列或单元格的值。 | | | | | | | |
| *公式示例 (Calc)* | =colname='公式'= | #+TBLFM: $3=$1+$2 | 简单的 Calc 风格公式,例如第三列等于第一列加第二列。 | | | | | | | |
| *公式示例 (Lisp)* | =(calc:formula)= | #+TBLFM: $3='(round (* $1 1.1))' | 使用 Emacs Lisp 函数进行更复杂的计算。 | | | | | | | |
** 4. 源代码执行 (Org Babel)
| 功能 | Org Mode 语法 | Org Mode 示例 | 描述 |
|--------------------------+------------------------------------+---------------------------------------------+-----------------------------------------------------------------------------|
| *执行代码块* | =#+BEGIN_SRC [语言] ... #+END_SRC= | #+BEGIN_SRC python\nprint(1 + 1)\n#+END_SRC | 定义一个可执行的代码块。 |
| *结果行* | =#+RESULTS:= | #+RESULTS:\n: 2 | 代码块执行后自动插入的结果,*不要手动修改*。 |
| *头部参数 (Header Args)* | =#+NAME: [名称]= | #+NAME: hello-code | 给代码块命名,方便引用。 |
| *结果处理* | =#+HEADER: :results [类型]= | #+HEADER: :results output | 指定结果类型:=output= (打印输出)、=value= (返回值)、=table= (表格)。 |
| *是否执行* | =#+HEADER: :exports [类型]= | #+HEADER: :exports code | 指定导出时包含的内容:=code= (只代码)、=results= (只结果)、=both=、=none=。 |
| *引用代码块* | =<<名称>>= | <<hello-code>> | 在文档中引用已命名代码块的内容。 |
** 重点提示
1. *导出选项:* 文件顶部的 =#+OPTIONS: ^:{}= 确保了在导出(如到 HTML 或 LaTeX)时,上标和下标 (=^= 和 =_=) 能被正确地解析和渲染。
2. *上/下标的最佳实践:* 由于启用了 =#+OPTIONS: ^:{}=,请始终使用花括号 ={}= 来包裹上标和下标的内容,例如 =CO_{2}= 和 =x^{2}= 。
3. *LaTeX 公式:* 使用 =$$\\text{公式}\$$= 或 =#+BEGIN_LATEX ... #+END_LATEX= 块插入公式,公式使用标准的 LaTeX 数学语法。
4. *空格要求:* 粗体、斜体等标记(如 =*= 、 =/= 、 =_= )必须紧密包裹在内容周围,且内容前后不能有空白字符,整个标记前后必须有空格与其它内容分隔开。
5. *通用性:* 这些标记在Org Mode导出(如HTML、PDF、Markdown)时,会转换为对应的富文本格式。
[fn:示例] 这是一个脚注示例,用于展示如何定义脚注内容。