曾经花了很多时间来选择和处理关于文档的编辑和处理工具。稍前一段时间选择的是r+markdown,其中有些问题没有很好的处理方法,比如作图问题,表格导出到不同的格式的问题。
现在算是找到了一个好的解决方案,即emacs的org-mode。这里基本上可以解决上面的问题。而且前面关于R+markdown的只是基本上这里也能用,但是可配置性更强。
1 一般的格式问题
可以参考文档 org-mode中的文字格式
2 源码处理问题
一般的问题可以参考 org-mode中的源码处理
3 插图问题
3.1 一般的统计作图
可以使用R语言。简单的实例可以参考 org-mode中的源码处理 。
3.2 流程图作图
可以使用dot来解决,简单的例子如下所示:
digraph { A->B B->C C->A 开始 -> 结束 -> 检验 }
dot的文档 : The DOT Language
更多文档: graphviz doc
graph : [ strict ] (graph | digraph) [ ID ] '{' stmt_list '}' stmt_list : [ stmt [ ';' ] stmt_list ] stmt : node_stmt | edge_stmt | attr_stmt | ID '=' ID | subgraph attr_stmt : (graph | node | edge) attr_list attr_list : '[' [ a_list ] ']' [ attr_list ] a_list : ID '=' ID [ (';' | ',') ] [ a_list ] edge_stmt : (node_id | subgraph) edgeRHS [ attr_list ] edgeRHS : edgeop (node_id | subgraph) [ edgeRHS ] node_stmt : node_id [ attr_list ] node_id : ID [ port ] port : ':' ID [ ':' compass_pt ] | ':' compass_pt subgraph : [ subgraph [ ID ] ] '{' stmt_list '}' compass_pt : (n | ne | e | se | s | sw | w | nw | c | _)
3.3 精细的数学作图
可以使用tikz包来实现, 简单的实例可参考 org-mode中使用tikz画图 。
tikz的文档 texdoc tikz
4 表格
关于表格的问题,可以直接利用R语言的dataframe输出,然后加上 :colnames yes
即可以添加表头。实例在 org-mode中的源码处理 中有出现。
关于表格,还可以参考文章 org-mode中的表格。
另外,也可以直接使用org模式中的org-table,这个也很好用,而且可以象excel那样进行表格的计算。并且表格的计算中可以调用emacs lisp的函数来进行计算,因此功能很强大。表格的计算也可以参考 org-mode中的表格。
5 待解决的问题
现在还有一个没有同样解决方案的是r+markdown中的R代码和计算结果交织的输出形式。目前org mode中的输出模式是R代码放在一起,输出结果放在另一块,并没有交织输出的模式。
本文地址: http://www.bagualu.net/wordpress/archives/6800 转载请注明