Org Mode 使用说明——备忘录
Table of Contents
Org mode 常见功能
1 标题
关于 org mode 标题的内容。
标题是由 *
(星号) 进行声明。星号的数量决定了标题的尝试。通过 <TAB>
键可以折叠和打开标题。当一行标题下有多行子标题的时候,可以通过多次按
<TAB>
键来打开相应的标题的层数。
1.1 子标题
子标题可以嵌套在其它标题之下,就像这个一样。这样是为了方便组织材料。
2 "TODO" (C-c C-t
)
TODO 是通过在开始通过 TODO
和 DONE
关键字来创建的。
当然,你也可以能过在标题上按 C-c C-t
快捷键。
这样可以在你的 org 文档中更好的管理你的工作任务。这可以帮助你更好的计
划和安排你的任务。
2.1 TODO
循环
你可以对一个已经有了 TODO
标记的条目切换 TODO
状态。更方便的方法是
通过 C-c C-t t
(t 标示 TODO) 进行更改。
无 -> TODO -> DONE -> 无 … (
C-C C-t
)
3 列表
你可以通过 -
(破折号) 创建点式列表(bullets:无序列表),数字列表或者通过 #.
(数字[.]) 创建一个清单。在没有具体内容的时候,你可以通过使用制表符来缩
近点式列表,但是制表符往往会让人更加迷惑,但是你可以通过在输入 -
或者
#.
之前利用 <TAB>
来解决这个问题。
3.1 有序列表
- 条目 1
- 条目 2
- 子条目 1
- 子条目 2
- 子条目的子条目 1
3.2 无序列表
开头用 -
, +
或者 *
。
- hello
- item 2
- item 3
- subitem 1
- sub
- subsub
3.3 描述列表
开头用 -
, +
或者 *
,后面用 ::
Matlab is a funnny language. - Scope :: Scope doesn't work as expected, and messes everything up\\ when loops mix variables up in recursive function. - Namespaces :: You wish. - Header Files :: Nope.
导出如下:
Matlab is a funnny language.
- Scope
- Scope doesn't work as expected, and messes everything up
when loops mix variables up in recursive function.
- Namespaces
- You wish.
- Header Files
- Nope.
4 文本格式化
个别的字可以使用星号来展示成 粗体 ,斜杠来展示成 斜体 ,用下划线来
表示 着重线 。也可以用 波浪号
和 删除线 。
*粗体* /斜体/ _着重号_ ~波浪号~ +删除线+
5 表格
表格是由 '|
' (竖线) 为开头的一行。如果一行是由 '|-
' (竖线、横线)
为开始,则是表格的水平分割线;可以使用 <TAB>
键对表格进行扩展。
this | is | a | sample | table |
---|---|---|---|---|
move | form | one | col | to |
the | other | with | <TAB> |
this column |
小贴士:
<TAB>
重新排列表格的大小,而且会移动到下一列,如果已经到了一 行的结尾处,则会创建新的一行。C-c C-c
将重排列表的大小,但是不会移动到下一列,也不会创建新 的一行<RET>
移动到下一行。
5.1 表格格式化
在导出的时候,表格是没有边框的,下面的命令可以让紧接着的表格格式化。
this | is | a | sample | table |
---|---|---|---|---|
move | form | one | col | to |
the | other | with | <TAB> |
this column |
6 文字示例
文字示例是用来在导出 org 的时候格式化代码和小段文字的。即将内容放在
#+BEGIN_EXAMPLE
和 #+END_EXAMPLE
之间。
6.1 代码
Org-mode 可以非常方便的插入代码片段。方式如下
#+BEGIN_SRC [片段名称] [参数] #+END_SRC
[片段名称] 可以为 org 文件中的代码提供额外的功能。这也可以非常方便的让 人知道这是什么语言。
例如:
1: int main() { 2: return 0; 3: }
6.1.1 常用的参数和命令
参数:
-n
: 在代码前显示行号+n
: 在代码前显示行号,从上一个代码片段继续往下排,即:上一个为 1 到 5,则这个从 6 开始继续往后排-r
: 移除代码的标签
命令:
C-c [']
: 允许在本地进行代码段的编辑操作。这会打开一个新的 buffer ,当需要退出时,再执行一次这个命令就可以了。C-c l
: 在用C-c '
编辑的时候,调用org-store-link
。可以在正 在编辑的这行创建一个标签。可以利用C-c C-l
进行跳转。
6.2 模板入门
我们在使用长标签进行输入的时候,会非常的繁琐。我们可以利用一些快捷方式
来创建一个片段的模板。在插入的时候,先输入一个 '<' 然后可以选择一个要
使用的模板缩写,然后按下 <TAB>
键。
模板选择器:
s #+begin_src ... #+end_src e #+begin_example ... #+end_example q #+begin_quote ... #+end_quote v #+begin_verse ... #+end_verse c #+begin_center ... #+end_center l #+begin_latex ... #+end_latex L #+latex: h #+begin_html ... #+end_html H #+html: a #+begin_ascii ... #+end_ascii A #+ascii: i #+index: line I #+include: line
7 链接
7.1 文件链接
可以使用下面的方式创建一个文件链接
[[file:filename][name-of-link]]
这样可以在导出成 HTML 的链接模式。
7.2 文档内容链接
你可以创建一个链接用来在文档中跳转,通过这种方式跳转到其它的章节。第二 个参数可以创建一个其它的名称。
[[section-title]] [[section-title][link-title]]
8 导出 (C-c C-e
)
你可以导出所有任务支持的格式,利用 C-c C-e [option]
。
C-c C-e
可以在缓冲区中显示出所有支持导出的选项。一般来说都支持 text,
html, 和 Latex。你可以通过 Latex 生成 PDF 文档,但是需要在本地安装 Latex 编译环境。
8.1 导出选项 (C-c C-e t
)
在导出 org 文档的时候,可以自动设计一些变量,也可以手工设置。可以用下面 的方式来修改参数:
#+VARIABLE-NAME: value
这个参数可以放在文档的任务位置,但是放在最上面比较好。
将这些模板粘贴在你的文档中,就可以设置他们了,然后用
(org-insert-export-options-template
) 或者 C-c C-e t
。
下面这些可以打印出来1
#+TITLE: 文档的题目(默认是文件的题目) #+AUTHOR: 作者(默认为 user-full-name) #+DATE: 日期或者是一个时间戳(利用 org-export-timestamp-format 设置) #+EMAIL: 邮箱地址(默认为 user-mail-address) #+DESCRIPTION: 页面描述,类似于 XHTML 的元标签(META tag) #+KEYWORDS: 页面关键定,类似于 XHTML 的元标签 #+LANGUAGE: HTML 的语言,例如 en (org-export-default-language) #+TEXT: 在开头插入一些描述性的文本。(可能已经移除) #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t ... #+BIND: 如果 org-export-allow-bind-keywords 是 non-nil,Emacs 的变量可以利用 BIND 关键字,改缓冲区的内容 #+HTML_LINK_HOME: 主页链接 #+HTML_LINK_UP: 上行链接 #+SELECT_TAGS: 默认为 :export: ,则会将所有有 :export: 的内容(子内容)进行导出 #+EXCLUDE_TAGS: 默认为 :noexport: ,不导出有 :noexport: 标记的内容,如果入口标记为 :noexport:,有 :export: 标签的内容也不进行导出 #+LINK: 每行指定一个链接的名称或者是简写 #+LATEX_HEADER: 可以增加一个额外的 Latex 标注,类似于 \usepackage{xyz}
在你的文档中,你可以使用实际的变量代替描述,而且可以随意的改变这些变量。 下面提供这些变量的参考。
对导出 HTML 和 LaTeX 来说, #+OPTIONS
是一个非常有用的参数。
H: 控制导出的标题的级别 num: 控制是否输出段落的编号 toc: 控制是否输出目录,或者目录的级别(数字) \n: 控制是否保留换行符 @: 控制是否输出 HTML 标签 :: 控制是否固定宽度 |: 控制是否包含表格 ^: 控制是否允许 Tex 的句法,如果设置为 ^:{} ,a_{b}会展示为下标,但是 a_b 则显示为 a_b -: 控制特殊字符转换,t 的时候, \-/--/---/... 会转换成&sky,&ndash,&mdash,&hellip. f: 控制是否包含脚标 todo: 控制是否包含 TODO 关键字 tasks: 控制包含的任务的类型,todo 移除 DONE 的内容,nil 移除所有相关内容,如果有多个关键字则保留所有关键字的内容 pri: 控制包含的优先级 tags: 控制包含的标签,not-in-toc: 控制是否包含于标题,nil 是不包含 tags <: 控制是否包含时间戳,例如:截止时间 *: 控制是否启用强调文本(粗体、斜体、下划线) TeX: 控制在纯文本中是否支持 TeX 宏 LaTeX: 控制是否支持 LaTex 版本,默认为自动 skip: 控制是否路过标题前的文档 author: 控制导出时是否显示作者 email: 控制导出时是否显示邮箱 creator: 控制导出时是否显示创建者 timestamp: 控制导出时是否显示创建时间 d: 控制导出时是否包含抽屉
变量可以设置为 nil
或者 t
,或者是其它的内容。
例如
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t ...
8.1.1 标题
一般使用非注释行作为标题。如果没有的话,ie 会把第一个标题做为文件的名 称。
标题也可以手工设置
#+TITLE: This is the title of the document
8.1.2 目录
一般情况下,会生成在第一个标题后,你也可以在单独的一行中插入
TABLE-OF-CONTENTS
并用方括号括起来。
比较常用的设置如下:
#+OPTIONS: toc:2 (only to two levels in TOC) #+OPTIONS: toc:nil (no TOC at all)
8.2 包含其它文件
你可以包含另外的 org 文档,这些文档在导出的时候,才会被显示。 这是使用一行命令完成的
#+INCLUDE: "file-path" [type] [src-language]
可以是
#+BEGIN_QUOTE
/ #+END_QUOTE
或者 #+BEGIN_EXAMPLE
/
#+END_EXAMPLE
或者是 #+BEGIN_SRC
/ #+END_SRC
。
如果是 _SRC 的话,则语言种类可以是任何主要语言。
8.3 HTML 导出
8.3.1 样式表
你可以用下面的方式引入一个 CSS 样式表
#+STYLE: <link rel="stylesheet" type="text/css" href="../stylesheet.css" />
你可以使用下面的变量来设置你的 CSS 样式,并在导出的时候使用他们2 :
p.author 作者信息,包括邮箱 p.date 发矶时间 p.creator 创建时间,包括 org mode 的版本 .title 文档标题 .todo TODO 关键字,非 DONE 状态 .done DONE 关键字,所有被认为完成的状态 .WAITING 每个 TODO 状态,且显示成自己的状态名 .timestamp 时间戳 .timestamp-kwd 关联性的时间戳,比如 SCHEDULED .timestamp-wrapper 关键字时间戳 .tag 各级标题的标签 ._HOME 将所有标签类导出,并将 '@' 替换为 '_' .target 目标链接 .linenr 代码示例中的行号 .code-highlighted 高亮引用的代码行 div.outline-N 给不同 outline 级别标题加 div 标签 div.outline-text-N 给不同 outline 级别提供不同的 div 样式 .section-number-N 标题中的段数,每个级别都不同 div.figure 格式化引用图片 pre.src 格式化源码 pre.example 格式化 example 内容 p.verse 每行段落的样式 div.footnotes 脚注章节的标题 p.footnote 脚注段落的样式,包含脚注的样式 .footref 脚注的参考编号 .footnum 定义脚注的编号
8.3.2 站点导航
8.3.3 超链接
超链接和链接一样,而且会自动转换成 HTML 的超链接形势。见 7 。
9 发布
发布功能是一个简单的导出渠道。当你有许多文件需要导出的时候,创建一个对 应的发布脚本是一个不错的方法。
9.1 发布脚本
如果需要应用项目发布功能,可以在项目的本地文件夹中创建一个发布脚本,并
附上说明。在我们的例子中,假设文件名为 org_publish.el
。
#+INCLUDE: org_publish.el src emacs-lisp
Footnotes:
这里的内容和 The Org Manual 进行了校对,有些已经无用的或者修改的,则进行了修改。
div.outline-N
/ div.outline-text-N
这两个不太懂,如果有了解
的请帮忙修改。其它的有翻译错误的也请帮忙斧正。