Skip to content

Latest commit

 

History

History
executable file
·
380 lines (291 loc) · 13 KB

org-使用说明.org

File metadata and controls

executable file
·
380 lines (291 loc) · 13 KB

Org Mode 使用说明——备忘录

Org mode 常见功能

标题

关于 org mode 标题的内容。

标题是由 * (星号) 进行声明。星号的数量决定了标题的尝试。通过 <TAB> 键可以折叠和打开标题。当一行标题下有多行子标题的时候,可以通过多次按 <TAB> 键来打开相应的标题的层数。

子标题

子标题可以嵌套在其它标题之下,就像这个一样。这样是为了方便组织材料。

“TODO” (C-c C-t)

TODO 是通过在开始通过 TODODONE 关键字来创建的。 当然,你也可以能过在标题上按 C-c C-t 快捷键。 这样可以在你的 org 文档中更好的管理你的工作任务。这可以帮助你更好的计 划和安排你的任务。

TODO 循环

你可以对一个已经有了 TODO 标记的条目切换 TODO 状态。更方便的方法是 通过 C-c C-t t (t 标示 TODO) 进行更改。

无 -> TODO -> DONE -> 无 … (C-C C-t)

列表

你可以通过 - (破折号) 创建点式列表(bullets:无序列表),数字列表或者通过 #. (数字[.]) 创建一个清单。在没有具体内容的时候,你可以通过使用制表符来缩 近点式列表,但是制表符往往会让人更加迷惑,但是你可以通过在输入 - 或者 #. 之前利用 <TAB> 来解决这个问题。

有序列表

  1. 条目 1
  2. 条目 2
    1. 子条目 1
    2. 子条目 2
      1. 子条目的子条目 1

无序列表

开头用 - , + 或者 *

  • hello
  • item 2
  • item 3
    • subitem 1
    • sub
      • subsub

描述列表

开头用 - , + 或者 * ,后面用 ::

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.

文本格式化

个别的字可以使用星号来展示成 粗体 ,斜杠来展示成 斜体 ,用下划线来 表示 着重线 。也可以用 波浪号删除线

*粗体* /斜体/ _着重号_ ~波浪号~ +删除线+

表格

表格是由 ’|’ (竖线) 为开头的一行。如果一行是由 ’|-’ (竖线、横线) 为开始,则是表格的水平分割线;可以使用 <TAB> 键对表格进行扩展。

小贴士:

  • <TAB> 重新排列表格的大小,而且会移动到下一列,如果已经到了一 行的结尾处,则会创建新的一行。
  • C-c C-c 将重排列表的大小,但是不会移动到下一列,也不会创建新 的一行
  • <RET> 移动到下一行。
thisisasampletable
moveformonecolto
theotherwith<TAB>this column

表格格式化

在导出的时候,表格是没有边框的,下面的命令可以让紧接着的表格格式化。

thisisasampletable
moveformonecolto
theotherwith<TAB>this column

文字示例

文字示例是用来在导出 org 的时候格式化代码和小段文字的。即将内容放在 #+BEGIN_EXAMPLE#+END_EXAMPLE 之间。

代码

Org-mode 可以非常方便的插入代码片段。方式如下


[片段名称] 可以为 org 文件中的代码提供额外的功能。这也可以非常方便的让 人知道这是什么语言。

例如:

int main() {
return 0;
}

常用的参数和命令

参数:

  • -n : 在代码前显示行号
  • +n : 在代码前显示行号,从上一个代码片段继续往下排,即:上一个为 1 到 5,则这个从 6 开始继续往后排
  • -r : 移除代码的标签

命令:

  • C-c ['] : 允许在本地进行代码段的编辑操作。这会打开一个新的 buffer ,当需要退出时,再执行一次这个命令就可以了。
  • C-c l : 在用 C-c ' 编辑的时候,调用 org-store-link 。可以在正 在编辑的这行创建一个标签。可以利用 C-c C-l 进行跳转。

模板入门

我们在使用长标签进行输入的时候,会非常的繁琐。我们可以利用一些快捷方式 来创建一个片段的模板。在插入的时候,先输入一个 ‘<’ 然后可以选择一个要 使用的模板缩写,然后按下 <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 

链接

文件链接

可以使用下面的方式创建一个文件链接

[[file:filename][name-of-link]]

这样可以在导出成 HTML 的链接模式。

文档内容链接

你可以创建一个链接用来在文档中跳转,通过这种方式跳转到其它的章节。第二 个参数可以创建一个其它的名称。

[[section-title]]
[[section-title][link-title]]

导出 (C-c C-e)

你可以导出所有任务支持的格式,利用 C-c C-e [option]

C-c C-e 可以在缓冲区中显示出所有支持导出的选项。一般来说都支持 text, html, 和 Latex。你可以通过 Latex 生成 PDF 文档,但是需要在本地安装 Latex 编译环境。

导出选项 (C-c C-e t)

在导出 org 文档的时候,可以自动设计一些变量,也可以手工设置。可以用下面 的方式来修改参数:

#+VARIABLE-NAME: value

这个参数可以放在文档的任务位置,但是放在最上面比较好。

将这些模板粘贴在你的文档中,就可以设置他们了,然后用 (org-insert-export-options-template) 或者 C-c C-e t

下面这些可以打印出来[fn: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}

[fn:1] 这里的内容和 The Org Manual 进行了校对,有些已经无用的或者修改的,则进行了修改。

在你的文档中,你可以使用实际的变量代替描述,而且可以随意的改变这些变量。 下面提供这些变量的参考。

对导出 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 ...

标题

一般使用非注释行作为标题。如果没有的话,ie 会把第一个标题做为文件的名 称。

标题也可以手工设置

#+TITLE: This is the title of the document

目录

一般情况下,会生成在第一个标题后,你也可以在单独的一行中插入 TABLE-OF-CONTENTS 并用方括号括起来。

比较常用的设置如下:

#+OPTIONS: toc:2          (only to two levels in TOC)
#+OPTIONS: toc:nil        (no TOC at all)

包含其它文件

你可以包含另外的 org 文档,这些文档在导出的时候,才会被显示。 这是使用一行命令完成的

#+INCLUDE: "file-path" [type] [src-language]

可以是 #+BEGIN_QUOTE / #+END_QUOTE 或者 #+BEGIN_EXAMPLE / #+END_EXAMPLE 或者是 #+BEGIN_SRC / #+END_SRC

如果是 _SRC 的话,则语言种类可以是任何主要语言。

HTML 导出

样式表

你可以用下面的方式引入一个 CSS 样式表

#+STYLE:    <link rel="stylesheet" type="text/css" href="../stylesheet.css" />

你可以使用下面的变量来设置你的 CSS 样式,并在导出的时候使用他们[fn: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            定义脚注的编号

[fn:2] div.outline-N / div.outline-text-N 这两个不太懂,如果有了解 的请帮忙修改。其它的有翻译错误的也请帮忙斧正。

站点导航

超链接

超链接和链接一样,而且会自动转换成 HTML 的超链接形势。见 链接

发布

发布功能是一个简单的导出渠道。当你有许多文件需要导出的时候,创建一个对 应的发布脚本是一个不错的方法。

发布脚本

如果需要应用项目发布功能,可以在项目的本地文件夹中创建一个发布脚本,并 附上说明。在我们的例子中,假设文件名为 org_publish.el

#+INCLUDE: org_publish.el src emacs-lisp