Emacs org模式示例和食谱(2017)

2021-03-11 01:03:27

本文档提供了可以在Emacs或G模式文件中完成的不同事物的示例。这不是旨在是习论。这些示例应提供您需要在ORG模式手册中查找的内容。

第一组的一组org模式文件,每个都从#+开始,配置org-mode' s剩余部分的解释。

初始组设置各种出口商使用的任何标题页,标题,页脚等中使用的元数据:

启动关键字在EMACS中打开时,如何将显示缓冲区:

乳胶类和任何包含在Exported LaTex文件的头部的鼠尾草命令。例如,在我的笔记本电脑上,标题看起来像这样:

当然,应该安装LaTeX,并且上述工作,Somust Libertine包,必须设置PDFMapFile。

#+标题:Emacs org-mode example example#+作者:eric h. neilsen,Jr.#+电子邮件:[email protected]#+语言:en#+ infojs_opt:view:showall toc:t ltoc:t鼠标:下划线路径:http://orgmode.org/org-info.js#+ link_home:http://hneilsen.net#+ link_up:http://hneilsen.net/notebook#+ html_head:<链接rel =&# 34;样式表" type ="文本/ css" href =" ../ css / notebook.css" /> #+ laTex_class:smarticle#+ raintx_header:\ pdfmapfile {/home/neilsen/texmf/fonts/map/dvips/libertine/libertine.map}#+ laTex_header:\ usepackage [ttscale = .875] {libertine}#+ raintx_header: \ usepackage {sectsty}#+ maitex_header:\ sectionfont {\ normalfont \ scshape:\ subsectionfont {\ normalfont \ itherhape}#+ export_select_tags:export#+ export_exclude_tags:noxport#+选项:h:2 num:nil toc :nil \ n:n:n:t:t | t |: t ^:{} _:{} *:t tex:t labex:t#+ startup:showall

按照EMACS手册中的说明进行操作;使用表单的aline开始文件:

例如,设置" up"和#34;家庭" org-mode文件的链接,开始使用:

- 修订版:: $修订:1.3 $ - 日期:: $日期:2013/05/17 15:19:53 $ - 源:: $源:/users/neilsen/documents/ctiotime/rcs/ctio_time.org $

#+ begin_src ditaa:文件ditaa-seqboxes.png + ------ + + ----- + + ----- + + ----- + | {io} | | {d} | | {s} | | CBLU | | Foo + --- + Bar + --- + Baz + --- + Moo | | | | | | | | | + ------ + + ----- + + - + - + + ----- + | / ----- \ | + ------ + | | | | c1ab | | goo + ------ + --- = - + shoo | \ ----- / | | + ------ +#+ end_src

#+ begin_src plantuml:file class_diagram.pngskinparam monochrome truefitshdu< | - primaryhdufitshdu< | - extensionhdufitshdu:headerfitshdu:getheaderkeyworw()extentshdu< | - imagehduimagehdu: - imagehduimagehdu:imagehduimagehdu:getpixel(行,列)extentshdu< | - - binarytablehdubinarytablehdu:tablebinarytablehdu:getrow(行)binarytablehdu:getcolumn(列)#+ end_src

#+ begin_src plantuml:file sequence_diagram.pngskinparam monochrome真实foo - >酒吧:同步呼叫foo - >>栏:异步呼叫#+ end_src

如果将光标放在#+ begin_src上并按两次点击Ctrl-C,则会产生A"结果"因此:

如果您希望导出的文档中的原始公式,则需要TOADD an:导出两个标志,因此:

#+ begin_src calcfsolve([x + y = a,x - y = b],[x,y])#+ end_src#+结果:[x = a +(b - a)/ 2,y =(a - b)/ 2]

#+名称:myformula#+ begin_src calc2 + a * x ** y#+ end_src#+ begin_src calc:neb是:var x = 5:var y = 2 <&lt; myformula&gt;&gt;&gt; #+ end_src#+结果:25 a + 2#+ begin_src calc:noweb是:var x = 10:var y = 2 <&lt; myformula&gt;&gt; #+ end_src#+结果:: 100 A + 2

| Airmass | Zenith_Seeing |交付 - | --------- + -------------- + ----------------- | | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | | 1.3 | 1.25 | 1.4631068 | | 1.3 | 1.3 | 1.5216311 | | 1.3 | 1.5 | 1.7557281 | | 1.3 | 1.8 | 2.1068738 | | 1.2 | 1.8 | 2.0080811 | | 1.3 | 2.0 | 2.3409709 | #+ TBLFM:$ 3 = $ 2 *($ 1 ** 0.6)

#+名称:Sampformula#+ Begin_src Python:var角度= 90:var r = 2:导出不是数学进口弧度,cosresult = r * cos(弧度(角度))返回结果#+ end_src |角度| r | x | | ------- + ---- + -------------- | | 30 | 10 | 8.66025403784 | | 45 | 10 | 7.07106781187 | | 60 | 10 | 5.0 | #+ tblfm:$ 3 =&#39;(org-sbe&#34; sampformula&#34;(角度$ 1)(r $ 2))

\ begin {eqnarray *} \ hat {f}(x)&amp; \ propto&amp; \ sum _ {\ nu} \ frac {| f(\ nu)h(\ nu)| ^ 2} {| n(\ nu)| ^ 2} \ frac {g(\ nu)} {h(\ nu) } e ^ {\ frac {2 \ pi i \ nu x} {n}} \\&amp; \ propto&amp; \ sum _ {\ nu} \ frac {| f(\ nu)| ^ 2} {| n(\ nu)| ^ 2} h(\ nu)h ^ *(\ nu)\ frac {g(\ nu) {h(\ nu)} e ^ {\ frac {2 \ pi i \ nu x} {n}} \\&amp; \ propto&amp; \ sum _ {\ nu} h ^ *(\ nu)g(\ nu)e ^ {\ frac {2 \ pi i \ nu x} {n}} \ end {eqnarray *}

\ begin {eqnarray *} \ hat {f}(x)&amp; \ propto&amp; \ sum _ {\ nu} \ frac {| f(\ nu)h(\ nu)| ^ 2} {| n(\ nu)| ^ 2} \ frac {g(\ nu)} {h(\ nu) } e ^ {\ frac {2 \ pi i \ nu x} {n}} \\&amp; \ propto&amp; \ sum _ {\ nu} \ frac {| f(\ nu)| ^ 2} {| n(\ nu)| ^ 2} h(\ nu)h ^ *(\ nu)\ frac {g(\ nu) {h(\ nu)} e ^ {\ frac {2 \ pi i \ nu x} {n}} \\&amp; \ propto&amp; \ sum _ {\ nu} h ^ *(\ nu)g(\ nu)e ^ {\ frac {2 \ pi i \ nu x} {n}} \ end {eqnarray *}

1.3气体测量的缩放是SRC_R {格式(1.3 **(3.0 / 5.0),数字= 3)} = 1.17 = 1.3气体的缩放是SRC_CALC {round(1.3 **(3.0 / 5.0),4)} = 1.1705 = 1.3气体的缩放是src_python {return&#34;%4.1f&#34; %(1.3 **(3.0 / 5.0))} = 1.2 =

#+标题:这是DIAA示例#+标签:ditaaex#+ attr_latex:width = 5cm,角度= 90文件:ditaa-simpleboxes.pngththis是我引用\ ref {图的一些示例文本。

图像,绘图,代码列表和表通常需要跨越多功能文本,以适应导出到多列乳胶样式。通过使用#+ attr_latex之前将相关块预先完成:浮动多列线,例如:

#+标题:这是一款宽桌子#+ attr_latex :: float multicumn | a | B | C | D | e | F | G | H | | --------- + ----------- + --------- + ------------ + --- ------ + -------------------- + ------------ | | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle | Foo Bar | Baz Boggle |

#+标题:这是我的Python代码。 #+ attr_latex :: float multicumn#+ begin_src pythonpretpr&#34;这是一个需要跨越乳胶出口中的多个列的长线代码; #+ end_src.

#+ begin_src python:结果输出:导出def times_two(x):y = x * 2返回y print time_two(5)#+ end_src#+结果:10

#+ begin_src python:exports botha =(&#39; b&#39;,200)b =(&#39; x&#39; 10)c =(&#39; q&#39;,-42)返回(a,b,c)#+ end_src#+结果:| B | 200 | | x | 10 | | Q | -42 |

通过删除:导出两者,您可以仅导出代码而不是输出。通过替换它:导出结果,您可以在没有源的情况下导出输出。

添加适当的:DIR参数在其他工作Direcories中运行代码,甚至在远程计算机上运行代码:

#+ begin_src sh:结果输出:exportsbothecho $ pwdecho $ hostname#+ end_src#+结果::/用户/ neilsen / notebook / org / orgexamples:argos.dhcp.fnal.gov#+ begin_src sh:结果输出:出口:dir / tmpecho $ pwdecho $ hostname#+ end_src#+结果:arift / tmp:argos.dhcp.fnal.gov#+ begin_src sh:结果输出:导出两者:dir:dir / ssh:[email protected] .gov:/ home / neilsenecho $ pwdecho $ hostname#+ end_src#+结果:/ home / neilsen:decam03.fnal.gov

#+标题::包括&lt; math.h&gt; :标志-lm#+标题::var x = 1.0:var y = 4.0:var z = 10.0#+ begin_src c:出口双倍pi = 4 * atan(1); double r,theta,phi; r = sqrt( x * x + y * y + z * z); theta = Acos(z / r)* 180.0 / pi; phi = atan2(y,x)* 180.0 / pi; printf(&#34;%f%f%f%f%f%f%f% F&#34;,r,θ,phi); #+ end_src.

#include&lt; math.h&gt;双x = 1.000000;双y = 4.000000;双Z = 10.000000; int main(){double pi = 4 * atan(1);双R,θ,phi; r = sqrt(x * x + y * y + z * z); theta = acos(z / r)* 180.0 / pi; phi = atan2(y,x)* 180.0 / pi; printf(&#34;%f%f%f%f&#34;,r,theta,phi);返回0;}

双pi = 4 * atan(1);双R,θ,phi; r = sqrt(x * x + y * y + z * z); theta = acos(z / r)* 180.0 / pi; phi = atan2(y,x)* 180.0 / pi; printf(&#34;%f%f%f%f&#34;,r,theta,phi);

有多个诀窍包括:它们必须传递为ELISP列表,例如:

#+标题::classname helloworld:cmdline&#34; -cp。&#34; #+ begin_src java:结果输出:导出公共类helloWorld {public静态void main(string [] args){system.out.println(&#34;您好,世界&#34;); #+ end_src#+结果::你好,世界

可以为乳胶导出生成保证金备注,但不能与其他导出方法(如HTML)的WIDEPOCTABLE(如HTML):

#+ begin_latex \ marginpar {\ color {blue} \ tiny \ raggedright \ vspace {18pt}在molly 23布局中,并非所有划线都有相同的红外(指点);每个平铺的偏移可以将不同的十六内部推入脚印的外部。}#+ end_latex

VSpace有助于调整放置以将其放在旁边的文本中。

请注意,您可以使用与图相同的技巧。如果使用乳胶包装,您甚至可以获得编号的数字。例如,

如果您已经摆弄了使用Latex GeometryPackage的边距,请务必在Geometry语句中设置MarginParWidth参数。

#+ begin_src sql:引擎postgreesql:导出结果:cmdline -p 5443 -h des20.fnal.gov -u decam_reader -d decam_prdselect日期,ra,exposure的拒绝。曝光限制10#+ end_src

#+ tblname:delsee | Airmass | Zenith_Seeing |交付 - | --------- + -------------- + ----------------- | | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+ TBLFM:$ 3 = $ 2 *($ 1 ** 0.6)

#+ begin_src r:结果输出:var delsee = delsee摘要(delsee)#+ end_src#+结果:airmass zenith_seeing tapled_seeing:min。 :1.3分钟。 :0.9500分钟。 :1.112:第1章:第1章:1。:​​1。 Qu.:1.317:最大。 :最多1.3。 :最多1.2000。 :1.405

#+ tblname:delsee | Airmass | Zenith_Seeing |交付 - | --------- + -------------- + ----------------- | | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+ tblfm:$ 3 = $ 2 *($ 1 ** 0.6)#+ begin_src r:导出两者:结果输出图形:var delsee = delsee:file delsee-r.png:宽度400:高度300Library(ggplot2)p&lt; - GGPLOT(Delsee,AES(Zenith_seeing,交付))P&lt; - p + geoM_point()p#+ end_src#+结果:文件:delsee-r.png

#+ begin_src r:colnames yesd&lt; - data.frame(foo = c(&#39; a&#39;和#39; b&#39;,&#39; n&#39;),bar = c( 1.0 / 3.0,22,32))D#+ end_src#+结果:| foo |酒吧| | ----- + ------------------ | | a | 0.333333333333333 | | B | 22 | | n | 32 |

#+ begin_src r:结果输出原始:exports两个&lt; data.frame(foo = c(&#39; a&#39;和#39; b&#39;,&#39; n&#39;), Bar = C(1.0 / 3.0,22,32))库(ASCII)选项(ASCIITYPE =&#34; ORG&#34;)ASCII(D,FORMAT = C(&#39; s&#39;,&#39 ; f&#39;),数字= c(5,4),include.rowname = false)#+ end_src#+结果:| foo |酒吧| | ----- + --------- | | a | 0.3333 | | B | 22.0000 | | n | 32.0000 |

#+ tblname:delsee | Airmass | Zenith_Seeing |交付 - | --------- + -------------- + ----------------- | | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+ tblfm:$ 3 = $ 2 *($ 1 ** 0.6)#+ begin_src python:var delsee = delsee:结果输出intelsee#+ end_src#+结果:[[1.3,0.95,1119612],[1.3,1.0,1119612],[1.3,1.0,1704854 ],[1.3,1.1,1.287534],[1.3,1.2,1.4045825]]]

#+ tblname:delsee | Airmass | Zenith_Seeing |交付 - | --------- + -------------- + ----------------- | | 1.3 | 0.95 | 1.1119612 | | 1.3 | 1.0 | 1.1704854 | | 1.3 | 1.1 | 1.2875340 | | 1.3 | 1.2 | 1.4045825 | #+ tblfm:$ 3 = $ 2 *($ 1 ** 0.6)#+ begin_src python:var fname =&#34; delseepy.png&#34; :var delsee = delsee:结果fileimport matplotlib.pyplot作为pltx,y,z = zip(* delsee)图= plt.figure()轴= fig.add_subplot(1,1,1)轴.plot(y,z, Marker =&#39; o&#39;)fig.savefig(fname)返回fname#+ end_src#+结果:文件:delseepy.png

遵循代码中概述的结构,如Pythonista,在部分中构造Python源文件:

#+ begin_src python:ne:ne:tangle helloworld.py:导出无&#34;&#34;这是一个hello world&#34;&#34;&#34;#importsimport sys&#34;#importsimport sys&lt; ; HelloWorld-Main-Main-Imports&gt;&gt;#常量#异常类#接口功能#类&lt; helloworld-defn&gt;#内部功能&amp;类&lt; helloworld-main&gt;&gt;如果__name__ ==&#39; __ main __&#39 ;: status = main()sys.exit(status)#+ end_src

当M-X org-babel-tangle在EMACS中运行时,:TANTLE Helloworld.py行将导致它从代码块的内容生成HelloWorld.py。

括号线(例如HelloWorld-类)是稍后将定义的Codefragescess。 ORG-Mode将在创建HelloWorld.py文件时自动自动执行这些块。

#+名称:helloworld-defn#+ begin_src python类helloWorld(对象):def __init __(self,who):self.who = who def say_hello(self):print&#34; hello%s&#34; %self.who#+ end_src

类HelloWorld(对象):def __init __(self,who):self.who = who def say_hello(self):print&#34; hello%s&#34; %self.who

它&#39通常是一个主要想法,主要是主要的解析器。 StartBy创建代码块执行所需的导入:

#+名称:helloworld-main#+ begin_src python def main():parser = ArgumentParser(描述=&#34;打个招呼&#34;)Parser.add_argument(&#34; -W&#34; - yho&#34;,type = str,default =&#34;世界&#34; help =&#34;谁打招呼到&#34; args = parser.parse_args()谁= args.who康德师= HelloWorld(Who)Grender.say_hello()返回0#+ end_src

def main():parser = ArgumentParser(描述=&#34;打个招呼&#34;)Parser.add_argument(&#34; -W&#34; - &#34; - 谁&#34; your yout = str,type = str,默认=&#34;世界&#34;,help =&#34;谁打招呼到&#34; args = parser.parse_args()= args.who greeter = helloworld(who)greeter.say_hello()返回0.

创建一个部分,以便易于运行生成的代码,以便从OrgMode文档中运行:

&#34;真实&#34;此shell脚本末尾的命令确保即使代码分子,也确保TheOutput进入Org-Mode缓冲区。

创建交互式测试。它&#39;在emacs中使用ressucturedtext模式的好主意,因此结果可以是重构修改的testdocument,传统到python。

#+名称:Doctest-foo#+ begin_src rst示例foo:&gt;&gt;来自HelloWorld进口*&gt;&gt;&gt; &gt;&gt;&gt; foo = helloworld(&#39; foo&#39;)&gt;&gt;&gt; foo.say_hello()hello foo#+ end_src

#+名称:Doctest-bar#+ begin_src rst示例栏::&gt;&gt;&gt;来自HelloWorld进口*&gt;&gt;&gt; &gt;&gt;&gt;酒吧= HelloWorld(&#39;酒吧和#39;)&gt;&gt;&gt; Bar.Say_Hello()Hello Bar#+ end_src

#+ begin_src python:noweb是:tangle testhelloworld.py:导出无从HelloWorld导入*&lt; unittest-foo&gt;&gt; def main():suite = unittest.testsuite()suite.addtests(docfilesuite(&#39; test_helloworld.txt&#39;))suite.addtests(unittest.defaultTestloader.loadtestsfrommodule(sys.modules [__ name__])unittest。 TextTestrunner(冗长= 2).run(套件)返回0如果__name__ ==&#39; __ main __&#39 ;: status = main()sys.exit(status)#+ end_src

本文档通常需要在ORG-Mode中引用ORG模式代码,这略有棘手,因为您需要转义#+ end_srcblock。在第一行使用逗号执行此操作。所以要得到这个:

有时额外的元素(特别是具有特殊达尔图族的行,与#或*开始的特殊达尔毒素模式)也需要与Acomma逃脱,但并非总是如此。

要使用乳胶中的波束模式生成演示文稿PDF文件,如下所示的剂量:

#+标题:#+作者:#+选项:h:1 toc:nil \ n:nil @:t:t |:t ^:t *:t tex:t laTex:t#+ laTex_class:phower#+ laTex_class_options:[呈现]#+ shaper_theme:默认#+ shaper_font_theme:default#+ shaper_color_theme:dove#+列:%45item%10beamer_env(env)%10beamer_act(act)%4beamer_col(col)%8beamer_opt(opt)#+启动: Beamer * Slide One - Foo + BAZ + Qux - Bar *下一个幻灯片Foo - Foo + Baz + Qux - Bar

当前#+标题:和#+作者:没有值的行,防止生成标题页。如果这些具有值,则标题页是已被引起的。